Hi All,

I am attempting to simulation an inventory model on R and I am having some
problems. I believe the problem is when I define my demand rate is stays
constant throughout so when I do need to reorder the model does not
recognise it as I have the initial supply arrival time set to infinity at
the start as no order has been played but I have an if statement saying, if
the level falls below a certain point then an order should be placed, I have
the expected time to order arrival set to be before the the sale but this is
not working.

Any Help would be appreciated. Thanks

maxStock = 100
minStock = 20
t.max=1100.0

LAST = t.max
START = 0

GetDemand<-function() START + runif(1,min=0,max=2)

main <- function(t.max,maxStock,minStock)
{
        index = 0
  t.current = START                               #### Starting Conditions
        t.demand = START
        t.supply = START
        inventory = 50
        order_costs = 0
        storage_costs = 0
        sales = 0
        sum = list(inventory = 50,order_costs = 0,storage_costs = 0,sales =0)

        while(index < LAST){
        index = index + 1
        t.demand = GetDemand()  ### expected time to next sale
        t.supply = Inf          ### expected time to arrival of order, Infinity 
as order
has not been placed
        t.next =min(t.demand,t.supply)    ###next event either sale or supply is
the one with imminent arrival
        k = maxStock - inventory

  if(inventory > minStock)
  {
        t.supply = Inf          ### expected time to arrival of order, Infinity 
as
order has not been placed
  }
  if(inventory > 0)
      storage_costs = (t.next-t.current)*0.10*inventory
  t.current = t.next
  
         if (inventory < minStock)
   {                                                            ###Need to Order
         k = maxStock - inventory
         order_costs = 50 + 0.02*k
         sum$order_costs = sum$order_costs + order_costs
         t.supply =  t.current + 1.0
    }

        if(t.current ==t.demand)
  {
  sum$inventory = sum$inventory - 1.0                                           
           
####Sale made
        sum$sales = sum$sales + 1.0
        t.demand = runif(1,min=0,max=2)
        }
        
        if(t.current == t.supply)
  {                                                                             
####Order Arrives
        sum$inventory = sum$inventory + k
        k = 0
        t.supply = Inf
        }
        
  if(inventory < maxStock)
  {
  k = maxStock - inventory
  sum$storage_costs = sum$storage_costs + storage_costs
  sum$order_costs = sum$order_costs + order_costs
  sum$inventory = sum$invneotry + k - sum$sales
  sum$sales = sum$sales + sales
  sum$sales = sum$sales + sales
  }

}
        sis = list(Time = index,StorageCosts =sum$storage_costs,OrderCosts=
sum$order_costs, FinalInventoryLevel=sum$inventory,sales=sum$sales ,
AverageCosts =((sum$order_costs + sum$storage_costs)/index))
        return(sis)
        }
main()

--
View this message in context: 
http://r.789695.n4.nabble.com/Discrete-Event-Simulation-problem-tp4377276p4377276.html
Sent from the R help mailing list archive at Nabble.com.

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to