Lingo超经典案例大全解读Word下载.docx

上传人:b****6 文档编号:16551645 上传时间:2022-11-24 格式:DOCX 页数:21 大小:303.37KB
下载 相关 举报
Lingo超经典案例大全解读Word下载.docx_第1页
第1页 / 共21页
Lingo超经典案例大全解读Word下载.docx_第2页
第2页 / 共21页
Lingo超经典案例大全解读Word下载.docx_第3页
第3页 / 共21页
Lingo超经典案例大全解读Word下载.docx_第4页
第4页 / 共21页
Lingo超经典案例大全解读Word下载.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

Lingo超经典案例大全解读Word下载.docx

《Lingo超经典案例大全解读Word下载.docx》由会员分享,可在线阅读,更多相关《Lingo超经典案例大全解读Word下载.docx(21页珍藏版)》请在冰豆网上搜索。

Lingo超经典案例大全解读Word下载.docx

col/1..5/:

c1,c2,x;

link(row,col):

a;

endsets

data:

c1=1,1,3,4,2;

c2=-8,-2,-3,-1,-2;

a=11111

12216

21600

00115;

b=400,800,200,200;

enddata 

max=@sum(col:

c1*x^2+c2*x);

@for(row(i):

@sum(col(j):

a(i,j)*x(j))<

b(i));

@for(col:

@gin(x));

@bnd(0,x,99));

End

求得:

x1=50,x2=99,x3=0,x4=99,x5=20.最大值为51568。

这里,我们看不出是否还有其他解,需要将已知的最优解排除掉。

利用1的方法分别可得到其他解:

x1=48,x2=98,x3=1,x4=98,x5=19.最大值为50330。

x1=45,x2=97,x3=2,x4=97,x5=18.最大值为49037。

x1=43,x2=96,x3=3,x4=96,x5=17.最大值为47859。

x1=40,x2=95,x3=4,x4=95,x5=16.最大值为46636。

......

发现x1,x2,x4,x5均单调减少,x3单调增加。

最大值越来越小。

可以简单判断第一组为最优的。

当然,能够一一检验最好。

二、最优选择问题

某钻井队要从10个可供选择的井位中确定5个钻井探油,使总的钻探费用为最小。

若10个井位的代号为s1,s2,...,s10,相应的钻探费用c1,c2,...,c10为5,8,10,6,9,5,7,6,10,8.并且井位选择上要满足下列限制条件:

(1)或选择s1和s7,或选择钻探s9;

(2)选择了s3或s4就不能选s5,或反过来也一样;

(3)在s5,s6,s7,s8中最多只能选两个.

试建立这个问题的整数规划模型,确定选择的井位。

取0-1变量s_i,若s_i=1,则表示选取第i个井,若s_i=0,则表示不选取第i个井。

建立数学模型如下:

variables/1..10/:

s,cost;

cost=581069576108;

enddata

min=@sum(variables:

cost*s);

(s

(1)+s(7)-2)*(s(9)-1)=0;

s(3)*s(5)+s(4)*s(5)=0;

@sum(variables(i)|i#ge#5#and#i#le#8:

s(i))<

=2;

@sum(variables:

s)=5;

@for(variables:

@bin(s));

求得:

Totalsolveriterations:

26

Variable 

Value 

ReducedCost

S

(1) 

1.000000 

-4.000000

S

(2) 

0.000000

S(3) 

0.000000 

2.000000

S(4) 

-2.000000

S(5) 

S(6) 

-1.000000

S(7) 

S(8) 

S(9) 

S(10) 

Objectivevalue:

31.00000

即选择井S1,S2,S4,S6,S7以达到最小费用31.

三、路径和最短问题:

设平面上有N个点,求一点,使得这个点到所有点距离之和最小。

这里,取N=8。

数据点是1~5的随机数。

Lingo:

position/1..8/:

x,y;

ab/1/:

a,b;

