lingo软件使用教程

lingo软件使用教程

ID:1205313

大小:11.20 MB

页数:28页

时间:2017-11-08

lingo软件使用教程_第1页
lingo软件使用教程_第2页
lingo软件使用教程_第3页
lingo软件使用教程_第4页
lingo软件使用教程_第5页
资源描述:

《lingo软件使用教程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、lingo软件使用教程一般来说,一个优化模型将由以下三部分组成: 1. 目标函数(Objective Function):要达到的目标。 2. 决策变量(Decision variables):每组决策变量的值代表一种方案。在优化模型中需要确定决策变量的最优值,优化的目标就是找到决策变量的最优值使得目标函数取得最优。 3. 约束条件(Constraints):对于决策变量的一些约束,它限定决策变量可以取的值。  在写数学模型时,一般第一行是目标函数,接下来是约束条件,再接着是一些非负限制等。在模型窗口输入如下代码: Max = 2*

2、x1+3*x2; X1+2*x2<=8;4*x1<16; 4*x2<12; 注意:1.每一个lingo表达式最后要跟一个分号;      2.多数电脑中没有£符号,lingo中<=代替;为了方便可以用<代替小于等于,用>代替大于等于。 3.我们可以添加一些注释,增加程序的可读性。注释以一个!(叹号必须在英文状态下输入,它会自动变为绿色)开始,以;(分号)结束。 4.Lingo中不区分变量名的大小写。变量名必须以字母(A-Z)开头,后面的字符可以是字母、数字、下划线。变量名不能超过32个字符。 Lingo程序的一些规则: 1. 在Li

3、ngo中最开始都是“MAX=”或者“MIN=”开始表示求目标函数的最大或者最小值。 2. 变量和它前面的系数之间要用“*”连接, 中间可以有空格。 3. 变量名不区分大小写,但必须以字母开始, 不超过32个字符。 4. 数学表达式结束时要用分号“;”表示结束。表达式可以写在多行上,但是表达式中间不能用分号。 5. 在电脑系统中一般没有“小于等于”符号,在Lingo采用“<=”来表示“小于等于”, 用“>=”表示“大于等于”。小于等于也可以用更简单的“<”表示,大于等于用“>”表示。集合段: 在我们已经得到的程序里有一些量没有定义,如

4、WAREHOUSES( I),DEMAND( J), LINKS( I, J)。这些量将在Lingo中的集合段定义。  集合段以SETS:表示开始,以ENDSETS表示结束。  如果一个集合的元素都已经定义过,就可以用一些循环函数(如@for).注:1. 集合的属性相当于以集合的元素为下标的数组。Lingo中没有数组的概念,只有定义在集合上的属性的概念。 2 集合的定义语法: set_name[/set_member/:][attribute_list]; 集合的名称在左边,右边是这个集合上的属性,他们之间用冒号“:”分割开,最后由

5、分号表示结束。如果在同一个集合上有多个属性时,不同的属性之间用逗号“,”隔开,如本例的cost和volume属性。 如果要特别列出集合的元素时,在集合的名称后把元素写在两条斜线之间,如本例中的仓库可以写为 WAREHOUSES/WH1, WH2, WH3, WH4, WH5, WH6/: CAPACITY;  也可以写为WAREHOUSES/WH1..WH6/: CAPACITY; Lingo会自动生成需要的集合元素。数据段:  数据段以DATA:开始,以ENDDATA表示数据段结束。注意:在给类似link这样的集合赋值时,外边的指

6、标先增加。注:1. Longo模型以model:表示模型开始,以end表示模型结束。 2. 叹号为lingo的注释符,以分号表示注释结束。注释可以写在多行,一般显示为绿色。3. 如果只想看到求解结果中的非零部分,可以在菜单中选择solution,在属性或行名称下拉框中选择volume,在勾选Nonzeros复选框。例1.2 使用LINGO软件计算6个发点8个收点的最小费用运输问题。产销单位运价如下表。model: !6发点8收点运输问题; sets:   warehouses/wh1..wh6/: capacity;   vendo

7、rs/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));   !这里是

8、数据; 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

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。