lingo练习
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数学规划模型及lingo 求解练习: 1.考虑下述不平衡指派问题。现有7个人指派给他们5项任务,效率矩阵如下表。约定:①一个任务只能被一个人完成;②一个人在某时刻只能做一项任务;③所
(1) lingo 代码求解,
给出最优指派以及最优值; 1. 模型的建立:
设:题干中有i 个人共要完成j 件事情,可建立以下模型:
i=1,2,3…..m j=1,2,3…..n
=0或1
xij=1:指派第i 人做第j 事 xij=0: 不指派第i 人做第j 事 ( cij )称为系数矩阵。 2. 详细代码: Model: SETS:
Chandi/1..7/:cl; Xiaodi/1..5/:xl;
ChanXiao(Chandi,Xiaodi):c,x; ENDSETS DATA:
c=2 15 13 1 8 10 4 14 15 7 9 14 16 13 8 7 8 11 9 4 8 4 15 8 6 12 4 6 8 13 5 16 8 5 10;
m n
ij ij
i=1j=1
min =c x Z •∑∑1
1
n
ij
j x
==∑1
1
m
ij
i x
==∑ij
x
[obj] min=@sum(ChanXiao:c*x);
@for(Chandi(i):@sum(Xiaodi(j):x(i,j))<1); @for(Xiaodi(j):@sum(Chandi(i):x(i,j))=1);
@for(Chandi(i):@sum(Xiaodi(j):c(i,j)*x(i,j)) (2) 目标是任务尽早完工。建立数学规划模型,并编写lingo 代码求解,给出 最优指派以及最优值; 1.模拟建立: 设:题干中有i 个人共要完成j 件事情,可建立以下模型: min max Z C =• j=1,2,3,….n i=1,2,3,….m i=1,2,3…..m 0或1 xij=1:指派第i 人做第j 事 xij=0: 不指派第i 人做第j 事 ( cij )称为系数矩阵。 2.详细代码: Model: SETS: Chandi/1..7/:cl; Xiaodi/1..5/:xl; ChanXiao(Chandi,Xiaodi):c,x; ENDSETS 11n ij j x ==∑ 11m ij i x ==∑ max 1 n ij ij j c x C =•≤∑ ij x = c=2 15 13 1 8 10 4 14 15 7 9 14 16 13 8 7 8 11 9 4 8 4 15 8 6 12 4 6 8 13 5 1 6 8 5 10; ENDDATA [obj]min=Cmax; @for(Chandi(i):@sum(Xiaodi(j):x(i,j))<1); @for(Xiaodi(j):@sum(Chandi(i):x(i,j))=1); @for(Chandi(i):@sum(Xiaodi(j):c(i,j)*x(i,j)) @for(ChanXiao(i,j):@bin(x(i,j))); End (3)如果第3个人内定会有一项任务。上述两个目标函数的最优指派以及最优值有无变化? 1.模型的建立:只需要在第二问的模型基础上添加一个对三个人的限制条 件即可,即@sum(Xiaodi(j):x(3,j))=1; 2.详细代码: Model: SETS: Chandi/1..7/:cl; Xiaodi/1..5/:xl; ChanXiao(Chandi,Xiaodi):c,x; ENDSETS DATA: c=2 15 13 1 8 10 4 14 15 7 9 14 16 13 8 7 8 11 9 4 8 4 15 8 6 12 4 6 8 13 5 1 6 8 5 10; ENDDATA [obj]min=Cmax; @for(Chandi(i):@sum(Xiaodi(j):x(i,j))<1); @for(Xiaodi(j):@sum(Chandi(i):x(i,j))=1); @for(Chandi(i):@sum(Xiaodi(j):c(i,j)*x(i,j)) @sum(Xiaodi(j):x(3,j))=1; @for(ChanXiao(i,j):@bin(x(i,j))); End (4)如果第5个人内定会有一项任务。上述两个目标函数的最优指派以及最优值有无变化? 1.模型的建立:只需要在第二问的模型基础上添加一个对三个人的限制 条件即可,即@sum(Xiaodi(j):x(5,j))=1; 2.详细代码: Model: SETS: Chandi/1..7/:cl; Xiaodi/1..5/:xl; ChanXiao(Chandi,Xiaodi):c,x; ENDSETS DATA: c=2 15 13 1 8 10 4 14 15 7 9 14 16 13 8 7 8 11 9 4 8 4 15 8 6 12 4 6 8 13 5 1 6 8 5 10; ENDDATA [obj]min=Cmax; @for(Chandi(i):@sum(Xiaodi(j):x(i,j))<1); @for(Xiaodi(j):@sum(Chandi(i):x(i,j))=1); @for(Chandi(i):@sum(Xiaodi(j):c(i,j)*x(i,j))