DARPA ULTRALOG Final Report - Industrial and Manufacturing ...
DARPA ULTRALOG Final Report - Industrial and Manufacturing ...
DARPA ULTRALOG Final Report - Industrial and Manufacturing ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Coordinating Control Decisions of Software Agents for Adaptation to Dynamic<br />
Environments<br />
Y. Hong 1 , S. R. T. Kumara 1<br />
1 Harold <strong>and</strong> Inge Marcus Department of <strong>Industrial</strong> <strong>and</strong> <strong>Manufacturing</strong> Engineering<br />
The Pennsylvania State University, University Park, PA, 16802, USA<br />
Abstract<br />
We suggest a design for an infrastructure-level load control mechanism of a multiagent system, Cougaar. The<br />
purpose of control is to strengthen the robustness of a software multiagent system with respect to load<br />
balancing such that the system can keep working without disastrous performance degradation even under<br />
occasional harsh running environments. Resource control in multiagent systems is carried out mainly by<br />
agent’s self-control, which makes the control problem very difficult. We suggest a hierarchical control<br />
structure in order to reduce complexity of control while inducing coherent movement of agents.<br />
Keywords:<br />
load balancing, hierarchical control, multi-agent system<br />
1 INTRODUCTION<br />
Multiagent systems have significant advantages in the<br />
development of complex distributed software system [1].<br />
Agents are naturally matched to components in complex<br />
systems. Therefore, complicated interactions among the<br />
subcomponents can be represented by agent interactions.<br />
Due to the modularity <strong>and</strong> autonomy of agents, the<br />
application could be composed by assembling the agents.<br />
The multiagent systems are flexible in design. Partial<br />
changes in the system could be localized for a few agents<br />
without affecting the rest of the system. Thus, constructing<br />
or altering a large software system could become easier<br />
with agent technology.<br />
In addition to the advantages in designing <strong>and</strong> constructing<br />
a large system, robustness is also an important factor for a<br />
multiagent system to be a good software construction<br />
technology. Robustness of a software represents “the<br />
ability of software to react appropriately to abnormal<br />
circumstances” [2]. Like many biological or man-made<br />
systems, through feedback controls <strong>and</strong> redundancy of<br />
components (agents), the software system can also cope<br />
with uncertainties in dynamic environments <strong>and</strong> improve its<br />
robustness at the expense of increasing complexity [3][4].<br />
The time varying computational load could be one of<br />
threats to robustness. A sudden excessive workload could<br />
degrade performance to an extent in which the system<br />
cannot meet minimum requirements on response time.<br />
This is in specific very critical for real time applications.<br />
Because agent systems are distributed <strong>and</strong> decentralized,<br />
it is hard to build a control mechanism by which agents can<br />
adapt to the changing environments effectively <strong>and</strong><br />
coherently. In order to resolve this problem, we suggest an<br />
infrastructure-level load control mechanism for a<br />
multiagent system, Cougaar. The reason we consider<br />
infrastructure level control mechanism is that the<br />
application developers’ efforts to secure robustness of<br />
software with respect to the load control could be much<br />
reduced. Multiagent systems such as Cougaar [5] <strong>and</strong><br />
Jade [6] provide many infrastructure level services, which<br />
save the application developers efforts required to build<br />
basic functions of the multiagent system. Load control<br />
function can be included in the infrastructure <strong>and</strong> its<br />
necessity has been emphasized [7]. Infrastructure can hide<br />
the complexity of controlling resource allocation such that<br />
application developers tune the performance using highlevel<br />
abstract parameters for load control.<br />
2. LOAD BALANCING IN MULTIAGENT SYSTEMS<br />
In multiagent systems, system functions are decomposed<br />
into software agents. Agents carry out system functions by<br />
exchanging services with each other [7]. Agents have their<br />
own work <strong>and</strong> specialize in a specific service. Agents<br />
request some service from another agent who is<br />
specialized in that service. Providing the service requires<br />
the use of some computational resource such as CPU<br />
time. Agents are distributed on multiple machines, which<br />
are connected through communication networks. More<br />
than one agent can be on a machine <strong>and</strong> share the CPU<br />
time. The frequency of service request of each agent is<br />
time varying depending on real world, which the application<br />
deals with.<br />
Considerable research has been done on dynamic load<br />
balancing for computer clustering. However, we cannot<br />
apply this directly to a multiagent system [7]. As noted by<br />
chow <strong>and</strong> kwok [7], multiagent systems (MAS) are different<br />
from computer clustering with respect to load balancing.<br />
Firstly, in MAS, agents are continuously running while in<br />
computer clustering, jobs submitted by users are killed<br />
after completion. Secondly, communications between<br />
agents in multiagent system are highly variable, whereas,<br />
communications between jobs usually has static patterns.<br />
Another difference, which is not pointed out by chow <strong>and</strong><br />
kwok, is that agents could proactively manage their<br />
workload.