@text('

E:

\matlab7.0\work\data.txt'

)=x,y;

!

读入到matlab的工作空间中;

\matlab7.0\work\data1.txt'

)=a,b;

x

(1)=1+4*@rand(0.12345);

y

(1)=1+4*@rand(0.25);

@for(position(i)|i#ge#2:

x(i)=1+4*@rand(x(i-1)));

随机产生1~5中的8个点;

y(i)=1+4*@rand(y(i-1)));

[obj]min=@sum(position(i):

@sqrt((x(i)-a

(1))^2+(y(i)-b

(1))^2));

目标函数;

@bnd(1,a

(1),5);

@bnd(1,b

(1),5);

matlab:

clear;

clc;

closeall;

load('

data.txt'

);

data1.txt'

holdon;

plot(data1

(1),data1

(2),'

o'

'

MarkerSize'

15,'

MarkerFaceColor'

r'

plot(data(:

1),data(:

2),'

or'

b'

set(gcf,'

Color'

w'

set(gca,'

FontSize'

16)

gridoff;

data1=repmat(data1,8,1);

P=[data1(:

1)'

;

data(:

];

Q=[data1(:

2)'

plot(P,Q,'

g'

LineWidth'

2);

xlabel('

x'

ylabel('

y'

title('

Solvingtheproblemoftheminimundistanceoftnesumofallthebluepointstowardsthebeingknownredpoint.'

gtext(['

Theminimundistanceis'

num2str(10.2685),'

.'

],'

16,'

三、运输+选址问题:

某公司有6个建筑工地,位置坐标为(ai,bi)(单位:

公里),水泥日用量di(单位:

吨)

6

1.25 

8.75 

0.5 

5.75 

7.25

0.75 

4.75 

6.5 

7.75

11

(1)现有2料场,位于A 

(5, 

1), 

(2, 

7),记(xj,yj),j=1,2, 

日储量ej各有20吨。

假设料场和工地之间有直线道路,制定每天的供应计划,即从A,B两料场分别向各工地运送多少吨水泥,使总的吨公里数最小。

取决策变量c_ij表示i工地从j料场运来的水泥量。

模型(线性模型)为:

demand/1..6/:

a,b,d;

supply/1..2/:

x,y,e;

link(demand,supply):

c;

a=1.258.750.55.7537.25;

b=1.250.754.7556.57.75;

d=3547611;

x=52;

y=17;

e=2020;

[obj]min=@sum(link(i,j):

c(i,j)*@sqrt((a(i)-x(j))^2+(b(i)-y(j))^2));

@for(demand(i):

@sum(supply(j):

c(i,j))=d(i));

@for(supply(j):

@sum(demand(i):

c(i,j))<

=e(j));

C(1,1) 

3.000000 

C(1,2) 

C(2,1) 

5.000000 

C(2,2) 

C(3,1) 

C(3,2) 

4.000000 

C(4,1) 

7.000000 

C(4,2) 

C(5,1) 

C(5,2) 

6.000000 

C(6,1) 

C(6,2) 

10.00000 

136.2275

(2) 

改建两个新料场,需要确定新料场位置(xj,yj)和运量cij 

,在其它条件不变下使总吨公里数最小。

模型一样,未知量变为料场位置(xj,yj)和运量cij,变为非线性优化问题。

init:

endinit

@for(supply:

@free(x);

@free(y));

11.00000 

(x1,y1)=(3.254884,5.652331) 

(x2,y2)=(7.250000,7.750000)

85.26604

四、路径最短问题:

如上图,求从S到T的最短路径。

设d(x,y):

城市x与城市y之间的直线距离;

L(x):

城市S到城市x的最优行驶路线的路长。

模型为:

min{L(x)+d(x,y)}

L(S)=0

city/S,A1,A2,A3,B1,B2,C1,C2,T/:

L;

road(city,city)/S,A1S,A2S,A3A1,B1A1,B2A2,B1A2,B2A3,B1A3,B2B1,C1B1,C2B2,C1B2,C2C1,TC2,T/:

d;

d=633

658674

6789

56;

L=0,6,3,3,,,,,;

@for(city(j)|j#gt#@index(city,S):

L(j)=@min(road(i,j):

L(i)+d(i,j)));

求得最短路径为20.

五、指派问题(0-1规划问题):

四个人完成4项任务所用的时间如下,问如何指派任务使得完成所有任务的时间最短?

任务 

t1 

t2 

t3 

t4

人员

m1 

15 

13 

4

m2 

10 

14 

m3 

16 

13

m4 

11 

9

c_ij:

表示第i个人完成第j项任务所用的时间;

决策变量x_ij:

若第i个人选择第j项任务则x_ij=1;

否则,x_ij=0;

task/1..4/:

t;

man/1..4/:

m;

link(man,task):

c,x;

c=215134

1041415

9141613

78119;

[obj]min=@sum(link:

c*x);

@for(task(j):

@sum(man(i):

x(i,j))=1);

@for(man(i):

@sum(task(j):

@for(link:

@bin(x));

最优指派为:

m1--t4,m2--t2,m3--t1,m4--t3

最优值为:

28。

六、装配线平衡模型(0-1规划问题)

11件任务(A—K)分配到4个工作站(1—4),任务的优先次序如下图,每件任务所花费的时间如下表。

目标是为每个工作站分配加工任务,尽可能使每个工作站执行相同的任务量,其最终装配线周期最短。

任务A 

K

时间 

45 

5015121212 

12 

T(i):

为完成第i项任务需要的时间。

SETS:

TASK/ 

K/:

T;

任务集合,有一个完成时间属性 

PRED( 

TASK, 

TASK)/ 

A,B 

B,C 

C,F 

C,G 

F,J 

G,J

J,K 

D,E 

E,H 

E,I 

H,J 

I,J 

/;

任务之间的优先关系集合(A 

必须完成才能开始 

B,等等);

STATION/1..4/;

工作站集合;

TXS( 

STATION):

X;

是派生集合 

TXS 

的一个属性。

如果 

X(I,K)=1,则表

示第 

个任务指派给第 

个工作站完成;

ENDSETS

DATA:

50 

9;

的完成时间;

ENDDATA

@FOR( 

TASK( 

I):

@SUM( 

STATION( 

K):

X( 

I, 

K)) 

1);

每一个作业必须指派到一个工

作站;

J):

X(I, 

K))-@SUM( 

X(J, 

K) 

)>

=0) 

对于每一个存在优先关系的作业对(I,J)来说,I先J后安排;

T( 

I) 

<

CYCTIME);

对于每一个

工作站来说,其花费时间必须不大于装配线周期;

MIN 

CYCTIME;

目标函数是最小化转配线周期;

TXS:

@BIN( 

X));

指定 

X(I,J) 

为 

0/1 

变量;

END

解得最短周期为50.

分配情况为:

A-1,B-3,C-4,D-2,E-3,F-4,G-4,H-3,I-3,J-4,K-4.

七、选址问题

某海岛上有12个主要的居民点,每个居民点的位置(用平面坐标x,y表示,距离单位:

km)和居住的人数(r)如下表所示。

现在准备在海岛上建一个服务中心为居民提供各种服务,那么服务中心应该建在何处?

x08.200.505.700.772.874.432.580.729.763.195.55

y00.504.905.006.498.763.269.329.963.167.207.88

r6001000800140012007006008001000120010001100

设建在(a,b)处最合理。

建立模型:

MODEL:

VAR/1..12/:

X,Y,R;

X=08.200.505.700.772.874.432.580.729.763.195.55;

Y=00.504.905.006.498.763.269.329.963.167.207.88;

R=6001000800140012007006008001000120010001100;

MIN=@SUM(VAR:

@SQRT((X-A)^2+(Y-B)^

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

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

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

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