|
|
|
|
|
Description |
This Haskell library implements the algorithm for simplifying sequential
teams presented
Aditya Mahajan and Sekhar Tatikonda, A graphical modeling approach to
simplifying sequential teams, proceedings of 7th International Symposium on
Modeling and Optimization in Mobile, Ad Hoc, and Wireless Networks (WiOpt),
Control over Communication Channels (ConCom) Workshop, Seoul, South Korea,
June 27, 2009.
The paper can be obtained from
http://pantheon.yale.edu/~am894/publications.html#concom-2009. See
http://pantheon.yale.edu/~am894/code/teams/ for a usage example.
A team is a multi-agent stochastic control problem in which all agents have a
common objective. A team is sequential if and only if there is a partial
order between all the system variables. These partial order relationship can
be represented using a directed graph, in particular, using a directed factor
graph. The variable nodes of the factor graph represent the system variables
and the factor nodes represent the system dynamics and control functions. The
structural results for these system are equivalent to simplification of the
factor graph. An automated algorithm for graph simplification is presented in
the Data.Teams.Structure module.
|
|
Synopsis |
|
|
|
|
Classes
|
|
|
A type class for defining operations on all nodes
| | Methods | | Name of node a
| | | Name of a list of nodes
| | | Check if node a is a reward node
| | | Check if node a is a non reward node
| | | Check if node a is a variable node
| | | Check if node a is a stochastic system dynamics
| | | Check if node a is a deterministic stochastic system dynamics
| | | Check if node a is a control node
| | | Check if node a is a factor node
| | | The attributes of the node. Used to contruct the dot file.
|
| | Instances | |
|
|
Types
|
|
|
Time
|
|
|
Variable nodes
| Constructors | Reward String | Reward variable node
| NonReward String | Non reard variable node
|
| Instances | |
|
|
|
Factor Vertexs
| Constructors | Deterministic String | Factor node representing deterministic system dynamics
| Stochastic String | Factor node representing stochastic system dynamics
| Control String | Factor node representing control function
|
| Instances | |
|
|
|
A generic node of a graph
|
|
|
An edge in a graph
|
|
|
Currently all edges are Influence edges. Future versions will have
belief edges.
| Constructors | | Instances | |
|
|
|
A sequential team as a directed acyclic factor graph (DAFG)
|
|
Constructors for nodes
|
|
|
Create a sequence of nodes of a specific type
|
|
|
Create a sequence of reward nodes
|
|
|
Create a sequence of non reward nodes
|
|
|
Create a sequence of control nodes
|
|
|
Create a sequence of deterministic system dynamics nodes
|
|
|
Create a sequence of stochastic system dynamics nodes
|
|
Constructor for edges
|
|
|
Used with (.|.) to specify relation between the nodes. For example, if
x is a function of y and z, we can write
f.$.(x.|.[y,z]).
|
|
|
Used with (.$.) to specify relation between the nodes. For example, if
x is a function of y and z, we can write
f.$.(x.|.[y,z]).
|
|
Constructors for teams
|
|
|
Construct a DAFG from a set of edges. For example,
f = Control "f"
x = Reward "x"
y = NonReward "y"
z = NonReward "z"
g = mkTeam $ f.$.(x.|.[y,z])
|
|
|
To make a time homogeneous system. As an example, an MDP can be created as
follows
x = mkNonReward "x"
u = mkNonReward "u"
r = mkReward "r"
f = mkStochastic "f"
g = mkControl "g"
d = mkStochastic "d"
dynamics t = f(t-1).$.( x(t) .|. if t == 1 then [] else [x(t-1), u(t-1)] )
++ g(t) .$.( u(t) .|. map x[1..t] ++ map u[1..t-1] )
++ d(t) .$.( r(t) .|. [ x(t), u(t) ] )
mdp = mkTeamTime dynamics 3
|
|
|
|
Select specific nodes
|
|
|
Select nodes whose label satisfy a particular predicate
|
|
|
All variable nods
|
|
|
All reward nodes
|
|
|
All factors
|
|
|
All control factors
|
|
Graph elements
|
|
|
find indices of parents from the index of a node
|
|
|
find indices of children from the index of a node
|
|
|
find indices of ancestors from the index of a node
|
|
|
find the indices of the ancestoral set from the indices of a given set.
|
|
|
find indices of descendants from the index of a node
|
|
|
find the indices of future nodes that satisfy a particular predicate
|
|
|
find the indices of past nodes that satisfy a particular predicate
|
|
Display functions
|
|
|
Pretty print the team specification
|
|
|
Pretty print the team specification
|
|
|
Convert the graph to a dot file
|
|
|
Convert the dot file to a pdf
|
|
Utility functions for Data.Graph.Inductive
|
|
|
Extensions of Data.Graph.Inductive
Label of a particular node
|
|
|
Labels of a list of nodes
|
|
Produced by Haddock version 2.4.2 |