运筹学案例8Word文档格式.docx
《运筹学案例8Word文档格式.docx》由会员分享,可在线阅读,更多相关《运筹学案例8Word文档格式.docx(43页珍藏版)》请在冰点文库上搜索。
max
题目b
目标函数min
题目c
模型求解
由上面分析可知此案例属于0-1规划问题,所以我们利用LINGO来求解各个问题。
以下是每个问题对应的LINGO程序以及结果。
LINGO程序部分:
!
案例8分配艺术品(ItroductiontoManagementScience,F.S.Hillier,Case9-2AssigningArt);
a题;
所有的价格以万元为单位;
model:
sets:
artist/1..13/;
piece/1..4/;
link(artist,piece):
price,x;
endsets
目标函数;
max=@sum(artist(I):
@sum(piece(J):
x(I,J)));
约束条件;
x(3,2)+x(7,1)+x(12,1)+x(12,2)=1;
collage;
@sign(@sum(piece(I)|I#le#3:
x(1,I))-1)=@sign(@sum(piece(I)|I#le#2:
x(2,I))-1);
!
wiremeshsculpture,computerpainting;
@sum(piece(I)|I#le#2:
x(6,I))+x(8,1)>
=1;
photo-realistic;
x(11,I))+x(8,2)>
cubist;
x(8,3)>
expressionist;
x(4,I))+@sum(piece(I)|I#le#4:
x(13,I))>
water-color;
x(5,I))+@sum(piece(I)|I#le#2:
x(9,I))+x(10,3)>
油画oil-paint;
@sum(artist(I)|I#ne#1#and#I#ne#2#and#I#ne#3#and#I#ne#7#and#I#ne#10#and#I#ne#12:
@sum(piece(J)|J#le#2:
x(I,J)))+x(8,3)+x(10,3)+x(13,3)+x(13,4)<
=
2*(@sum(artist(I)|I#eq#1#or#I#eq#2#or#I#eq#3#or#I#eq#7#or#I#eq#12:
x(I,J)))+x(10,1)+x(10,2));
绘画<
=其他x2(painting<
=2xother-form);
@sum(artist(I)|I#ne#1#and#I#ne#3#and#I#ne#7#and#I#ne#11#and#I#ne#12:
x(I,J)))+x(11,1)<
=20;
=20(这个条件在原书中没有);
@sum(piece(I)|I#le#4:
x(13,I))=4;
allAsh;
x(4,I))=2;
凯蒂作品全展出allCandy;
x(6,I))=@sum(piece(I)|I#le#4:
x(8,I));
戴维,里克作品数相等;
x(6,I))>
而且都大于1;
x(12,I))<
Ziggy的作品不多于1件;
@sum(artist(I)|I#ne#2#and#I#ne#4#and#I#ne#7#and#I#ne#11:
x(I,J)))<
2*(@sum(artist(I)|I#eq#2#or#I#eq#4#or#I#eq#7#or#I#eq#11:
x(I,J))));
男<
=女x2;
x(3,I))>
老年地球,浪费资源;
x(10,I))>
Bill至少有一件;
x(2,1)+x(2,2)+x(9,1)+x(9,2)>
混沌....至少一件;
x(1,I))+x(3,1)+x(7,2)+x(7,3)<
=4;
雕像<
@sum(artist(I):
x(I,J)))-(@sum(piece(I)|I#le#4:
x(1,I))+x(3,1)+x(7,2)+x(7,3))<
20painting,collage,drawing;
x(7,2)>
=x(12,2);
自恋,沉思;
price(I,J)*x(I,J)))<
=400;
总价格约束;
total_price_used=@sum(artist(I):
price(I,J)*x(I,J)));
得到的总价格;
total_display=@sum(artist(I):
总展出数;
限制变量取值;
x(1,4)+x(3,3)+x(3,4)+x(4,3)+x(4,4)+x(5,3)+x(5,4)+x(6,3)+x(6,4)+x(7,4)+x(8,4)+x(9,3)+x(9,4)+x(10,4)+x(11,3)+x(11,4)+x(12,3)+x(12,4)=0;
空缺部分;
@for(artist(I):
@for(piece(J):
@bin(x(I,J))));
限制变量取值0-1;
数据部分;
data:
price=302512.50
40504055
7057.500
2022.500
151500
857500
4017.5450
5050500
656500
2535450
404000
303000
5555;
enddata
end
b题;
min=@sum(artist(I):
最小花费;
x(I,J)))>
增加约束,展品数>
total_price=@sum(artist(I):
总价格;
总展品数;
c题;
x(1,I)))=@sign(@sum(piece(I)|I#le#2:
x(2,I)));
增加的约束条件;
x(I,J)))=20;
x(2,I))=4;
allLoskey;
patron_pay=@sum(artist(I):
price(I,J)*x(I,J)))-400;
程序运行结果:
Localoptimalsolutionfound.
Objectivevalue:
15.00000
Objectivebound:
Infeasibilities:
0.000000
Extendedsolversteps:
2
Totalsolveriterations:
176
VariableValueReducedCost
TOTAL_PRICE_USED395.00000.000000
TOTAL_DISPLAY15.000000.000000
PRICE(1,1)30.000000.000000
PRICE(1,2)25.000000.000000
PRICE(1,3)12.500000.000000
PRICE(1,4)0.0000000.000000
PRICE(2,1)40.000000.000000
PRICE(2,2)50.000000.000000
PRICE(2,3)40.000000.000000
PRICE(2,4)55.000000.000000
PRICE(3,1)70.000000.000000
PRICE(3,2)57.500000.000000
PRICE(3,3)0.0000000.000000
PRICE(3,4)0.0000000.000000
PRICE(4,1)20.000000.000000
PRICE(4,2)22.500000.000000
PRICE(4,3)0.0000000