【LINGO8.0 for Windows软件及应用】
LINGO是一款强大的数学优化软件,主要用于解决线性和非线性优化问题。它内置了一套专门用于构建优化模型的语言,使得用户能够便捷地表述复杂的问题,并通过其高效的求解器快速找到最优解。
### §1 LINGO快速入门
在Windows环境下启动LINGO8.0,你会看到一个主框架窗口,其中包含了所有菜单命令和工具条。默认的模型窗口(LINGO Model - LINGO1)是编写模型代码的地方。以下展示了一个简单的示例:
#### 示例1.1:线性规划问题
假设我们需要解决以下LP问题:
```
min 2*x1 + 3*x2
s.t.
x1 + x2 >= 350
x1 >= 100
2*x1 + x2 <= 600
```
在模型窗口中输入相应的LINGO代码:
```
min=2*x1+3*x2;
x1+x2>=350;
x1>=100;
2*x1+x2<=600;
```
然后点击工具条上的求解按钮即可得到结果。
#### 示例1.2:运输问题
考虑一个6个发点、8个收点的最小费用运输问题。在LINGO中,模型的构建如下:
```
model:
!6 发点 8 收点运输问题
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
```
同样,点击求解按钮即可得到运输问题的最优解。
### §2 LINGO中的集
集是LINGO建模语言的核心元素,用于表示相关对象的集合,如工厂、消费者群体等。集分为原始集和派生集:
#### 2.2.1 原始集
原始集由基本对象构成,成员可以有多个关联属性。例如,产品集的每个产品可有价格属性,卡车集的每辆卡车有牵引力属性等。
#### 2.2.2 派生集
派生集由其他已定义的集定义,成员来源于这些已存在的集。
### §2.3 集的定义和使用
在LINGO模型中,集需要在模型的集部分先进行定义,使用`sets:`开始,`endsets`结束。定义原始集时,需指定集名和可选的成员。一旦定义,集及其属性可以在模型的约束中被引用。
集部分对于模型的灵活性至关重要,它允许用简洁的表达式处理一系列类似的约束,使得处理大规模模型变得高效且易于管理。
学习并掌握LINGO的集概念,能让你更好地利用LINGO解决实际问题,构建更复杂的优化模型。通过不断的实践和深入学习,你将能够充分利用LINGO的强大功能,解决各种优化挑战。