Issue727

Title use Evaluator instead of Heuristic
Priority meta Status resolved
Superseder Nosy List cedric, guillem, jendrik, malte, manuel
Assigned To Keywords
Optional summary
Meta issue for using Evaluator instead of Heuristic in user code.

* Notify Evaluators about state transitions (issue724).

* Move heuristic progress statistics to Evaluator (issue750).

* Allow putting evaluators into documentation sections (issue749).

* Convert Heuristic options to Evaluator (issue766).

* Use Evaluator instead of Heuristic in option parser code (issue718).

* Rename "heuristic" to "evaluator" in variable and function names. Rename 
EvaluationResult::get_h_value to EvaluationResult::get_evaluator_value and do 
similar renamings for EvaluationContext (issue815).

* Let ConstEvaluator inherit from Evaluator (issue817).

* Clean up obsolete Heuristic forward definitions and heuristic.h includes
(issue819).

* Rename HeuristicCache to EvaluatorCache (issue821).

* Use --evaluator for evaluator predefinitions (issue822).

Once this is done, update issue207.

Created on 2017-05-03.11:05:37 by manuel, last changed by malte.

Summary
Meta issue for using Evaluator instead of Heuristic in user code.

* Notify Evaluators about state transitions (issue724).

* Move heuristic progress statistics to Evaluator (issue750).

* Allow putting evaluators into documentation sections (issue749).

* Convert Heuristic options to Evaluator (issue766).

* Use Evaluator instead of Heuristic in option parser code (issue718).

* Rename "heuristic" to "evaluator" in variable and function names. Rename 
EvaluationResult::get_h_value to EvaluationResult::get_evaluator_value and do 
similar renamings for EvaluationContext (issue815).

* Let ConstEvaluator inherit from Evaluator (issue817).

* Clean up obsolete Heuristic forward definitions and heuristic.h includes
(issue819).

* Rename HeuristicCache to EvaluatorCache (issue821).

* Use --evaluator for evaluator predefinitions (issue822).

Once this is done, update issue207.
Messages
msg7465 (view) Author: malte Date: 2018-09-14.13:47:09
issue822 is now also resolved, which completes the work on this meta-issue.
Great work, everyone! :-)
msg7461 (view) Author: malte Date: 2018-09-14.12:46:49
Point 2. is issue821, which has been opened, resolved and merged.
msg7457 (view) Author: malte Date: 2018-09-14.12:32:43
All the subissues have been addressed. This does not mean that traces of the
Evaluator/Heuristic distinction are removed in the code internals, but that's
fine because that wasn't the goal. I had a look at which further changes we
might want to apply going forward:

1. Think about whether we want to keep the Heuristic class at all, and if yes,
for which purpose.

Conceptually, a "heuristic" is evaluator that is supposed to measure goal
distance, but the current distinction between when to derive from Heuristic and
when from Evaluator is mainly based on other considerations. We should think of
how to distribute the responsibility and whether we want a class named
"Heuristic" or whether it should have a name that reflects more closely what it
actually does. For example, I think it could be useful to have an abstract base
class for evaluators that are not composites of other evaluators.

This also affects the discussion of "Heuristic" in task_proxy.h

2. Rename the HeuristicCache to EvaluatorCache.

This is a simple thing.

I suggest we open new issues for these two things, deal with the second one
straight away, and deal with the first one later.
msg6928 (view) Author: jendrik Date: 2018-03-16.19:25:15
Add item "Clean up obsolete Heuristic forward definitions and heuristic.h includes." to summary.
msg6909 (view) Author: manuel Date: 2018-03-16.15:40:04
Add item.
msg6635 (view) Author: jendrik Date: 2017-11-29.19:12:58
Add item.
msg6634 (view) Author: jendrik Date: 2017-11-29.17:24:34
Update summary.
msg6632 (view) Author: jendrik Date: 2017-11-29.17:13:51
Add item.
msg6630 (view) Author: jendrik Date: 2017-11-29.15:40:59
Update description of agenda item 6.
msg6601 (view) Author: jendrik Date: 2017-11-27.11:16:53
Move TODOs into summary field.
msg6330 (view) Author: manuel Date: 2017-05-03.11:05:37
This issue intends to spread the use of Evaluator in search code and includes
following points.

