Discussion Problem

This week, we are discussing some advanced modeling techniques. Which of these techniques do you believe you will use in your final project?

OptQuest for Simio

The OptQuest add-in for Simio is built on a truly unique set of powerful algorithms and sophisticated analysis techniques including metaheuristics optimization, evolutionary algorithms, statistical analysis, tabu search and scatter search, to name a few. As a result, OptQuest enables users to shift from simplistic “What if?” analysis to powerful “What’s best?” analysis.

The OptQuest Engine combines Tabu search, scatter search, integer programming, and neural networks into a single, composite search algorithm providing maximum efficiency in identifying new scenarios. OptTek’s well-researched technology has been shown to be orders of magnitude faster than other approaches. OptQuest methods can optimize what would otherwise require a month’s worth of non-stop computing by-amongst other things- stopping replications “on a particular scenario if it appears pretty certain that this scenario is inferior to one that it’s already simulated.” The OptQuest Engine is also flexible, intelligent, and easy to use. And, according to experts in the field, it is the most reliable optimization software on the market today.

Assignment Problems

Kelton Chapter 9 problem 2

Problem 9.5.2

Modify Model 9-1 to support preemption of the Doctor resource for Urgent patients. In particular. if all doctors are busy when an Urgent patient arrives, the Urgent patient should preempt a doctor from One of the Other non-Urgent patients. Compare the results of the models. Would you advise that the emergency department make the corresponding change in the real system?

Initial Setup

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. To interrupt a token at a Server, Combiner or Separator, simply specify ObjectName.OnEnteredProcessing as the Process Name property of the Interrupt step.

The InterruptingServerWithMultipleCapacity.spfx Simbit file was used as an example. First a patient priority of \(2\) for Urgent and \(1\) for all others (since only Urgent patients are preempted) was entered in each entity’s Routing Logic > Initial Priority property field. Then, for each resource’s add-on “processing’” process under the Processes tab before the Assign steps (after the Seize steps):

  • Added a Decide step with:
    • Name of IfServerAvailable.
    • Condition or Probability of Doctor.Capacity.Remaining > 0.
  • Added an Interrupt step with:
    • Name of LowerPriorityJob.
    • Process Name of:
      • ExamRooms.OnEnteredProcessing for Exam Rooms.
      • TraumaRooms.OnEnteredProcessing for Trauma Rooms.
      • TreatmentRooms.OnEnteredProcessing for Treatment Rooms.
    • Selection Rule of Smallest Value First.
    • Value Expression of Candidate.Entity.Priority.
    • Filter Expression of (Candidate.Entity.Priority+.2) < Entity.Priority.
Exam Rooms Trauma Rooms Treatment Rooms

Compare Results

No Patient Preemption
Urgent Patient Preemption

The simulation indicates that allowing Urgent patients to preempt doctors from non-urgent patients decreases Total Cost (TC) and increases Satisfaction for all patient categories. It is advisable for the Hospital to make the corresponding change in the real system.

References

https://www.simio.com/products/OptQuest.php

Simio and Simulation: Modeling, Analysis, Applications 3d Ed. by W. David Kelton, Jeffrey S. Smith and David T. Sturrock with Simio software.

Discrete-Event Systems Simulation, 5th Edition (2010), by Jerry Banks, John S. Carlson, Barry L. Nelson,and David M. Nicol.