<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Design and Simulation of a Wave-like Self- Organization Strategy for Resource-Flow Systems</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Jan Sudeikat,</string-name>
          <email>thomas.preisler, peter.salchow}@haw-hamburg.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jan-Philipp Stegh o¨fer, Hella Seebach</string-name>
          <email>reif}@informatik.uni-augsburg.de</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Wolfgang Renz, Thomas Preisler and Peter Salchow, Multimedia Systems Laboratory (MMLab), Faculty of Engineering and Computer Science, Hamburg University of Applied Sciences</institution>
          ,
          <addr-line>Berliner Tor 7, 20099 Hamburg, Germany, Email: {jan.sudeikat, wolfgang.renz</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>and Wolfgang Reif, Institute for Software and Systems Engineering, Augsburg University</institution>
          ,
          <addr-line>Universita ̈tsstrasse 6a, 86135 Augsburg, Germany, Email: {steghoefer, seebach</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>-In resource-flow systems, e.g. production lines, agents are processing resources by applying capabilities to them in a given order. Such systems profit from self-organization as they become easier to manage and more robust against failures. This paper proposes a decentralized coordination process that restores a system's functionality after a failure by propagating information about the error through the system until a fitting agent is found that is able to perform the required function. The mechanism has been designed by combining a top-down design approach for self-organizing resource-flow system and a systemic modeling approach for the design of decentralized, distributed coordination mechanisms. The systematic conception of the interagent process is demonstrated. Evaluations of convergence as well as performance are performed by simulations.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>A key driver in the development of autonomous and
autonomic systems is the handling of complexity in large
applications that consist of a great number of interacting entities.
Traditional management and failure-handling approaches are
no longer applicable as they do not scale well with the size
of the systems and the communication required by a central
management becomes prohibitive, even with modern
highspeed networks. Therefore, engineers and computer scientists
turn to self-organization as a means to deal with large complex
systems and to keep up with the growth of such applications.</p>
      <p>
        In this paper, we present a self-organizing process for the
class of self-organizing resource-flow systems. This class can
be applied to a great variety of domains such as production
automation and logistics and systems in it can be modeled
with the Organic Design Pattern (ODP) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. The decentralized
process proposed here is analyzed and modeled with the
tools provided by the SodekoVS project [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Changes in the
configurations of agents propagate through the system like
a wave until the system in its entirety has restored a stable
state. During reconfiguration, parts of the system that are not
affected by the process or have already been reconfigured are
still able to resume their normal work. Evaluations show the
quick convergence to stable states and the reconfigurations
only affect system partitions.
      </p>
      <p>This paper also shows how to pragmatically combine a
topdown approach for the design of agent-based systems with a
bottom-up approach for the design of inter-agent coordination.
While the exact interplay of the two concepts is not fully
elaborated here, it already becomes clear that both approaches
are not necessarily orthogonal but that it is beneficial to
combine both views.</p>
      <p>This paper is structured as follows: in the following section,
the ODP, as a conceptual model for self-organizing
resourceflow systems, is discussed and a prominent application
scenario, i.e. production automation, is introduced. In Section
III, a programming model for self-organization is introduced.
Subsequently, the intended coordination dynamics of
selforganizing resource-flow systems are presented (see Section
IV) and the realization of a decentralized role allocation
strategy is discussed and evaluated (Section V). Finally, we
conclude and give prospects for future work.</p>
    </sec>
    <sec id="sec-2">
      <title>II. DESIGN OF SELF-ORGANIZING RESOURCE-FLOW</title>
      <p>SYSTEMS</p>
      <p>In production automation systems, resources are transported
between machines to subject these work peaces to a specific
sequence of work steps. The sequence of machines is typically
static. The machines that process the resources are highly
specialized and only have one particular capability, i.e. an
individual operation, they can apply to the resources. The
transport of resources is fixed as well, e.g. by a static layout of
conveyor belts. This rigid structure simplifies the management
but has far-reaching implications, since reconfigurations are
obstructed. The complete system has to be halted when
internal errors make a single system component inoperable.
Adjustments of the production process have to be carried out
by stopping the system and retooling machines.</p>
      <p>A visionary alternative are flexible, agent-based production
lines that enable failure tolerance. Machines can autonomously
reconfigure and transports of resources are carried out by
autonomous guided vehicles (AGVs). Such a scenario is depicted
in Fig. 1 where robots process a car body which is transported
between the processing stations by autonomous carts.</p>
      <p>
        There are other domains where similar resource-flows occur,
e.g., logistic scenarios or web service orchestration, we call
this class of systems Self-Organizing Resource-Flow Systems.
Their basic structure can be described with the ODP [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]
which defines the elements that constitute the system and
their relationship as shown in Fig. 2. Task define the required
processing of resources. Processing steps are carried out by
agents. The states of resources are modified by applying
capabilities. Agents have a set of capability available and
exchange resources, based on the shop layout (inputs and
outputs). Which capability an agent applies and with which
agents it exchanges resources is determined by a role1. Roles
have a precondition that describes where the resource is
coming from, which state it has, and which task has to be
performed on it. They also have a postcondition that describes
to which agent the resource has to be given and which state and
task it has after the agent has processed it. Most importantly,
the role defines the capabilitiesToApply, i.e., what an agent is
supposed to do with the resource.
      </p>
      <p>To fulfill the tasks for a resource (i.e., to apply the correct
capabilities in the correct order), a resource-flow is established
by the allocation of roles to agents that determines how the
resource is moved through the system and processed on the
way. This means the combination of the roles of the agents by
their pre- and postconditions respectively, is a connected chain
of agents along which resources in the system are forwarded
and processed. There is usually one such chain or
resourceflow for each task that has to be fulfilled in a system. Each
agent, however, can participate in more than one resource-flow
and thus be involved in several tasks at the same time.</p>
      <p>
        The interactions between the agents to handle resources are
also defined on the abstract system class level and can be
inherited by applications based on the ODP. They describe,
amongst other things, the handover of resources and the
detection of agent failures with a heartbeat mechanism. This
way, both a formal analysis of the system class [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], generalized
mechanisms to deal with problems in the system class such
as deadlocks [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] as well as a generic runtime environment [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]
become feasible.
      </p>
      <p>
        The ODP also contains an Observer/Controller (O/C). This
element of the system structure is the abstract extension
point for the self-organization or reconfiguration mechanism.
Correct system behavior is defined by invariants that have to
1Please note that some of the terminology used in ODP has a slightly
different semantics than the same terms in agent-oriented software engineering
due to the historic roots of ODP.
hold during the entire runtime of the system. Whenever the
invariants are violated, the system has to be reconfigured to
fulfill the invariants again (Restore Invariant Approach [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]).
The individual agents are able to monitor local invariants and
thus implement the observation part of the O/C. The controller
part of the O/C is then responsible to calculate a new allocation
of roles that restore the resource-flow and ensure that each
agent has a role that fits its capabilities and its input/output
relationship with other agents. How this calculation is done,
however, is not specified at this point.
      </p>
      <p>III. SYSTEMIC PROGRAMMING OF SELF-ORGANIZATION</p>
      <p>
        In the research project ”Selbstorganisation durch Dezentrale
Koordination in Verteilten Systemen”2 (SodekoVS) [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], a
programming technique is developed that allows to equip
software systems with self-organizing features. The
selforganizing inter-agent process is described by discrete design
elements [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. This enforces a conceptual separation of the
agent functioning and the coordination, i.e. the correlation of
agent activities.
      </p>
      <p>
        First, a modeling level for the description of inter-agent
self-organization is provided. This modeling level supplements
agent-oriented software engineering practices with an
orthogonal description level that concerns the dynamic properties of
agent-based software systems [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. The driving force of
selforganizing dynamics are distributed feedback loops among
system elements [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. These result from the mutual influences
among system elements and control how fluctuations in the
system context are disseminated and collectively responded to.
The systemic modeling level addresses the description of these
networks of influences and it has been found that the
visualization of the mutual interdependencies of system elements
is useful for the anticipation of the dynamics that software
systems are able to exhibit [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Using a graph-based
modeling approach, System Dynamics [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] modeling concepts
are specialized for describing Multi-agent systems (MAS).
2Self-Organisation by Decentralized Coordination in Distributed Systems
These models are given as an Agent Causal Behavior Graph
(ACBG) [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. The nodes in this graph-based modeling level
represent system variables that characterize the macroscopic
state of a MAS. These describe the number of agents that show
a specific behavior, e.g. play a role. In addition, the current
value of an interaction rate can be denoted with a specific
node type. The links among these variables denote mutual
influences and interdependencies. In this respect, influences
denote additive or subtractive contributions to node values,
e.g. when the activity of an agent increases or decreases
the stock of a warehouse. Interdependencies describe causal
relations where the activities of agents are mutually linked,
e.g. the number of hypothetical service requesters in a system
is expected to be positively linked to the number of activations
of service providers. When the number of requesters increases,
the number of activations increases as well and vice versa.
      </p>
      <p>
        Secondly, a programming model that allows the enactment
of ACBG-based prescriptions of self-organization processes
[
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] facilitates application development. The key element
is a distributed architecture for the enactment of decentralized
inter-agent processes (cf. Fig. 3) [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. This architecture serves
as a reference model for the integration of ACBG-based
processes in MAS. It provides a conceptual framework for
fitting in different self-organization mechanisms and follows
a layered structure. The topmost layer (Application Layer)
contains the realization of an agent-based application. The
contained agents are understood as self-contained providers
of functionalities (Application Functionality). The contained
agents individually control their activities and an underlying
Coordination Layer enables the purposeful affecting of agents
to concert the localized activities and establish collective
behaviors.
      </p>
      <p>
        The Coordination Layer describes an event-based
distributed system [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], which allows to realize mutual
influences among system elements. These influences correspond
to relations in ACBG-based models of inter-agent processes,
thus the layer is a means to enact the described processes in
MAS. The establishment of inter-agent influences, particularly
for the construction of self-organizing systems, is based on
two types of mechanisms [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], i.e. techniques for the
information exchange among agents (e.g. reviewed in [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]) and
mechanisms for the (adaptive) adjustments of agents (among
others classified in [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]), due to the perceived information
(see Section VI). The Coordination Layer contains two types
of functional elements for the encapsulation of these aspects.
Coordination Media are conceptual containers of so-related
interaction infrastructures. Specific interaction modes, e.g. the
mediation by an environment [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] or Linda-like tuple spaces,
are encapsulated and reused by a generic interface [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
Coordination Endpoints interact on behalf of agents via these media
and are able to influence the agent execution. These elements
are used to encapsulate and automate the coordination-related
activities. These activities concern the interactions vie Media,
i.e. the invitation and participation of interactions, as well as
the affectation of modifications in the agent models.
      </p>
      <p>
        The ACBG-based modeling of dynamics of inter-agent
coordination is exemplified in the Sections IV and V. A
configuration language [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] allows to map ACBGs to
agentbased software systems. These mappings describe the
realization of influences among agents, i.e. the coordination-related
logic that controls the initiation, participation, and reaction to
interactions as well as the media that mediate interactions. The
detailing of these models, as a systematic programming effort,
is not discussed in this article but details on the configuration
of process enactments can be found in [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ].
      </p>
    </sec>
    <sec id="sec-3">
      <title>IV. SYSTEMIC MODEL OF ADAPTATION DYNAMICS</title>
      <p>
        In [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], the systematic integration of decentralized
coordination strategies in MAS has been discussed. The conception
of the appropriate coordination is approached by modeling the
problematic, unintended behavior of applications. Based on the
identification of the Problematic Dynamic, a corresponding
Solution Dynamic is derived that supplements the application
behavior with additional interdependencies and inter-element
feedbacks to correct the system behavior and alleviate
unintended effects.
      </p>
      <p>The Problem Dynamic of an ODP-based resource-flow
systems is illustrated in Fig. 4 (right). Initially, agents are
running and one or several roles are allocated to them which
are executed in order to process resources. Random errors
make it impossible for the agent to apply one or more of
its roles. The adoption of roles that can not be applied is
controlled by a fluctuating rate (RF interrupt) that is positively
influenced by the availability of running, thus breakable,
agents and the changing number of error events (Error). This
rate describes the resource-flows (RF) that are interrupted, due
to the breaking of agents. These failures within individual
agents limit the number of running agents (negative link), thus
the problematic system behavior is dominated by a negative
feedback loop (α).</p>
      <p>If not handled, this dynamic causes the number of agents
that are not running to increase over time. The design of
an appropriate Solution Dynamic concerns the derivation of
agent behaviors that counteract this unintended effect. A very
general structure is given on the left hand side of Fig. 4.
Agents that have roles they can no longer apply are Waiting
for Reconfiguration. The rate of interrupts positively influences
the increase of this variable. The system is equipped with
a reconfiguration mechanism, and for each of the waiting
agents a new configuration is determined. Thus the system
shows a causal relation. In absence of waiting agents, no
reconfigurations take place. Occurrences of waiting agents
enforce subsequent reconfigurations (Reconfigure) to restore a
set of executable roles. The reconfigurations thus increase the
number of Running agents by complementing a counteracting
feedback loop (β).</p>
      <p>
        This Solution Dynamic deliberately omits the concrete
mechanism with which new role allocations are determined.
Also the locally applied techniques to the enactment of
reconfigurations are abstracted. A method to express the problem of
finding a fitting role allocation as a constraint-solving problem
has been presented in [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] and solved with a centralized
approach. Whenever an agent can no longer apply one of
its roles or whenever an agent breaks, the resource-flow is
interrupted. When the interruption is detected, the system
reconfigures in order to restore the flow. During the course of
the reconfiguration process, a new allocation of roles to agents
is calculated and the roles are communicated to the agents
which then apply them again. The next section describes
an alternative reconfiguration mechanisms in which new role
allocations are found in a decentralized fashion by propagating
the demand for local reconfigurations through the system.
      </p>
    </sec>
    <sec id="sec-4">
      <title>V. WAVE-LIKE DECENTRALIZED RECONFIGURATION</title>
      <p>A completely decentralized reconfiguration approach is
based on the idea that a wave of role re-allocation runs through
the system in order to re-establish the resource-flow. Assuming
that each agent is capable to exhibit a set of capabilities (see
Section II), a correct resource flow can be (re-)established by
the appropriate swapping of roles. Failing agents adopt actable
roles and in return other agents help out by providing the
unactable roles. The failing agent emits a wave of reallocations
by sending requests for assistance along the resource flow.
Each recipient has to decide locally if it is capable and will
swap roles. Generally, a single swap of roles is not enough to
reestablish the full sequence of activities and transitive changes
of roles are required.</p>
      <p>The operating principle is exemplified in Fig. 5 for a simple
scenario that requires a transitive swap of roles. Three Robots
are connected in series (1). For each agent the set of actable
capabilities are listed and the topmost capability is used in
the currently active role, e.g. Robot 1 is currently configured
to play a role that involves Cap. 1 but may also apply Cap.
3. Two types of Cart agents represent the initial provision
(Producer) and the final collection of the processed workpieces
(Consumer). Due to an error Robot1 can no longer apply Cap.
1 and sends a request for assistance (2). This request is routed
along the resource flow till it reaches an agent that is capable
to execute the needed capability, here Robot 2 which replies
to the request (3). The reply is routed to the requesting Robot
as well as the Carts that are connected to the swapping robots.
Consequently, the Robots and Carts reconfigure their local
roles. The robots update their roles and the resource flow
is reestablished by adjusting the ports in the pre- and
postconditions of the roles of the connected Carts to ensure that
workpieces reach the robots in the intended sequence. In the
best case, the originating and the receiving agents can just
switch their roles, thus restoring the resource-flow.</p>
      <p>In Fig. 5, Robot 2 is able to provide capability Cap. 1 but
Robot 1 is not able to replace Robot 2 as it is missing the
currently utilized Cap. 2 (3). Thus after the swap, Robot 1
remains in a problematic state and requests assistance (4).
This request is propagated again till it reaches a robot with
the required capability (Robot 3) and the swap proceeds as
above (5). Since Robot 1 is able to replace the currently active
capability of Robot 3, i.e. Cap. 3, the correct sequence of
capabilities is finally reestablished (6). Here, the reconfiguration
logic has been described for agents that only play on role at a
time and the subsequent simulations concerns this simplified
scenario. In principle, agents can be part of several
resourceflows and in that case, the agents only reconfigure for roles that
include the broken capability and keep processing resources
of other tasks. Consequently, the informed Carts change only
the ports of the affected roles accordingly.</p>
      <p>A detailed ACBG of the outlined reconfiguration algorithm
is illustrated in Fig. 6. This description refines the previously
given Solution Dynamic (cf. Fig. 4) as it illustrates how the
decentralized strategy relates to the dynamics of ODP. In
addition, it indicates the system-level effects of the
decentralized reconfiguration that are examined in Section V-A. When
agents are Waiting for Reconfiguration due to error events,
they show two behaviors. First, they are Deficient as one or
more roles, which are required for the processing of resources,
are inoperable. These roles are distinguished by the reason for
deficiency. Agents can be rendered deficient by error events
(By Break) or they deliberately decided to abandon a role in
order to adopt another role on behalf of another agent (By
Change). In the former case, the agents are rendered inefficient
and in the latter case agents assist other agents. Secondly,
these agents are considered to be Non-Active, i.e. they have
the capacity to play another role. Agents can concurrently play
several roles, therefore, the non-activity only denotes that the
agent is underutilized, i.e. is capable to exhibit another role.
This means that in agents that can play several roles, the
Running and Non-Active roles do not exclude each other, but
an agent can be associated to an active role (Running) and
still have the capacities to play additional roles (Non-Active).</p>
      <p>Agents are equipped with the ability to autonomously
change their allocation (Change Role). Deficient robots
indicate their shortcoming to other agents (communicate
deficiency) via a Coordination Medium (cf. Section III). The
medium controls the sequential reception of the request along
the flow of resources in the production line. Recipients
decide locally whether to change their role-allocation or not,
based on their individual abilities. The changing behavior is
distinguished by the receiving agent that adjusts the local
configuration. Non-Active agents Resume the executions since
these become operational. Running agents that adjust their role
Assist the requesting agent. These roles have different effects
on the agent population. All changes remove deficiencies and
the annotation source.targetRole == destination.Role indicates
that only those deficiencies are removed (destination) that
changing agents (source) commit to. Another commonality
is that the adjustment of a role entails the restoring of the
flow of resources among the agents (Restore RF). When
an agent has adjusted its role, those agents that received
resources from it or gave resources to it need to adapt as
well. This activity is separated from the role change as the
agents do not deliberately decide about these changes. These
are reconfigurations within connected agents that are enforced
as they are consequences of the deliberate changes. These
reconfigurations may as well by transmitted via Coordination
Media (see Section III).</p>
      <p>Assisting another agent introduces new deficiencies, as the
assisting agent is giving up one role that needs to be played
by another agent (Deficient by Change). Thus the net amount
of Non-Active agents is unaffected. However, these changes
may be necessary in settings where agents can not swap
roles directly and transitive changes of roles are required (as
exemplified in Fig. 5). When Non-Active agents Resume to
adopt a role, the number of Non-Active agents is reduced.
Still, this requires the availability of Non-Active agents.</p>
      <p>The changing activities of agents control the overall negative
feedback (β) that increases the number of operational agents
and reduces the number of deficient agents. Three auxiliary
feedbacks influence the exhibited system dynamics (δ,γ,ǫ ).
First, agents that assist others create a reinforcing feedback
loop (δ), which originates from the fact that an assisting agent
adds additional deficiencies to the system. If an agent resumes
its activities, deficiencies and non-active agents are removed
instead, thus instituting a balancing feedback (γ). The ability
to resume is limited by the amount of Non-Active agents,
leading to a third balancing feedback (ǫ ).</p>
      <sec id="sec-4-1">
        <title>A. Estimating the Effects of Adaptation Dynamics</title>
        <p>
          The outlined Solution Dynamic (cf. Fig. 4) denotes an
interagent process that can be implemented with the systemic
programming model (see Section III). Prior to the detailed design
and embedding of this process, the effected system behavior
is anticipated. One approach to estimate the dynamics of
self-organizing MAS is their simulation in stochastic process
algebra models [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]. It is important to note that the resulting
stochastic models abstract from the agent implementations and
their internal reasoning. Instead, stochastic terms are used
to describe the dynamics with which specific behaviors are
adopted or left. The number of currently active process terms
resembles the number of agents that show specific behavior,
i.e. the variable-values of an ACBG-based process description.
        </p>
        <p>
          Fig. 7 illustrates the simulation model used to anticipate
the Solution Dynamic. The model is given in stochastic
πcalculus [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ] and simulated with the Stochastic Pi Machine3
(SPIM). Details on the simulation language and graphical
notation can be found in [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ]. Agents are modeled as processes
that communicate/interact via channels. The stochastics of
interactions are given by annotating processes with delays
(τ ) and assigning interaction rates to channels [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ], [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ]. The
notation x denotes the sending of data on the channel x and
x denotes the reception of data via the channel x.
Fig. 7. Simulation Model of the Solution Dynamic in Stochastic π-Calculus.
        </p>
        <p>In the simulation model, the number of agent behaviors that
are exhibited are expressed by the number of active processes.
Processes communicate via two channels. The channel reqb is
used to communicate requests for a role-switch, due to an
internal error, i.e. the internal breaking of the requester. When
roles are requested to be switched in order to assist an agent,
these requests are send via the channel reqc. Operative agents
are denoted by the running process. Internal errors occur with
a fixed rate, as defined by the delay τb. Inoperative robots
are represented the concurrent execution of the def icientb
and non-active processes. Deficient processes end when a
request for re-assignment of the affected role is processed by a
recipient. The non-active processes become resume processes
when they receive any request for re-allocation. The time delay
τrc resembles the time needed to reconfigure. Afterwards, the
agent is in operation, i.e. exhibits the running process. When
running agents receive a request to switch roles, they convert
to the concurrent execution of the assist and def icientc
processes. The assistance transforms back to the running
process, delayed by the time to reconfigure the agent (τrc). The
def icientc processes describe the search for another agent that
is able to play the role that an assisting agent possessed before
the assisting adjustment. Deficiency ends when another agent
processes the request for a role change, communicated via the
channel reqc. This simulation model abstracts from the agents
that participate in the system. The time needed to restore the
resource flow (cf. Fig. 6), i.e. the adjustments of the roles of
the directly connected agents to reestablish the correct flow of
resources among machines, is part of the time delay τrc. We
assume that the rerouting of resource transportations is always
possible.</p>
        <p>Simulations indicate that, at a high enough level of
redundancy, the system reliably recovers due to the decentralized
switching of agent roles. This process describes a structure
formation as the system maintains the operational system
configuration. The fraction of recovering situations is predicted
by this simulation to depend on the redundancy level in a
similar way as is shown in the results section below.</p>
      </sec>
      <sec id="sec-4-2">
        <title>B. Agent-based Realization</title>
        <p>
          After the anticipation of the affected system behavior, this
reconfiguration strategy has been integrated in a MAS by using
systemic programming model (see Section III). The system
implementation (Application Layer, see Figure 3) makes use
of the freely available Jadex4 agent framework. The Robots
and Carts within production lines are represented by
Jadexagents and the exchanged workpieces are mimicked by objects
that are exchanged via FIPA Agent Communication Language
(ACL) messages. A realization of the Coordination Layer (see
Fig. 3) for this agent platform is utilized [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ].
        </p>
        <p>For this application scenario a tailored Medium realization
is utilized that routes request and reply messages along the
resource flow. Conceptually though, agents are aligned in
a circle thus all agents can be reached independent of the
location of the incapacitated agent. Endpoints encapsulate the
logic to coordinate the reconfiguration process and interact
via the Medium. Endpoints observe the agent-operation and
initiate the reconfiguration process by sending a help request
if an agent becomes deficient. The help request is forwarded
through the medium. Each endpoint along the message path
decides whether to adopt the deficient agent’s role or continues
forwarding the help request. If the endpoint decides to adopt
the role, a reply is sent. The reply is sent in both directions
through the medium to inform all agents which are affected
(robots and connected carts) by the reconfiguration process.
Again, each endpoint receiving the reply decides to change the
agent configuration. The reply is sent backward through the
medium until all affected agents are informed. If an endpoint
receives multiple coordination messages these messages are
queued and processed in the order of their arrival.</p>
      </sec>
      <sec id="sec-4-3">
        <title>C. Implementation Test Results</title>
        <p>The example system illustrated in Fig. 5 has been
implemented and tested for measuring the handling of breaking
capabilities. When the robot is rendered incapacitated by such
an event, the associated endpoint notices this and initiates
3http://research.microsoft.com/en-us/projects/spim/
4http://jadex-agents.informatik.uni-hamburg.de/
an interaction via the Coordination Medium that triggers the
swapping of roles. The first swap involves the incapacitated
agent that is Deficient by Break. In this system configuration,
a second swap is required that resolves a transient Deficient
by Change agent behavior.</p>
        <p>In addition, we examine the relation of the redundancy
within agents with the effectiveness of the reconfigurations.
The effectiveness of the reconfiguration procedure is
influenced by the number of alternative capabilities that are
available to the individual agents. This level of redundancy
is measured by the ratio of the number of individual
capabilities (Ci), to the absolute number of capabilities (C)
that are required for the processing of a workpiece ( CCi ).
In the following, we assume a homogeneous setting, where
the robots are equipped with an equal number of redundant
capabilities. The composition of these capabilities is normally
distributed. In Fig. 8, measuring results for a simple scenario
with 10 different capabilities and agents are shown. Each
single run processes of a fixed number of workpieces while,
at two fixed instances of time, a randomly selected agent
is incapacitated. A first estimate of the effectiveness of the
reconfigurations is the number of exchanged messages (see
Fig. 8). The number of messages increases quickly when the
number of redundancies decreases. This measurement can be
analytically fitted with (c1 ∗ (1 − x))2 + c2.5. A complementary
measurement is the number of hops that requests for assistance
travel before a swapping agents is found. This describes the
logical distance between the swapping agents. The results for
this measurement have shown the same characteristics like the
message count and can be fitted with the same function (but
different constants). Thus the decentralized reconfiguration
strategy is particularly suited for production lines where the
capability types are often available.</p>
        <p>
          Ant Colony Optimization has been used for decentralised
control in production systems. [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ] uses the mechanism to
control autonomous vehicles, similar to our carts. The
distribution of jobs to production machines has not been a concern
there. The more complex problem of scheduling jobs to run
on certain machines has, e.g., been tackled in [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ] and [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ].
        </p>
        <p>5c1, c2 are application dependent constants. In this case, these are 10 and
12 respectively.</p>
        <p>However, these papers from operations research focus on
optimization of a shop floor and do not take into account
robustness and reconfiguration that happens at run-time. Also,
only partial problems are investigated, either focusing on the
routing of carts or the scheduling of production machines.</p>
        <p>
          The work presented here concerns the run-time
reconfiguration by self-organization. The maintained structure is a
correct sequence of agents that are perturbed by individual
failures that incapacitate agents. Prominent alternatives to the
process presented here are centralized/distributed constraint
solving techniques and market-based mechanisms. The correct
configuration is described with constraints and an approach
to use centralized constraint solving to restore functionality
after a failure has already been published [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ]. Consequently,
distributed constraint solving techniques [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ] can be used as
well, e.g. as studied in [
          <xref ref-type="bibr" rid="ref27">27</xref>
          ]. An example for market-based
mechanisms is given in [
          <xref ref-type="bibr" rid="ref28">28</xref>
          ]. A manufacturing line is provided
with a flexible transport mechanism and work pieces and
machine agents negotiate for the execution of working steps.
In a way, the algorithm proposed in this paper is an optimistic
and minimalistic version of a distributed constraint solver. By
exchanging roles, the agents collectively restore the invariants
of the system. The strategy is minimalistic since the number
of required messages and the amount of shared information is
reduced. It is optimistic because the assisting role changed are
carried out before the complete solution is calculated. Its main
advantage over traditional distributed constraint solvers is the
minimal amount of calculation that is involved at the agents.
They can therefore be very small with only minimal CPU
power and RAM, making them cheap and easily replaceable.
        </p>
        <p>
          Here, these design alternatives are qualitatively
characterized by a subset of criteria from [
          <xref ref-type="bibr" rid="ref29">29</xref>
          ]. Their quantitative
comparison is left for future work. A first aspect is the necessary
communication. The presented process minimizes the message
content and only the information that immediately necessary
to resolve a local failure is communicated. The number of
messages ranges from a single role swap (best case) to the
successive swapping of roles by all agents (worst case). The
dependence of this measure on structural properties is shown
in Figure 8. The communications are only carried out when
failures are present. Alternatives involve that
coordinationrelated messages have to be exchanged during the normal
system operation, e.g. as workpieces constantly negotiate their
further processing [
          <xref ref-type="bibr" rid="ref28">28</xref>
          ]. Also the amount of computations and
the considered/exchanged knowledge about the system state
is minimized. The participation in the process involves only
the local consideration whether an agent is capable to play a
required role. Now further information about the global system
state is processed. Centralized constraint solvers require the
full knowledge about the system and decentralized solvers
require the information from neighboring agents. In addition,
the adaptations are carried out concurrently to the system
operation. Unaffected partitions of the production line continue
to work. Finally, the accuracy of the quality of the found
solution, i.e. stable configuration, varies. The process follows
the heuristic that role swaps of nearby agents are favored over
the swaps of (logically) distant agents. The explicitly treatment
of the underlying constraint problem allows in principle to
prepare the optimization of the found solutions.
        </p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>VII. CONCLUSIONS</title>
      <p>In this paper, we have described a decentralized
reconfiguration process to restore valid system configurations in
self-organizing resource-flow systems. The reconfiguration
algorithm works by exchanging roles with neighboring agents
and by propagating change requests in a wave-like manner
until all of them could be satisfied. The mechanism has
been developed by combining a top-down process for the
description of resource-flow systems and a bottom-up process
for the design of agent coordination. Its performance has been
demonstrated with a number of simulations.</p>
      <p>The most interesting feature of the decentralized process
proposed here is that reconfigurations are organized locally in
the production line, i.e. the rest of the system is not impaired
by a failure. Thus, parts of the system that are not involved into
a local reconfiguration can continue to run normally. The way
the reconfiguration propagates also ensures that only a small
amount of agents is in a state of non-processing resources
at an instance of time. This feature will be prominent also
when using the wave-like algorithm in non-linear production
situations, which is a straight-forward generalization instance.
Local heuristics taking into account exchange–success rates
could be predefined or evolved using learning algorithms.
Future work includes a more detailed study on the combination
of bottom-up design of coordination methods as proposed in
SodekoVS and of top-down design methodologies as promoted
with the ODP. This will also include a comparison of their
respective advantages and problems that occur when both
worlds are combined.</p>
    </sec>
    <sec id="sec-6">
      <title>ACKNOWLEDGMENT</title>
      <p>This research is partly sponsored by the German research
foundation (DFG) in the project SodekoVS and in the DFG
special priority program “Organic Computing” (SPP 1183) in
the project SAVE ORCA.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>H.</given-names>
            <surname>Seebach</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Ortmeier</surname>
          </string-name>
          , and W. Reif, “
          <source>Design and Construction of Organic Computing Systems,” IEEE Congress on Evolutionary Computation</source>
          ,
          <year>2007</year>
          , pp.
          <fpage>4215</fpage>
          -
          <lpage>4221</lpage>
          , Sept.
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>J.</given-names>
            <surname>Sudeikat</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Braubach</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Pokahr</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Renz</surname>
          </string-name>
          , and W. Lamersdorf, “
          <article-title>Systematically engineering selforganizing systems: The sodekovs approach,” Electronic Communications of the EASST</article-title>
          , vol.
          <volume>17</volume>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>M.</given-names>
            <surname>Gu</surname>
          </string-name>
          ¨demann,
          <string-name>
            <given-names>F.</given-names>
            <surname>Nafz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Ortmeier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Seebach</surname>
          </string-name>
          , and W. Reif, “
          <article-title>A specification and construction paradigm for Organic Computing systems</article-title>
          ,” in Proceedings of the Second IEEE International Conference on SelfAdaptive and
          <string-name>
            <surname>Self-Organizing</surname>
            <given-names>Systems</given-names>
          </string-name>
          ,
          <year>2008</year>
          , pp.
          <fpage>233</fpage>
          -
          <lpage>242</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>J.-P.</given-names>
            <surname>Stegho</surname>
          </string-name>
          ¨fer,
          <string-name>
            <given-names>P.</given-names>
            <surname>Mandrekar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Nafz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Seebach</surname>
          </string-name>
          , and W. Reif, “
          <article-title>On Deadlocks and Fairness in Self-organizing Resource-Flow Systems,”</article-title>
          <source>in Proceedings of the 30th International Conference on Architecture of Computing Systems (ARCS)</source>
          ,
          <source>LNCS 5974</source>
          . Springer,
          <year>2010</year>
          , pp.
          <fpage>97</fpage>
          -
          <lpage>100</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>F.</given-names>
            <surname>Nafz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Ortmeier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Seebach</surname>
          </string-name>
          , J.-P. Stegho¨fer, and W. Reif, “
          <article-title>A generic software framework for role-based Organic Computing systems</article-title>
          ,” in SEAMS 2009: ICSE 2009 Workshop Software Engineering for Adaptive and
          <string-name>
            <surname>Self-Managing</surname>
            <given-names>Systems</given-names>
          </string-name>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>J.</given-names>
            <surname>Sudeikat</surname>
          </string-name>
          and
          <string-name>
            <given-names>W.</given-names>
            <surname>Renz</surname>
          </string-name>
          , “
          <article-title>Qualitative modeling of mas dynamics - using systemic modeling to examine the intended and unintended consequences of agent coaction,” in Agent-Oriented Software Engineering</article-title>
          X. Springer,
          <year>2009</year>
          , to be published.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Brun</surname>
          </string-name>
          , G. di Marzo Serugendo,
          <string-name>
            <given-names>C.</given-names>
            <surname>Gacek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Giese</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Kienle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Litoiu</surname>
          </string-name>
          , H. Mu¨ller, M. Pezze`, and
          <string-name>
            <given-names>M.</given-names>
            <surname>Shaw</surname>
          </string-name>
          ,
          <source>Software Engineering for Self-Adaptive Systems</source>
          . Springer-Verlag,
          <year>2009</year>
          , ch.
          <source>Engineering SelfAdaptive Systems through Feedback Loops</source>
          , pp.
          <fpage>48</fpage>
          -
          <lpage>70</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>W.</given-names>
            <surname>Renz</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Sudeikat</surname>
          </string-name>
          , “
          <article-title>Modeling feedback within mas: A systemic approach to organizational dynamics,”</article-title>
          <source>in Organised Adaptation in MultiAgent Systems</source>
          ,
          <year>2008</year>
          , pp.
          <fpage>72</fpage>
          -
          <lpage>89</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>J. D.</given-names>
            <surname>Sterman</surname>
          </string-name>
          , Business Dynamics - Systems Thinking and
          <article-title>Modeling for a Complex World</article-title>
          .
          <source>McGraw-Hill</source>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>J.</given-names>
            <surname>Sudeikat</surname>
          </string-name>
          and
          <string-name>
            <given-names>W.</given-names>
            <surname>Renz</surname>
          </string-name>
          , “MASDynamics:
          <article-title>Toward systemic modeling of decentralized agent coordination,” in Kommunikation in Verteilten Systemen, ser</article-title>
          .
          <source>Informatik aktuell</source>
          ,
          <year>2009</year>
          , pp.
          <fpage>79</fpage>
          -
          <lpage>90</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11] --, “Decomas:
          <article-title>An architecture for supplementing mas with systemic models of decentralized agent coordination,”</article-title>
          <source>in Proc. of the 2009 IEEE/WIC/ACM Int. Conf. on Intel. Agent Tech., 2009</source>
          , pp.
          <fpage>104</fpage>
          -
          <lpage>107</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12] G. Mu¨hl, L. Fiege, and
          <string-name>
            <given-names>P.</given-names>
            <surname>Pietzuch</surname>
          </string-name>
          ,
          <source>Distributed Event-Based Systems</source>
          . Springer-Verlag New York, Inc.,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>J.</given-names>
            <surname>Sudeikat</surname>
          </string-name>
          and
          <string-name>
            <given-names>W.</given-names>
            <surname>Renz</surname>
          </string-name>
          ,
          <source>Applications of Complex Adaptive Systems. IGI Global</source>
          ,
          <year>2008</year>
          , ch.
          <source>Building Complex Adaptive Systems: On Engineering Self-Organizing Multi-Agent Systems</source>
          , pp.
          <fpage>229</fpage>
          -
          <lpage>256</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>T.</given-names>
            <surname>DeWolf</surname>
          </string-name>
          and T. Holvoet, “
          <article-title>Decentralised coordination mechanisms as design patterns for self-organising emergent systems,” in Engineering Self-Organising Systems</article-title>
          , vol.
          <volume>4335</volume>
          /
          <year>2007</year>
          ,
          <year>2007</year>
          , pp.
          <fpage>28</fpage>
          -
          <lpage>49</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>G. D. M. Serugendo</surname>
            ,
            <given-names>M. P.</given-names>
          </string-name>
          <string-name>
            <surname>Gleizes</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Karageorgos</surname>
          </string-name>
          , “
          <article-title>Selforganisation and emergence in mas: An overview</article-title>
          ,” in Informatica, vol.
          <volume>30</volume>
          ,
          <year>2006</year>
          , pp.
          <fpage>45</fpage>
          -
          <lpage>54</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>H. V. D.</given-names>
            <surname>Parunak</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Brueckner</surname>
          </string-name>
          , “
          <article-title>Engineering swarming systems,” in Methodologies and Software Engineering for Agent Systems</article-title>
          . Kluwer,
          <year>2004</year>
          , pp.
          <fpage>341</fpage>
          -
          <lpage>376</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>J.</given-names>
            <surname>Sudeikat</surname>
          </string-name>
          and
          <string-name>
            <given-names>W.</given-names>
            <surname>Renz</surname>
          </string-name>
          , “
          <article-title>Programming adaptivity by complementing agent function with agent coordination: A systemic programming model and development methodology integration</article-title>
          ,
          <source>” Communications of SIWN</source>
          , vol.
          <volume>7</volume>
          , pp.
          <fpage>91</fpage>
          -
          <lpage>102</lpage>
          , may
          <year>2009</year>
          , iSSN 1757-
          <fpage>4439</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18] --, “
          <article-title>On the modeling, refinement and integration of decentralized agent coordination - a case study on dissemination processes in networks</article-title>
          ,” in Self-Organizing
          <string-name>
            <surname>Architectures</surname>
          </string-name>
          ,
          <year>2010</year>
          , pp.
          <fpage>251</fpage>
          -
          <lpage>274</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>F.</given-names>
            <surname>Nafz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Ortmeier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Seebach</surname>
          </string-name>
          , J.-P. Stegho¨fer, and W. Reif, “
          <article-title>A universal self-organization mechanism for role-based Organic Computing systems</article-title>
          ,”
          <source>in Proceedings of the Sixth International Conference on Autonomic and Trusted Computing (ATC-09)</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>M.</given-names>
            <surname>Casadei</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Gardelli</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Viroli</surname>
          </string-name>
          , “
          <source>Simulating Emergent Properties of Coordination in Maude: the Collective Sorting Case,” in 5th Int. Workshop on the Foundations of Coordination Languages and Software Architectures (FOCLASA)</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>C.</given-names>
            <surname>Priami</surname>
          </string-name>
          , “
          <string-name>
            <surname>Stochastic</surname>
          </string-name>
          π-calculus,”
          <source>Computer Journal</source>
          , vol.
          <volume>6</volume>
          , pp.
          <fpage>578</fpage>
          -
          <lpage>589</lpage>
          ,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>A.</given-names>
            <surname>Phillips</surname>
          </string-name>
          ,
          <source>Symbolic Systems Biology: Theory and Methods</source>
          . Jones and Bartlett Publishers,
          <year>2010</year>
          , ch.
          <source>A Visual Process Calculus for Biology.</source>
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>V. A.</given-names>
            <surname>Cicirello</surname>
          </string-name>
          and
          <string-name>
            <given-names>S. F.</given-names>
            <surname>Smith</surname>
          </string-name>
          , “
          <article-title>Ant colony control for autonomous decentralized shop floor routing</article-title>
          ,” in
          <source>International Symposium on Autonomous Decentralized Systems</source>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>N.</given-names>
            <surname>Liouane</surname>
          </string-name>
          , I. Saad,
          <string-name>
            <given-names>S.</given-names>
            <surname>Hammadi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Borne</surname>
          </string-name>
          , “
          <article-title>Ant systems &amp; local search optimization for flexible job shop scheduling production</article-title>
          ,
          <source>” Int. Journal of Comp., Comm. &amp; Control</source>
          , vol.
          <volume>2</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>174</fpage>
          -
          <lpage>184</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>C.</given-names>
            <surname>Gagne</surname>
          </string-name>
          ´,
          <string-name>
            <given-names>M.</given-names>
            <surname>Gravel</surname>
          </string-name>
          , and
          <string-name>
            <given-names>W. L.</given-names>
            <surname>Price</surname>
          </string-name>
          , “
          <article-title>Solving real car sequencing problems with ant colony optimization</article-title>
          ,”
          <source>European Journal of Operational Research</source>
          , vol.
          <volume>174</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>1427</fpage>
          -
          <lpage>1448</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>M.</given-names>
            <surname>Yokoo</surname>
          </string-name>
          , E. Durfee,
          <string-name>
            <given-names>T.</given-names>
            <surname>Ishida</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Kuwabara</surname>
          </string-name>
          , “
          <article-title>The distributed constraint satisfaction problem: Formalization and algorithms</article-title>
          ,
          <source>” IEEE Transactions on Knowledge and Data Engineering</source>
          , vol.
          <volume>10</volume>
          , no.
          <issue>5</issue>
          , pp.
          <fpage>673</fpage>
          -
          <lpage>685</lpage>
          ,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>G.</given-names>
            <surname>Clair</surname>
          </string-name>
          , E. Kaddoum,
          <string-name>
            <given-names>M.-P.</given-names>
            <surname>Gleizes</surname>
          </string-name>
          , and G. Picard, “
          <article-title>Self-regulation in self-organising multi-agent systems for adaptive and intelligent manufacturing control,”</article-title>
          <source>in SASO '08: Proc. of the 2008 Sec. IEEE Int. Conf. on Self-Adaptive and Self-Organizing Systems</source>
          ,
          <year>2008</year>
          , pp.
          <fpage>107</fpage>
          -
          <lpage>116</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>N. R.</given-names>
            <surname>Jennings</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Bussmann</surname>
          </string-name>
          , “
          <article-title>Agent-based control systems</article-title>
          ,
          <source>” IEEE Control Systems</source>
          , vol.
          <volume>23</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>61</fpage>
          -
          <lpage>74</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>E.</given-names>
            <surname>Kaddoum</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.-P.</given-names>
            <surname>Gleizes</surname>
          </string-name>
          , J.-P. George´, and G. Picard, “
          <article-title>Characterizing and evaluating problem solving self-* systems,”</article-title>
          <source>in COMPUTATIONWORLD '09: Proc. of the 2009 Computation World</source>
          ,
          <year>2009</year>
          , pp.
          <fpage>137</fpage>
          -
          <lpage>145</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>