Matlab实用化小函数(2):库存管理之库存决策问题求解

需求描述:《库存管理(第二版)》     清华大学出版社       赵晓波,黄四民著  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

猜你喜欢

转载自blog.csdn.net/m1m2m3mmm/article/details/85092552