Opened 4 years ago

Closed 19 months ago

#2027 closed feature request (done)

Customizable termination criteria

Reported by: abeham Owned by: mkommend
Priority: highest Milestone: HeuristicLab 3.3.13
Component: Algorithms Version: 3.3.13
Keywords: Cc:

Description

Algorithms should support a customizable number of termination criteria that can be extended and combined.

Change History (62)

comment:1 Changed 4 years ago by gkronber

  • Priority changed from high to highest

comment:2 Changed 2 years ago by abeham

  • Owner changed from swagner to pfleck
  • Status changed from new to assigned

Please make a suggestion that we can discuss in the next architects meeting

comment:3 Changed 2 years ago by pfleck

  • Status changed from assigned to accepted

comment:4 Changed 2 years ago by pfleck

r12299 Created branch. r12300 Copied OSGA Plugin for testing the new termination criteria.

comment:5 Changed 2 years ago by pfleck

r12301

  • Added and configured Termination Plugin.
  • Adapted references for OSGA Plugin.
  • Created solution file.

comment:6 Changed 2 years ago by pfleck

r12303 First draft for termination criteria.

comment:7 Changed 2 years ago by pfleck

r12304 Used new termination-operator and -criteria in OSGA.

comment:8 Changed 2 years ago by pfleck

r12307 Fixed problem that parameter values are not available during operator construction by using value changed events. Note that the debug view is not working with this because of the runtime operator graph change.

comment:9 Changed 2 years ago by pfleck

r12308 Used an InstrumentedOperator instead of an AlgorithmOperator and added the operators to the BeforeExecutionOperators.

comment:10 Changed 2 years ago by pfleck

r12310 Made a genetic ComparisonTerminationCriterion instead of the MaximumIterationsTerminationCriterion.

comment:11 Changed 2 years ago by pfleck

r12312 Corrected wrong variable name.

comment:12 Changed 2 years ago by pfleck

r12328 Added execution-time based termination criterion. Restructured configuring termination criteria.

comment:13 Changed 2 years ago by pfleck

r12355 Fixed small bugs and typos.

comment:14 Changed 2 years ago by pfleck

r12356 Split update and parameterization of TerminationCriteria similar to other operators.

comment:15 Changed 2 years ago by pfleck

r12357 Removed obsolete manual termination criteria operators.

comment:16 Changed 2 years ago by pfleck

r12362 Added specific View for ComparisonTerminationCriterion for simpler configuration.

comment:17 Changed 2 years ago by pfleck

r12364 Changed a few things to better show single value criteria.

comment:18 Changed 2 years ago by pfleck

r12366 Added a base class ThresholdTerminationCriterion for generalization of the view, which shows only a single value threshold now, and of the ToString mechanic.

comment:19 Changed 2 years ago by pfleck

r12367 Forgot adding new ThresholdTerminationCriterion.

comment:20 Changed 2 years ago by pfleck

r12368 Fixed some typos.

comment:21 Changed 2 years ago by pfleck

  • Milestone changed from HeuristicLab 3.3.x Backlog to HeuristicLab 3.3.12
  • Owner changed from pfleck to architects
  • Status changed from accepted to reviewing

comment:22 Changed 2 years ago by ascheibe

  • Owner changed from architects to mkommend
  • Status changed from reviewing to assigned

comment:23 Changed 2 years ago by pfleck

  • Owner changed from mkommend to pfleck
  • Status changed from assigned to accepted

comment:24 Changed 2 years ago by pfleck

r12402 Renamed TerminationCriterion to Terminator.

comment:25 Changed 2 years ago by pfleck

r12403 Wired Maximization-Parameter for the Quality Terminator.

comment:26 Changed 2 years ago by pfleck

r12404

  • Hide the additional ViewsLabel of the ViewHost in the ThresholdTerminatorView.
  • Renamed Terminators-parameter to Terminator to match naming of the Analyzer-parameter.

comment:27 Changed 2 years ago by pfleck

r12405

  • Uses FixedValueParameters and added some properties.
  • Added the comparison-symbol in the string-representation of Terminators.
  • Renamed Terminator parameter to Termination to use a more neutral term.
  • Used Red-Flag as Termination-Icon.

comment:28 Changed 2 years ago by pfleck

r12407 Inverted the conditions to check the continue criteria instead of termination criteria. Conditions are then specified more naturally: "while generations < max" instead of "break if generations > min". If any Continue-Check returns false, the algorithm will be terminated.

The naming "Terminator" has to be discussed because it suggest to specify the criteria when the algorithm should stop, instead of continue.

comment:29 Changed 2 years ago by pfleck

r12408

  • Added ValueChanged-events to Terminators.
  • Fixed wiring bug of quality-based Terminator.

comment:30 Changed 2 years ago by pfleck

r12410

  • Added IThresholdTerminator interface for more flexibility. The ThresholdTerminatorView now uses the interface instead of a concrete terminator.
  • Added MaximumIterationsTerminator and SingleObjectiveQualityTerminator as common used Terminators.

comment:31 Changed 2 years ago by pfleck

