北工大工程数学数学建模实验04.docx

上传人:b****7 文档编号:26653494 上传时间:2023-06-21 格式:DOCX 页数:24 大小:746.49KB
下载 相关 举报
北工大工程数学数学建模实验04.docx_第1页
第1页 / 共24页
北工大工程数学数学建模实验04.docx_第2页
第2页 / 共24页
北工大工程数学数学建模实验04.docx_第3页
第3页 / 共24页
北工大工程数学数学建模实验04.docx_第4页
第4页 / 共24页
北工大工程数学数学建模实验04.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

北工大工程数学数学建模实验04.docx

《北工大工程数学数学建模实验04.docx》由会员分享,可在线阅读,更多相关《北工大工程数学数学建模实验04.docx(24页珍藏版)》请在冰豆网上搜索。

北工大工程数学数学建模实验04.docx

北工大工程数学数学建模实验04

Lingo程序:

sets:

nodes/A2,A3,B1,B3,B4,C1,C2,C4,C5,D1,D2,D3,D5,D6

E1,E2,E3,E4,E6,F/;

arcs(nodes,nodes)/

A2,B3A2,B1

B3,C4B3,C1B1,C2B1,C1

C4,D5C4,D1C2,D3C2,D1C1,D2C1,D1

D5,E6D5,E1D3,E4D3,E1D2,E3D2,E1D1,E2D1,E1

E6,FE4,FE3,FE2,FE1,F

/:

c,x;

endsets

data:

c=17.3-20.2

15.7-30.218.4-0.2

13.8-50.217.3-20.218.4-0.2

12.2-70.215.7-30.217.3-20.218.4-0.2

530506080;

enddata

n=@size(nodes);

max=@sum(arcs:

c*x);

@sum(arcs(i,j)|i#eq#1:

x(i,j))=1;

@for(nodes(i)|i#ne#1#and#i#ne#n:

@sum(arcs(i,j):

x(i,j))-@sum(arcs(j,i):

x(j,i))=0

);

@sum(arcs(j,i)|i#eq#n:

x(j,i))=1;

@for(arcs:

@bin(x));

程序运行结果:

其结果为A2B3C1D2E3F

即第1年继续使用,第2年更新设备,第3年继续使用,第4年继续使用,第5年折旧。

Lingo程序为:

sets:

From/A1,A2/:

Capacity;

To/B1,B2,B3/:

Demand;

Routes(From,To):

c,x;

endsets

!

Theobjective;

[OBJ]min=@sum(Routes:

c*x);

!

Thesupplyconstraints;

@for(From(i):

[SUP]

@sum(To(j):

x(i,j))=Capacity(i));

!

Thedemandconstraints;

@for(To(j):

[DEM]

@sum(From(i):

x(i,j))>=Demand(j));

!

Herearetheparameters;

data:

Capacity=400,450;

Demand=290,250,270;

c=15,18,22,

21,25,16;

enddata

运行结果:

A煤矿为甲城市供煤150万吨,为乙城市供煤250万吨,B煤矿为甲城市供煤140万吨,为丙城市供煤310万吨。

运费最低位14650万元。

(1)Lingo程序为:

sets:

season/1..4/:

a,b;

Routes(season,season):

c,x;

endsets

[obj]min=@sum(Routes:

c*x);

@for(season(i):

[SUP]

@sum(season(j):

x(i,j))<=a(i));

@for(season(j):

[DEM]

@sum(season(i):

x(i,j))=b(j));

data:

a=13,15,15,13;

b=10,14,20,8;

c=5,6,7,8,

8,5,6,7,

11,8,6,7,

14,11,8,6;

enddata

运行结果为:

总成本为293万元,第一季度生产13万盒,当季的10万盒,以及下个季度的3;第二季度生产15万盒,当季的11万盒以及下个季度的4万盒;第三季度生产15万盒;第四季度生产9万盒,当季的8万盒以及上个季度的1万盒。

(2)lingo程序为:

sets:

season/1..4/:

a,b;

