Class RPGHeuristic
Defined in File RPGBuilder.h
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)
-
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
-
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)