一:lingo运算符
1. 5种运算符:加+ 减- 乘* 除/ 幂^
2. 关系运算符 :lingo没有严格的小于或大于
(>=,大于等于)
3. 9种逻辑运算符,分为两类:
#AND#(与),#OR#(或),#NOT#(非)
#EQ#(等于), #NE#(不等于)
#GT#(大于), #GE#(大于等于)
#LT# (小于) , #LE#(小于等于)
过滤条件 |
@IF(logical_condition,true_result,false_result)
logical_condition的结果为真时返回true_result。
4 字母数字下划线构成变量
5. 字母不区分大小写
6. 每行后面必须写 ;
例子:
model:
title 求解线性规划
max = 2*x1 + 3*x2;
2*x1 + x2
4*x1 + 3*x2
end
6. 取整函数 :@gin()
model:
title :求解二次规划;
!小程序可用,大程序不提倡;
[opt]max = 98 * x1 + 277 * x2 – x1^2 – 0.3*x1*x2 – 2*x2^2 ;
[st1]x1 + x2
[st2]x1
@gin(x1);@gin(x2);
end
二、段的概述
lingo中建立的优化模型可以由六个部分组成,或称为六“段”
1.集合段:用于定义数组型变量
SETS: …….ENDSETS
2.数据段:用于变量赋值与数据传递
DATA:……ENDDATE
3.目标与约束段:用于列出目标与约束
唯一一个没有段的开始和结束标记
4.计算段:用于数据初始整理计算
CALC: …….ENDCALC
5. 初始段: 用于变量赋初值迭代寻优
INIT:…..ENDINIT
6.子模型段:用于表达子模型进行调用
@SUBMODEL mymodel:
可执行语句(约束+目标)
ENDSUBMODEL
例2:
表达
!表示:y(j)取整数,j=1,2,3,…,200
x(i)为0-1变量 ,i=1,2, …100;
sets:
a/1..100/:x;
b/1..200/:y;
endsets
!目标与约束段;
@for(b(j):@gin(y(j)));
@for(a(i):@gin(x(i)));
三、常用函数
@gin 整数变量
@bin 0-1变量
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!