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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

• For tasks, the UID of the direct object also<br />

encoded as a symbol.<br />

• For allocations, the allocation results observed.<br />

A design objective of Castellan was to reduce the amount<br />

of b<strong>and</strong>width consumed by the event traces while<br />

retaining key data <strong>and</strong> minimizing CPU consumption.<br />

This was accomplished through a variety of approaches,<br />

including:<br />

• Compression of UID <strong>and</strong> other symbols using a<br />

space efficient symbol id based protocol.<br />

• Detecting <strong>and</strong> transmitting only changes in the<br />

allocation results for each task.<br />

• Batching mechanisms, e.g. serializing batches of<br />

messages rather than individual messages.<br />

The generated stream of events can be delivered to the<br />

Castellan server implement during planning. The message<br />

transport between the client implementation <strong>and</strong> the<br />

server implementation can be varied depending on the<br />

application. Currently, a buffered relay is used to transmit<br />

events through batches of serialized events. (A relay is an<br />

point-to-point communications mechanism between<br />

Cougaar agents.) This form of “in-b<strong>and</strong>” communications<br />

shares the communications channel with other Cougaar<br />

message traffic <strong>and</strong> hence is more suitable for distributed<br />

control applications in which agents need to be aware of<br />

the detailed planning status of other agents within the<br />

society. Alternative message transport implementations<br />

(e.g. using a separate communications backplane) can<br />

provide non-intrusive analysis for debugging <strong>and</strong> testing.<br />

The scalability of Castellan as a real-time monitoring tool<br />

is limited primary by the following factors:<br />

• B<strong>and</strong>width of the links between the monitoring<br />

agents. For example, a 160,000 element event<br />

trace from a 30 agent, 60 min. long planning run<br />

in total takes approximately a total of 8 MB of<br />

b<strong>and</strong>width. This is not significant for a LAN test<br />

environment but may be an issue for real world<br />

operating environments.<br />

• The impact on CPU consumption for each agent<br />

being monitored. In a small Cougaar society of<br />

~30 agents, this was measured to impact total<br />

planning time by approximately 5%.<br />

• The processing bottleneck at the server agent.<br />

While receiving the data is not very expensive,<br />

inserting the results at run time into a SQL<br />

database tends to overwhelm most typical<br />

processors.<br />

In large agent societies, we do not expect that all agents<br />

can be monitored by a single server due to the volume of<br />

data generated. Instead, Castellan can be configured to<br />

monitor any subset of agents as desired, e.g. a community<br />

or an enclave. For debugging <strong>and</strong> profiling purposes, the<br />

data can then be merged after the run is complete.<br />

3. Graph Reduction Using Subgraph<br />

Isomorphism<br />

This section describes a significant application of the<br />

Castellan system that enables real-time <strong>and</strong> off-line<br />

analysis of the planning functions of a distributed agent<br />

system. Existing graph “clustering” <strong>and</strong> reduction<br />

approaches have been used in data mining applications to<br />

find meaningful repeated subgraphs within a larger graph.<br />

[1][2]<br />

The plan graphs generated during a single planning run of<br />

a Cougaar agent society can be extremely large. For<br />

example, the event traces generated from a relatively<br />

small test planning society engaged in logistics planning<br />

consisting of more than thirty agents resulted in over one<br />

hundred sixty thous<strong>and</strong> events <strong>and</strong> a very large<br />

corresponding plan graph with thous<strong>and</strong>s of individual<br />

tasks, plan elements <strong>and</strong> assets. In this section, a general<br />

graph reduction algorithm is described that can be used to<br />

reduce the size of the plan graph in a manner tailored to<br />

specific applications.<br />

We define a plan graph P={N,E} as a set of nodes<br />

N={T,A} <strong>and</strong> a set of directed, attributed edges E={L,<br />

X,G}. Here, the nodes N consist of a set of tasks T <strong>and</strong> a<br />

set of assets A. The attributes associated with each task t<br />

∈ T are expressed as a tuple (V,Uid,Agent) <strong>and</strong> can<br />

include other properties depending on the amount of<br />

detail collected within the event trace. The plan graph P<br />

is a directed acyclic graph (DAG) since no cycles can<br />

exist in the current Cougaar task grammar. The output of<br />

the algorithm is a reduced graph R={N’,E’}.<br />

The set of edges E consist of a set of allocations L, a set<br />

of expansions X, <strong>and</strong> a set of aggregations G. Also, the<br />

nature of the Cougaar task grammar dictates a number of<br />

additional constraints on the plan graph. These include:<br />

• Each task node t 1 ∈ T can be connected to either<br />

an asset node s∈S through an allocation edge l<br />

or another task node t 2 through an expansion or<br />

allocation edges e ∈{X, G}.<br />

• Each task node t ∈ T has exactly one edge (<strong>and</strong><br />

hence one parent node) except for those task<br />

nodes which are connected by a set of edges G’<br />

⊂G.<br />

• The set of aggregation edges G is subdivided<br />

into a set of disjoint subsets which have the same<br />

destination node.

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

Saved successfully!

Ooh no, something went wrong!