1. Provide evaluator name for logging.

2. Add option to evaluators for enabling/disabling logging of better h-values.

3. Add option to evaluators for enabling/disabling counting of evaluations.

4. Notify Evaluators about state transitions (issue724).

5. Rename heuristic to evaluator in variable and function names.

With items 2. and 3., we intend to remove dynamic casts for checking if an
Evaluator is a Heuristic. Without the cast to Heuristic, Evaluator must provide
a name for logging (item 1.). Item 4. will finally replace all variables of type
 heuristic with variables of type Evaluator in the search code.
History
Date User Action Args
2018-09-14 13:47:32maltesetstatus: chatting -> resolved
2018-09-14 13:47:09maltesetmessages: + msg7465
2018-09-14 12:46:49maltesetmessages: + msg7461
2018-09-14 12:43:06cedricsetsummary: Meta issue for using Evaluator instead of Heuristic in user code. * Notify Evaluators about state transitions (issue724). * Move heuristic progress statistics to Evaluator (issue750). * Allow putting evaluators into documentation sections (issue749). * Convert Heuristic options to Evaluator (issue766). * Use Evaluator instead of Heuristic in option parser code (issue718). * Rename "heuristic" to "evaluator" in variable and function names. Rename EvaluationResult::get_h_value to EvaluationResult::get_evaluator_value and do similar renamings for EvaluationContext (issue815). * Let ConstEvaluator inherit from Evaluator (issue817). * Clean up obsolete Heuristic forward definitions and heuristic.h includes (issue819). * Rename HeuristicCache to EvaluatorCache (issue821). Once this is done, update issue207. -> Meta issue for using Evaluator instead of Heuristic in user code. * Notify Evaluators about state transitions (issue724). * Move heuristic progress statistics to Evaluator (issue750). * Allow putting evaluators into documentation sections (issue749). * Convert Heuristic options to Evaluator (issue766). * Use Evaluator instead of Heuristic in option parser code (issue718). * Rename "heuristic" to "evaluator" in variable and function names. Rename EvaluationResult::get_h_value to EvaluationResult::get_evaluator_value and do similar renamings for EvaluationContext (issue815). * Let ConstEvaluator inherit from Evaluator (issue817). * Clean up obsolete Heuristic forward definitions and heuristic.h includes (issue819). * Rename HeuristicCache to EvaluatorCache (issue821). * Use --evaluator for evaluator predefinitions (issue822). Once this is done, update issue207.
2018-09-14 12:34:41maltesetsummary: Meta issue for using Evaluator instead of Heuristic in user code. * Notify Evaluators about state transitions (issue724). * Move heuristic progress statistics to Evaluator (issue750). * Allow putting evaluators into documentation sections (issue749). * Convert Heuristic options to Evaluator (issue766). * Use Evaluator instead of Heuristic in option parser code (issue718). * Rename "heuristic" to "evaluator" in variable and function names. Rename EvaluationResult::get_h_value to EvaluationResult::get_evaluator_value and do similar renamings for EvaluationContext (issue815). * Let ConstEvaluator inherit from Evaluator (issue817). * Clean up obsolete Heuristic forward definitions and heuristic.h includes (issue819). Once this is done, update issue207. -> Meta issue for using Evaluator instead of Heuristic in user code. * Notify Evaluators about state transitions (issue724). * Move heuristic progress statistics to Evaluator (issue750). * Allow putting evaluators into documentation sections (issue749). * Convert Heuristic options to Evaluator (issue766). * Use Evaluator instead of Heuristic in option parser code (issue718). * Rename "heuristic" to "evaluator" in variable and function names. Rename EvaluationResult::get_h_value to EvaluationResult::get_evaluator_value and do similar renamings for EvaluationContext (issue815). * Let ConstEvaluator inherit from Evaluator (issue817). * Clean up obsolete Heuristic forward definitions and heuristic.h includes (issue819). * Rename HeuristicCache to EvaluatorCache (issue821). Once this is done, update issue207.
2018-09-14 12:32:43maltesetmessages: + msg7457
summary: Meta issue for using Evaluator instead of Heuristic in user code. * Notify Evaluators about state transitions (issue724). * Move heuristic progress statistics to Evaluator (issue750). * Allow putting evaluators into documentation sections (issue749). * Convert Heuristic options to Evaluator (issue766). * Use Evaluator instead of Heuristic in option parser code (issue718). * Rename "heuristic" to "evaluator" in variable and function names. Rename EvaluationResult::get_h_value to EvaluationResult::get_evaluator_value and do similar renamings for EvaluationContext (issue815). * Let ConstEvaluator inherit from Evaluator (issue817). * Clean up obsolete Heuristic forward definitions and heuristic.h includes (issue819). Once this is done, update issue207. -> Meta issue for using Evaluator instead of Heuristic in user code. * Notify Evaluators about state transitions (issue724). * Move heuristic progress statistics to Evaluator (issue750). * Allow putting evaluators into documentation sections (issue749). * Convert Heuristic options to Evaluator (issue766). * Use Evaluator instead of Heuristic in option parser code (issue718). * Rename "heuristic" to "evaluator" in variable and function names. Rename EvaluationResult::get_h_value to EvaluationResult::get_evaluator_value and do similar renamings for EvaluationContext (issue815). * Let ConstEvaluator inherit from Evaluator (issue817). * Clean up obsolete Heuristic forward definitions and heuristic.h includes (issue819). Once this is done, update issue207.
2018-09-13 20:21:47guillemsetsummary: Meta issue for using Evaluator instead of Heuristic in user code. * Notify Evaluators about state transitions (issue724). * Move heuristic progress statistics to Evaluator (issue750). * Allow putting evaluators into documentation sections (issue749). * Convert Heuristic options to Evaluator (issue766). * Use Evaluator instead of Heuristic in option parser code (issue718). * Rename "heuristic" to "evaluator" in variable and function names. Rename EvaluationResult::get_h_value to EvaluationResult::get_evaluator_value and do similar renamings for EvaluationContext (issue815). * Let ConstEvaluator inherit from Evaluator (issue817). * Clean up obsolete Heuristic forward definitions and heuristic.h includes. Once this is done, update issue207. -> Meta issue for using Evaluator instead of Heuristic in user code. * Notify Evaluators about state transitions (issue724). * Move heuristic progress statistics to Evaluator (issue750). * Allow putting evaluators into documentation sections (issue749). * Convert Heuristic options to Evaluator (issue766). * Use Evaluator instead of Heuristic in option parser code (issue718). * Rename "heuristic" to "evaluator" in variable and function names. Rename EvaluationResult::get_h_value to EvaluationResult::get_evaluator_value and do similar renamings for EvaluationContext (issue815). * Let ConstEvaluator inherit from Evaluator (issue817). * Clean up obsolete Heuristic forward definitions and heuristic.h includes (issue819). Once this is done, update issue207.
2018-09-12 15:39:19gabisetsummary: Meta issue for using Evaluator instead of Heuristic in user code. * Notify Evaluators about state transitions (issue724). * Move heuristic progress statistics to Evaluator (issue750). * Allow putting evaluators into documentation sections (issue749). * Convert Heuristic options to Evaluator (issue766). * Use Evaluator instead of Heuristic in option parser code (issue718). * Rename "heuristic" to "evaluator" in variable and function names. Rename EvaluationResult::get_h_value to EvaluationResult::get_evaluator_value and do similar renamings for EvaluationContext (issue815). * Let ConstEvaluator inherit from Evaluator. * Clean up obsolete Heuristic forward definitions and heuristic.h includes. Once this is done, update issue207. -> Meta issue for using Evaluator instead of Heuristic in user code. * Notify Evaluators about state transitions (issue724). * Move heuristic progress statistics to Evaluator (issue750). * Allow putting evaluators into documentation sections (issue749). * Convert Heuristic options to Evaluator (issue766). * Use Evaluator instead of Heuristic in option parser code (issue718). * Rename "heuristic" to "evaluator" in variable and function names. Rename EvaluationResult::get_h_value to EvaluationResult::get_evaluator_value and do similar renamings for EvaluationContext (issue815). * Let ConstEvaluator inherit from Evaluator (issue817). * Clean up obsolete Heuristic forward definitions and heuristic.h includes. Once this is done, update issue207.
2018-09-12 14:48:41cedricsetnosy: + cedric
2018-09-12 11:39:46guillemsetsummary: Meta issue for using Evaluator instead of Heuristic in user code. * Notify Evaluators about state transitions (issue724). * Move heuristic progress statistics to Evaluator (issue750). * Allow putting evaluators into documentation sections (issue749). * Convert Heuristic options to Evaluator (issue766). * Use Evaluator instead of Heuristic in option parser code (issue718). * Rename "heuristic" to "evaluator" in variable and function names. Rename EvaluationResult::get_h_value to EvaluationResult::get_evaluator_value and do similar renamings for EvaluationContext. * Let ConstEvaluator inherit from Evaluator. * Clean up obsolete Heuristic forward definitions and heuristic.h includes. Once this is done, update issue207. -> Meta issue for using Evaluator instead of Heuristic in user code. * Notify Evaluators about state transitions (issue724). * Move heuristic progress statistics to Evaluator (issue750). * Allow putting evaluators into documentation sections (issue749). * Convert Heuristic options to Evaluator (issue766). * Use Evaluator instead of Heuristic in option parser code (issue718). * Rename "heuristic" to "evaluator" in variable and function names. Rename EvaluationResult::get_h_value to EvaluationResult::get_evaluator_value and do similar renamings for EvaluationContext (issue815). * Let ConstEvaluator inherit from Evaluator. * Clean up obsolete Heuristic forward definitions and heuristic.h includes. Once this is done, update issue207.
2018-09-10 12:09:44maltesetsummary: Meta issue for using Evaluator instead of Heuristic in user code. * Notify Evaluators about state transitions (issue724). * Move heuristic progress statistics to Evaluator (issue750). * Allow putting evaluators into documentation sections (issue749). * Convert Heuristic options to Evaluator (issue766). * Use Evaluator instead of Heuristic in option parser code (issue718). * Rename "heuristic" to "evaluator" in variable and function names. Rename EvaluationResult::get_h_value to EvaluationResult::get_evaluator_value and do similar renamings for EvaluationContext. * Let ConstEvaluator inherit from Evaluator. * Clean up obsolete Heuristic forward definitions and heuristic.h includes. -> Meta issue for using Evaluator instead of Heuristic in user code. * Notify Evaluators about state transitions (issue724). * Move heuristic progress statistics to Evaluator (issue750). * Allow putting evaluators into documentation sections (issue749). * Convert Heuristic options to Evaluator (issue766). * Use Evaluator instead of Heuristic in option parser code (issue718). * Rename "heuristic" to "evaluator" in variable and function names. Rename EvaluationResult::get_h_value to EvaluationResult::get_evaluator_value and do similar renamings for EvaluationContext. * Let ConstEvaluator inherit from Evaluator. * Clean up obsolete Heuristic forward definitions and heuristic.h includes. Once this is done, update issue207.
2018-03-16 19:25:15jendriksetmessages: + msg6928
summary: Meta issue for using Evaluator instead of Heuristic in user code. * Notify Evaluators about state transitions (issue724). * Move heuristic progress statistics to Evaluator (issue750). * Allow putting evaluators into documentation sections (issue749). * Convert Heuristic options to Evaluator (issue766). * Use Evaluator instead of Heuristic in option parser code (issue718). * Rename "heuristic" to "evaluator" in variable and function names. Rename EvaluationResult::get_h_value to EvaluationResult::get_evaluator_value and do similar renamings for EvaluationContext. * Let ConstEvaluator inherit from Evaluator. -> Meta issue for using Evaluator instead of Heuristic in user code. * Notify Evaluators about state transitions (issue724). * Move heuristic progress statistics to Evaluator (issue750). * Allow putting evaluators into documentation sections (issue749). * Convert Heuristic options to Evaluator (issue766). * Use Evaluator instead of Heuristic in option parser code (issue718). * Rename "heuristic" to "evaluator" in variable and function names. Rename EvaluationResult::get_h_value to EvaluationResult::get_evaluator_value and do similar renamings for EvaluationContext. * Let ConstEvaluator inherit from Evaluator. * Clean up obsolete Heuristic forward definitions and heuristic.h includes.
2018-03-16 15:40:04manuelsetmessages: + msg6909
summary: Meta issue for using Evaluator instead of Heuristic in user code. * Notify Evaluators about state transitions (issue724). * Move heuristic progress statistics to Evaluator (issue750). * Allow putting evaluators into documentation sections (issue749). * Use Evaluator instead of Heuristic in option parser code (issue718). * Rename "heuristic" to "evaluator" in variable and function names. Rename EvaluationResult::get_h_value to EvaluationResult::get_evaluator_value and do similar renamings for EvaluationContext. * Let ConstEvaluator inherit from Evaluator. -> Meta issue for using Evaluator instead of Heuristic in user code. * Notify Evaluators about state transitions (issue724). * Move heuristic progress statistics to Evaluator (issue750). * Allow putting evaluators into documentation sections (issue749). * Convert Heuristic options to Evaluator (issue766). * Use Evaluator instead of Heuristic in option parser code (issue718). * Rename "heuristic" to "evaluator" in variable and function names. Rename EvaluationResult::get_h_value to EvaluationResult::get_evaluator_value and do similar renamings for EvaluationContext. * Let ConstEvaluator inherit from Evaluator.
2017-11-30 12:16:07jendriksetsummary: Meta issue for using Evaluator instead of Heuristic in user code. * Notify Evaluators about state transitions (issue724). * Move heuristic progress statistics to Evaluator (issue750). * Allow putting evaluators into documentation sections (issue749). * Use Evaluator instead of Heuristic in option parser code (issue718). * Rename "heuristic" to "evaluator" in variable and function names. * Let ConstEvaluator inherit from Evaluator. -> Meta issue for using Evaluator instead of Heuristic in user code. * Notify Evaluators about state transitions (issue724). * Move heuristic progress statistics to Evaluator (issue750). * Allow putting evaluators into documentation sections (issue749). * Use Evaluator instead of Heuristic in option parser code (issue718). * Rename "heuristic" to "evaluator" in variable and function names. Rename EvaluationResult::get_h_value to EvaluationResult::get_evaluator_value and do similar renamings for EvaluationContext. * Let ConstEvaluator inherit from Evaluator.
2017-11-30 10:44:30guillemsetnosy: + guillem, - gfrances
2017-11-29 19:12:58jendriksetmessages: + msg6635
summary: Meta issue for using Evaluator instead of Heuristic in user code. * Notify Evaluators about state transitions (issue724). * Move heuristic progress statistics to Evaluator (issue750). * Allow putting evaluators into documentation sections (issue749). * Use Evaluator instead of Heuristic in option parser code (issue718). * Rename "heuristic" to "evaluator" in variable and function names. -> Meta issue for using Evaluator instead of Heuristic in user code. * Notify Evaluators about state transitions (issue724). * Move heuristic progress statistics to Evaluator (issue750). * Allow putting evaluators into documentation sections (issue749). * Use Evaluator instead of Heuristic in option parser code (issue718). * Rename "heuristic" to "evaluator" in variable and function names. * Let ConstEvaluator inherit from Evaluator.
2017-11-29 17:24:34jendriksetnosy: + gfrances
messages: + msg6634
summary: This issue intends to spread the use of Evaluator in search code. 1. Provide names for evaluators for logging. 2. Add option to evaluators for enabling/disabling logging of better h-values. 3. Add option to evaluators for enabling/disabling counting of evaluations. 4. Notify Evaluators about state transitions (issue724). 5. Rename "heuristic" to "evaluator" in variable and function names. 6. Use Evaluator instead of Heuristic in option parser code (issue718). 7. Allow putting evaluators into documentation sections (issue749). With items 2. and 3., we intend to remove dynamic casts for checking if an Evaluator is a Heuristic. Without the cast to Heuristic, Evaluator must provide a name for logging (item 1.). Item 4. will finally replace all variables of type heuristic with variables of type Evaluator in the search code. -> Meta issue for using Evaluator instead of Heuristic in user code. * Notify Evaluators about state transitions (issue724). * Move heuristic progress statistics to Evaluator (issue750). * Allow putting evaluators into documentation sections (issue749). * Use Evaluator instead of Heuristic in option parser code (issue718). * Rename "heuristic" to "evaluator" in variable and function names.
2017-11-29 17:13:52jendriksetmessages: + msg6632
summary: This issue intends to spread the use of Evaluator in search code. 1. Provide names for evaluators for logging. 2. Add option to evaluators for enabling/disabling logging of better h-values. 3. Add option to evaluators for enabling/disabling counting of evaluations. 4. Notify Evaluators about state transitions (issue724). 5. Rename "heuristic" to "evaluator" in variable and function names. 6. Use Evaluator instead of Heuristic in option parser code (issue718). With items 2. and 3., we intend to remove dynamic casts for checking if an Evaluator is a Heuristic. Without the cast to Heuristic, Evaluator must provide a name for logging (item 1.). Item 4. will finally replace all variables of type heuristic with variables of type Evaluator in the search code. -> This issue intends to spread the use of Evaluator in search code. 1. Provide names for evaluators for logging. 2. Add option to evaluators for enabling/disabling logging of better h-values. 3. Add option to evaluators for enabling/disabling counting of evaluations. 4. Notify Evaluators about state transitions (issue724). 5. Rename "heuristic" to "evaluator" in variable and function names. 6. Use Evaluator instead of Heuristic in option parser code (issue718). 7. Allow putting evaluators into documentation sections (issue749). With items 2. and 3., we intend to remove dynamic casts for checking if an Evaluator is a Heuristic. Without the cast to Heuristic, Evaluator must provide a name for logging (item 1.). Item 4. will finally replace all variables of type heuristic with variables of type Evaluator in the search code.
2017-11-29 15:40:59jendriksetmessages: + msg6630
summary: This issue intends to spread the use of Evaluator in search code. 1. Provide names for evaluators for logging. 2. Add option to evaluators for enabling/disabling logging of better h-values. 3. Add option to evaluators for enabling/disabling counting of evaluations. 4. Notify Evaluators about state transitions (issue724). 5. Rename "heuristic" to "evaluator" in variable and function names. 6. Merge Heuristic into Evaluator (issue718). With items 2. and 3., we intend to remove dynamic casts for checking if an Evaluator is a Heuristic. Without the cast to Heuristic, Evaluator must provide a name for logging (item 1.). Item 4. will finally replace all variables of type heuristic with variables of type Evaluator in the search code. -> This issue intends to spread the use of Evaluator in search code. 1. Provide names for evaluators for logging. 2. Add option to evaluators for enabling/disabling logging of better h-values. 3. Add option to evaluators for enabling/disabling counting of evaluations. 4. Notify Evaluators about state transitions (issue724). 5. Rename "heuristic" to "evaluator" in variable and function names. 6. Use Evaluator instead of Heuristic in option parser code (issue718). With items 2. and 3., we intend to remove dynamic casts for checking if an Evaluator is a Heuristic. Without the cast to Heuristic, Evaluator must provide a name for logging (item 1.). Item 4. will finally replace all variables of type heuristic with variables of type Evaluator in the search code.
2017-11-27 11:16:53jendriksetstatus: unread -> chatting
title: Use Evaluator instead of Heuristic in more places. -> use Evaluator instead of Heuristic
messages: + msg6601
summary: This issue intends to spread the use of Evaluator in search code. 1. Provide names for evaluators for logging. 2. Add option to evaluators for enabling/disabling logging of better h-values. 3. Add option to evaluators for enabling/disabling counting of evaluations. 4. Notify Evaluators about state transitions (issue724). 5. Rename "heuristic" to "evaluator" in variable and function names. 6. Merge Heuristic into Evaluator (issue718). With items 2. and 3., we intend to remove dynamic casts for checking if an Evaluator is a Heuristic. Without the cast to Heuristic, Evaluator must provide a name for logging (item 1.). Item 4. will finally replace all variables of type heuristic with variables of type Evaluator in the search code.
2017-05-03 11:05:37manuelcreate