17.04.2015 Views

DARPA ULTRALOG Final Report - Industrial and Manufacturing ...

DARPA ULTRALOG Final Report - Industrial and Manufacturing ...

DARPA ULTRALOG Final Report - Industrial and Manufacturing ...

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!