Proceedings of the 2020 Winter Simulation Conference K.-H. Bae, B. Feng, S. Kim, S. Lazarova-Molnar, Z. Zheng, T. Roeder, and R. Thiesing, eds.
Amy Brown Greer Yusuke Legard
297 Herndon Parkway,
Suite 302 Herndon, VA 20170, USA
Office of Research Services National Institutes of Health
31 Center Dr. Bethesda, MD 20892, USA
Many simulation packages offer out-of-the box objects that cover a wide variety of situations. However, using these pre-built constructs can often result in more code, slower running models, and harder to maintain models than building custom, targeted objects from scratch. In this presentation, the technical approach for a shuttle bus model for the National Institutes of Health (NIH) will be discussed in detail. The techniques used in this model, particularly focusing on generating smart data structures on initialization and using custom built objects, can be applied to modeling in any industry with most simulation packages.
Many simulation packages offer easy to use components that allow novice users to model their systems without requiring extensive programming. This is often accomplished via the modeler setting various input parameters in “heavy” modeling constructs. The model builder plays the role of a configurer instead of programmer
Even if the model builder is primarily configuring settings of pre-built constructs, they often have to incorporate some programming in their model. This may be programming in a visual programming environment or very light scripting to customize the behavior of the pre-built constructs
While the majority of models require some programming, many modelers shy away from building models at a lower level. The authors have found in many cases models can be created in less time by using a software package’s underlying building blocks, instead of larger, more comprehensive constructs.
The NIH headquarters, referred to as the NIH main campus, is located in Bethesda, MD. The NIH main campus is home to more than 75 buildings on over 300 acres. Shuttle services assist employees, patients, contractors, and visitors in navigating within the campus. The shuttle service also provides additional routes between the main campus and off-campus satellite facilities in Montgomery County, MD. As with many organizations, the NIH campus quickly shifted to a remote work model in spring of 2020 when the COVID-19 pandemic started to impact the United States. This resulted in a reduced need for shuttle bus services. As NIH begin to formulate plans to bring employees back to campus in a safe way, the Office of Research Services (ORS), which provides support services to enable the research mission of the NIH, realized the demand for shuttle services may look very different in a post-COVID or transitioning to a post- COVID environment. The ORS and MOSIMTEC built a discrete event simulation model in SIMIO in order to understand the impact of various shuttle bus system design strategies for a wide variety of demand patterns. This presentation focuses on two key technical components of this model:Greer, Legard, and Wolski 1. An array structure populated on model initialization that streamlined the remainder of model code. 2. The value of building a model from lower level constructs, compared to pre-built modules that included a lot of out of the box functionality.
THE IMPORTANCE OF DATA STRUCTURES
In this model, shuttle buses on a given loop should be equally offset. For example, if a loop took approximately 60 minutes to complete, and there were 2 buses, users would want to see a bus approximately every 30 minutes. The modeled system has time checks, so buses can dwell at a stop until scheduled departure times. NIH needed to understand when a specific route may go from 1 bus to 2 buses to meet demand during peak periods. However, if the simulation analyst had to re-build a custom schedule for each change in bus quantity or shift change, the time required to run analysis would be impractical
The model initialization code takes a building block list of stops. By using the start / stop times of buses in the system, a bus schedule was dynamically built at model initialization. This allows the analyst to test various bus strategies without manually creating a full bus schedule
The day’s full bus schedule was stored in a simple array. With this data structure in place, the logic for buses to execute their routes became very simple. Eric Raymond (2001) stated, “Smart data structures and dumb code works a lot better than the other way around.” The project team spent considerable time planning the bus schedule array. However, once the array was in place, the development of the rest of the model occurred very quickly with few issues arising during development and testing.
THE BENEFITS OF MODELING FROM SCRATCH
The example model presented with this abstract was developed in SIMIO. While a high level introduction to SIMIO may lead a modeler to think they should just use the pre-built vehicle, with settings configured as needed; the attendee will see that a model built from the scratch with process logic is very easy to follow. There are several benefits of building models with lower level components:
- Faster model development time
- Easier debugging
- Faster run speeds
- More flexibility in future model changes
- Better opportunity to create self-documenting code
Many simulation software packages have pre-built model constructs that can be used via configuration to avoid having to develop custom logic. However, using smart data structures and building models with lower level constructs can often result in models being developed faster, with other long term benefits.