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  ix.iplan.DomainAnalyser.MinFullExpandFinder minFullExpandFinder
           
protected  java.util.Map minFullExpandSizeCache
           
protected  java.util.Map possibleConditionsCache
           
protected  DirectedGraph possibleConditionsTable
           
protected  java.util.Map possibleConstraintsCache
           
protected  DirectedGraph possibleConstraintsTable
           
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()
           
protected  DirectedGraph buildRefinementSuccessorTable()
           
protected  java.util.Set computePossibleConditions(LList pattern)
           
protected  java.util.Set computePossibleConditions(PatternAssignment pv)
           
protected  java.util.Set computePossibleConstraints(LList pattern)
           
protected  java.util.Set computePossibleEffects(LList pattern)
           
protected  java.util.Set computePossibleEffects(PatternAssignment pv)
           
protected  java.util.Set directSuccessors(Refinement r)
           
 long getMinFullExpandSize(LList pattern)
           
 long getMinFullExpandSize(PatternAssignment pv)
           
 java.util.Set getPossibleConditions(LList pattern)
           
 java.util.Set getPossibleConditions(PatternAssignment pv)
           
 java.util.Set getPossibleConstraints(LList pattern)
           
 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.
static boolean match(java.lang.Object pat, java.lang.Object dat)
          Simple pattern-matcher that treats all variables as wildcards.
 boolean mightSatisfy(PatternAssignment cond, java.util.Collection effects)
           
 boolean mightSatisfy(PatternAssignment cond, PatternAssignment effect)
           
protected  java.util.Set refinementsExpandingPattern(LList pattern)
           
protected  java.util.Set refinementsForCondition(PatternAssignment pv)
           
protected  void reset()
           
 
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

possibleConstraintsTable

protected DirectedGraph possibleConstraintsTable

minFullExpandFinder

protected ix.iplan.DomainAnalyser.MinFullExpandFinder minFullExpandFinder

possibleConditionsCache

protected java.util.Map possibleConditionsCache

possibleEffectsCache

protected java.util.Map possibleEffectsCache

possibleConstraintsCache

protected java.util.Map possibleConstraintsCache

minFullExpandSizeCache

protected java.util.Map minFullExpandSizeCache
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)

getPossibleConstraints

public java.util.Set getPossibleConstraints(LList pattern)

computePossibleConstraints

protected java.util.Set computePossibleConstraints(LList pattern)

getMinFullExpandSize

public long getMinFullExpandSize(LList pattern)

getMinFullExpandSize

public long getMinFullExpandSize(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)

match

public static boolean match(java.lang.Object pat,
                            java.lang.Object dat)
Simple pattern-matcher that treats all variables as wildcards.


main

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