LocalSolver快速入门指南(连载十六) ---- LocalSolver可用的操作符和函数列表

Local solver可用的操作符和函数列表

在下表中,每个操作符用LSP语言的名称标识。请注意,在PythonC++C语言或java语言中,这些名称可能略有不同,以尊重每个开发语言的编码约定和预留关键字:

  • 在C++和java中,决策变量被冠以“var”( boolVar, floatVar, intVar, setVar 和 listVar)前缀
  • 在C#中所有函数都以大写字母开头.
  • 下表列出了LocalSolver中可用的操作符和函数

如有任何疑问请联系localsolver中国代理商/技术商无锡迅合信息科技有限公司开发人员,未完待续,下一章节:(连载十七) -Local Solver中的 At操作符, 分段操作符

 

函数

描述

参数类型

结果类型

参数个数

符号

决策变量

bool

域为{0,1}的布尔决策变量

布尔型

0

 

float

[ab]上的浮点决策变量

2个双精度

双精度浮点型

2

 

int

域为[ab]的整数决策变量

2个整数

整型

2

 

list

[0n-1]范围内整数的有序集合

1个整数

集合

1

 

set

[0n-1]范围内整数的无序集合

1个整数

集合

1

 

算术运算

sum

所有操作数之和

布尔型,整数,双精度浮点数

整型,双精度浮点型

n >= 0

+

sub

第一个操作数与第二个操作数的相减

布尔型,整数,双精度浮点数

整型,双精度浮点型

2

-

prod

所有操作数的乘积

布尔型,整数,双精度浮点数

整型,双精度浮点型

n >= 0

*

min

所有操作数的最小值

布尔型,整数,双精度浮点数

整型,双精度浮点型

n > 0

 

max

所有操作数的最大值

布尔型,整数,双精度浮点数

整型,双精度浮点型

n > 0

 

div

第一个操作数除以第二个操作数

布尔型,整数,双精度浮点数

双精度浮点型

2

/

mod

取模:modab=r,使得a=q*b+r,其中qr为整数,r<b

布尔型,整数

整型

2

%

abs

绝对值:如果e>=0,则abse=e,否则为-e

布尔型,整数,双精度浮点型

整型,双精度浮点型

1

 

dist

距离:distab=absa-b

布尔型,整数,双精度浮点型

整型,双精度浮点型

2

 

sqrt

平方根

布尔型,整数,双精度浮点型

双精度浮点型

1

 

cos

Cosine(余弦)

布尔型,整数,双精度浮点型

双精度浮点型

1

 

sin

Sine(正弦)

布尔型,整数,双精度浮点型

双精度浮点型

1

 

tan

Tangent(正切)

布尔型,整数,双精度浮点型

双精度浮点型

1

 

log

自然对数

布尔型,整数,双精度浮点型

双精度浮点型

1

 

exp

指数函数

布尔型,整数,双精度浮点型

双精度浮点型

1

 

pow

powab)等于以a为底的b次幂

布尔型,整数,双精度浮点型

双精度浮点型

2

 

ceil

Ceil:对一个数向上取整

布尔型,整数,双精度浮点型

整型

1

 

floor

Floor:四舍五入到上一个最大整数(向下取整)

布尔型,整数,双精度浮点型

整型

1

 

round

舍入到最接近的整数:round(x) = floor(x + 0.5)

布尔型,整数,双精度浮点型

整型

1

 

scalar

两个数组之间的标量乘积

数组

整型,双精度浮点型

2

 

piecewise

两个数组之间的分段线性函数乘积。

数组,整型,双精度浮点型

双精度浮点型

3

 

逻辑

not

非:note=1-e

布尔型

布尔型

1

!

and

:如果所有操作数都是1,则等于1,否则等于0

布尔型

布尔型

n >= 0

&&

or

: 如果所有操作数都为0,则等于0,否则等于1

布尔型

布尔型

n >= 0

||

xor

异或:如果值为1的操作数为偶数,则等于0,否则等于1

