InventoryPolicyReorderPointOrderUpToLevelPeriodic

open class InventoryPolicyReorderPointOrderUpToLevelPeriodic @JvmOverloads constructor(parent: ModelElement, reorderPoint: Int = 0, orderUpToPoint: Int = 1, reviewPeriod: Double = 1.0, initialReviewTime: Double = 0.0, name: String? = null) : InventoryPolicyAbstract(source)

A periodic-review (r, S) inventory policy: every reviewPeriod time units (starting at initialReviewTime), checks the inventory position and orders up to orderUpToPoint if at or below reorderPoint.

Unlike the continuous-review variants, checkInventory is a no-op here — review happens via a scheduled event.

See sc.inventorylayer.InventoryPolicyReorderPointOrderUpToLevelPeriodic

Constructors

constructor(parent: ModelElement, reorderPoint: Int = 0, orderUpToPoint: Int = 1, reviewPeriod: Double = 1.0, initialReviewTime: Double = 0.0, name: String? = null)

Properties

Link copied to clipboard

The initial order-up-to level S = r + SDelta (derived, read-only).

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

The initial order-up-to gap SDelta = S − r (>= 1), applied at the start of each replication; S is derived as r + SDelta.

Link copied to clipboard
@set:KSLControl(controlType = ControlType.INTEGER, name = "r")
var initialReorderPoint: Int

The initial reorder point r applied at the start of each replication. See the continuous-review variant InventoryPolicyReorderPointOrderUpToLevel for the initial-vs-current contract and the S = r + SDelta parameterization rationale; they are identical here.

Link copied to clipboard
@set:KSLControl(controlType = ControlType.DOUBLE, name = "R", lowerBound = 0.0)
var initialReviewPeriod: Double

The initial review period R applied at the start of each replication. The control-set path stores the value without the strict positivity check so a clamped write can never throw; R > 0 is validated when the initial parameters are applied at replication start (setPolicyParameters), which fails fast with a clear message before any simulation effort is spent.

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

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
protected open override fun initialize()

This method should be overridden by subclasses that need actions performed to initialize prior to a replication. It is called once before each replication occurs if the model element wants initialization. It is called after beforeReplication() is called

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

parameters may have length 2, 3, or 4. Missing trailing values are taken from myInitialPolicyParameters — matches Java behavior.

fun setInitialPolicyParameters(reorderPoint: Int, orderUpToPoint: Int, reviewPeriod: Double, initialReviewTime: Double)
Link copied to clipboard
protected open override fun setPolicyParameters(parameters: DoubleArray)

Change the policy parameters during a replication.

fun setPolicyParameters(reorderPoint: Int, orderUpToPoint: Int, reviewPeriod: Double = myReviewPeriod, initialReviewTime: Double = myInitialReviewTime)