heal-research / HeuristicLab

HeuristicLab - An environment for heuristic and evolutionary optimization
https://dev.heuristiclab.com
GNU General Public License v3.0
39 stars 16 forks source link

Implement ALPS #2269

Closed HeuristicLab-Trac-Bot closed 8 years ago

HeuristicLab-Trac-Bot commented 9 years ago

Issue migrated from trac ticket # 2269

milestone: HeuristicLab 3.3.13 | component: Algorithms | priority: medium | resolution: done

2014-10-29 09:05:52: @NimZwei created the issue


Implement the Age-Layered Population Structure![1].

-*Abstract:** To reduce the problem of premature convergence we define a new method for measuring an individual’s age and propose the Age-Layered Population Structure (ALPS). This new measure of age measures how long the genetic material has been evolving in the population: offspring start with an age of 1 plus the age of their oldest parent instead of starting with an age of 0 as with traditional measures of age. ALPS differs from a typical evolutionary algorithm (EA) by segregating individuals into different age-layers by their age and by regularly introducing new, randomly generated individuals in the youngest layer. The introduction of randomly generated individuals at regular intervals results in an EA that is never completely converged and is always exploring new parts of the fitness landscape. By using age to restrict competition and breeding, younger individuals are able to develop without being dominated by older ones. Analysis of the search behavior of ALPS finds that the offspring of individuals that are randomly generated mid-way through a run are able to move the population out of mediocre localoptima to better parts of the fitness landscape. In comparison against a traditional EA, a multi-start EA and two other EAs with diversity maintenance schemes we find that ALPS produces significantly better designs with a higher reliability than the other EAs.

![1] http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.153.1516

HeuristicLab-Trac-Bot commented 9 years ago

2014-10-29 09:06:30: @NimZwei changed status from new to accepted

HeuristicLab-Trac-Bot commented 9 years ago

2014-10-29 09:09:21: @NimZwei commented


r11507 Created ALPS branch

HeuristicLab-Trac-Bot commented 9 years ago

2014-10-29 10:57:59: @NimZwei commented


r11508 Added first ALPS concepts as UserDefinedAlgorithm.

HeuristicLab-Trac-Bot commented 9 years ago

2014-10-29 11:20:54: @NimZwei commented


r11509 Updated ALPS UserDefinedAlgorithm.

HeuristicLab-Trac-Bot commented 9 years ago

2014-11-04 16:02:22: @NimZwei commented


r11521 Simplified emigration of elders.

HeuristicLab-Trac-Bot commented 9 years ago

2014-11-10 08:56:18: @NimZwei commented


r11531 MatingPoolCreator now uses OpenLayers variable correctly.

HeuristicLab-Trac-Bot commented 9 years ago

2014-11-20 10:56:50: @NimZwei commented


r11558

  • Updated prototype APLS-OperatorGraph.
  • Added Samples for VRP and SymReg.
  • Temporarily added OptionalSubScopesProcessor for the ALPS prototype.
HeuristicLab-Trac-Bot commented 9 years ago

2014-11-24 10:03:21: @NimZwei commented


r11566 Added ALPS-Plugin.

  • Updated Build-Configuration for DataPreprocessingViews.
HeuristicLab-Trac-Bot commented 9 years ago

2014-11-24 10:23:38: @NimZwei commented


r11567 Added AlpsGeneticAlgorithm and updated plugin description.

HeuristicLab-Trac-Bot commented 9 years ago

2014-11-24 13:31:20: @NimZwei commented


r11568 Added Parameters for ALPS-GA.

HeuristicLab-Trac-Bot commented 9 years ago

2014-11-24 14:44:55: @NimZwei commented


r11569

  • Added a generic EnumValue for wrapping an enum.
  • Added a generic EnumValueView which displays a drop down with the available enum values.
  • Made AgingScheme an EnumValue instead of ValueTypeValue.
HeuristicLab-Trac-Bot commented 9 years ago

2014-11-25 09:19:42: @NimZwei commented


r11578 Implemented wiring of ALPS-GA based on Island-GA wiring.

HeuristicLab-Trac-Bot commented 9 years ago

2014-11-25 11:38:12: @NimZwei commented


r11580 Implemented AlpsGeneticAlgorithmMainLoop.

HeuristicLab-Trac-Bot commented 9 years ago

2014-11-25 13:47:02: @NimZwei commented


r11583

  • Implemented MatingPoolCreator.
  • Added a modified GeneticAlgorithMainLoop as main operator in ALPS-GA-MainLoop.
