|
Created on 2016-04-15.17:27:33 by manuel, last changed by malte.
State evaluations with path dependent
heuristics/evaluators (e.g.
LMCountHeuristic, GEvaluator,
PrefEvaluator) require information from
parent states.
Fast Downward already provides
EvaluationContext that maintains
information
during a state evaluation phase and makes
this information available to
different components (heuristics,
evaluators, open lists). This short term
caching of information saves re-
computation of information used by
several
components.
At the moment EvaluationContext stores
the state to evaluate, heuristic values,
current path cost and a preferred flag.
I suggest to additionally store a
reference to the evaluation context of
the
parent state in order to enable
components to have access to parent state
and
its related information.
In a second step, setting or updating the
path cost of a state and determining
if a state is preferred can be done in
g_evaluator respectively in
pref_evaluator instead of doing this in
the search code.
In a third step, evaluators could cache
their results themselves analogous to
heuristic.
Note, that decoupling evaluations from
the search code by providing adding the
parent evaluation context allows for
implementing many other path dependent
evaluators without the need of touching
the search code. For example a depth
evaluator (issue641).
|
msg7620 (view) |
Author: malte |
Date: 2018-09-20.11:09:12 |
|
I am closing this because I think we are now addressing the same goal with a
different mechanism, namely the notify methods of evaluators. If it later turns
out we need something different/something additional, we can open a new issue or
reopen this one.
|
|
Date |
User |
Action |
Args |
2018-09-20 11:09:12 | malte | set | status: in-progress -> resolved messages:
+ msg7620 |
2016-04-15 21:57:48 | jendrik | set | nosy:
+ jendrik summary: State evaluations with path dependent heuristics/evaluators (e.g.
LMCountHeuristic, GEvaluator, PrefEvaluator) require information from parent states.
Fast Downward already provides EvaluationContext that maintains information
during a state evaluation phase and makes this information available to
different components (heuristics, evaluators, open lists). This short term
caching of information saves re-computation of information used by several
components.
At the moment EvaluationContext stores the state to evaluate, heuristic values,
current path cost and a preferred flag.
I suggest to additionally store a reference to the evaluation context of the
parent state in order to enable components to have access to parent state and
its related information.
In a second step, setting or updating the path cost of a state and determining
if a state is preferred can be done in g_evaluator respectively in
pref_evaluator instead of doing this in the search code.
In a third step, evaluators could cache their results themselves analogous to
heuristic.
Note, that decoupling evaluations from the search code by providing adding the
parent evaluation context allows for implementing many other path dependent
evaluators without the need of touching the search code. For example a depth
evaluator (issue641). -> State evaluations with path dependent
heuristics/evaluators (e.g.
LMCountHeuristic, GEvaluator,
PrefEvaluator) require information from
parent states.
Fast Downward already provides
EvaluationContext that maintains
information
during a state evaluation phase and makes
this information available to
different components (heuristics,
evaluators, open lists). This short term
caching of information saves re-
computation of information used by
several
components.
At the moment EvaluationContext stores
the state to evaluate, heuristic values,
current path cost and a preferred flag.
I suggest to additionally store a
reference to the evaluation context of
the
parent state in order to enable
components to have access to parent state
and
its related information.
In a second step, setting or updating the
path cost of a state and determining
if a state is preferred can be done in
g_evaluator respectively in
pref_evaluator instead of doing this in
the search code.
In a third step, evaluators could cache
their results themselves analogous to
heuristic.
Note, that decoupling evaluations from
the search code by providing adding the
parent evaluation context allows for
implementing many other path dependent
evaluators without the need of touching
the search code. For example a depth
evaluator (issue641). |
2016-04-15 17:27:33 | manuel | create | |
|