基于MATLAB的生产过程中最大利润问题的优化设计Word格式.docx
《基于MATLAB的生产过程中最大利润问题的优化设计Word格式.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的生产过程中最大利润问题的优化设计Word格式.docx(9页珍藏版)》请在冰豆网上搜索。
而通过MATLAB现成的优化工具箱,我们可以通过调用最佳优化函数求解,从而更好的计算出生产产品所获得最大利润。
1.数学模型的建立
建立数学模型,即用数学语言来描述最优化问题,模型中的数学关系式反映了最优化问题所要达到的目标和各种约束条件。
而通过这些约束条件,我们能更好的制定新的生产计划,以便克服生产过程中的某些不利于生产的约束,从而更大的降低产品生产成本,使利润最大化。
1.1设计变量的确定
设计变量是指设计过程中可以进行调整和优选的独立参数,分为连续变量和离散变量。
而本文主要用的是连续变量,设计变量一般表示为:
式中,X
表示生产产品的台数,而当我们确定了生产每台的利润后,我们就能知道X
台的利润。
1.2目标函数的确定
已知某工厂能生产A、B、C三种产品,每月生产的数量分别为X
,X
,产品每台利润分别为m
,m
,则可知该厂每月的利润为:
Y=m
*X
+m
即目标函数为:
简化为:
F(X)=
i=1,2,3
1.3约束条件的建立
生产A、B、C三种产品需用到四种机器V1、V2、V3、V4,每种机器的生产能力分别为K1、K2、K3、K4,所以有:
1)用V1每月生产的A、B、C三种部件分别为N1、N2、N3,则:
g
(x)=N1*X
+N2*X
+N3*X
K1
2)用V2每月生产的A、B、C三种部件分别为N11、N12、N13,则:
(x)=N11*X
+N12*X
+N13*X
K2
3)用V3每月生产的A、B、C三种部件分别为N21、N22、N23,则:
(x)=N21*X
+N22*X
+N23*X
K3
4)用V4每月生产的A、B、C三种部件分别为N31、N32、N33,则:
(x)=N31*X
+N32*X
+N33*X
K4
5)每月生产的数量X
n为大于0的自然数
2.优化方法的选择
2.1MATLAB语言简介
MATLAB语言是由美国Mathworks公司开发的集科学计算、数据可视化和程序设计为一体的工程应用软件,现已成为工程学科计算机辅助分析、设计、仿真以至教学等不可缺少的基础软件,它由MATLAB主包、Simulink组件以及功能各异的工具箱组成。
MATLAB优化工具箱的应用包括:
线性规划和二次规划,求函数的最大值和最小值,多目标优化,约束优化,离散动态规划等,其简洁的表达式、多种优化算法的任意选择、对算法参数的自由设置,可使用户方便地使用优化方法。
2.2优化的应用
(1)绘制目标函数的网格图和等值线图
由目标函数的网格图和等值线图可观察到目标函数极值点的范围,以验证最优解的可靠性。
(2)线性规划
线性规划是数学规划中的一个比较成熟的分支,实际应用也非常广泛,同时也是构成非线性约束优化方法的一种基本算法,优化工具箱中由fmincon函数来解线性规划问题,采用投影法计算,是一种修正的单纯形法。
2.3优化过程中所使用的方法
一般对于优化问题,主要是最大优化和最小优化两种问题,本文中求最大利润的优化,我们可以通过构造惩罚函数将有约束优化问题转化为无约束优化问题,从而能更快的求出利润的最大值。
2.4MATLAB解决工程实际问题的步骤
(1)根据实际的最优化问题,建立相应的数学模型;
(2)对建立的数学模型进行具体的分析和研究,选择恰当的求解方法;
(3)根据最优化方法的算法,选择MATLAB优化函数,然后编写求解程序,最后利用计算机求出最优解。
3.应用实例
某厂生产A、B、C三种产品,产品每台利润分别为600、500和400元。
它所用部件P1~P4和部件的生产能力如下表。
求如何安排A、B和C的生产计划,使产品的利润最大?
表1某产品所用部件及其部件的生产能力
部件
产品
P1/件
P2/件
P3/件
P4/件
产品每台计划利润/元
A
2
1
600
B
500
C
400
部件每月生产能力/件
1000
800
750
---
令生产A、B、C三种产品每月计划生产数量为x
,x
台,则计划利润最大值为:
maxY=600x
+500x
+400x
;
它的约束条件为:
2x
+x
1000;
x
+2x
800;
+x
+2x
750;
、x
3.1建立最优化数学模型
将上述数学模型化为标准形式,即将最大值转化为最小化问题,标准形式如下:
3.2构造罚函数求解
构造罚函数
将上式标准形式转化为下述形式
所以罚函数为
根据无约束极小的必要条件
化简可得:
从而可得minP(x,m)的解为:
当m=1时,X=(388.14,146.56,153.78
当m=2时,X=(369.07,148.28,151.89
当m=3时,X=(362.71,148.86,151.26
当m=4时,X=(359.54,149.14,150.95
通过这四组数值观察,我们可以得知:
m取值越大,相应的X1越来越小,X2越来越大,X3也是逐渐减小,所以我们可以得知:
当m趋近无穷大时,有:
X=(350.00,150.00,150.00)
从而代入目标函数可得:
F(x)=-600*350-500*150-400*150=345000
即可知该厂每月的最大利润为345000元
3.3流程图
3.4蚁群算法
1)简介
蚁群算法蚁群算法(antcolonyoptimization,ACO),又称蚂蚁算法,是一种用来寻找最优解决方案的机率型技术。
它由MarcoDorigo于1992年在他的博士论文中引入,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。
寻找最短路径的蚁群算法来源于蚂蚁寻食的行为。
蚁群寻找食物时会派出一些蚂蚁分头在四周游荡,如果一只蚂蚁找到食物,它就返回巢中通知同伴并沿途留下“信息素”(外激素pheromone)作为蚁群前往食物所在地的标记。
信息素会逐渐挥发,如果两只蚂蚁同时找到同一食物,又采取不同路线回到巢中,那么比较绕弯的一条路上信息素的气味会比较淡,蚁群将倾向于沿另一条更近的路线前往食物所在地。
蚁群算法设计虚拟的“蚂蚁”,让它们摸索不同路线,并留下会随时间逐渐消失的虚拟“信息素”,根据“信息素较浓的路线更近”的原则,即可选择出最佳路线.
2)原理
蚂蚁在路径上前进时会根据前边走过的蚂蚁所留下的分泌物选择其要走的路径。
其选择一条路径的概率与该路径上分泌物的强度成正比。
因此,由大量蚂蚁组成的群体的集体行为实际上构成一种学习信息的正反馈现象:
某一条路径走过的蚂蚁越多,后面的蚂蚁选择该路径的可能性就越大。
蚂蚁的个体间通过这种信息的交流寻求通向食物的最短路径。
蚁群算法就是根据这一特点,通过模仿蚂蚁的行为,从而实现寻优的过程。
3)应用情况
蚁群算法最初是应用在对称的旅行商问题,如今,随着研究的深入,应用范围不断扩大,现在应用到静态组合优化问题、动态组合优化问题、连续空间优化问题、以及其他领域。
4)求解步骤
以TSP为例,基本蚁群算法的具体实现步骤如下:
(1)参数初始化。
令时间t=0和循环次数Nc=0,设置最大循环次数Ncmax,将m个蚂蚁置于n个元素(城市)上,令有向图上每条边(i,j)的初始化信息量τij(t)=const,其中const表示常数,且初始时刻Δτij(0)=0
(2)循环次数Nc←Nc+1。
(3)蚂蚁的禁忌表索引号k=1。
(4)蚂蚁数目k←k+1。
3.5Matlab求解
由于该函数是线性规划,所以我们可以在matlab中输入如下程序,并把它保存在obj.m中:
调用linprog函数:
[x,fval]=linprog(f,A,b,Aeq,beq,ib)
运行优化结果为:
4.结论
在本文中,对利润最大化问题的求解,其中,用到了罚函数的求解,MATLAB优化工具箱的求解。
通过这两种方式的求解,我们可以得知在解决优化问题的过程中,为了更好的计算出最优值,我们可以选择一种比较简单的方式来求解,然后用另外一种方式来验证。
当两种结果都能得到相同的值时,即可确定最优化值。