ix.test
Class BlockStacker

java.lang.Object
  extended by ix.test.BlockStacker
Direct Known Subclasses:
HtnBlockStacker, PrecondBlockStacker

public abstract class BlockStacker
extends java.lang.Object

A useful base class for classes that run block-stacking planning problems.

It contains methods for processing problem descriptions in a compact form:

A tower is a sequence of letters, each representing a block, listed from highest block to lowest. For example, "abc" is a tower with A on top of B on top of C, with C on the table.

A block-stacking problem is specified as initial-final where initial and final are comma-separated lists of towers. For example, "ca,b-abc" for the Sussman anomaly.


Field Summary
protected  java.util.List finalTowers
           
protected  java.util.List initialTowers
           
protected  java.lang.String problem
           
protected static Symbol S_ACHIEVE
           
protected static Symbol S_BLOCK
           
protected static Symbol S_CLEARTOP
           
protected static Symbol S_FALSE
           
protected static Symbol S_ON
           
protected static Symbol S_TABLE
           
protected static Symbol S_TRUE
           
protected  Slip slip
           
 
Constructor Summary
BlockStacker(java.lang.String problem)
           
 
Method Summary
 void checkPlan()
           
 void checkTowerState(java.util.Map state, java.util.List towers)
           
 java.util.List failedGoalPatterns(java.util.Map state)
           
 void findPlan()
           
protected abstract  java.lang.String getDefaultBaseDomainName()
           
 Plan getPlan()
           
protected abstract  Refinement goalStateRefinement(java.util.List finalTowers)
           
 java.util.List incorrectTowerPatterns(java.util.Map state, java.util.List towers)
           
 Plan initialPlan()
           
 Plan initialPlan(java.util.List initialTowers, java.util.List finalTowers)
           
protected  Refinement initialStateRefinement(java.util.List initialTowers)
           
 void parseTowers(java.lang.String problem)
           
 Domain problemDomain()
           
 Domain problemDomain(java.util.List initialTowers, java.util.List finalTowers)
           
 void replan()
           
protected  void setupForPlanning()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

slip

protected Slip slip

initialTowers

protected java.util.List initialTowers

finalTowers

protected java.util.List finalTowers

problem

protected java.lang.String problem

S_ACHIEVE

protected static final Symbol S_ACHIEVE

S_ON

protected static final Symbol S_ON

S_BLOCK

protected static final Symbol S_BLOCK

S_CLEARTOP

protected static final Symbol S_CLEARTOP

S_TABLE

protected static final Symbol S_TABLE

S_TRUE

protected static final Symbol S_TRUE

S_FALSE

protected static final Symbol S_FALSE
Constructor Detail

BlockStacker

public BlockStacker(java.lang.String problem)
Method Detail

getDefaultBaseDomainName

protected abstract java.lang.String getDefaultBaseDomainName()

findPlan

public void findPlan()

replan

public void replan()

getPlan

public Plan getPlan()

setupForPlanning

protected void setupForPlanning()

checkPlan

public void checkPlan()

parseTowers

public void parseTowers(java.lang.String problem)

initialPlan

public Plan initialPlan()

initialPlan

public Plan initialPlan(java.util.List initialTowers,
                        java.util.List finalTowers)

problemDomain

public Domain problemDomain()

problemDomain

public Domain problemDomain(java.util.List initialTowers,
                            java.util.List finalTowers)

initialStateRefinement

protected Refinement initialStateRefinement(java.util.List initialTowers)

goalStateRefinement

protected abstract Refinement goalStateRefinement(java.util.List finalTowers)

checkTowerState

public void checkTowerState(java.util.Map state,
                            java.util.List towers)

failedGoalPatterns

public java.util.List failedGoalPatterns(java.util.Map state)

incorrectTowerPatterns

public java.util.List incorrectTowerPatterns(java.util.Map state,
                                             java.util.List towers)