Optimization is one class of models used for decision support. This support is often in the form of suggesting a decision to minimize the costs or maximize the flow in a network. Solving an optimization problem requires transforming the problem into a mathematical model and solving this model, often with the help of software-based computational tools.
Optimization is used in wide range of applications in business, government, and the military. More recently, optimization has been applied to problems related to the critical infrastructures. The critical infrastructures have vital functions in modern societies. Their disruption can have significant consequences.
Short-comings of previous solutions
Current practice in solving optimization problems suffers from various shortcomings. Some of these shortcomings are the lack of reusability, the difficulties in debugging, the absence of modular design, a general deficiency of visualization support, etc. When it comes to models representing critical infrastructures, these deficiencies become more significant. Because critical infrastructures do not exist in isolation, they depend on other infrastructures to maintain their intended services. For instance, a natural gas infrastructure often needs electricity to power the pumps that move the gas through the pipe system. The electricity is provided by another critical infrastructure, the power grid which in turn also depends on other infrastructures to operate. The easiest way to model such a system of multiple critical infrastructures is often using a single but large model to be processed at once. This makes the already difficult tasks of designing, running, and debugging the models even more challenging. Moreover, solving real-world applications often requires high computational power that an individual researcher or analyst can hardly provide.
Our Solution: The TALOS Computation Server
In this project, we capture the requirements for a cloud-based computation server to support designing and running such models. We extend these requirements to include support for systems of critical infrastructures.
In response to these requirements, we provide a flexible and robust architecture for a computation server. Based on this architectural design, we implement the TALOS Computation Server.
We demonstrate the efficiency of using the TALOS Computation Server on a scenario consisting of two interdependent infrastructure models. In order to represent these infrastructures, we design stand-alone executable infrastructure models decomposed from a previous model of a general purpose critical infrastructure system. These stand-alone infrastructure models are constructed to have better control over the design, execution, and debugging stages of modeling a system of critical infrastructures. We propose a two-stage optimization method that exploits the conveniences provided by the TALOS Computation Server. One of these conveniences is the TALOS Scripting Language that we created for designing a system of multiple models. The TALOS Scripting Language is offered on a web-based terminal. We also provide a graphical user interface to perform the same tasks.
In addition to the support for the critical infrastructure models, the TALOS Computation Server also performs model integrity checking, meta-data generation, visualization of intermediate and final results, result reporting, and run-time error handling.
Our analysis of the mentioned scenario reveals that the TALOS Computation Server makes it much easier to design, run, and debug not only the single models but also the interdependent infrastructure models compared to the previous solutions.