Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/11/19 16:30:22 (5 years ago)
Author:
msemenki
Message:

#2988:

  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.
Location:
branches/2988_ModelsOfModels2/HeuristicLab.Algorithms.EMM/EMMOperators
Files:
1 added
1 moved

Legend:

Unmodified
Added
Removed
  • branches/2988_ModelsOfModels2/HeuristicLab.Algorithms.EMM/EMMOperators/EMMMultyPointsMutator.cs

    r17133 r17134  
    7171
    7272      List<ISymbol> allowedSymbols = new List<ISymbol>();
    73       var probability = (1 / mutationProbability.Value) / (symbolicExpressionTree.Length); // probability for edch node to mutate
     73      var probability = (1 / mutationProbability.Value) / (symbolicExpressionTree.Length); // probability for each node to mutate
    7474      var allAllowedSymbols = symbolicExpressionTree.Root.Grammar.AllowedSymbols.Where(s =>
    7575        !(s is Defun) &&
     
    8181      symbolicExpressionTree.Root.ForEachNodePostfix(node => {//for each node in tree - try to mutate
    8282
    83         if (SymbolTypeCheck(node.Symbol, allAllowedSymbols)) { // we do not want to toch StartSymbol
     83        if (SymbolTypeCheck(node.Symbol, allAllowedSymbols)) { // we do not want to touch StartSymbol
    8484          if (random.NextDouble() < probability) { // ok. this node decide to mutate
    8585
     
    8787              if ((symbol.MaximumArity == node.Symbol.MaximumArity) && (symbol.MinimumArity == node.Symbol.MinimumArity)) { allowedSymbols.Add(symbol); }
    8888            }
    89             if (node.Symbol.MaximumArity == 0) { // for terminal nodes add aditional the same type of nodes
     89            if (node.Symbol.MaximumArity == 0) { // for terminal nodes add additional the same type of nodes
    9090              allowedSymbols.Add(node.Symbol);
    9191            }
    9292            int pTemp = random.Next(map.Count);
    93             if (node is TreeModelTreeNode treeNode) { pTemp = treeNode.TreeNumber; } //remeber the cluster number
     93            if (node is TreeModelTreeNode treeNode) { pTemp = treeNode.TreeNumber; } //remember the cluster number
    9494            var weights = allowedSymbols.Select(s => s.InitialFrequency).ToList(); // set up probabilities
    9595
    9696#pragma warning disable CS0618 // Type or member is obsolete
    97             var newSymbol = allowedSymbols.SelectRandom(weights, random); // create new node from the choosen symbol type. Ror terminal nodes it means that we have only one possible varint.
     97            var newSymbol = allowedSymbols.SelectRandom(weights, random); // create new node from the chosen symbol type. For terminal nodes it means that we have only one possible variant.
    9898#pragma warning restore CS0618 // Type or member is obsolete
    9999            node = newSymbol.CreateTreeNode();
    100100
    101             if (node is TreeModelTreeNode treeNode2) { // make rigth mutation for tree model
     101            if (node is TreeModelTreeNode treeNode2) { // make right mutation for tree model
    102102              treeNode2.TreeNumber = pTemp;
    103103              MapParameter.ActualValue.NodeForMutationChange(random, treeNode2);
    104             } else if (node.HasLocalParameters) { // make local parametrs set up for other node types
     104            } else if (node.HasLocalParameters) { // make local parameters set up for other node types
    105105              node.ResetLocalParameters(random);
    106106            }
Note: See TracChangeset for help on using the changeset viewer.