需求描述:《库存管理(第二版)》 清华大学出版社 赵晓波,黄四民著 P74~P76例题5-2,详细如图:
(2)基于Matlab的库存管理实现
%------------------------------功能描述------------------------------------
%函数功能:根据持货成本、启动成本和多期需求生成最优补货决策
%参数:startCost 启动成本 __in__
%参数:cargoCost 持货成本 __in__
%参数:demand 多期需求矩阵 __in__
%参数:flag 任意指定的一个极大值,用于识别结果矩阵中的最小值
%参数:decisionMatrix 补货决策矩阵 __out__
%------------------------------函数实现------------------------------------
function decisionMatrix = stockDecision(startCost, cargoCost, demand, flag)
%库存管理问题求解
t = length(demand);
resault = ones(t + 1,t + 1) * flag;
resault(t+1,1) = 0;
for i = 1:1:t %外围循环从1循环到t
j = 0;
tmp = 0;
temp = 0;
%生成第三项
for k = 1:1:i
%生成第二项1 <= j <= i -1 j * h * demand(t + 1 - i + j);
temp = j * cargoCost * demand(1, t + 1 - i + j);
% 生成一个第二项就往上加
tmp = temp + tmp;
%生成第三项 1 <= k <= i min(t + 1 -i + k, :)
resault(t+1-i, k) = startCost + tmp + min(resault(t + 1 - i + k, :));
j = j + 1;
end
end
decisionMatrix = resault;
end
(3)函数测试:
demand = [235, 147, 208, 191, 156, 94];
startCost = 800;
cargoCost = 3;
resault = stockDecision(startCost, cargoCost, demand, 1000000)
测试结果:
resault =
4055 3696 4321 5290 6880 7490 1000000
3255 3256 3652 4774 5102 1000000 1000000
2632 2455 3109 3155 1000000 1000000 1000000
1882 2068 1832 1000000 1000000 1000000 1000000
1600 1082 1000000 1000000 1000000 1000000 1000000
800 1000000 1000000 1000000 1000000 1000000 1000000
0 1000000 1000000 1000000 1000000 1000000 1000000