STROBOSCOPE: State and Resource Based Simulation of Construction Processes
A dissertation submitted in partial fulfillment
of the requirements for the degree of
Doctor of Philosophy
in The University of Michigan
by Julio C. Martinez
Doctoral Committee Chair:
Photios G. Ioannou, Professor
Civil & Environmental Engineering Department
University of Michigan
Ann Arbor, Michigan 48109-2125, U.S.A.
Construction processes range from the very simple to the very complex. Complex processes are difficult to analyze and optimize using standard mathematical methods. Simulation is an alternative method of analysis that offers numerous benefits. The construction simulation systems previously available could not model typical construction processes with the necessary level of detail. General purpose simulation systems, generally based on the process interaction strategy, cannot easily model the multiple resource requirements and dynamic complexity of construction processes.
The purpose of this research was to remedy this situation and address the simulation modeling requirements of construction processes. The end result of this effort is Stroboscope, an acronym for STate and ResOurce Based Simulation of COnstruction ProcEsses. It is a general purpose simulation programming language specifically designed to model construction operations. Stroboscope models consist of a series of programming statements that define a network of interconnected modeling elements, give the elements unique behavior, and control the simulation.
Stroboscope's ability to dynamically access the state of the simulation and the properties of the resources involved in an operation differentiate it from other construction simulation tools. The state of the simulation refers to such things as the number of trucks waiting to be loaded; the current simulation time; the number of times an activity has occurred; and the last time a particular activity started. Access to the properties of resources means that operations can be sensitive to resource properties - such as size, weight, and cost - on an individual (the size of the specific loader used in an operation) or an aggregate basis (the sum of the weights of a set of steel shapes waiting to be erected).
Stroboscope modeling elements have attributes - defined through programming statements - that define how they behave throughout a simulation. Attributes represent such things as the duration or priority of an activity, the discipline of a queue, and the amount of resource that flows from one element to another. It is possible to specify most attributes with expressions. Attributes have default values that provide the most common and expected behavior. Expressions are composed of constants; system-maintained variables that access the state of the simulation and the properties of resources; user-defined variables; logical, arithmetic, and conditional operators; and scientific, statistical, and mathematical functions.
Stroboscope simulation models can consider uncertainty in any aspect of the real system being represented (and not just time). A typical example is the uncertainty in the quantities of resources produced or consumed (e.g., the volume of rock resulting from a dynamite blast). Stroboscope models can also select the routing of resources and the sequence of operations dynamically; allocate resources to activities based on complex selection schemes; combine resources and dynamically assign properties to the resulting compound resource; and activate operations subject to complex startup conditions not directly related to resource availability (e.g., do not blast rock until all crews of all trades have left the vicinity, the wiring has been inspected, and there are less than 10 minutes left in the current shift).
The Stroboscope language includes most of the capabilities desirable of general purpose simulation languages such as multiple random number streams; sophisticated stream management; antithetic variates; built-in functions that sample from a wide range of probability distributions; the ability to reset statistical registers or the model itself; a source level flow control language; and a statement pre-processor that allows the parameterized generation of code (i.e., code that writes code). Stroboscope also has some of the characteristics of general purpose programming languages such as built-in logarithmic and trigonometric functions; conventional variables and arrays; and structured flow control with while-wend and if-elseif-else-endif blocks.
In addition, Stroboscope can be seamlessly extended with Add-Ons. Add-Ons are dynamic link libraries written according to the Stroboscope Add-On Interface with conventional compiled languages such as C, C++, Pascal, and Fortran.