InventoryPolicyReorderPointReorderQuantity

open class InventoryPolicyReorderPointReorderQuantity @JvmOverloads constructor(parent: ModelElement, reorderPoint: Int = 0, reorderQty: Int = 1, name: String? = null) : InventoryPolicyAbstract(source)

An (r, Q) inventory policy: orders reorderQty units when the inventory position falls to reorderPoint or below.

When the position is at or below the reorder point, the policy orders n × reorderQty with n = floor((reorderPoint − position) / reorderQty) + 1, the fewest whole batches that lift the position strictly above reorderPoint, so that afterwards it lies in reorderPoint + 1 .. reorderPoint + reorderQty. If separateBatchOrders is true the n batches are ordered as n separate requests; otherwise they go in one consolidated order.

With lot-sized demand, when every demand is a multiple of some lot size m, the difference between the position and the reorder point keeps its remainder modulo m for the whole run. Long-run results then depend on the initial on-hand as well as on the reorder point and quantity. Starting each replication at reorderPoint + reorderQty avoids this, and an optimizer that changes the reorder point should change the initial on-hand with it.

See sc.inventorylayer.InventoryPolicyReorderPointReorderQuantity

Constructors

constructor(parent: ModelElement, reorderPoint: Int = 0, reorderQty: Int = 1, name: String? = null)

Properties

Link copied to clipboard
@set:KSLControl(controlType = ControlType.INTEGER, name = "RDelta", lowerBound = 0.0)
var initialReorderPointDelta: Int

The R = (delta − Q) parameterization used by optimization controls — sets the reorder point so that R + Q = delta.

Link copied to clipboard
@set:KSLControl(controlType = ControlType.INTEGER, name = "Q", lowerBound = 1.0)
var initialReorderQty: Int

The reorder quantity Q (≥ 1).

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

If true, when a deep drop requires multiple batches to clear the reorder point, place n separate replenishment requests of size reorderQty (rather than one consolidated n × reorderQty order).

Functions

Link copied to clipboard
protected open override fun checkInventory()

Decide whether to place a replenishment order now.

Link copied to clipboard
open override fun getPolicyParameters(): DoubleArray

Snapshot the current parameter values.

Link copied to clipboard
open override fun setInitialPolicyParameters(parameters: DoubleArray)

parameters[0] = reorder point (must be ≥ −reorderQty), parameters[1] = reorder quantity (must be ≥ 1).

fun setInitialPolicyParameters(reorderPoint: Int, reorderQty: Int)

Two-argument convenience for setInitialPolicyParameters.

Link copied to clipboard
protected open override fun setPolicyParameters(parameters: DoubleArray)

Change the policy parameters during a replication.

fun setPolicyParameters(reorderPoint: Int, reorderQty: Int)