taems / mass technical overview

28
Taems / MASS Technical Overview Bryan Horling University of Massachusetts [email protected] Régis Vincent SRI [email protected]

Upload: dyami

Post on 03-Feb-2016

21 views

Category:

Documents


0 download

DESCRIPTION

Taems / MASS Technical Overview. Bryan Horling University of Massachusetts [email protected]. R égis Vincent SRI [email protected]. Overview. Taems - a language for modeling the quantitative behavior of tasks and task interactions - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Taems / MASS  Technical Overview

Taems / MASS Technical Overview

Bryan Horling

University of Massachusetts

[email protected]

Régis VincentSRI

[email protected]

Page 2: Taems / MASS  Technical Overview

Overview

Taems - a language for modeling the quantitative behavior of tasks and task interactions

MASS - a simulation environment that uses Taems as the basis of agent activity

Page 3: Taems / MASS  Technical Overview

Source and Licensing

Java implementations of Taems and MASS are available Java 1.3+

Source is included Apache 2.0 License

http://mas.cs.umass.edu/download.html

(Forthcoming from GITI as well)

Page 4: Taems / MASS  Technical Overview

Documentation Implementation

JavaDoc APIs available online Topic-specific HOWTOs online Sample code in JAF distribution These slides

Concepts Taems white paper Various publications (see Taems and MASS

webpages)

http://mas.cs.umass.edu/

Page 5: Taems / MASS  Technical Overview

High-Level Overview

Agent Agent Agent

MASS

New Taems StructureAction StartedCommunication

Action CompletedCommunication

Manages TimeSimulates Method ExecutionEnforces Taems Semantics

Reports Activity Results

Page 6: Taems / MASS  Technical Overview

Taems at a glance Task groups represent goals Tasks represent a sub-goal Methods are executable primitives Resources model resource state Interrelationships model interactions between nodes QAFs specify how quality is accrued from sub-tasks

Page 7: Taems / MASS  Technical Overview

Inside a Taems Structure

Directed graph, made up of nodes Each node has a set of defined properties

Methods have outcomes Interrelationships define effect, etc.

These fields are explained in the white paper

method name Vacuum-Floor agent Me supertasks Clean-Floor quality_distribution 5.0 1.0 duration_distribution 10.0 1.0 cost_distribution 0.0 1.0

facilitates name Facilitates_1 from Vacuum-Floor to Wash-Floor quality_power 0.3 1.0 duration_power 0.2 1.0 cost_power 0.0 1.0 nodes

Page 8: Taems / MASS  Technical Overview

Constructing Taems Structures

Textual Taems (ttaems)(spec_agent (label Me))(spec_task_group (label Clean-Kitchen) (agent Me) (subtasks Clean-Floor Wash-Counters Put-Away-Dishes) (qaf q_sum))(spec_task (label Clean-Floor) (agent Me) (subtasks Vacuum-Floor Wash-Floor) (supertasks Clean-Kitchen) (qaf q_max))(spec_task (label Put-Away-Dishes) (agent Me) (subtasks Slow-And-Safe Quick-And-Dirty) (supertasks Clean-Kitchen) (qaf q_exactly_one))

