Implements the classical Economic Order Quantity (EOQ) model and the EOQ model with planned shortages.

1 | ```
EOQ(d, k, h, b = 0)
``` |

`d` |
demand per unit time, |

`k` |
ordering or setup cost per unit time, |

`h` |
holding cost per unit time, |

`b` |
shortage penalty cost per unit time (default:0). |

The classical EOQ model assumes that the demand rate of units per time unit is constant and each new order is delivered in full when inventory reaches zero. Also a cost for each unit held in storage and a fixed cost for each order placed are considered. No shortages are allowed.

The optimal (the economic order) quantity that minimize the total cost
associated with the purchase, delivery and storage is defined by *Q=√(2Dk/h)*. When we relax the last assumption, that is, *b is not equal to 0* we have the EOQ model with backorders.

`EOQ()`

returns a list containing:

`Q` |
batch quantity, |

`T` |
time between orders (cycle length or time), |

`S` |
maximum backorder in units, |

`TVC` |
total variable cost. |

Marlene Silva Marchena marchenamarlene@gmail.com

Hillier, F. and Lieberman, G. (2001). *Introduction to operational research*. New York: McGraw-Hill, 7th.

1 2 3 4 5 6 7 8 9 10 11 12 13 | ```
# Classical EOQ model#
# Given demand d=8000 items per year; set up cost k=12000; and holding cost h=0.3
# per unit we find that the optimal solution is to order 25298 units every 3.2
# months with a total variable cost of $7589.5
EOQ(8000,12000,0.3)
# EOQ model with planned shortages#
# Consider now that backorders are allowed with a backorder cost b=1.1 per
# unit and year. Then the optimal solution is to order 28540 units every 3.6 months.
# The total variable cost is $6727.3 and the maximum shortage is 6116 units.
EOQ(8000,12000,0.3,1.1)
``` |

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.

Please suggest features or report bugs with the GitHub issue tracker.

All documentation is copyright its authors; we didn't write any of that.