Opened 2 years ago

Last modified 21 months ago

#2988 new feature request

Models of Models

Reported by: msemenki Owned by: msemenki
Priority: medium Milestone: HeuristicLab 3.3.17
Component: ### Undefined ### Version: branch
Keywords: Cc:


The main idea is to use Simple Symbolic Formulas generated offline with the help of the Fast Function Extraction Algorithm as building blocks for Genetic Programming. A map of building block’s set should be generated by means of clustering. All distances between blocks should be calculated offline by using a special metric for symbolic expressions. A mutation operator in Genetic Programming should be modified for work with this kind of map.

Change History (6)

comment:1 Changed 2 years ago by msemenki

28/03/19 11:22:24 r16722: The first version of GP for Evolvement models of models was added.
The main parts:

  • new symbol and new node type,
  • modified grammars for working with the new symbol,
  • modified interpreter for working with the new symbol (SymbolicDataAnalysisExpressionTreeBatchInterpreter.cs),
  • the first variant of a map (EMMMapTreeModel.cs),
  • clustering algorithm for the map preparation (HeuristicLab.Algorithms.EMM/EMMClustering.cs),
  • a mutation that can use these building blocks (HeuristicLab.Algorithms.EMM/EMMMutators.cs),
  • the common algorithm that uses these stuff (HeuristicLab.Algorithms.EMM/EMMAlgorithm.cs).
Last edited 2 years ago by msemenki (previous) (diff)

comment:2 Changed 2 years ago by msemenki

01/04/19 13:03:13 r16734: Add Model Symbol Frequency Analyzer and Model's Clusters Frequency Analyzer. Fix Bags with Keys. Fix changing during mutation for Variables Types in SubModels. Add the possibility to write and read previously created maps.

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

comment:3 Changed 2 years ago by msemenki

04/04/19 14:33:12 r16760: Some new features were added:

  • new type of mutation that respect node type and do not change the trigonometric node to "add" node;
  • variation of previous mutation type that does not change the type of terminal node;
  • some interface adjusting for comfort work with the algorithm;
  • the second variant of the map, that is not "island" map but provide "net" map.

comment:4 Changed 2 years ago by abeham

  • Milestone changed from HeuristicLab 3.3.16 to HeuristicLab 3.3.17

comment:5 Changed 23 months ago by msemenki

06/03/19 14:15:00 r17002 and 05/06/19 14:20:06 r16899:

Class HelpFuction get new static functions that are used in different Map’s classes and possible in other classes.

The branch was adapted to Hive.

A new version of class structure for Maps:

  1. 3 new variants of maps (DistanceMap, RankMap, SuccessMap and ZeroMap) are added;
  2. BaseMap class was modified, some class members were deleted and others were transported to child classes because some of them are not used in all kinds of maps;
  3. Functions between the base class and child class were divided in another way;
  4. Mutation operators were adapted to work with the new class structure. Now mutation make less work for ModelNodes than previously;
  5. ModelNode and Model symbols were simplified. They should not take into account a map type;
  6. Models frequency analyzers were adapted for new variants of maps;
  7. EMMAlgorithm class was adapted to new maps.

comment:6 Changed 21 months ago by msemenki

11/07/29 16:30:00 [17134]:

  1. The file system was changed, folders was added and part of files was transferred in these folders.
  2. HelpFunctions class was divided on 2 parts: HelpFuctions for common purposes static functions and SelfConfiguration that include functions for self-configuration mechanism realization (is used in EMMSucsessMap).
  3. Parts of self-configuration mechanism was transferred from EMMSucsessMap.cs to SelfConfiguration.cs. Now EMMSucsessMap used SelfConfiguration like one of data member. Other parts of project was adopted for this changing.
  4. FileComunication class was added. It include the majority of functions for printing to files or reading from files. Here were realized possibility to write and read to hl files.
  5. ModelTreeNode.cs has additional possibility: to write sub-model in string (then it is possible to write it in file).
  6. InfixExpressionFormatter.cs can work with TreeModelNode.
  7. Possibility for different map types to be readable from files was extended and cheeked.
  8. Such parameters like - ClusterNumbers, ClusterNumbersShow, NegbourNumber, NegbourType (that is used only in several maps) was transferred from EMMAlgorithm to Map Parameters. Now EMMBaseMap class inherited from ParameterizedNamedItem (not from Item). And EMMIslandMap and EMMNetworkMap contains their parameters (constructors was modified). CreationMap calls functions were simplified.
  9. Functions for different distance metric calculation was added. Now, it is possible to calculate different types of distances between models (with different random values of constants).
  10. DistanceParametr was added. Now maps can be created according different types of distance calculations.
  11. The class EMMClustering has new name KMeansClusterizationAlgorithm. On KMeansClusterizationAlgorithm bug with bloating of centroids list was fixed. Algorithm was adopted for working with different type of distance metric and get maximum number of iterations.
  12. Possibilities for constants optimization in sub-models an whole tree was added. EMMAlgorithm get new function for evaluation of individuals (and some additional technical stuff for that). Function for trees with model in usual tree transformation and back was added.
  13. EMMAlgorithm was divided on 2 parts:
  • EMMAlgorithm, that contain evolutionary algorithm working with sub-models, and use ready to use maps;
  • ModelSetPreparation, that contain distance calculation, model set simplification and map creation.
Last edited 21 months ago by msemenki (previous) (diff)
Note: See TracTickets for help on using tickets.