综合实验报告

综合实验报告

实验名称    企业管理分配最优化方案     

组    长   王礼勇   机械1101  41140004 

组    员   肖兵   材料1107  41140203 

20##年 12月23

前言:

随着经济的迅猛发展,经济竞争也越来越激烈,如何在日益激烈的竞争中生存下来成为企业必须面临的难题,因此企业需要从各方面提高自身的生存能力。那么自身就必须要考虑生产效益,以及成本等一系列问题。在处理一些事情的时候就需要自己的方案,但是并不是每个方案都是最经济的,最好的,所以就出现了方案的优化。优化方案就是更为全面的考虑影响经济效益的因素,并采取一定的措施去消除因素的影响,或者跟换方案。在多方面的讨论后,最终采取最优方案,这样这个企业才会获得有效的收益,达到最好的经济利益,企业才能够生存下去。

一、            【问题】

某个企业准备在6个工地附近建设2个混凝土搅拌厂,但是由于工地对混凝土的日需求量不同,而且混凝土搅拌厂的日生产量也是不一样。企业就必须合理安置混凝土搅拌厂的位置。由于最近的油价飙升,企业必须需要考虑油价的影响,所以路程成为首要考虑的因素。因此企业想要获得最大收益,就必须选择最短的路程。

假设:研究的内容在理想的条件下,不考虑其他因素对本次实验的影响。搅拌厂到各个工地的路线均为直线。

混凝土搅拌厂的日生产量为30吨。 6个工地,每个工地的位置M,距离单位:km,混凝土的日需求量(单位:吨)由下表给出:

其位置的分布情况如下:

二、            【算法和求解方法】

我们根据实际情况产生的约束条件,建立数学优化模型,追求效率最高,成本最小。同时采用穷举搜索算法,利用MATLAB和C++编程,分别对模型进行求解,并对所得结果进行分析比较,获得最佳的路线分配方案。

首先,建立总路程的分配的最小目标函数和各项约束条件的数学表达式。选取相应的约束条件对目标函数进行约束,从而给出优化模型I。由于问题1的求解规模很小,所以采用穷举搜索算法。但是如果想获得最后的结果,我们必须对每个假设点进行调整,通过matlab获得的数据(获得是对于两个搅拌厂的位置和总路程),对于总路程的变化,可以根据matlab进行拟合,从而可以得到一个函数,我们再根据这个函数,获得最小值。再回到前面获得这个最小值的步骤,从而找到这两个混凝土搅拌厂的具体位置。得到最后的方案。

三、            【模型】

要求:选择2个合适的地点作为混凝土搅拌厂,使得总的路程最小。

假设混凝土搅拌厂的位置分别为P(,),Q(,),又假设从P运输吨混凝土到,从Q运输

吨混凝土到(j=1,…,6),则到时非线性优化问题如下:

(设最短的路程为S)

其中必须满足的约束条件为:

四、            【程序】

1.首先建立一个目标函数名字为opt_lingo_obj_1的M 文件

function f=objfun(x)

f=x(1)*((x(7)-3.23)^2+(x(8)-4.34)^2)^0.5+x(2)*((x(7)-5.43)^2+(x(8)-6.34)^2)^0.5+x(3)*((x(7)-7.54)^2+(x(8)-2.45)^2)^0.5+x(4)*((x(7)-3.45)^2+(x(8)-8.56)^2)^0.5+x(5)*((x(7)-12.23)^2+(x(8)-8.45)^2)^0.5+x(6)*((x(7)-6.32)^2+(x(8)-2.45)^2)^0.5+x(9)*((x(15)-3.23)^2+(x(16)-4.34)^2)^0.5+x(10)*((x(15)-5.43)^2+(x(16)-6.34)^2)^0.5+x(11)*((x(15)-7.54)^2+(x(16)-2.45)^2)^0.5+x(12)*((x(15)-3.45)^2+(x(16)-8.56)^2)^0.5+x(13)*((x(15)-12.23)^2+(x(16)-8.45)^2)^0.5+x(14)*((x(15)-6.32)^2+(x(16)-2.45)^2)^0.5;

2.再编写一个名字为opt_lingo_fmincon_1的M 文件

A=[1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0];

b=[30;30];

Aeq=[1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0;0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0;0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0;0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0;0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0;0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0];

beq=[4;3;2;4;3;3];

lb=zeros(16,1);

options=optimset('LargeScale','off');

t=0;

x0=[t;t;t;t;t;t;t;t;t;t;t;t;t;t;t;t];

[x,fval,exitflag,output]=fmincon(@opt_lingo_obj_1,x0,A,b,Aeq,beq,lb,[],[],options)

3.t=0的时候运行文件,可以得到:

    x =

                         2

                       1.5

                         1

                         2

                       1.5

                       1.5

                         0(P的x坐标)

                         0(P的y坐标)

                         2

                       1.5

         0.999999999999999

                         2

                       1.5

                       1.5

                         0(Q的x坐标)

                         0(Q的y坐标)