Routes(season,season)|&1#le#&2:

c,x,y;

endsets

[obj]min=@sum(Routes:

c*x+1.2*c*y);

@for(season(i):

[SUP]

@sum(season(j)|i#le#j:

x(i,j))<=a(i));

@for(season(j):

[DEM]

@sum(season(i)|i#le#j:

x(i,j)+y(i,j))=b(j));

@for(season(i):

@sum(season(j)|i#le#j:

y(i,j))<=2);

data:

a=13,15,15,13;

b=10,14,20,8;

c=5,6,7,8,

5,6,7,

6,7,

6;

enddata

运行结果为:

总成本为292万元,1季度生产13万盒,当季度10万盒,2季度3万盒;2季度正常生产15万盒,加班生产1万盒,当季度11万盒,3季度5万盒;3季度生产15万盒,4季度生产8万盒。

(1)lingo程序为:

sets:

Flight/1..4/;

Assign(Flight,Flight):

c,x;

endsets

data:

c=5050-9920

70402030

903050-99

70206070;

enddata

max=@sum(Assign:

c*x);

@for(Flight(i):

@sum(Flight(j):

x(i,j))=1;

@sum(Flight(j):

x(j,i))=1;

);

运行结果为:

工人甲做B工作,工人乙做A工作,工人丙做C工作,工人丁做D工作,总效益为240元。

(2)lingo程序为:

sets:

person/JIA,YI,BING,DING,WU/;

work/A,B,C,D/;

assign(person,work):

t,x;

endsets

data:

t=5050-9920

70402030

903050-99

70206070

60453080;

enddata

[OBJ]max=@sum(assign:

t*x);

@for(person(i):

[P]

@sum(work(j):

x(i,j))<=1);

@for(work(j):

[S]

@sum(person(i):

x(i,j))=1);

运行结果为:

费用为280元,甲做B工作,丙做A工作,丁做C工作,戊做D工作。

总费用高于第1问的240元,因此不用换人。

(3)lingo程序为:

sets:

person/JIA,YI,BING,DING/;

work/A,B,C,D,E/;

assign(person,work):

t,x;

endsets

data:

t=5050-992020

7040203010

903050-9920

7020607080;

enddata

[OBJ]max=@sum(assign:

t*x);

@for(person(i):

[P]

@sum(work(j):

x(i,j))=1);

@for(work(j):

[S]

@sum(person(i):

x(i,j))<=1);

运行结果为:

E工作比C工作优先

(1)

 

 

构造初始Hamildon圈C1:

A→B→C→D→E→F→A其初始长度

w(C1)=588+129+483+1288+440+825=3753

修改圈C1,w(AC)+w(BD)=542+448<588+483=w(AB)+w(CD)

所以修改圈圈C1,得到圈C2:

A→C→B→D→E→F→A其长度为

w(C2)=542+129+448+1288+440+825=3672(下图红线所示)

对于圈C2,使用上述方法已不能再改进,停止计算,事实上,C2就是交通网络中的最优Hamilton圈。

即以A→C→B→D→E→F→A的顺序访问这些城市使得总旅行的距离最短,且最短距离为3672

(2)lingo程序为:

sets:

city/ABCDEF/:

u;

link(city,city):

w,x;

endsets

data:

!

to:

ABCDEF;

w=05885423341096825!

fromA;

588012944816751410!

fromB;

542129048316381346!

fromC;

334448483012881100!

fromD;

10961675163812880440!

fromE;

8251410134611004400;!

fromF;

enddata

n=@size(city);

min=@sum(link:

w*x);

@for(city(k):

@sum(city(i)|i#ne#k:

x(i,k))=1;

@sum(city(j)|j#ne#k:

x(k,j))=1;

);

@for(link(i,j)|i#gt#1#and#j#gt#1#and#i#ne#j:

u(i)-u(j)+n*x(i,j)<=n-1;

);

@for(link:

@bin(x));

运行结果为:

行程最短为3672公里,路线为A到C,C到B,B到D,D到E,E到F,F到A。