HeuristicLab-Trac-Bot commented 9 years ago

2014-11-25 15:28:44: @NimZwei commented


r11585 Implemented EldersEmigrator.

  • Implemented EldersSelector and ShiftToRightMigrator.
HeuristicLab-Trac-Bot commented 9 years ago

2014-11-26 11:06:49: @NimZwei commented


r11586 Implemented LayerUpdator.

  • Added First/LastSubScopeProcessor.
  • Added two Calculators because ExpressionCalculator does not support required features yet.
  • Added some wiring.
  • Small bugfixes and refactorings.
HeuristicLab-Trac-Bot commented 9 years ago

2014-11-26 17:22:54: @NimZwei commented


r11590

  • Finished implementing LayerUpdator.
  • Proper implemented per-layer results.
  • Some bugfixes and wiring.
  • Added LastSubScopeCloner. Note that the First/LastSubScopeCloner/Processor might be dropped and Left/Right-Selectors are used instead. Thanks to jkarder for this suggestion.
HeuristicLab-Trac-Bot commented 9 years ago

2014-12-01 16:23:35: @NimZwei commented


r11609

  • Fixed Bugs with Per-Layer-Results.
  • Fixed Bugs in EldersSelector.
  • Added LayerCreator instead of LastSubScopeCloner for avoiding operators for some temporary hacks.
HeuristicLab-Trac-Bot commented 9 years ago

2014-12-02 11:06:56: @NimZwei commented


r11617

  • Fixed Bug in MatingPoolCreator.
  • Added AgeDiversityAnalyzer.
HeuristicLab-Trac-Bot commented 9 years ago

2014-12-02 13:20:59: @NimZwei commented


r11620

  • Implemented automatic calculation of the age limits based on ALPS' parameter.
  • Renamed AgeDiversityAnalyzer to AgeDistributionAnalyzer.
HeuristicLab-Trac-Bot commented 9 years ago

2014-12-10 09:51:24: @NimZwei commented


r11676 Added LayerPopulationSize variable (for PopulationSizeAnalyzer)

HeuristicLab-Trac-Bot commented 9 years ago

2014-12-10 10:32:02: @NimZwei commented


r11677 Merged trunk. Updated .net version of ALPS plugin.

HeuristicLab-Trac-Bot commented 9 years ago

2014-12-10 12:43:33: @NimZwei commented


r11678

  • Fixed bug when updating crossovers and mutators.
  • Made DataReducers Reduction- and TargetOperationParameter to ValueLookupParameter. This enables ALPS to make the age determination configurable.
HeuristicLab-Trac-Bot commented 9 years ago

2015-02-10 09:58:37: @NimZwei commented


r11975 merged trunk

HeuristicLab-Trac-Bot commented 9 years ago

2015-02-13 12:00:10: @foolnotion commented


r11997: Removed obsolete diversity analyzer and added the new bottom-up and phenotype diversity analyzers (and similarity calculators)

HeuristicLab-Trac-Bot commented 9 years ago

2015-02-16 20:16:13: @NimZwei commented


r12018

  • merged trunk after 3.3.11 release
  • updated copyright and plugin version in ALPS plugin
  • removed old ALPS samples based on an userdefined alg
HeuristicLab-Trac-Bot commented 9 years ago

2015-02-18 15:39:36: @NimZwei commented


r12035

  • Added LayerUniformSubScopesProcessor which introduces an intermediate ExecutionContext which translates array-based parameters to single-value parameters.
  • Updated ALPS-OperatorGraph to make usage of the new LayerUniformSubScopesProcessor.
  • Added a temporary operator for calculating number of selected sub scopes because presetting the value during operator parameterization does not work for the new intermediate context. Note: the change of the PopulationSizeParameter still causes an error when creating a new layer. This will be fixed soon.
HeuristicLab-Trac-Bot commented 9 years ago

2015-02-18 17:24:56: @NimZwei commented


r12036

  • Used Left/RightSelector instead of First/LastSubScopesProcessor
  • Used the LayerUniformSubScopesProcessor for reseeding and opening new layer to take usage of the per-layer parameterization.
  • Added LayerSorter because layers are sorted wrong after MergingReducer.
  • Removed obsolete LastSubScopeCloner.
HeuristicLab-Trac-Bot commented 9 years ago

2015-02-19 10:16:09: @NimZwei commented


r12038 Merged r12037 from trunk into ALPS.

HeuristicLab-Trac-Bot commented 9 years ago

2015-02-19 12:52:52: @NimZwei commented


