lingo入门基本函数及格式

博主分享Lingo学习笔记,介绍了Lingo代码格式,包含集合定义、数据导入等部分。还列举了数学函数、约束函数、逻辑运算符、边界限定函数和辅助函数等,如@smax、@for等,并给出部分函数用法举例,欢迎交流讨论。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在学lingo,感觉上手比较简单,也不知道自己感觉的对不对,哈哈
这是自己在OneNote上记得笔记,在此备份一下
如果有什么问题可以一起交流讨论啊

代码格式

model:

sets:

!此处为集合定义;

endsets

data:

!此处为数据导入;

enddata

calc:

!此处为计算段,专职已知数据的计算处理,不能含有变量;

endcalc

min\max=…; !目标函数;

@for(…); !约束条件;

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值