- Timestamp:
- 06/03/19 14:15:11 (5 years ago)
- Location:
- branches/2988_ModelsOfModels2/HeuristicLab.Algorithms.EMM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2988_ModelsOfModels2/HeuristicLab.Algorithms.EMM
- Property svn:ignore
-
old new 12 12 *.nuget.props 13 13 *.nuget.targets 14 Plugin.cs
-
- Property svn:ignore
-
branches/2988_ModelsOfModels2/HeuristicLab.Algorithms.EMM/EMMMutators.cs
r16899 r17002 23 23 using HeuristicLab.Common; 24 24 using HeuristicLab.Core; 25 using HeuristicLab.Data;26 25 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 27 26 using HeuristicLab.Parameters; 28 27 using HeuristicLab.Problems.DataAnalysis.Symbolic; 29 using HeuristicLab.Random;30 28 using System.Collections.Generic; 31 29 using System.Linq; … … 43 41 44 42 public List<ISymbolicExpressionTree> ModelSet => MapParameter.ActualValue.ModelSet; 45 public List<int> ClusterNumber => MapParameter.ActualValue.ClusterNumber;46 43 public List<List<int>> Map => MapParameter.ActualValue.Map; 47 44 … … 58 55 59 56 protected override void Manipulate(IRandom random, ISymbolicExpressionTree symbolicExpressionTree) { 60 EMMMutatorsPart(random, symbolicExpressionTree, ModelSet, ClusterNumber,Map);57 EMMMutatorsPart(random, symbolicExpressionTree, ModelSet, Map); 61 58 } 62 public static void EMMMutatorsPart(IRandom random, ISymbolicExpressionTree symbolicExpressionTree, List<ISymbolicExpressionTree> modelSet, List<int> clusterNumber, List<List<int>> map) {59 public void EMMMutatorsPart(IRandom random, ISymbolicExpressionTree symbolicExpressionTree, List<ISymbolicExpressionTree> modelSet, List<List<int>> map) { 63 60 List<ISymbol> allowedSymbols = new List<ISymbol>(); 64 61 ISymbolicExpressionTreeNode parent; … … 109 106 110 107 if (newNode is TreeModelTreeNode treeNode) { 111 int p = random.Next(map.Count); 112 if (child is TreeModelTreeNode chNode) { p = chNode.ClusterNumer; } 113 treeNode.TreeNumber = map[p].SampleRandom(random); 114 treeNode.Tree = (ISymbolicExpressionTree)modelSet[treeNode.TreeNumber].Clone(); 115 treeNode.ClusterNumer = p; 116 treeNode.SetLocalParameters(random, 0.5); 108 int p = random.Next(modelSet.Count); 109 if (child is TreeModelTreeNode chNode) { p = chNode.TreeNumber; } 110 treeNode.TreeNumber = p; 111 MapParameter.ActualValue.NodeForMutationChange(random, treeNode); 117 112 } else if (newNode.HasLocalParameters) 118 113 newNode.ResetLocalParameters(random);
Note: See TracChangeset
for help on using the changeset viewer.