好文档 - 专业文书写作范文服务资料分享网站

最优化实例和matlab源程序

天下 分享 时间: 加入收藏 我要投稿 点赞

tb=find(pb==0);

d(tb)=min(d(tb),d(temp)+a(temp,tb)); tmpb=find(d(tb)==min(d(tb))); temp=tb(tmpb(1)); pb(temp)=1; end

运行输出,第一个点到其它各点的最短路径长度,即:

d = 0 35 45 35 25 10

四、关键路径问题

1.题目要求:

某工程由下表作业组成,计算出其关键路径。 作业 计划完成时间A 5 B 10 C 11 D 4 E 4 F 15 G 21 H 35 I 25 J 15 K 20 2.解题方法:用lingo求解 3.LINGO源程序

紧前工作/ / / B A CD BE BE BE F,G,I FG sets:

event/1..8/: et, lt; active(event, event)/

! A B C D E 0 F G H I 0 J K;

1,2 1,3 1,4 3,4 2,5 3,5 4,6 5,6 5,8 5,7 6,7 7,8 6,8 /: d, tf, ff; endsets data:

d = 5 10 11 4 4 0 15 21 35 25 0 15 20; enddata

n=@size(event); et(1)=0;

@for(event(k) | k #gt# 1:

et(k)=@max(active(i,k): et(i)+d(i,k)); );

lt(n)=et(n);

@for(event(k) | k #lt# n:

lt(k)=@min(active(k,j): et(j)-d(k,j)); );

@for(active(i,j):

tf(i,j)=lt(j)-et(i)-d(i,j); ff(i,j)=et(j)-et(i)-d(i,j);

);

即项目的总工期为51天,作业在(1,3),(3,5),(5,6)和(6,8)位于关键路径上。

五、存储问题

1.题目要求:

某电器公司的生产流水线需要某种零件,该零件需要靠订货得到.为此,该公司考虑到了如下费用结构:

(1) 批量订货的订货费12000 元/次; (2) 每个零件的单位成本为 10 元/件;

(3) 每个零件的存贮费用为 0.3元/(件 · 月); (4) 每个零件的缺货损失为 1.1 元/(件 · 月)。

公司应如何安排这些零件的订货时间与订货规模,使得全部费用最少? 设该零件的每月需求量为800件.

(1)试求今年该公司对零件的最佳订货存贮策略及费用;

(2)若明年对该零件的需求将提高一倍,则需零件的订货批量应比今年增加多少?订货次数以为多少?

解:取一年为单位时间,由假设,订货费 CD = 12000元/次,存贮费 Cp= 3.6 元/(件 · 年),需求率 D = 96000件/年,代入相关的公式得到:

Q*?*2CDD2?1200?96000??25298CP3.6

Q25298??0.2635D96000 *TC?2CDCPD?2?3.6?12000?96000?91073T*2.LINGO源程序 (1)MODEL:

C_D = 12000; D = 96000; C_P = 3.6;

Q = (2*C_D*D/C_P)^0.5; T = Q/D; n = 1/T;

TC = 0.5*C_P*Q+C_D*D/Q; END

n=全年的订货次数为(2) sets:

times/1..2/: n, Q, TC; endsets data:

n = 3, 4;

1?3.7947T次

C_D = 12000; D = 96000; C_P = 3.6; enddata @for(times: n = D/Q;

TC=0.5*C_P*Q+C_D*D/Q; ); END

结果输出:全年组织 4 次订货更好一些,每季度订货一次,每次订货 24000件。 程序: (3)

MODEL: sets:

order/1..99/: TC, EOQ; endsets

@for(order(i): EOQ(i)=D/i;

TC(i)=0.5*C_P*EOQ(i)+C_D*D/EOQ(i); );

TC_min=@min(order: TC);

Q=@sum(order(i): EOQ(i)*(TC_min #eq# TC(i))); N=D/Q; data:

C_D = 12000; D = 96000; C_P = 3.6; enddata END

结果显示:一年组织 4 次订货(每季度 1 次),每次的订货量为 24 000件,最优费用为

91200 元

六、矩阵对策给定下列矩阵,求最优决策

1、题目:见书中P337例7

2、解题方法与思路:转化为线性规划问题,再用lingo求解 3、具体步骤:源程序及运行结果 (1)求X(lingo源程序) min=x5;

9*x1+2*x2+5*x3+10*x4-x5>=0; 8*x1+4*x2+8*x3+7*x4-x5>=0; 11*x1+6*x2+7*x3+9*x4-x5>=0; 8*x1+3*x2+8*x3+6*x4- x5>=0; x1+x2+x3+x4=0; end

(2)求Y(lingo源程序) max=x5;

9*x1+8*x2+11*x3+8*x4-x5>=0; 2*x1+4*x2+6*x3+3*x4-x5>=0;

5*x1+8*x2+7*x3+8*x4-x5>=0; 10*x1+7*x2+9*x3+6*x4- x5>=0; x1+x2+x3+x4=0; end

运行输出:对策值V=8

七、排队论

1、解题步骤:

第1步 调查并收集和处理数据,记录客户到达时刻、等待时间和服务时间.假

定客户到达的间隔时间服从指数分布(均值为10分钟);每个客户的服务时间服从均匀分布U[10,15]。

第2步 构造模拟模型.输人因素:客户的到达间隔时间和服务时间;排队规则:先到先服务;一个服务机构。

第3步 模拟实验。设置模拟时钟及总的运行时间T,如8小时等。推进原则按下次事件推进或均匀间隔推进。

2、用MATLAB编制程序如下: for n=1:10

arrive=zeros(1,n); for i=2:n

arrive(i)=arrive(i-1)+exprnd(0.1); end

wait=zeros(1,n); for i=1:n if (i==1)

wait(i)=0; else

servetime=unifrnd(10,15);

if (arrive(i-1)+servetime+wait(i-1)>arrive(i))

wait(i)=arrive(i-1)+servetime+wait(i-1)-arrive(i); else

wait(i)=0; end end end

meantime=mean(wait) end

运行结果

meantime = 0

meantime = 7.2542 meantime = 12.1298 meantime = 20.0985 meantime = 26.8833

meantime =

32.5758 meantime =

37.2478 meantime =

43.6372 meantime =

51.4519 meantime =

59.4032

>>计算的一组结果如下表:

客户数目 平均等待时间 客户数目 平均等待时间 0 0 53 5 28.1320 700 6 38.2833 1 5.57838 7 40.8942 2 14.1329 8 50.5735 3 18.9946 9 59.34 28.0

最优化实例和matlab源程序

tb=find(pb==0);d(tb)=min(d(tb),d(temp)+a(temp,tb));tmpb=find(d(tb)==min(d(tb)));temp=tb(tmpb(1));pb(temp)=1;end运行输出,第一个点到其它各点的最短路径长度,即:d=035
推荐度:
点击下载文档文档为doc格式
5zghs8xvb91qw0b8cvba7dd7d92wae01at6
领取福利

微信扫码领取福利

微信扫码分享