布尔型

布尔型

n >= 0

 

关系型

eq

等于:如果a=begab=1,否则为0

布尔型,整数,双精度浮点型

布尔型

2

==

neq

不等于:如果a=b,那么neq(a,b)=1 否则为0

布尔型,整数,双精度浮点型

布尔型

2

!=

geq

大于或等于: 如果a >= b ,那么geq(ab) = 1 ,否则为0

布尔型,整数,双精度浮点型

布尔型

2

>=

leq

小于或等于:如果a <= b ,那么leq(ab) = 1 否则为0

布尔型,整数,双精度浮点型

布尔型

2

<=

gt

严格大于: 如果a > b ,那么gt(ab) = 1,否则为0

布尔型,整数,双精度浮点型

布尔型

2

>

lt

严格小于: 如果a < b ,那么lt(ab) = 1,否则为0

布尔型,整数,双精度浮点型

布尔型

2

<

条件型

iif

三元运算符:如果a等于1,则iifabc=b,否则为c

布尔型,整数,双精度浮点型

布尔型,整型,双精度浮点型

3

?:

array + at

T[i]返回数组T中的第i个值。

数组,整数

布尔型,整型,双精度浮点型

2

[]

集合相关

count

返回集合中的元素数。

集合

整型

1

 

indexOf

返回集合中某个值的索引,如果该值不存在,则返回-1

集合,整型

整型

2

 

contains

如果集合包含给定值,则返回1,否则返回0

集合,整型

布尔型

2

 

partition

如果所有操作数构成其公共域的分区,则返回true

集合

布尔型

n > 0

 

disjoint

如果所有操作数都是成对不相交的,则返回true

集合

布尔型

n > 0

 

其他

call

调用函数。它可以用来实现您自己的操作符。

布尔型,整数,双精度浮点型

双精度浮点型

n > 0

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一个例子来说明如何使用Lingo和MATLAB求解非线性规划问题模型。 假设我们有一个非线性规划问题,如下所示: 最小化: f(x) = x1^2 + x2^2 满足约束条件: x1 + x2 >= 1 x1 - x2 >= 0 我们可以使用Lingo来建立模型和求解非线性规划问题。首先,我们需要定义变量和约束条件。在Lingo中,我们可以使用以下代码来定义: ``` MIN = @SUM(x1*x1, x2*x2) @GIN(x1 + x2 >= 1) @GIN(x1 - x2 >= 0) ``` 然后,我们可以使用Lingo的求解器来解决这个问题。在Lingo中,我们可以使用以下代码来求解: ``` @SOLVER(Optimizer = LocalSolver, SolverOptions = "maxtime=30") ``` 这将使用LocalSolver来求解问题,并将时间限制设置为30秒。然后,我们可以使用以下代码来获取解决方案: ``` PRINT x1 PRINT x2 ``` 这将打印出变量x1和x2的值。 另外,我们也可以使用MATLAB来求解这个非线性规划问题。我们可以使用MATLAB的优化工具箱中的fmincon函数来解决问题。以下是MATLAB代码的示例: ``` function [f, grad] = objfun(x) f = x(1)^2 + x(2)^2; if nargout > 1 grad = [2*x(1); 2*x(2)]; end end function [c, ceq, gradc, gradceq] = confun(x) c = [x(1) + x(2) - 1; x(1) - x(2)]; ceq = []; if nargout > 2 gradc = [1 1; 1 -1]; gradceq = []; end end options = optimoptions('fmincon', 'Algorithm', 'interior-point', 'MaxFunctionEvaluations', 10000); [x, f] = fmincon(@objfun, [0; 0], [], [], [], [], [], [], @confun, options); ``` 此代码定义了目标函数和约束条件,然后使用fmincon函数来求解问题。最后,我们可以使用以下代码来获取解决方案: ``` disp(x) ``` 这将打印出变量x1和x2的值。 希望这个例子可以帮助您了解如何使用Lingo和MATLAB求解非线性规划问题模型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值