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.


Nested Class Summary
(package private)  class DomainAnalyser.MinFullExpandFinder
           
 
Field Summary
protected  Domain domain
           
protected  boolean domainHasChanged
           
protected  DomainAnalyser.MinFullExpandFinder minFullExpandFinder
           
protected  java.util.Map minFullExpandSizeCache
           
protected  DirectedGraph possibleConditionsTable
           
protected  DirectedGraph possibleConstraintsTable
           
protected  DirectedGraph possibleEffectsTable
           
protected  java.util.Map possibleUseForEffectsCache
           
protected  DirectedGraph possibleUseForEffectsTable
           
protected  DirectedGraph refinementToDirectSuccessors
           
protected  DirectedGraph refinementToReachableRefinements
           
protected  boolean useConditionTypes
           
 
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 computePossibleConstraints(LList pattern)
           
protected  java.util.Set computePossibleEffects(LList pattern)
           
protected  java.util.Set computePossibleEffects(PatternAssignment pv)
           
protected  java.util.Set computePossibleUseForEffects(LList pattern)
           
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)
           
 java.util.Set getPossibleTopLevelConditions(LList pattern)
           
 java.util.Set getPossibleTopLevelConstraints(LList pattern)
           
 java.util.Set getPossibleTopLevelEffects(LList pattern)
           
 java.util.Set getPossibleUseForEffects(LList pattern)
           
 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)
           
(package private) static void printCollection(java.lang.String label, java.util.Collection c)
           
(package private) static void printGraph(java.lang.String label, DirectedGraph g)
           
 java.util.Set<Refinement> refinementsExpandingPattern(LList pattern)
           
 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

useConditionTypes

protected boolean useConditionTypes

refinementToDirectSuccessors

protected DirectedGraph refinementToDirectSuccessors

refinementToReachableRefinements

protected DirectedGraph refinementToReachableRefinements

possibleConditionsTable

protected DirectedGraph possibleConditionsTable

possibleEffectsTable

protected DirectedGraph possibleEffectsTable

possibleUseForEffectsTable

protected DirectedGraph possibleUseForEffectsTable

possibleConstraintsTable

protected DirectedGraph possibleConstraintsTable

minFullExpandFinder

protected DomainAnalyser.MinFullExpandFinder minFullExpandFinder

possibleUseForEffectsCache

protected java.util.Map possibleUseForEffectsCache

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)

getPossibleTopLevelConditions

public java.util.Set getPossibleTopLevelConditions(LList pattern)

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)

getPossibleTopLevelEffects

public java.util.Set getPossibleTopLevelEffects(LList pattern)

getPossibleUseForEffects

public java.util.Set getPossibleUseForEffects(LList pattern)

computePossibleUseForEffects

protected java.util.Set computePossibleUseForEffects(LList pattern)

getPossibleConstraints

public java.util.Set getPossibleConstraints(LList pattern)

computePossibleConstraints

protected java.util.Set computePossibleConstraints(LList pattern)

getPossibleTopLevelConstraints

public java.util.Set getPossibleTopLevelConstraints(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

public java.util.Set<Refinement> refinementsExpandingPattern(LList pattern)

refinementsForCondition

public 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.


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)