- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
动态规划_销售人员分配问题(matlab编程)
一、问题重述
某企业甲、乙、丙三个销售市场,其市场的利润与销售人员的分配有关,现有6个销售人员,分配到各市场所获利润如下表示,试问应如何分配销售人员才能使总利润最大?
市场甲乙丙
人数00001606575280851003105110120411514013551301601506150175180
二、问题分析
首先我们对设备的分配规定一个顺序,即先考虑分配给甲市场,其次乙市场,最后丙市场,但分配时必须保证企业的总收益最大。
将问题按分配过程分为三个阶段,根据动态规划逆序算法,可设:
1、阶段数k=1,2,3(即甲、乙、丙三个市场的编号分别为1,2,3);
2、状态变量xk表示分配给第k个市场至第3个市场的人员数(即第k阶段初尚未分配的人员数);
3、决策变量uk表示分配给第k市场的人员数;
4、状态转移方程:xk+1=xk-uk;
5、gk(uk)表示uk个销售人员分配到第k个市场所得的收益值,它由下表可查得;
6、fk(xk)表示将xk个销售人员分配到第k个市场所得到的最大收益值,因而可得出递推方程:
fk(xk)= [ gk(uk)+ fk+1(xk-uk)],k=1,2,3
f4(x4)=0
三、问题求解
1)k=3时,市场丙的分配方案和总收益.
最大收益:f3(x3)=[g3(x3)]
u30123456最优决策u3*最有总收益f3x30000107517520751002100307510012031204075100120135413550751001201351505150607510012013515018061802)k=2时,市场乙的分配方案和总收益.
最大收益:f2(x2)=[g2(u2)+ f3(x3)]= [g2(u2)+ f3(x2- u2)]
u20123456最优决策u2*最有总收益f2x20000175650652100140851140312016516011011654135185185185140118551502002052102151604215618021522023024023517542403)k=1时,市场甲的分配方案和总收益.
最大收益:f1(x1)=[g1(u1)+ f2(x1- u1)]= max[g1(u1)+ f2(4- u1)]
u10123456最优决策u2*最有总收益f2x1=62402752652702552702751275故最优方案是甲市场1人,乙市场4人,丙市场1人,总利润为275.
为此,我们可以用Matlab语言编程使问题能跟方便地得到解决,其算法设计如下图:
运用Matlab语言编程,程序如下:
m=1;
A=[0 60 80 105 115 130 150];
B=[0 65 85 110 140 160 175];
C=[0 75 100 120 135 150 180];
for i=1:7
for j=1:7
for k=1:7
if i+j+k==9
d(m)=A(i)+B(j)+C(k);
E(m,1)=i;
E(m,2)=j;
E(m,3)=k;
m=m+1;
else
continue;
end
end
end
end
MAXNum=d(1);
for l=1:size(d,2)
if d(l)MAXNum
MAXNum=d(l);
p=l;
else
continue;
end
end
for l=1:size(d,2)
if d(l)==MAXNum
E(l,:)
else
continue;
end
end
MAXNum
按回车键后可得到以下结果:
ans =
2
文档评论(0)