fval =

          164.385601114214   (总的路程S)               

即是:

其表示的意义的是:总路程为164.4km  在t=0,默认的条件下两个混凝土搅拌厂的地理位置 P(0,0)  Q(0,0)

4.因为主要考虑的是路程S的大小问题,所以接下来就是针对S的研究了:

5.(1)编辑条形图程序

y=[164.385601114214,65.860742726895,65.8607422767896,65.8607425858225,47.591258441656,65.8607423868889,52.9756636530792,47.5911447811843,47.591146587502,47.5911960148494,47.5911453969072,47.5911446208608,47.5911439885135,47.5911440727399,48.3731333835178,50.2851399584291,65.8607423756348,65.8607428308607,47.5911451847487,65.8607423705268,65.86

bar(y,'group'),grid on

可以根据数据得到图表

5.(2)编辑线性图程序

x=0:1:23

y=[164.385601114214,65.860742726895,65.8607422767896,65.8607425858225,47.591258441656,65.8607423868889,52.9756636530792,47.5911447811843,47.591146587502,47.5911960148494,47.5911453969072,47.5911446208608,47.5911439885135,47.5911440727399,48.3731333835178,50.2851399584291,65.8607423756348,65.8607428308607,47.5911451847487,65.8607423705268,65.8607423460754,47.5911441421614,65.8607424178607,65.8607425266268]

area(x,y),grid on

5.(3)对数据拟合程序如下

x=0:1:23;

y=[164.385601114214,65.860742726895,65.8607422767896,65.8607425858225,47.591258441656,65.8607423868889,52.9756636530792,47.5911447811843,47.591146587502,47.5911960148494,47.5911453969072,47.5911446208608,47.5911439885135,47.5911440727399,48.3731333835178,50.2851399584291,65.8607423756348,65.8607428308607,47.5911451847487,65.8607423705268,65.8607423460754,47.5911441421614,65.8607424178607,65.8607425266268]

p9=polyfit(x,y,9);

disp('九阶拟合函数’),f9=poly2str(p9,'x');

x1=0:0.1:23;

y9=polyval(p9,x1);

plot(x,y,'rp',x1,y9),grid on

title('九阶拟合函数’)

6.从曲线中可以观察到最小的路程S,在t=6~15之间,通过观察比较可以得到,S的最终值为47.5911439885135km。

t=12时,结果是:

x =

                         4

                         3

                         0

                         4

                         3

                         0

          5.42968200685004

          6.34013749891119

                         0

                         0

                         2

                         0

                         0

                         3

           6.3200005062519

          6.3200005062519

fval =

          47.5911439885135

7.最终的分配方案为:

8.最后确定两个混凝土搅拌厂的地理位置为:

P(5.42968200685004, 6.34013749891119),

Q(6.3200005062519,  6.3200005062519);

即是P(5.43,6.34),Q(6.32,6.32)  S=47.59km

9.把P,Q两点放进坐标系中,程序:

x=[3.23 5.34 7.54 3.45 12.23 6.32]

y=[4.34 6.34 2.45 8.56 8.45 3.45]

x1=5.43;

y1=6.32;

x2=6.32;

y2=6.32;

plot(x,y,'rp',x1,y1,'gs',x2,y2,'md');

grid on

legend('6个工地的位置’,’P搅拌厂的位置’,’Q搅拌厂的位置’)

五、            【分析】

本次实验的最后结果相对比较准确,但是如果要求更加精确的P,Q地理位置,则需要更进一步的对实验方案进行优化。虽然从最后的数据也是可以分析出来当S最小的时候,P,Q的具体位置,但是光是从条形图和折线图还是不能够完全的看出来细微的变化,因为S路程变化曲线在6~15之间的变化很小,在图表上很难看到。于是我们采用matlab对数据进行拟合,最后通过曲线可以形象的表现出来细微的变化趋势,这位最后确定S的最小值起到关键性的作用。但是本次实验还是存在一定的问题,就是数据获得数量有限,未能最后获得很好的拟合曲线函数。所以还是在求解最小S路程上或多或少有点缺陷。但是在一定情况下,还是可以确定P,Q的大致范围,因为数据主要是在小数点后几位才存在差异,在实际生活中,则是可以忽略这些非常小的距离,给实际生产带来的经济损害。

总体上来说,本次实验还是很好地解决实际问题,并最终求的两个混凝土搅拌厂的位置为

P(5.43,6.34),Q(6.32,6.32) 

最短的路程 S=47.59km

参考文献:

【1】 王沫然,MATLAB6.0与科学计算,北京,电子工业出版社,2001

【2】 云舟工作室,MATLAB数学建模基础教程,北京,人民邮电出版社,2001

【3】 姜启源等,数学实验,高等教育出版社,1999

【4】张静,看懂世界经济的第一本书,中国友谊出版公司,2001

【5】赵东方,数学模型与计算,科技出版社,2007

 

第二篇:综合预警实验报告

实验室名称:

实验项目名称:综合预警实验

相关推荐