Local solver可用的操作符和函数列表
在下表中,每个操作符用LSP语言的名称标识。请注意,在Python,C++,C语言或java语言中,这些名称可能略有不同,以尊重每个开发语言的编码约定和预留关键字:
- 在C++和java中,决策变量被冠以“var”( boolVar, floatVar, intVar, setVar 和 listVar)前缀
- 在C#中所有函数都以大写字母开头.
- 下表列出了LocalSolver中可用的操作符和函数
如有任何疑问请联系localsolver中国代理商/技术商无锡迅合信息科技有限公司开发人员,未完待续,下一章节:(连载十七) -Local Solver中的 At操作符, 分段操作符。
|
函数 |
描述 |
参数类型 |
结果类型 |
参数个数 |
符号 |
决策变量 |
bool |
域为{0,1}的布尔决策变量 |
无 |
布尔型 |
0 |
|
float |
域[a,b]上的浮点决策变量 |
2个双精度 |
双精度浮点型 |
2 |
|
|
int |
域为[a,b]的整数决策变量 |
2个整数 |
整型 |
2 |
|
|
list |
[0,n-1]范围内整数的有序集合 |
1个整数 |
集合 |
1 |
|
|
set |
[0,n-1]范围内整数的无序集合 |
1个整数 |
集合 |
1 |
|
|
算术运算 |
sum |
所有操作数之和 |
布尔型,整数,双精度浮点数 |
整型,双精度浮点型 |
n >= 0 |
+ |
sub |
第一个操作数与第二个操作数的相减 |
布尔型,整数,双精度浮点数 |
整型,双精度浮点型 |
2 |
- |
|
prod |
所有操作数的乘积 |
布尔型,整数,双精度浮点数 |
整型,双精度浮点型 |
n >= 0 |
* |
|
min |
所有操作数的最小值 |
布尔型,整数,双精度浮点数 |
整型,双精度浮点型 |
n > 0 |
|
|
max |
所有操作数的最大值 |
布尔型,整数,双精度浮点数 |
整型,双精度浮点型 |
n > 0 |
|
|
div |
第一个操作数除以第二个操作数 |
布尔型,整数,双精度浮点数 |
双精度浮点型 |
2 |
/ |
|
mod |
取模:mod(a,b)=r,使得a=q*b+r,其中q,r为整数,r<b。 |
布尔型,整数 |
整型 |
2 |
% |
|
abs |
绝对值:如果e>=0,则abs(e)=e,否则为-e |
布尔型,整数,双精度浮点型 |
整型,双精度浮点型 |
1 |
|
|
dist |
距离:dist(a,b)=abs(a-b) |
布尔型,整数,双精度浮点型 |
整型,双精度浮点型 |
2 |
|
|
sqrt |
平方根 |
布尔型,整数,双精度浮点型 |
双精度浮点型 |
1 |
|
|
cos |
Cosine(余弦) |
布尔型,整数,双精度浮点型 |
双精度浮点型 |
1 |
|
|
sin |
Sine(正弦) |
布尔型,整数,双精度浮点型 |
双精度浮点型 |
1 |
|
|
tan |
Tangent(正切) |
布尔型,整数,双精度浮点型 |
双精度浮点型 |
1 |
|
|
log |
自然对数 |
布尔型,整数,双精度浮点型 |
双精度浮点型 |
1 |
|
|
exp |
指数函数 |
布尔型,整数,双精度浮点型 |
双精度浮点型 |
1 |
|
|
pow |
pow(a,b)等于以a为底的b次幂 |
布尔型,整数,双精度浮点型 |
双精度浮点型 |
2 |
|
|
ceil |
Ceil:对一个数向上取整 |
布尔型,整数,双精度浮点型 |
整型 |
1 |
|
|
floor |
Floor:四舍五入到上一个最大整数(向下取整) |
布尔型,整数,双精度浮点型 |
整型 |
1 |
|
|
round |
舍入到最接近的整数:round(x) = floor(x + 0.5) |
布尔型,整数,双精度浮点型 |
整型 |
1 |
|
|
scalar |
两个数组之间的标量乘积 |
数组 |
整型,双精度浮点型 |
2 |
|
|
piecewise |
两个数组之间的分段线性函数乘积。 |
数组,整型,双精度浮点型 |
双精度浮点型 |
3 |
|
|
逻辑 |
not |
非:not(e)=1-e |
布尔型 |
布尔型 |
1 |
! |
and |
与:如果所有操作数都是1,则等于1,否则等于0 |
布尔型 |
布尔型 |
n >= 0 |
&& |
|
or |
或: 如果所有操作数都为0,则等于0,否则等于1 |
布尔型 |
布尔型 |
n >= 0 |
|| |
|
xor |
异或:如果值为1的操作数为偶数,则等于0,否则等于1 |
布尔型 |
布尔型 |
n >= 0 |
|
|
关系型 |
eq |
等于:如果a=b,eg(a,b)=1,否则为0 |
布尔型,整数,双精度浮点型 |
布尔型 |
2 |
== |
neq |
不等于:如果a!=b,那么neq(a,b)=1 否则为0 |
布尔型,整数,双精度浮点型 |
布尔型 |
2 |
!= |
|
geq |
大于或等于: 如果a >= b ,那么geq(a, b) = 1 ,否则为0 |
布尔型,整数,双精度浮点型 |
布尔型 |
2 |
>= |
|
leq |
小于或等于:如果a <= b ,那么leq(a, b) = 1 否则为0 |
布尔型,整数,双精度浮点型 |
布尔型 |
2 |
<= |
|
gt |
严格大于: 如果a > b ,那么gt(a, b) = 1,否则为0 |
布尔型,整数,双精度浮点型 |
布尔型 |
2 |
> |
|
lt |
严格小于: 如果a < b ,那么lt(a, b) = 1,否则为0 |
布尔型,整数,双精度浮点型 |
布尔型 |
2 |
< |
|
条件型 |
iif |
三元运算符:如果a等于1,则iif(a,b,c)=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 |
|