Let’s take
the case of optimizing a public transport network. The decision variables are,
for instance, the frequencies of the lines (or the daily schedule of the buses,
trains or tramways). If you find a model which is a good approximation of the
system and can be efficiently tackled by an optimization procedure, you have
your solution. However, you may require simulating the system for obtaining a
good evaluation. For instance, simulation could help to determine the demand of
each modes of transport (from a model of users’ behavior). In this case, the
optimization procedure has to exploit a simplified model of the system to be
efficient.
A potential
way to combine simulation and optimization is given in the above figure. Note
that this is not the only way to combine simulation and optimization. In this
approach, the simulation works on a “complete” model of the system (the
simulation model), and the optimization uses a simplified or partial model of
the system (the optimization model).
In this
configuration, the optimization procedure uses a set of parameters that
approximates the system for a given solution (instance of decision variables
that has been used by the simulation). These parameters may be a good
approximation to evaluate the solutions that are close to the simulated
solution, but new simulations are necessary to evaluate solutions that are
significantly different to the simulated one. For instance, in our hypothetical
case study, the simulation may determine the modal-choice for given frequencies
of the lines. These fixed parameters of the modal-choice may remain a good
approximation for small modifications of the frequencies. However, a new
simulation is necessary to evaluate a solution with completely different
frequencies of the lines, because these differences impact the modal-choice. In this
combination of simulation and optimization, the simulation and optimization steps
have to be repeated until a satisfactory solution based on a good approximation
of the system is found.
A final
word on agent approach for developing such a system. What are the interests of
an agent approach in this context? Of course, parallel computation will be
facilitated by agent approach, and if simulation or optimization procedures
have been conceived as multiagent systems, an agent approach at a higher level
may be valuable for a consistency in development tools. But another aspect, the
“autonomy” of agents, deserves to be pointed out. I do not refer
to the autonomy that may characterize intelligent agents, but rather the
modularity (independence) of the system’s components. Agent oriented approach can
support this modularity which is essential for developing such a complex
combination between simulation and optimization. Conceiving
such a system using a multiagent approach may support: the design and
implementation of the interfaces between the agents (here the simulation and
the optimization components) with a clear definition of roles, capacities, and
interactions of agents; the management of asynchronous communications between
the agents; and the integration of additional agents such as interface agent
and data sources. As I said at the beginning, there are many perspectives.