Visual Simulation Programming for Construction Operations

Discrete event simulation is an extremely valuable tool for construction operations . The application of simulation in construction has been limited due to the extreme hardship in developing valid simulation models and coding them in a simulation language. With the advent of object-oriented modeling and programming , simulation entities may be described in a format that encapsulates their characteristics and capabilities . This paper will detail on-going research aimed at the design of objectoriented entities that embody their performance characteristics and methods. The construction team, using a graphical user interface, may select one or more entities and specify the interaction of these entities in an intuitive format . The user will be capable of changing the number and/or mix of equipment with little or no change to the underlying simulation code. This research will also utilize the latest advances in the creation of graphical user interfaces. INTRODUCTION Simulation is a tool to study the dynamics of complex systems . Shanon ' defines it as "Simulation is the process of designing a model of a real system and conducting experiments with this model for the purpose either of understanding the behavior of the system or of evaluating various strategies (within the limits imposed by a criterion or set of criteria) for the operation of the system. " The simulation process starts with the development of the simulation model . A variety of models exists such as logical , mathematical , physical and so on. In this paper , our attention is devoted to the computer model . A model is designed to be a representation of a system. The representation should be as accurate as possible so as to serve as a replacement the system being evaluated . However, the incorporation of every possible feature of the system in its representative model is extremely hard if not impossible. For this reason , the selected model should incorporate in its definition as many elements as possible that represent the primary effects related to the system under consideration. The simulation approach may be used to study almost any problem. This is provided that the simulation model identifies the elements involved in the simulation along with the major attributes of the interactions between these elements. Each simulation on the model becomes an experiment on the system that can be observed and controlled. Contrary to mathematical -based techniques for the study of systems , simulation -based analyses do not yield an optimum solution to a situation affecting a system. Simulation can be used to evaluate BETWEEN a set of predefined alternatives . It is clear then that the application of analytical techniques is preferable to simulation . The main reason for using simulation is that the majority of systems cannot be adequately analyzed by mathematical techniques. This is especially true when random activities are inherent in the system such as waiting for a resource to become available. Although some mathematical solutions are available for queueing problems , such solutions are available only for limited cases. The state of a system is a set of variables needed to describe the system at a specified point in time. The states of critical entities govern the system's behavior . A change in these sets of variables represents movement of the system from one condition (state ) to another . State variables change at specified points in time referred to as event times. In discrete-event simulation , the values of state variables do not change between event times. If the state variables of a system change between event times , the system is said to be continuous . Discrete-event simulation studies reflect accurately the behavior of most construction systems and are easier to implement . For this reason , our attention will be devoted solely to discrete -event simulation. The modeling process generates a simulation model. This model is then used in the simulation experiments. For the simulation exercise to be meaningful, output from the simulation model has to be trusted . To ensure the accuracy of the output , two distinct procedures are involved , namely verification and validation . Verification is involved with the determination that a computer program functions as it is intended , a process similar to the debugging of conventional computer programs. Validation is the process of determining if the conceptual model (as opposed to the computer program ) is an accurate representation of the simulated system. Law and Kelton' mention that "If a model is "valid"; then the decisions made with the model should be similar to those that would be made by physically experimenting with the system (if this were possible))". The success of a simulation study is largely a factor of user interactions with the simulation model. If the simulation model is not trusted , or if its output is "overwhelming " or hard to analyze, the end result would be a failure. In the past few years , the incorporation of animation in simulation models (Oloufa''') has lead to a major improvement in both the verification and validation of computer simulation models . Here the users can interact with the simulation model and the results of these "experiments " are displayed in an animated format showing the system entities and their interactions . Animation highlights potential bottlenecks in the system and creates an intimate and trustful environment with the users of the simulation model . Animation also explains the modeled system in terms of the physical interacting entities , thus enhancing the simulation credibility in addition to displaying the system's critical characteristics in a graphical format. Advantages of using simulation are: 1May serve as the only resort to study a system that is too complex to be described in an analytical model. 2Enables the investigator to study an existing or planned system when subjected to any set of operating conditions. 3Alternate solutions to a problem can be studied and compared. 4Gives the investigator an insight and enhances the comprehensibility of the system considered. This benefit is similar to that derived from the application of network models (e.g. CPM ) in project planning and scheduling. The following are disadvantages of using simulation: IReliable simulation models are often expensive and time consuming to develop. 2Simulation generally portrays the system 's performance for a given set of conditions . A large number of simulation runs may be required. 3Simulation aids in selecting the best alternative from the standpoint of the model and its constraints , which is not necessarily the optimum one. 4The large amount of data produced after simulation may give misleading information about the simulation model's performance and validity. SIMULATION IN CONSTRUCTION Perhaps the most commonly cited construction simulation language in the literature is CYCLONE, which was developed by Halpin'. CYCLONE is an extremely easy to use simulation language based on the Q-GERT family of simulation programs. The language utilizes a set of five modeling elements and has good data collection capabilities. CYCLONE models are developed graphically using familiar block diagrams. The building entities are then numbered and the simulation code is developed. In a brief historical review, the GPSS simulation language (Greenberg') was developed by IBM in the early 1960s'. The novelty about GPSS was its process-oriented approach where the operations (i.e. processes) involved in the system were the focus of the simulation. The simulation language also included a "block" building approach, however it was not necessary to represent the system in terms of blocks before the simulation code can be developed. There are currently several commercial simulation programming languages (SCS) that offer a lot more features and programming power than GPSS and CYCLONE. In the author's opinion, the languages mentioned above suffer from a major weakness. This is because these languages emulate the conventional programming languages such as C and FORTRAN in terms of their emphasis on algorithmic decomposition (i.e. processes). Booch6 mentions two methods for system decomposition, the algorithmic and object-oriented decompositions. In the algorithmic decomposition, the system is explained in the conventional top-down structured approach where the system processes are identified. Object-oriented decomposition on the other hand is the definition of the system in terms of its key abstractions or components. The first object-oriented programming language SIMULA, a simulation language, was developed in 1967. While this language has failed to become a commercial success, its modeling emphasis is currently regarded as the state-of-the-art. The recent emergence of object-oriented simulation languages for manufacturing applications has received a lot of attention (Cammarata et a19, Knapp1. ", Roberts et al", Rothenberg13 and Ulgen14). The object-oriented view is that the system is composed of interacting physical objects. These objects are typically the central focus of the simulation studies. In the modeling process, it is essential to decompose the system into its component parts. We also declare the valid operations these components engage in and specify how this engagement affects their states before, during and after these operations. Each object represents a physical component of the system being modeled. The set of objects that represent the same kind of system component is called a class. A class definition is used to define a particular abstract data type. An abstract data type specifies its own operations in addition to its own characteristics. A class has individual objects called instances. A class describes the form of its instances and how they carry out their operations. Objects communicate with other objects using messages. A message is a request that an object carry out one of