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