- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
lingo软件使用教程
一般来说,一个优化模型将由以下三部分组成:?
1.?目标函数(Objective?Function):要达到的目标。?
2.?决策变量(Decision?variables):每组决策变量的值代表一种方案。在优化模型中需要确定决策变量的最优值,优化的目标就是找到决策变量的最优值使得目标函数取得最优。?
3.?约束条件(Constraints):对于决策变量的一些约束,它限定决策变量可以取的值。??
在写数,,,,模型时,一般第一行是目标函数,接下来是约束条件,再接着是一些非负限制等。
在模型窗口输入如下代码:?
Max?=?2*x1+3*x2;?
X1+2*x2=8;
4*x116;?
4*x212;?
注意:1.每一个lingo表达式最后要跟一个分号;?
?????2.多数电脑中没有?符号,lingo中=代替;为了方便可以用代替,,,,于等于,用代替大于等于。?
3.我们可以添加一些注释,增加程序的可读性。注释以一个!(叹号必须在英文状态下输入,它会自动变为绿色)开始,以;(分号)结束。?
4.Lingo中不区分变量名的大,,,,写。变量名必须以字母(A-Z)开头,后面的字符可以是字母、数字、下划线。变量名不能超过32个字符。?
Lingo程序的一些规则:?
1.?在Lingo中最开始都是“MAX=”或者“MIN=”开始表示求目标函数的最大或者最,,,,值。?
2.?变量和它前面的系数之间要用“*”连接,?中间可以有空格。
?3.?变量名不区分大,,,,写,但必须以字母开始,?不超过32个字符。
?4.?数,,,,表达式结束时要用分号“;”表示结束。表达式可以写在多行上,但是表达式中间不能用分号。?
5.?在电脑系统中一般没有“,,,,于等于”符号,在Lingo采用“=”来表示“,,,,于等于”,?用“=”表示“大于等于”。,,,,于等于也可以用更简单的“”表示,大于等于用“”表示。
集合段:?
在我们已经得到的程序里有一些量没有定义,如WAREHOUSES(?I),DEMAND(?J),?LINKS(?I,?J)。这些量将在Lingo中的集合段定义。??
集合段以SETS:表示开始,以ENDSETS表示结束。??
如果一个集合的元素都已经定义过,就可以用一些循环函数(如@for).
注:1.?集合的属性相当于以集合的元素为下标的数组。Lingo中没有数组的概念,只有定义在集合上的属性的概念。?
2?集合的定义语法:?
set_name[/set_member/:][attribute_list];?
集合的名称在左边,右边是这个集合上的属性,他们之间用冒号“:”分割开,最后由分号表示结束。如果在同一个集合上有多个属性时,不同的属性之间用逗号“,”隔开,如本例的cost和volume属性。?如果要特别列出集合的元素时,在集合的名称后把元素写在两条斜线之间,如本例中的仓库可以写为?
WAREHOUSES/WH1,?WH2,?WH3,?WH4,?WH5,?WH6/:?CAPACITY;??
也可以写为WAREHOUSES/WH1..WH6/:?CAPACITY;?Lingo会自动生成需要的集合元素。
数据段:??
数据段以DATA:开始,以ENDDATA表示数据段结束。
注意:在给类似link这样的集合赋值时,外边的指标先增加。
注:1.?Longo模型以model:表示模型开始,以end表示模型结束。?
2.?叹号为lingo的注释符,以分号表示注释结束。注释可以写在多行,一般显示为绿色。
3.?如果只想看到求解结果中的非零部分,可以在菜单中选择solution,在属性或行名称下拉框中选择volume,在勾选Nonzeros复选框。
例1.2?使用LINGO软件计算6个发点8个收点的最,,,,费用运输问题。产销单位运价如下表。
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;?
??dem
文档评论(0)