Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/01/19 13:03:13 (5 years ago)
Author:
msemenki
Message:

#2988: Add Model Symbol Frequency Analyzer and Model's Clusters Frequency Analyzer. Fix Bag's with Keys. Fix changing during mutation for Variables Types in SubModels .

File:
1 edited

Legend:

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

    r16722 r16734  
    3737  [Item("EvolvmentModelsOfModels Algorithm ", "EMM implementation")]
    3838  [Creatable(CreatableAttribute.Categories.PopulationBasedAlgorithms, Priority = 125)]
    39   [StorableType("D02C50E5-8325-496F-8DEA-C23651756846")]
     39  [StorableType("AD23B21F-089A-4C6C-AD2E-1B01E7939CF5")]
    4040  public class EMMAlgorithm : EvolvmentModelsOfModelsAlgorithmBase {
    4141    public EMMMapTreeModel Map { get; private set; }
     
    5757      InfixExpressionParser parser = new InfixExpressionParser();
    5858      var trees = File.ReadAllLines(InputFileParameter.Value.Value).Select(parser.Parse);
    59       Map = new EMMMapTreeModel(RandomParameter.Value, trees, ClusterNumbersParameter.Value.Value);
    60       ClusterNumbersParameter.Value.Value = Map.K;
    61       if (previousExecutionState != ExecutionState.Paused) {
    62         InitializeAlgorithm(cancellationToken);
    63       }
    64       globalScope.Variables.Add(new Variable("TreeModelMap", Map));
    65       EMMEvolutionaryAlgorithmRun(cancellationToken);
     59      // this.Problem.SymbolicExpressionTreeGrammar;
     60      /*   Problem.ProblemData.Dataset.ColumnNames.Take(2).ToList();
     61         trees.First().Root.Grammar.ContainsSymbol((IVariable)a).
     62           = this.Problem.SymbolicExpressionTreeGrammar;*/
     63      int flag = 1;
     64      switch (flag) {
     65        case 0: // for case when we want only create map, and do  not want made somting also.
     66          Map = new EMMMapTreeModel(RandomParameter.Value, trees, ClusterNumbersParameter.Value.Value);
     67          ClusterNumbersParameter.Value.Value = Map.K;
     68          File.WriteAllLines("Map.txt", Map.MapToString());
     69          File.WriteAllLines("MapToSee.txt", Map.MapToSee());
     70          globalScope = new Scope("Global Scope");
     71          executionContext = new ExecutionContext(null, this, globalScope);
     72          break;
     73        case 1: // for case when we want read existed map and work with it;
     74          Map = new EMMMapTreeModel(RandomParameter.Value, trees);
     75          ClusterNumbersParameter.Value.Value = Map.K;
     76          if (previousExecutionState != ExecutionState.Paused) {
     77            InitializeAlgorithm(cancellationToken);
     78          }
     79          globalScope.Variables.Add(new Variable("TreeModelMap", Map));
     80          EMMEvolutionaryAlgorithmRun(cancellationToken);
     81          break;
     82
     83        default: //for case of usial from zero step starting
     84          Map = new EMMMapTreeModel(RandomParameter.Value, trees, ClusterNumbersParameter.Value.Value);
     85          ClusterNumbersParameter.Value.Value = Map.K;
     86          if (previousExecutionState != ExecutionState.Paused) {
     87            InitializeAlgorithm(cancellationToken);
     88          }
     89          globalScope.Variables.Add(new Variable("TreeModelMap", Map));
     90          EMMEvolutionaryAlgorithmRun(cancellationToken);
     91          break;
     92      }
     93
    6694    }
    6795    private void EMMEvolutionaryAlgorithmRun(CancellationToken cancellationToken) {
     
    201229        foreach (var node in tree.IterateNodesPostfix().OfType<TreeModelTreeNode>()) {
    202230          node.Tree = Map.NewModelForInizializtion(random, out int cluster, out int treeNumber);
    203           node.Tree.Root.ShakeLocalParameters(random, 0.5);
     231          node.SetLocalParameters(random, 0.5);
    204232          node.ClusterNumer = cluster;
    205233          node.TreeNumber = treeNumber;
Note: See TracChangeset for help on using the changeset viewer.