获取lingo安装包可以到lingo官网下载或者在微信公众号“认知无线电”回复“lingo”即可得到安装包(来源CSDN)。
下载好安装包后,解压安装。在第一打开时肯能会出现需要注册码,此时,在弹出的对话框中选择“Demo”即可。那么就可以得到如下的操作界面。
图1
案例1:对于简答的线性问题的求解
图2
如图2所示,是一个简单的线性问题。根据限制条件,求解2x1+3x2的最小值。
在图1代码区输入以下代码:
min=2*x1+3*x2;
x1+x2>=350;
x1>=100;
2*x1+x2<=600;
第1行表示需要求的值的表达式。第2-4行表示限制条件。点击图1中的“solve”就可以得到相应的值。结果如图3所示:
图3
如图3的红字所示,可以很快找到图2问题的解以及对应的变量取值。
案例2:解决点到点的问题
图5
图5是一个标准的点到点问题。从产地Ai到销地Bj的运费各不相同,同时Ai和Bj都有量的限制。求最小的运费以满足各地的需求(Ai多卖,Bj多买)。
其代码如下:
model:
sets:
warehouses/wh1..wh6/: capacity;
vendors/v1..v8/: demand;
links(warehouses,vendors): cost, volume;
endsets
min=@sum(links: cost*volume);
@for(vendors(J):
@sum(warehouses(I): volume(I,J))=demand(J));
@for(warehouses(I):
@sum(vendors(J): volume(I,J))<=capacity(I));
data:
capacity=60 55 51 43 41 52;
demand=35 37 22 32 41 32 43 38;
cost=6 2 6 7 4 2 9 5
4 9 5 3 8 5 8 2
5 2 1 9 7 4 3 3
7 6 7 3 9 2 7 1
2 3 9 5 7 2 6 5
5 5 2 2 8 1 4 3;
enddata
end
关于代码的解释,如图6所示。
图6
在限制条件那一块,说明的是,图5中表格的某一行前几个数据之和要等于最后一个数据(也可以不大于)。图5中表格的某一列前几个数据之和要不大于最后一个数据。
本文参照CSDN某一篇关于lingo的教程,暂无编者名。获取此教程可在微信公众号“认知无线电”回复“lingo”即可。
视频教程:
B站视频链接:https://www.bilibili.com/video/av94942380/
相关链接: