This sprint provides new capability to assign states without using processes, interruption and preemption of processes, more effective choices for selecting destinations, and many new features added to the experiment window.
New 'State Assignments' Property Category for Standard Library Objects
For many standard library objects there is now a State Assignments property category where you can easily specify the assignment of state values when an entity is entering an object, or when an entity is ready to exit an object. This feature makes it much easier to do common state assignments without having to use add-on processes and manually place Assign steps.
Advanced Capability for Process Interruption
The Interrupt step may be used to interrupt process delays. A token delaying at a process' Delay step is considered a candidate for interruption if the Interruptible property of the Delay step evaluates to True. To add logic for handling interrupted items (e.g., re-routing logic), the Interrupt step can create new tokens that are associated with the interrupted items. These tokens will exit the 'Interrupted' exit point of the step.
The Interrupt step may be used to model resource preemption scenarios, allowing model logic to interrupt a process delay activity that is using a resource, in order to release the resource for a higher priority activity. This approach allows very flexible preemption capability with precise control over which entities are preempted and how the preempted entities are subsequently processed.
InterruptibleOperator - demonstrates how to interrupt a moveable operator to do more important work at a different location.
InterruptingServerWithMultipleCapacity - demonstrates how to preempt a resource away from low priority work and switch to higher priority work.
InterruptingAcrossMultipleServers - demonstrates how to interrupt processing at a one of several servers with a lower priority item to instead process a higher priority item.
InProcess Ranking Rule property on Station element
The Station element now allows you to specify the ranking rule of the station's InProcess queue that holds all of the entity objects physically located in the station.
The Standard Library objects were updated such all InputBuffer stations have the same InProcess Ranking Rule as the resource capacity allocation rule being used. Thus, for example, if entities are waiting to seize a Server object with a static ranking rule of Lowest Value First (Entity.Priority), the InputBuffer.InProcess queue where the entities are physically waiting will also be ranked Lowest Value First (Entity.Priority).
New InputLocation Functions For Nodes
For any external input node, a new set of InputLocation functions are now provided to return some basic information on the node's input location, such as the input location's capacity, remaining capacity, load, or overload. Such information on the input locations of input nodes is often useful or required to implement dynamic routing logic. For example, in the TransferNode object in the Standard Library, when setting an entity's next destination using the Select From List option, the new functions are useful in selecting the best destination node from a list of candidates.
Six new functions are provided:
TransferNode Object Changes
Related to the above change, the default value of the destination Selection Expression when Select From List is now Candidate.Node.InputLocation.Overload. In many cases a selection of the smallest Overload will provide the server most capable to handle another entity because it takes into account many different aspects of actual and potential work load.
We are adding capability to the Experiments window to improve its usefulness as an analysis tool as well as to make it easier to use with various add-ins like OptQuest. Here are some of the latest changes: