Intelligent simulation code generator: a relational database management approach

Many researchers have employed artificial intelligence (AI) and expert systems (ES) to assist the simulation scientist and simulation user. However, many regard AI-based system as an expensive and somewhat inefficient solution. These systems suffer from two inherent problems: combinatorial explosion and extensive memory usage. Object-oriented paradigm is a fast-growing technique that has many advantages over conventional knowledge-based techniques. Some of these are extendibility, reusability, reduced code size, and the process world view. Moreover, objects in an object-oriented environment have one-to-one correspondence with entities in a database management systems (DBMS). A DBMS is an ideal tool which adds a new dimension to AI-oriented simulation, the much-needed data handling capabilities. Thus, utilizing AI, simulation, and databases as a triplet provides a novel way of creating an integrated simulation environment that combines best of all fields. This study utilizes these research findings to develop a software tool that acts as a buffer, front-end between the user and a simulation language. The software accepts user requirements via a natural language interface and develops a simulation model complying with the syntax and semantics of the target simulation language. Moreover, the generator not only generates code, but also performs model management. The modelbase management software maintains a systems dictionary that enables the user to refer to all models developed so far. Furthermore, a user can also modify these systems. The dBASE IV package was used to develop the simulation interface and modelbase management software; the C++ object-oriented language was utilized to develop the knowledge-engineering software; and SIMAN was used as the target simulation language. The ISCG has two main advantages over simulation languages and application-focused packages: an easy-to-use simulation software and an extremely flexible user interface that at any time can be extended to a larger domain. Moreover, the ISCG provides us with a new approach to modeling, i.e., an information-based approach that is "user-centered," not just a "user-friendly" approach. The ISCG offers data independence, system independence, simulation-specific transparency, and target language neutrality. The separation of systems description, model definition, and model execution enables the user to concentrate on the modeling aspects of simulation rather than on the details of writing computer code. The modelbase management software "conserves" effort by storing model descriptions in a long-term fashion. The modification module further promotes model reusability by allowing user to modify already constructed systems that are otherwise treated as "throw away" items. The ISCG is also able to overcome the limitations of an application-specific software. The object-oriented software allows a system designer to add new methods/routines that are pertinent to a new domain of applications. Similarly, by changing the target-simulation-language-specific routines, the designer can use another target simulation language or develop his/her own shell.