Lingo程序为:

sets:

city/ABCDEF/:

u;

link(city,city):

w,x;

endsets

data:

!

to:

ABCDEF;

w=05885423341096825!

fromA;

588012944816751410!

fromB;

542129048316381346!

fromC;

334448483012881100!

fromD;

10961675163812880440!

fromE;

8251410134611004400;!

fromF;

enddata

min=@sum(link:

w*x);

@sum(city(j)|j#gt#1:

x(1,j))>=1;

@for(city(j)|j#gt#1:

@sum(city(i)|i#ne#j:

x(i,j))=1;

);

n=@size(city);

@for(link(i,j)|i#ne#j:

u(i)-u(j)+n*x(i,j)<=n-1);

@for(link:

@bin(x));

运行结果为:

路径共2176公里,路径为A到D,A到F,B到C,D到B,F到E

虚设一个源s,它与所有源连接且容量为∞,同样,虚设一个汇t,它与所有汇连接,且容量为∞,这样该题就转化成为单源单汇问题。

依据约束条件写出相应的lingo程序为:

sets:

nodes/s,1,2,3,4,5,6,7,8,t/;

arcs(nodes,nodes)/

s,1s,2s,31,42,42,52,63,54,54,64,75,65,86,76,87,t8,t/:

c,f;

endsets

data:

c=9999992010205015201010303050209999;

enddata

max=flow;

@sum(arcs(i,j)|i#eq#1:

f(i,j))=flow;

@for(nodes(i)|i#ne#1#and#i#ne#@size(nodes):

@sum(arcs(i,j):

f(i,j))-@sum(arcs(j,i):

f(j,i))=0);

@for(arcs:

@bnd(0,f,c));

运行结果为:

(1)要满足这个网络的最大流,炼油厂1每天的产量是20百万桶,炼油厂2每天的产量是75百万桶,炼油厂3的产量是15百万桶。

(2)要满足这个网络的最大流,终端7每天的需求量是60百万桶,终端8每天的需求量是50百万桶

(3)要满足这个网络的最大流,泵站4每天的容量是25百万桶,泵站5每天的容量是40百万桶,泵站6每天的容量是70百万桶。

(4)由于题目中的限制条件可以得到新的lingo程序:

sets:

nodes/s,1,2,3,4,5,6,7,8,t/;

arcs(nodes,nodes)/

s,1s,2s,31,42,42,52,63,54,54,64,75,65,86,76,87,t8,t/:

c,f;

endsets

data:

c=9999992010205015201010303050209999;

enddata

max=flow;

@sum(arcs(i,j)|i#eq#1:

f(i,j))=flow;

@for(nodes(i)|i#ne#1#and#i#ne#@size(nodes):

@sum(arcs(i,j):

f(i,j))-@sum(arcs(j,i):

f(j,i))=0);

@for(nodes(i)|i#gt#6#and#i#ne#@size(nodes):

@sum(arcs(i,j):

f(i,j))<=50);

@for(arcs:

@bnd(0,f,c));

运行结果为:

由运行结果可知,泵站4的最大容量为30百万桶,泵站5的最大容量为30百万桶,泵站6的最大容量为50百万桶

Lingo程序为:

sets:

point/1..12/:

p,x;

way(point,point):

d,c;

endsets

data:

d=

01537452460183348405867

15022403852334842556161

37220181630432820583939

45401803412614624624334

24381634036271224494343

60523012360574212503122

18334361275701545224061

33482846124215030372546

48422024241245300381919

40555862495022373801940

58613943433140251919021

67613934432261461940210;

p=15101218524111613221920;

enddata

min=@sum(way(i,j):

d(i,j)*p(i)*c(i,j));

@for(point(i):

@sum(point(j):

c(i,j))=1);

@sum(point:

x)=3;

@for(way(i,j):

c(i,j)<=x(j));

@for(way:

@bin(c));

@for(point:

@bin(x));

end

运行结果为:

在城市1,6,11设所得税缴纳点为好,平均最小距离为2438.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1