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 |
|