ix.iplan
Class DomainAnalyser

java.lang.Object
  extended by ix.iplan.DomainAnalyser

public class DomainAnalyser
extends java.lang.Object

Analyses a Domain.

This class is based on parts of O-Plan.


Field Summary
protected  Domain domain
           
protected  boolean domainHasChanged
           
protected  java.util.Map possibleConditionsCache
           
protected  DirectedGraph possibleConditionsTable
           
protected  java.util.Map possibleEffectsCache
           
protected  DirectedGraph possibleEffectsTable
           
protected  DirectedGraph refinementToDirectSuccessors
           
protected  DirectedGraph refinementToReachableRefinements
           
 
Constructor Summary
DomainAnalyser(Domain domain)
          Make an analyser for a domain.
 
Method Summary
 void analyse()
          Construct tables of derived information.
 void analyseIfNeeded()
           
(package private)  void askForConditionsLoop()
           
(package private)  void askForEffectsLoop()
           
(package private)  void askLoop(java.lang.String resultDescr, Function1 f)
           
protected  DirectedGraph buildRefinementSuccessorTable()
           
protected  java.util.Set computePossibleConditions(LList pattern)
           
protected  java.util.Set computePossibleConditions(PatternAssignment pv)
           
protected  java.util.Set computePossibleEffects(LList pattern)
           
protected  java.util.Set computePossibleEffects(PatternAssignment pv)
           
protected  java.util.Set directSuccessors(Refinement r)
           
 java.util.Set getPossibleConditions(LList pattern)
           
 java.util.Set getPossibleConditions(PatternAssignment pv)
           
 java.util.Set getPossibleEffects(LList pattern)
           
 java.util.Set getPossibleEffects(PatternAssignment pv)
           
 DirectedGraph getUnexpandableNodes()
           
 boolean haveCommonPatterns(java.util.Collection pvs1, java.util.Collection pvs2)
           
static void main(java.lang.String[] argv)
          Test program.
 boolean mightSatisfy(PatternAssignment cond, java.util.Collection effects)
           
 boolean mightSatisfy(PatternAssignment cond, PatternAssignment effect)
           
(package private) static void printCollection(java.lang.String label, java.util.Collection c)
           
(package private) static void printGraph(java.lang.String label, DirectedGraph g)
           
protected  java.util.Set refinementsExpandingPattern(LList pattern)
           
protected  java.util.Set refinementsForCondition(PatternAssignment pv)
           
protected  void reset()
           
(package private) static java.util.List sortCollection(java.util.Collection c)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

domain

protected Domain domain

domainHasChanged

protected boolean domainHasChanged

refinementToDirectSuccessors

protected DirectedGraph refinementToDirectSuccessors

refinementToReachableRefinements

protected DirectedGraph refinementToReachableRefinements

possibleConditionsTable

protected DirectedGraph possibleConditionsTable

possibleEffectsTable

protected DirectedGraph possibleEffectsTable

possibleConditionsCache

protected java.util.Map possibleConditionsCache

possibleEffectsCache

protected java.util.Map possibleEffectsCache
Constructor Detail

DomainAnalyser

public DomainAnalyser(Domain domain)
Make an analyser for a domain.

Method Detail

analyseIfNeeded

public void analyseIfNeeded()

reset

protected void reset()

analyse

public void analyse()
Construct tables of derived information.


getPossibleConditions

public java.util.Set getPossibleConditions(LList pattern)

computePossibleConditions

protected java.util.Set computePossibleConditions(LList pattern)

getPossibleConditions

public java.util.Set getPossibleConditions(PatternAssignment pv)

computePossibleConditions

protected java.util.Set computePossibleConditions(PatternAssignment pv)

getPossibleEffects

public java.util.Set getPossibleEffects(LList pattern)

computePossibleEffects

protected java.util.Set computePossibleEffects(LList pattern)

getPossibleEffects

public java.util.Set getPossibleEffects(PatternAssignment pv)

computePossibleEffects

protected java.util.Set computePossibleEffects(PatternAssignment pv)

getUnexpandableNodes

public DirectedGraph getUnexpandableNodes()

buildRefinementSuccessorTable

protected DirectedGraph buildRefinementSuccessorTable()

directSuccessors

protected java.util.Set directSuccessors(Refinement r)

refinementsExpandingPattern

protected java.util.Set refinementsExpandingPattern(LList pattern)

refinementsForCondition

protected java.util.Set refinementsForCondition(PatternAssignment pv)

haveCommonPatterns

public boolean haveCommonPatterns(java.util.Collection pvs1,
                                  java.util.Collection pvs2)

mightSatisfy

public boolean mightSatisfy(PatternAssignment cond,
                            PatternAssignment effect)

mightSatisfy

public boolean mightSatisfy(PatternAssignment cond,
                            java.util.Collection effects)

main

public static void main(java.lang.String[] argv)
Test program.


askForConditionsLoop

void askForConditionsLoop()

askForEffectsLoop

void askForEffectsLoop()

askLoop

void askLoop(java.lang.String resultDescr,
             Function1 f)

printGraph

static void printGraph(java.lang.String label,
                       DirectedGraph g)

printCollection

static void printCollection(java.lang.String label,
                            java.util.Collection c)

sortCollection

static java.util.List sortCollection(java.util.Collection c)