Detecting and Resolving Model Errors Jeffrey S. Smith Auburn University
Detecting and Resolving Model Errors Error detection and correction (e.g., debugging) is a significant part of most simulation studies. In can be very time consuming and is usually quite frustrating. In general, there are three classes of errors encountered during the development and implementation of a simulation model: Syntax errors – Incorrect usage of language constructs/modules Runtime errors – Program errors that occur during the simulation run (e.g., exceeding the memory limits) Logic errors – Errors in the modeling logic that cause the simulation to run in an unexpected manner. Generally, you spend a significant amount of time debugging models – usually more that you spend on the initial model development. Gent used to this – it is very common. PLANNING can reduce the debugging time significantly. 12/4/2018 Detecting and Resolving Model Errors
Detecting and Resolving Model Errors Syntax Errors Most commercial simulation packages (Simio included) automatically look for syntax errors during the model development or initialization (compilation) stage. Some of the common errors that are detected include: Misspellings of keywords and other reserved words Duplicate use of object names or other “strings” Undefined states, resources, statistics, etc. When Simio finds one of these errors, the error is reported to the user and Simio provides functions to try to “find” the error and lists possible causes. These errors are generally easy to find and fix (once you understand the syntactical rules of Simio). In the model, use Random.Exponentia(.25) for the Source interarrival time property. Do a State Assignment and use an invalid state name. Note that Simio is a little different that some other package in that it marks these errors “as you go” rather than waiting for a “compilation step”. 12/4/2018 Detecting and Resolving Model Errors
Detecting and Resolving Model Errors Runtime Errors Output node not connected to the network 12/4/2018 Detecting and Resolving Model Errors
Detecting and Resolving Model Errors Runtime Errors Might or might not actually be an “error” (in this case, it is) – check the “DefaultEntity.Maximum Number In System” property for the entity object in question. 12/4/2018 Detecting and Resolving Model Errors
Detecting and Resolving Model Errors Logic Errors While Simio is fairly helpful in finding and fixing syntax and runtime errors, it generally cannot automatically find logic errors. With a logic error, the model compiles and runs without errors, but the logic error makes the model results not “correct”. 12/4/2018 Detecting and Resolving Model Errors
Debugging Tools and Techniques Carefully watch the animation Enhance the animation with debugging information and “messages” “Step Mode” + “Mouse-overs” for entities Watch Breakpoints Model Trace Subclassing objects Notify step Using a simple model: Set a Breakpoint, turn Model Trace on, and run. 12/4/2018 Detecting and Resolving Model Errors
Detecting and Resolving Model Errors Simio Debugging Tools 12/4/2018 Detecting and Resolving Model Errors