Operations Research topics: SAS/OR,
SAS Optimization, and SAS Simulation Studio

Proc MIRP options EVALISL vs PREDICTKPI

Reply
Highlighted
Contributor
Posts: 23

Proc MIRP options EVALISL vs PREDICTKPI

Dear All,

 

Iam using Proc MIRP for my project which has very slow moving products.  We have stationary demand. Using MEAN, VARINCE and DEMANDINTERVAL for demand modeling.  I have used below codes. Problem has two echelons.  

 

1. This is using OPTPOLY and PREDICTKPI which gives KPI for each period. We are running for horizon =549 so that we can consider warmup period and use only steady state values after 183 periods. when the network has 100 stores for a network this takes 3 hours for below settings even for one network.   We cant use horizon=1 because it has impact of initial stages and hence we need to run for  500+ period. But when I use EVALISL option I get results in 10 minutes of 300 networks with each having more than 300 stores. I can not use EVALISL option as it assumes batchsize =1 and constant leadtime .

I have checked memory requirement using formula given in MIRP document and we have enough RAM. 

 

My question is why EVALISL is so fast compared to KPIPREDICT and OPTPOLICY. Why also it does not need inventory data.

 

/******Policy optimization**using OPTPOLICY*****/
proc mirp nodedata=&Nodedata
arcdata=&arcdata demanddata=&demanddata
out=&optpolicy_output
POLICYPARM=INTEGER DEMANDMODEL=DISCRETE replications=5000 CV2=YES FORECASTINTERVAL=7 horizon=549 MAXCV=1
OBJECTIVE=OPTPOLICY;
Run;

/******assigning initial inventory***********/
proc sql;
create table &optpolicy_output
as select
a.*,
case when period=1 then Amount else . end as Amount
from &optpolicy_output a
left join &Nodedata b on a.networkid=b.networkid and a.skuloc=b.skuloc
order by NETWORKID, SKULOC,period;
Quit;


/***PREDICTKPI********************/
/***needs Amout field in inventory data*****It is using policy output from OptPolicy*****/
Proc mirp nodedata=&Nodedata
arcdata=&arcdata demanddata=&demanddata inventorydata=&optpolicy_output
out=PREDICTKPI
POLICYPARM=INTEGER DEMANDMODEL=DISCRETE replications=5000 CV2=YES FORECASTINTERVAL=7 horizon=549 MAXCV=1
OBJECTIVE= PREDICTKPI;
Run;

 

 

/******EVALISL*****/
proc mirp nodedata=&Nodedata
arcdata=&arcdata demanddata=&demanddata
out=&EVALISL
POLICYPARM=INTEGER DEMANDMODEL=DISCRETE replications=5000 CV2=YES FORECASTINTERVAL=7 horizon=549 MAXCV=1
OBJECTIVE=EVALISL;
Run;

Ask a Question
Discussion stats
  • 0 replies
  • 243 views
  • 0 likes
  • 1 in conversation