Developer Documentation
RAVL, Recognition And Vision Library
USER HOME PAGE CLASS LIST CONTENTS
Ravl - Logic - Planning - NonLinearPlanBodyC
 

  PUBLIC
NonLinearPlanBodyC::NonLinearPlanBodyC(const MinTermC &,const MinTermC &,const CallFunc2C> &)
NonLinearPlanBodyC::~NonLinearPlanBodyC(void)
NonLinearPlanBodyC::Init(const MinTermC &,const MinTermC &)
NonLinearPlanBodyC::InsStep(const NLPStepC &,const MinTermC &)
NonLinearPlanBodyC::InsStep(const NLPStepC &)
NonLinearPlanBodyC::InsCausalLink(NLPStepNodeT,NLPStepNodeT,MinTermC &)
NonLinearPlanBodyC::InsOrderLink(NLPStepNodeT,NLPStepNodeT)
NonLinearPlanBodyC::IsComplete(void) const
NonLinearPlanBodyC::GetLinear(void) const
NonLinearPlanBodyC::Dump(void) const
NonLinearPlanBodyC::Score(void) const
NonLinearPlanBodyC::StartNode(void) const
NonLinearPlanBodyC::GoalNode(void) const
NonLinearPlanBodyC::PreConds(void)
NonLinearPlanBodyC::PreConds(void) const
NonLinearPlanBodyC::PostConds(void)
NonLinearPlanBodyC::PostConds(void) const
NonLinearPlanBodyC::PlanID(void) const
NonLinearPlanBodyC::NodeObjH(BGraphTypesC::NodeHandleT)
NonLinearPlanBodyC::IsValid(const NLPStepNodeT &) const
NonLinearPlanBodyC::IsValid(void) const
NonLinearPlanBodyC::IsUsefullNewStep(const NLPStepC &,const NLPStepNodeT &) const
NonLinearPlanBodyC::ListSteps(const MinTermC &,const MinTermC &)
NonLinearPlanBodyC::DoDBCheck(void)
NonLinearPlanBodyC::PostOpenCond(NLPStepNodeT &,const MinTermC &)
NonLinearPlanBodyC::PostThreat(NLPStepNodeT &,NLPCausalLinkT)
NonLinearPlanBodyC::TopOfAgenda(void)
NonLinearPlanBodyC::GetTopOfAgenda(void)
NonLinearPlanBodyC::GetSteps(void) const
NonLinearPlanBodyC::Steps(void) const
NonLinearPlanBodyC::ListSteps(void)
RCBodyVC::Save(ostream &) const
RCBodyVC::Save(BinOStreamC &) const
RCBodyVC::Copy(void) const
RCBodyVC::DeepCopy(UIntT) const
RCBodyC::References(void) const
RCBodyC::Copy(void) const
RCBodyC::DeepCopy(UIntT) const
RCBodyC::IncRefCounter(void)
RCBodyC::DecRefCounter(void)

   NonLinearPlanBodyC   
 
The body of a non-linear plan.
 
include "Ravl/Logic/NonLinearPlan.hh"
Created:12/12/1996 
Source file:Ravl/Logic/NonLinearPlanner/NonLinearPlan.hh
User Level:Develop
Library:RavlLogicNLP
Example:exNonlinearPlanner.cc
In Scope:RavlLogicN

Parent Classes: Variables:
IntT planID;
Only really used to help in debuging.

BDAGraphC plan;
Graph of states.
Links -> CausalLinkInfT. Nodes -> Steps in plan.

BindSetC bnds;
List of Negated binds.

BMinTermListIndexC> preConds;
Used to establish threats.

BMinTermListIndexC> postConds;
Used to help establish causal links.

NLPAgendaC agenda;
Agenda of open conditions.

int steps;
Count of steps in the plan.

NLPStepNodeT startNode;
Inital node in plan.

NLPStepNodeT goalNode;
Final node in plan.

CallFunc2C> listSteps;
List steps that could satisfy meet a goal condition.

Methods:
NonLinearPlanBodyC(const MinTermC & initCond,const MinTermC & goalCond,const CallFunc2C<MinTermC,MinTermC,DListC<NLPStepC>> & step)
Constructor,