r12039 Per-layer parameter can be used to define all multiple layers. If less values are specified in the array the last value is used for all subsequent layers. I.e. when the array has the length 1, all layers use that same one value. From a usability point of view, this behavior may has to be discussed more in detail.

HeuristicLab-Trac-Bot commented 9 years ago

2015-02-19 13:21:15: @NimZwei commented


r12040 Introduced a parameter to adjust the range of layers used for creating a mating pool.

HeuristicLab-Trac-Bot commented 9 years ago

2015-02-20 11:52:24: @NimZwei commented


r12045 Added a parameter in the MatingPoolCreator which controls the percentage of individuals used from the layers below.

HeuristicLab-Trac-Bot commented 9 years ago

2015-02-20 14:16:25: @NimZwei commented


r12046 Added an OldestAverageYoungestAgeAnalyzer.

HeuristicLab-Trac-Bot commented 9 years ago

2015-02-20 16:04:50: @NimZwei commented


r12048

  • Changed default values of ALPS-GA.
  • OldestAverageYoungesAgeAnalyzer only writes the datatable to the results instead of all values.
HeuristicLab-Trac-Bot commented 9 years ago

2015-02-25 15:06:11: @NimZwei commented


r12071

  • Added analyzers in Analyzers and LayerAnalyzers are now configured automatically (depth of scope tree parameters).
  • Renamed per layer results to LayerResults.
HeuristicLab-Trac-Bot commented 9 years ago

2015-02-25 15:06:11: @NimZwei

HeuristicLab-Trac-Bot commented 9 years ago

2015-02-25 16:50:26: @NimZwei commented


r12073: merged r12072 from trunk.

HeuristicLab-Trac-Bot commented 9 years ago

2015-02-26 12:44:33: @NimZwei commented


r12080

  • LayerUniformSubScopesProcessor does not longer derives from UniformSubScopesProcessor.
  • Reverted changes of UniformSubScopesProcessor.
HeuristicLab-Trac-Bot commented 9 years ago

2015-02-26 13:20:11: @NimZwei commented


r12081 Renamed ALPS branch r12082 Create new branch folder for ALPS which does not branch the whole trunk.

HeuristicLab-Trac-Bot commented 9 years ago

2015-02-26 13:33:07: @NimZwei commented


r12083 Copied ALPS Plugin from old ALPS branch.

HeuristicLab-Trac-Bot commented 9 years ago

2015-02-26 13:54:26: @NimZwei commented


r12084

  • Changed the output and reference paths of the ALPS project.
  • Added ALPS solution file.
  • Added build and prebuild commands.
HeuristicLab-Trac-Bot commented 9 years ago

2015-02-27 10:54:50: @NimZwei commented


r12092

  • Use the new toint function of the ExpressionCalculator in the EldersEmigrator and remove the now obsolete MergingReducerCalculator.
  • Removed some parameters from the EldersMigrator because the AlpsGeneticAlgorithmMainLoop already defines those parameters.
HeuristicLab-Trac-Bot commented 9 years ago

2015-02-27 11:09:50: @NimZwei commented


r12094 Replaced the NumberOfSelectedSubScopesCalculator with an ExpressionCalculator.

HeuristicLab-Trac-Bot commented 9 years ago

2015-02-27 13:55:40: @NimZwei commented


r12097 Replaced the OpenNewLayerCalculator with an ExpressionOperator.

HeuristicLab-Trac-Bot commented 9 years ago

2015-03-06 13:07:44: @NimZwei commented


r12149 Removed AgingScheme type which inherited from EnumValue. Instead used EnumValue directly.

HeuristicLab-Trac-Bot commented 9 years ago

2015-03-11 09:33:44: @NimZwei commented


r12186 Added the possibility for a plus-selection replacement scheme.

HeuristicLab-Trac-Bot commented 9 years ago

2015-03-13 09:58:20: @NimZwei commented


r12197

  • Put LayerAnalyzer after migrating and layer updates.
  • Added missing StorableClassAttribute on Alps base class.
HeuristicLab-Trac-Bot commented 9 years ago

2015-03-26 15:28:09: @NimZwei commented


r12260

  • Changed default setting of selector for ALPS.
  • Fixed automatic LayerResult wiring.
HeuristicLab-Trac-Bot commented 9 years ago

2015-03-31 13:19:10: @NimZwei commented


r12271 Added AgeInheritance as own type and value for consistent configuration.

HeuristicLab-Trac-Bot commented 9 years ago

2015-06-10 14:22:48: @NimZwei commented


r12426 (not migrated) Removed old ALPS branch.