[issue559] Solve the component interaction problem.#285
Open
FlorianPommerening wants to merge 27 commits intoaibasel:mainfrom
Open
[issue559] Solve the component interaction problem.#285FlorianPommerening wants to merge 27 commits intoaibasel:mainfrom
FlorianPommerening wants to merge 27 commits intoaibasel:mainfrom
Conversation
…hrough a task (currently unused and fixed to the root task)
…omponent instead). Also remove features no_transform and adapt_costs (use cost_adapted_heuristic in the future). AbstractTask is no longer a TaskIndependentComponent.
…of TaskIndependentComponent parameter with concept, expose TaskIndependentComponent::BoundType
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is not quite ready for review yet.
Notable changes:
component.h). For components where the general template doesn't fit, we add new classes for the task-independent version. Many of the classes we already have already use a factory pattern (landmark factory, pattern generator, etc.) - we plan to use them directly as the task-independent version to reduce the nesting level. But this is deferred to follow-up issues.Heuristicno longer takes atransformargument on the command line. Instead, there is a new heuristiccost_adapted_heuristicthat evaluates a nested heuristic under different costs (so far this was the only publicly available transformation).shared_ptr<AbstractTask>and store aTaskProxyinternally. This task is passed to their constructors when binding a task to a task-independent object. This is currently only used by heuristics and search algorithms. All other classes still get a task in the same way they did before (e.g., ingenerate_patterns(task)). This is because of the factory-factory pattern mentioned above and will be clearer once we get rid of it.Featureclasses in theplugincode and use aTaskIndependentFeaturewhere we previously usedTypedFeature.TaskIndependentEvaluatorwhere they previously took anEvaluator. Our templated automatic task-independent class recursively binds those to a given task before passing them on to the constructor, so the task-specific classes still take the original arguments (e.g.,Evaluator). The automatic documentation was adapted so the output should stay the same (still calling the argument andEvaluator).