lingo⼊门基本函数及格式
最近在学lingo,感觉上⼿⽐较简单,也不知道⾃⼰感觉的对不对,哈哈
这是⾃⼰在OneNote上记得笔记,在此备份⼀下
如果有什么问题可以⼀起交流讨论啊
代码格式
model:
sets:
!此处为集合定义;
endsets
data:
!此处为数据导⼊;
enddata
calc:
!此处为计算段,专职已知数据的计算处理,不能含有变量;
endcalc
min\max=…; !⽬标函数;
@for(…); !约束条件;
…
false是什么函数end
数学函数
@smax(x1,x2,x3…xn)
返回x1,x2,x3…xn
@max() ⼀般对集循环函数取集⾥⾯的最⼤值
@abs(x) 绝对值
@sin(x)
@cos(x)
@tan(x)
@exp(x)
@log(x)
@mod(x,y)x除以y的余数
@lgm(x) 返回x的gamma函数的⾃然对数
@sign(x)
如果x<0返回-1,否则返回1
@floor(x)返回x的整数部分
@gin() 取整函数
@sum(setname(i):x(i))
@size(S1)S1为集合的名字,返回集合中元素的个数
约束函数(可结合逻辑函数使⽤)
@for
⽤法举例
@for(r(i)|i#ge#2:d(i)>=3)
@for(r(i):@for(c(j):x(i,j)<=y(i,j)));
逻辑运算符⼀般配合for约束语句使⽤
逻辑运算符
优先级⾼
#not# 否定该操作数的逻辑值
优先级中
#eq# 若两个运算数相等,返回true,否则false
#ne# 若两个运算数不相等,返回true,否则false
#gt# 若左边的运算符严格⼤于右边的运算符,则为true
#ge# 若左边的运算符严格⼤于等于右边的运算符,则为true
#lt# 若左边的运算符严格⼩于右边的运算符,则为true
#le# 若左边的运算符严格⼩于等于右边的运算符,则为true
优先级低
#and# 仅当两个参数都为true时,结果为true
#or# 仅当两个参数都为false时,结果为false
边界限定函数
@bin(x) 限制x为0或1
@bnd(L,x,U)限制L<= x <= U
@free(x) 取消对变量x的默认下界为0的限制
@gin(x) 限制x为整数
辅助函数
@if(logical_condition,true_result,false_result)
评价⼀个逻辑表达式logical_condition,如果为真,返回true_result,否则返回false_result
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论