~NonLinearPlanBodyC()
Destructor.

bool Init(const MinTermC & Start,const MinTermC & Goal)
Initalise plan.

NLPStepNodeT InsStep(const NLPStepC & Step,const MinTermC & Goal)
Insert a step into the plan

NLPStepNodeT InsStep(const NLPStepC & Step)
Insert a step into the plan.

NLPCausalLinkT InsCausalLink(NLPStepNodeT from,NLPStepNodeT to,MinTermC & Cond)
Insert a causal link into the plan. Used to resolve open goals.

NLPOrderLinkT InsOrderLink(NLPStepNodeT from,NLPStepNodeT to)
Insert an order link into the plan. Used to resolve threats.

bool IsComplete(void) const
Is plan complete.

DListC<NLPStepC> GetLinear(void) const
Get a linear version of the plan.

void Dump(void) const
Dump current plan to stdout.

IntT Score(void) const
Give the plan a score for A* search.

const NLPStepNodeT & StartNode() const
Const access to start node.

const NLPStepNodeT & GoalNode() const
Const access to goal node.

BMinTermListIndexC<NLPStepNodeT> & PreConds()
Access PreConditions.

const BMinTermListIndexC<NLPStepNodeT> & PreConds() const
Access PreConditions.

BMinTermListIndexC<NLPStepNodeT> & PostConds()
Access PostConditions.

const BMinTermListIndexC<NLPStepNodeT> & PostConds() const
Access PostConditions.

IntT PlanID() const
Get a unique ID for the plan.

NLPStepNodeT NodeObjH(BGraphTypesC::NodeHandleT H)
Convert a node handle to a ptr.

bool IsValid(const NLPStepNodeT & Oth) const
Check the handle is valid. (For debuging. )

bool IsValid() const
Check plan is valid.

bool IsUsefullNewStep(const NLPStepC & mt,const NLPStepNodeT & sn) const
Test if is usefull to add postcondition to this plan.
Use to filter out the addition of useless steps.

sn is the step which has the open goal that caused mt to be considered


DListC<NLPStepC> ListSteps(const MinTermC & goalCond,const MinTermC & fullCond)
List steps with the given postcondition.
GoalCond :- Condition that must be meet by Step, FullCond :- 'Wish list' of conditions that also will be needed. Heuristic ordering of steps, place the most likly to be usefull first.

void DoDBCheck()
Debuging checks.

bool PostOpenCond(NLPStepNodeT & AStep,const MinTermC & OpenCond)
Insert an open condition into the agenda.

bool PostThreat(NLPStepNodeT & AStep,NLPCausalLinkT ALink)
Insert an threat into the agenda.

NLPAgendaItemC TopOfAgenda()
Look at current agenda item.

NLPAgendaItemC GetTopOfAgenda()
Return current agenda item and remove it.

IntT GetSteps() const
Get the number of steps in the current plan.

IntT Steps() const
Get the number of steps in the current plan.

CallFunc2C<MinTermC,MinTermC,DListC<NLPStepC>> & ListSteps()
Access listStep methods.

#include "Ravl/RCHandleV.hh"
bool Save(ostream & out) const
Save to stream 'out'.

bool Save(BinOStreamC & out) const
Save to binary stream 'out'.

RCBodyVC & Copy() const
Make copy of body.
This should be provided in derived classes. this funtion will issue an assertion failure if called.

RCBodyC & DeepCopy(UIntT levels = ((UIntT))) const
Make a deep copy of body.
This should be provided in derived classes. this funtion will issue an assertion failure if called.

#include "Ravl/RefCounter.hh"
UIntT References() const
Access count of handles open to this object.

RCBodyC & Copy() const
Make copy of body.
This should be provided in derived classes. this funtion will issue an assertion failure if called.

RCBodyC & DeepCopy(UIntT levels = ((UIntT))) const
Make a deep copy of body.
This should be provided in derived classes. this funtion will issue an assertion failure if called.

void IncRefCounter()
Increment reference counter.

bool DecRefCounter()
Decrement reference counter.


Maintainer:Charles Galambos, Created: 12/12/1996, Documentation by CxxDoc: Tue Aug 13 09:59:30 2002