实验5 优化模型求解实验 二Word下载.docx
- 文档编号:3760214
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:19
- 大小:150.46KB
实验5 优化模型求解实验 二Word下载.docx
《实验5 优化模型求解实验 二Word下载.docx》由会员分享,可在线阅读,更多相关《实验5 优化模型求解实验 二Word下载.docx(19页珍藏版)》请在冰点文库上搜索。
X
(1)35.00000
X
(2)26.00000
X(3)45.00000
X(4)78.00000
X(5)69.00000
X(6)66.00000
例2定义一个名为产品的的基本集(可记为products),包括三种产品A,B和C(即它具有成员A,B和C),现在想研究它们对应的单位价格120、100和80以及对应的质量等级1、2和3(即属性可以记为price,quality)
在模型窗口中输入如图2:
products:
price,quality;
products,price,quality=A1201B1002C803;
图2
运行结果为:
PRICE(A)120.0000
PRICE(B)100.0000
PRICE(C)80.00000
QUALITY(A)1.000000
QUALITY(B)2.000000
QUALITY(C)3.000000
学习要点:
(1)定义一个基本集:
集合名/集合的成员/:
属性,属性,…,属性;
(2)集合要夹在sets和endsets之间;
(3)连续可编号的n个成员可以使用1..n或用带字母的编号表示如w1..wn来输入,也可以直接以逗号间隔,将n个成员输入为w1,…,wn;
(4)数据部分要夹在data和enddata之间;
(5)成员可以当作数据输入.
二、定义一个派生集
派生集的基本格式:
派生集名(基本集1,基本集2,…):
例3导入矩阵
.
在模型窗口中输入如图3:
图3
row/1..2/;
column/1..3/;
links(row,column):
A;
A=124
456;
A(1,1)1.000000
A(1,2)2.000000
A(1,3)4.000000
A(2,1)4.000000
A(2,2)5.000000
A(2,3)6.000000
例4产生矩阵
,其中“-”表示对应位置没有数据.
在模型窗口中输入如图4:
图4
row/1..3/;
links(row,column)/1,11,32,12,23,23,3/:
B;
B=214012222231;
B(1,1)21.00000
B(1,3)40.00000
B(2,1)12.00000
B(2,2)22.00000
B(3,2)22.00000
B(3,3)31.00000
例5在模型窗口中输入:
product/1..2/;
quality/1..2/;
cost/1..2/;
links(product,quality,cost):
运行后会发现:
派生集合links产生八个成员:
(1,1,1),(1,1,2),(1,2,1),(1,2,2),(2,1,1),(2,1,2),(2,2,1),(2,2,2).
(1)派生集的基本格式为:
派生集名(基本集1,基本集2):
属性1,属性2,…,属性n;
利用派生集可以产生多维数组,它是基本集合成员的所有可能组合;
(2)对于派生集,可以定义其具体的成员,其格式与基本集的格式类似:
派生集名(基本集1,基本集2)/成员/:
(3)在例4中只取了派生集links中的一些元素,也称为稀疏集.
三、集循环函数
集循环函数是指对集合的元素进行循环操作的函数,其格式为:
@函数名(集合(指标)|过滤条件:
表达式)
函数有for,max,min,prod,sum五种,分别表示对集合满足过滤条件的每一元素:
独立生成表达式,求最大元素,求最小元素,计算乘积,求和.下面以简单例子来介绍@for和@sum函数的使用:
1、@for
例6产生序列{4916253649}.
在模型窗口中输入:
model:
number/1..7/:
@for(number(i)|i#ge#2:
x(i)=i^2);
end
X
(2)4.000000
X(3)9.000000
X(4)16.00000
X(5)25.00000
X(6)36.00000
X(7)49.00000
2)@sum求和
例7对数列12546求和.
number/1..5/:
S=@sum(number(I):
x(I));
x=12546;
S18.00000
X
(1)1.000000
X
(2)2.000000
X(3)5.000000
X(4)4.000000
X(5)6.000000
(1)一个模型可写在model和end之间,这是为了表示一个完整的模型,不至于与模型窗口中的其它模型混淆;
(2)集合中使用符号“|”表示其后为过滤条件,只有集合中满足条件的指标才执行其后的表达式;
(3)如使用循环函数时,其中number(i)表示集合number中的第i个元素,循环函数就会遍历number中满足条件的每个元素,执行其后所有表达式;
(4)“ge”为逻辑符号,表示“大于等于”,逻辑运算符使用时要夹在“#”之间;
所有逻辑运算符按优先级顺序由高到低排序为:
not(非);
eq(等于),ne(不等于),gt(大于),lt(小于);
ge(大于等于),le(小于等于);
and(与),or(或).
六、练习:
1.编程求解课本§
4.3节中例1自来水输运问题。
min=160*x11+130*x12+220*x13+170*x14+140*x21+130*x22+190*x23+150*x24+190*x31+200*x32+230*x33;
x11+x12+x13+x14=50;
x21+x22+x23+x24=60;
x31+x32+x33=50;
x11+x21+x31>
=30;
x11+x21+x31<
=80;
x12+x22+x32>
=70;
x12+x22+x32<
=140;
x13+x23+x33>
=10;
x13+x23+x33<
x14+x24>
x14+x24<
=50;
通过求解得到,运输方案为:
A水库向乙水区供水50,B水库向乙水区供水50,向丁水区供水10,C水库向甲水区供水40,向丙水区供水10.此时引水管理费为24400元,利润最大为144000-72000-24400=47600元。
每个水库的最大水量提高一倍时:
min=290*x11+320*x12+230*x13+280*x14+310*x21+320*x22+260*x23+300*x24+260*x31+250*x32+220*x33;
x11+x12+x13+x14<
=100;
x21+x22+x23+x24<
=120;
x31+x32+x33<
通过运算可得,A水库向乙区供水100,B水库向甲,乙,丙区分别供水30,40,50,C水库向甲,丙区分别供水50,30,总理韵味88700元。
2.编程求解课本§
4.3节中例2货机装运问题。
cang/1..3/:
WET,VOL;
wu/1..4/:
w,v,p;
limk(wu,cang):
WET=10,16,8;
VOL=6800,8700,5300;
w=18,15,23,12;
v=480,650,580,390;
p=3100,3800,3500,2850;
max=@sum(wu(i):
p(i)*@sum(cang(j):
x(i,j)));
@for(wu(i):
@sum(cang(j):
x(i,j))<
w(i));
@for(cang(j):
@sum(wu(i):
WET(j));
v(i)*x(i,j))<
VOL(j));
@for(cang(k)|k#GT#j:
x(i,j)/WET(j))=@sum(wu(i):
x(i,k)/WET(k)));
);
结果为货物2装入前舱10t,装入后舱5t,货物3装入中仓13t,装入后舱3t,货物4装入中仓3t,最大利润约为121516元。
3.
求解运输问题
学习了LINGO的集合操作之后,运输问题就可以编写成简单的LINGO程序来求解.
例计算有5个产地A1—A5,8个销地B1-B8的运输问题的最优调运方案.单位运价表如表:
单位运价销地
产地
B1
B2
B3
B4
B5
B6
B7
B8
产量
A1
2
7
1
9
3
5
40
A2
8
4
6
20
A3
30
A4
45
A5
25
销量
23
18
24
48
36
50
要求:
建立具体模型,并给出Lingo程序和求解结果。
六个产地的总产量和为160,8个销售地的销量和为264,故产销不平衡,销大于产.定义集合workshop为有六个成员的产地,shop为有八个成员的销地,a为产量,b为销量,c为单位运价,x为待求调运量,编写程序如下:
workshop/w1..w5/:
a;
shop/v1..v8/:
b;
links(workshop,shop):
c,x;
min=@sum(links(i,j):
c(i,j)*x(i,j));
@for(shop(j):
@sum(workshop(i):
=b(j));
@for(workshop(i):
@sum(shop(j):
x(i,j))=a(i));
a=4020304525;
b=2345182448365020;
c=27192352
58416555
41274444
37632262
62845764;
出师表
两汉:
诸葛亮
先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。
然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。
诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。
宫中府中,俱为一体;
陟罚臧否,不宜异同。
若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理;
不宜偏私,使内外异法也。
侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下:
愚以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。
将军向宠,性行淑均,晓畅军事,试用于昔日,先帝称之曰“能”,是以众议举宠为督:
愚以为营中之事,悉以咨之,必能使行阵和睦,优劣得所。
亲贤臣,远小人,此先汉所以兴隆也;
亲小人,远贤臣,此后汉所以倾颓也。
先帝在时,每与臣论此事,未尝不叹息痛恨于桓、灵也。
侍中、尚书、长史、参军,此悉贞良死节之臣,愿陛下亲之、信之,则汉室之隆,可计日而待也
。
臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。
先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。
后值倾覆,受任于败军之际,奉命于危难之间,尔来二十有一年矣。
先帝知臣谨慎,故临崩寄臣以大事也。
受命以来,夙夜忧叹,恐托付不效,以伤先帝之明;
故五月渡泸,深入不毛。
今南方已定,兵甲已足,当奖率三军,北定中原,庶竭驽钝,攘除奸凶,兴复汉室,还于旧都。
此臣所以报先帝而忠陛下之职分也。
至于斟酌损益,进尽忠言,则攸之、祎、允之任也。
愿陛下托臣以讨贼兴复之效,不效,则治臣之罪,以告先帝之灵。
若无兴德之言,则责攸之、祎、允等之慢,以彰其咎;
陛下亦宜自谋,以咨诹善道,察纳雅言,深追先帝遗诏。
臣不胜受恩感激。
今当远离,临表涕零,不知所言。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验5 优化模型求解实验 实验 优化 模型 求解