lingo练习

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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))

相关文档
最新文档