r12411

  • Removed MaximumIterationsTerminator and MaximumEvaluatedSolutionsTermimator because they practically do the same.
  • Add the possibility for ThresholdTerminators to use a foreign parameter (e.g. MaximumSelectionPressure). This way the terminator can use parameters which are still relevant for the algorithm and still provide consistent management of the terminators.
  • Renamed IThresholdTerminator to ISingleValueTerminator.

comment:32 Changed 2 years ago by pfleck

r12412 Removed the MaximumEvaluatedSolutions-parameter from OSGA.

Last edited 2 years ago by pfleck (previous) (diff)

comment:33 Changed 2 years ago by pfleck

r12413 Added some custom values when collecting parameter values of Terminators.

comment:34 Changed 2 years ago by pfleck

r12414 Changed Terminator base class to SingleSuccessorOperator and omit some values while collecting parameter values to reduce the amount of collected values for all terminators.

comment:35 Changed 2 years ago by pfleck

r12415 Renamed the parameter of ISingleValueTerminator to match the interface name.

comment:36 Changed 2 years ago by pfleck

  • Owner changed from pfleck to mkommend
  • Status changed from accepted to reviewing

comment:37 Changed 2 years ago by mkommend

  • Owner changed from mkommend to pfleck
  • Status changed from reviewing to assigned

Review comments:

  • Improve naming of SingleValueTerminator
  • ComparisonTerminator is missing the changed event for the ComparisonType
  • SingleObjecitveQualityTerminator is missing an item description
  • ITerminationBasedOperator should be added which contains the lookup parameter for the termination flag -> the actual name of the termination flag could be changed and the appropriate operators automatically wired.

comment:38 Changed 2 years ago by mkommend

r12436: Improved code formatting for terminators.

comment:39 Changed 2 years ago by pfleck

r12444

  • Removed ISingleValueTerminator and used ThresholdTerminator for the View instead.
  • Added missing description in SingleObjectiveQualityTerminator.
  • Added ITerminationBasedOperator which contains the terminate-flag.

comment:40 Changed 2 years ago by pfleck

r12447

  • Renamed TerminatonParameter to TerminatorParameter.
  • Renamed Comparison to ComparisonType.

comment:41 Changed 2 years ago by pfleck

  • Owner changed from pfleck to mkommend
  • Status changed from assigned to reviewing

comment:42 Changed 2 years ago by mkommend

  • Version changed from 3.3.7 to branch

comment:43 Changed 2 years ago by mkommend

  • Milestone changed from HeuristicLab 3.3.12 to HeuristicLab 3.3.13

comment:44 Changed 2 years ago by pfleck

  • Owner changed from mkommend to pfleck
  • Status changed from reviewing to assigned

comment:45 Changed 2 years ago by pfleck

  • Status changed from assigned to accepted

comment:46 Changed 2 years ago by pfleck

r12526 Branched Optimization-Plugin. r12527 Branched Optimization.Views-Plugin.

comment:47 Changed 2 years ago by pfleck

r12528 Adapted plugin references.

comment:48 Changed 2 years ago by pfleck

r12529

  • Moved Termination to HeuristicLab.Optimization-Plugin.
  • Moved Termination-Views to HeuristicLab.Optimization.Views-Plugin.
  • Removed Termination-Plugin.

comment:49 Changed 2 years ago by pfleck

r12530 Removed plugin dependency.

comment:50 Changed 2 years ago by pfleck

r12567 Added missing clone method.

comment:51 Changed 22 months ago by pfleck

r12809 Merged trunk changes.

comment:52 Changed 22 months ago by pfleck

r12887 Merged trunk changes.

comment:53 Changed 20 months ago by pfleck

r12974 Updated merge infos before trunk integration.

comment:54 Changed 20 months ago by pfleck

r12975 Merged Terminators and Terminator-Views to trunk.

comment:55 Changed 20 months ago by pfleck

r12976 Removed Optimization-Plugin because Terminators were merged to Trunk. OSGA-Plugin remains as a sample on how to use/implement the Terminators.

comment:56 Changed 20 months ago by pfleck

  • Owner changed from pfleck to mkommend
  • Status changed from accepted to reviewing

comment:57 Changed 20 months ago by ascheibe

  • Version changed from branch to 3.3.13

comment:58 Changed 19 months ago by pfleck

  • Owner changed from mkommend to pfleck
  • Status changed from reviewing to assigned

comment:59 Changed 19 months ago by pfleck

  • Owner changed from pfleck to mkommend
  • Status changed from assigned to reviewing

r13137 Deleted TerminationCriteria branch. Because ALPS will be integrated into the trunk soon, it will function as a showcase for implementing TerminationCriteria.

comment:60 Changed 19 months ago by mkommend

  • Status changed from reviewing to readytorelease

comment:61 Changed 19 months ago by mkommend

r13282: Merged r12975, r12976 and r13137 into stable.

comment:62 Changed 19 months ago by mkommend

  • Resolution set to done
  • Status changed from readytorelease to closed
Note: See TracTickets for help on using tickets.