(spec_method (label Vacuum-Floor) (agent Me) (supertasks Clean-Floor) (outcomes (Outcome_1 (density 1.0) (quality_distribution 5.0 1.0) (duration_distribution 10 1.0) (cost_distribution 0 1.0) ) ))(spec_method (label Wash-Floor) (agent Me) (supertasks Clean-Floor) (outcomes (Outcome_1 (density 1.0) (quality_distribution 7.0 1.0) (duration_distribution 15 1.0) (cost_distribution 0 1.0) )

Page 9: Taems / MASS  Technical Overview

Constructing Taems Structures

Visual Editor - taemsview

Page 10: Taems / MASS  Technical Overview

Pre-Taems

Preprocessed Taems (ptaems) Taems template language Parameterizable, dynamically generate many

structures from one specification

Conceptually similar to C preprocessor directives Variables (#define) Control structures (e.g., #if, #while) Functions (e.g., #sum, #prod, #random_float)

foo.ptaems foo.ttaemsfooparameters preprocess parse

Page 11: Taems / MASS  Technical Overview

Reading Taems

Taems library includes a parser:ReadTTaems reader = new ReadTTaems(null)

Taems task = reader. readTTaems(stream);

pTaems:PreProcessorParser parser = new PreProcessorParser(stream);

PreProcessor preprocessor = parser.Input();

Hashtable parameters = new Hashtable();

String processed = preprocessor.toTTaems(parameters);

Taems task = readTTaems(new StringReader(processed ));

Parsers are created by JavaCC, source is included

Page 12: Taems / MASS  Technical Overview

Writing Taems

Taems object may be converted to its textual representation For communication, storage, etc.String text = task.toString()

String text = task.toTTaems(Taems.V1_0)

Individual nodes may be stringified similarly

Taems object is also serializable

Page 13: Taems / MASS  Technical Overview

Visualizing Taems

Taems object is a JPanel Simply add it to a frame to visualizeJFrame frame = new JFrame("Taems Task Structure");

frame.getContentPane().add(task, BorderLayout.CENTER);

frame.setVisible(true);

Display is updated as changes are made Can also edit using this interface (danger!)

Page 14: Taems / MASS  Technical Overview

Accessing Nodes

Node is the base class for most Taems structures (tasks, methods, IRs, resources, etc.)

The Taems object itself is a container for Node objects (among other things)for (Enumeration e = task.getNodes(); e.hasMoreElements(); ) {

Node node = (Node)e.nextElement();

if (node instanceof Task && ((Task)node).isTaskGroup()) n++;

} // end countTaskGroups

Graph structure exists in the relationships each Node possesses, e.g.,Task.getSubtasks()

TaskBase.getSupertasks()

Interrelationship.getFrom() & getTo()

Page 15: Taems / MASS  Technical Overview

Modifying Nodes

All of the structure’s characteristics can be modified using accessorsTask.setQAF()

Method.addOutcome()

Interrelationship.setEndpoints()

Resource.setState()

Node.setAgent()

Interrelationship.setActive()

ConsumesInterrelationship.setConsumes()

etc…

These can be used to read and change structural properties

Page 16: Taems / MASS  Technical Overview

Analyzing Taems

Finding classes of nodesEnumeration e = t.findNodes(new Resource()); while (e.hasMoreElements()) {

Resource r = (Resource)e.nextElement();} // end resourceWalkerEnumeration e = t.findNodes(new Node(“Foobar”)); while (e.hasMoreElements()) {

Node r = (Node)e.nextElement();} // end foobarFinder

Automatic state propagation (e.g., cost, quality, duration)method.setCurrentQuality()taskgroup.getCurrentQuality()

Page 17: Taems / MASS  Technical Overview

Things not covered here…

Schedule, ScheduleElement For storing activity schedules

Commitments Represent results of coordination

Attributes For tagging nodes with arbitrary data

Nonlocal methods Actions that one cannot perform locally

Merging Taems structures See Taems.unionTaems

Page 18: Taems / MASS  Technical Overview

MASS

Interface/GUI Demo Time/pulse driven Pulse cycle Scripting

Page 19: Taems / MASS  Technical Overview

MASS GUIGlobal Task Structure

Script queue

Environment Resources

Display

Control

Event queue

Page 20: Taems / MASS  Technical Overview

Features

Resources modeling Scripting capabilities Separate “actual” and “perceived” states

what the participants believe may not be true

Time and Event based Logging Deterministic

to allow for the re-testing of modified components

Page 21: Taems / MASS  Technical Overview

Clock

Centralized (at simulation controller) Discrete, pulse-based During each cycle

a pulse is sent to each attached client each client converts the pulse to actual CPU time upon completion, each client responds to the simulator when all responses have been received, simulation continues

Agent

Manager

start

finished

Page 22: Taems / MASS  Technical Overview

Event Queue

Event based system simulated execution message transfer environmental

Events have both a start and duration time During each cycle

the list of extant events is retrieved for that time slot each event is given a time slice to run in

time

1 2 3 4

1

2

3

4

5

events

Page 23: Taems / MASS  Technical Overview

Scripting

Highly customizable scripting language Format:

Script, ScriptClassName, ScriptSpecificName, DataAssertion, Assertion1ClassName, Data…Assertion, Assertion3ClassName, DataReaction, Reaction1ClassName, Data…Reaction, Reaction2ClassName, Data

Over 50 pre-defined scripts:Assertion, AgentConnected, Agent:WaterHeaterAssertion, ResourceLevelCompare, Resource1:Kitchen_Temp, Op:>,

Resource2:LivingRoom_TempReaction, SendMessage, Agent:WaterHeater, Perf:ask, CW:disconnect, Control:TrueReaction, SendCommitment, Label:tests, Importance:30, MinQuality:60,

EarliestStartTime:10, Deadline:20, TimeSatisfied:450, ToAgent:*

Example:Script, AndScript, Agent Disconnect Status,

Assertion, NumAgentConnected, Op:<, Value:5Assertion, Time, Op:>, Value:10Reaction, Write, Line:Stopping Simulation!Reaction, StopSim

Page 24: Taems / MASS  Technical Overview

MASS Agents

GITI/Grid Agent CoABS grid agent Interfaces to MASS Available shortly

JAF (Java Agent Framework) Component-based agent framework Uses Taems Available at http://mas.cs.umass.edu

Page 25: Taems / MASS  Technical Overview

BACKUP

Page 26: Taems / MASS  Technical Overview

MASS Interface Hand-shake:

A->S: (register :sender ExampleAgent :type control :content :receiver simulator :language KQML)

S->A: (tell :sender simulator :type control :content (Name ExampleAgent ) :receiver ExampleAgent :language KQML)

Init: S->A: (tell :sender simulator :type control :content (RandomSeed

889210829049 ) :receiver ExampleAgent :language KQML) S->A: (tell :sender simulator :type control :content (Time 0 ) :receiver

ExampleAgent :language KQML) Pulsing:

S->A: (tell :sender simulator :content (pulse) :type control :reply-with (pulse) :receiver ExampleAgent :language KQML)

A->S: (reply :sender ExampleAgent :in-reply-to pulse :content (ack pulse) :receiver simulator :language KQML)

Page 27: Taems / MASS  Technical Overview

MASS Interface 2 New TAEMS structure:

A->S: (tell :sender ExampleAgent :content (AddTaems….) :receiver simulator :language KQML)

Execution of method: Activation: Termination

Query of resources: S->A: (reply :sender simulator :content (R1 value min max) :in-

reply-to ??? :receiver ExampleAgent :type control :language KQML)

Reset: S->A: (ask :sender simulator :content (reset) :receiver

ExampleAgent :type control :reply-with (reset) :language KQML)

Page 28: Taems / MASS  Technical Overview

MASS Interface 3:

Inter-agent communications: Point-to-point Broadcast