最近运筹学在用这个东西解决线性规划问题,怕我自己以后找不到了OωO就放在博客上啦

1. Lingo代码段

Lingo代码分为若干片段,比如上面代码包含了:

集合段:sets: ...... endsets ——用来声明和定义数组变量;

数据段:data: ...... enddata ——用数据对变量赋值;

目标与约束段: 即具体模型表述部分(不需起止标志)。

注:另外还可以有初始段和计算段(暂且不谈)。

例 1 涉及到两个一维数据:供应 [公式] 、需求 [公式] ; 以及一个二维数据 [公式] . 所以要存储和使用它们,必须要用到集合段和数据段,当然还必须有模型段。

2. 集合段部分

(1) 集合段第一句:supplys /1 .. 3/: S;

声明一个长度为 3 的一维数组 supplys, 并用它定义一个这样的一维数组变量 S.

先是数组名(随便起),再是用两个 / 夹在中间的是数组的下标范围,中间 .. 是省略表示法,接着用 : 定义数组变量 S。

(2) 同理,第二句 demands/1..4/: D; 声明一个长度为 4 的一维数组 demands,并定义一个这样的一维数组变量 D。

(3) 第三句 links(supplys, demands): c, x; 声明一个 [公式] 的二维数组 links,并用它定义两个这样的二维数组变量 c, x.

把两个一维数组放一起,起个名字叫 links,得到二维数组 links,第1个一维数组的维数就是二维数组的行数维度,第2个一维数组的维数就是二维数组的列数维度。

注意:这里 links 不是Lingo关键字,可以随便起名。

3. 数据段部分

前面定义好的数组变量 [公式] ,就是为了存放已知数据的,把已知数据赋值给它们,以便目标与约束段使用。

数据中间用 逗号/空格 隔开都可以,二维数据写成一行也行,我这样写比较易读而已。

4. 目标与约束段部分

为什么不叫模型段呢,是因为Lingo一般是把全部代码放在 model: ....... end 中间(就解决一个问题,省略也行),整个叫做模型段。

5.安装包

lingo

链接: https://pan.baidu.com/s/1Q6JDJzbbW32SyIia5c2aeg 提取码: kvqg

最后修改:2020 年 06 月 26 日 10 : 14 AM
如果觉得我的文章对你有用,请随意赞赏