Class RPGHeuristic

Class Documentation

class RPGHeuristic

Public Functions

RPGHeuristic(const bool &b, vector<list<Literal*>> *atse, vector<list<Literal*>> *atee, vector<list<pair<int, VAL::time_spec>>> *eta, vector<list<Literal*>> *atsne, vector<list<Literal*>> *atene, vector<list<pair<int, VAL::time_spec>>> *neta, vector<list<pair<int, VAL::time_spec>>> *pta, vector<list<Literal*>> *atsp, vector<list<Literal*>> *ati, vector<list<Literal*>> *atep, vector<list<RPGBuilder::NumericEffect>> *atnuse, vector<list<RPGBuilder::NumericEffect>> *atnuee, vector<list<int>> *atrnuse, vector<list<int>> *atrnuee, vector<list<int>> *atnusp, vector<list<int>> *atnui, vector<list<int>> *atnuep, vector<list<int>> *atpnuep, vector<int> *iusp, vector<int> *iuip, vector<int> *iuep, vector<double> *ail, vector<double> *ailr, vector<pair<int, VAL::time_spec>> *ab, vector<pair<int, VAL::time_spec>> *abr, vector<double> *nail, vector<double> *nailr, vector<ActionFluentModification*> *nab, vector<ActionFluentModification*> *nabr, vector<int> *iunsp, vector<int> *iuni, vector<int> *iunep, vector<RPGBuilder::RPGNumericPrecondition> *rnp, vector<RPGBuilder::RPGNumericEffect> *rne, vector<list<pair<int, VAL::time_spec>>> *ppta, vector<list<pair<int, VAL::time_spec>>> *nppta, vector<list<Literal*>> *atpsp, vector<int> *iupsp, vector<int> *iupsnp, list<pair<int, VAL::time_spec>> *pla, list<pair<int, VAL::time_spec>> *onpa)
~RPGHeuristic()
int getRelaxedPlan(const MinimalState &theState, const vector<double> &minTimestamps, const double &stateTS, list<ActionSegment> &helpfulActions, list<pair<double, list<ActionSegment>>> &relaxedPlan, double &finalPlanMakespanEstimate, map<double, list<pair<int, int>>> *justApplied = 0, double tilFrom = 0.001)
void findApplicableActions(const MinimalState &theState, const double &stateTime, list<ActionSegment> &applicableActions)
void filterApplicableActions(const MinimalState &theState, const double &stateTime, list<ActionSegment> &applicableActions)
bool testApplicability(const MinimalState &theState, const double &stateTime, const ActionSegment &actID, bool fail = false, bool ignoreDeletes = false)
list<Literal*> &getDeleteEffects(const int &i, const VAL::time_spec &t)
list<Literal*> &getAddEffects(const int &i, const VAL::time_spec &t)
list<Literal*> &getPreconditions(const int &i, const VAL::time_spec &t)
list<Literal*> &getInvariants(const int &i)
list<int> &getNumericEffects(const int &i, const VAL::time_spec &t)
RPGBuilder::RPGNumericEffect &getRPGNE(const int &i)
list<instantiatedOp*> *makePlan(list<int> &steps)
instantiatedOp *getOp(const int &i)
double earliestTILForAction(const int &i, const bool &isStart)
void doFullExpansion(MinimalState &refState)

Public Static Functions

static void setGuidance(const char *config)

Configure the heuristic guidance provided by the RPG heuristic, according to the given string (usually passed with the prefix ‘-g’ on the command line).

Parameters:

config – Configuration name to use

static vector<double> &getEarliestForStarts()
static vector<double> &getEarliestForEnds()
static double &getDeadlineRelevancyStart(const int &i)
static double &getDeadlineRelevancyEnd(const int &i)

Public Static Attributes

static bool hAddCostPropagation

If set to true, the heuristic uses the cheapest hadd-cost achiever at a given layer.

static bool blindSearch

If set to true, the heuristic returns a value of 1 for goal states, or 0 otherwise.

static bool ignoreNumbers

If set to true, the RPG ignores numeric preconditions and effects.

static bool makeCTSEffectsInstantaneous

If set to true, the RPG integrates continuous effects, so they occur in full at the start of the action.

static set<int> emptyIntList