Changeset 16734 for branches/2988_ModelsOfModels2/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols
- Timestamp:
- 04/01/19 13:03:13 (6 years ago)
- Location:
- branches/2988_ModelsOfModels2/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2988_ModelsOfModels2/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/ModelTreeNode.cs
r16722 r16734 25 25 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 26 26 using HeuristicLab.Random; 27 using System.Collections.Generic; 28 27 using System.Linq; 29 28 30 29 namespace HeuristicLab.Problems.DataAnalysis.Symbolic { 31 [StorableType(" 38C37AED-5B9D-488E-8785-D8FF541D9B4C")]30 [StorableType("44B25E73-6C4D-404C-93E5-42B7D2807CF7")] 32 31 public sealed class TreeModelTreeNode : SymbolicExpressionTreeTerminalNode { 33 32 public new TreeModel Symbol { … … 71 70 get { return true; } 72 71 } 73 //public override void ResetLocalParameters(IRandom random, List<ISymbolicExpressionTree> modelSet, List<List<int>> map, List<int> cLusterNumber) {74 // base.ResetLocalParameters(random);75 // if (ClusterNumer < 0) {76 // //Tree = map.NewModelForInizializtion(ClusterNumer, random);77 // var selectedNodelNumber = random.Next(modelSet.Count);78 // ClusterNumer = cLusterNumber[selectedNodelNumber];79 // TreeNumber = selectedNodelNumber;80 // Tree = (ISymbolicExpressionTree)modelSet[selectedNodelNumber].Clone();81 // } else {82 // //New Model For Mutation Adding83 // var selectedNodelNumber = random.Next(map[ClusterNumer].Count);84 // TreeNumber = selectedNodelNumber;85 // Tree = (ISymbolicExpressionTree)modelSet[map[ClusterNumer][selectedNodelNumber]].Clone();86 // }87 88 //}89 90 72 public override void ShakeLocalParameters(IRandom random, double shakingFactor) { 91 73 base.ShakeLocalParameters(random, shakingFactor); 92 List<ISymbolicExpressionTreeNode> parametricNodes = new List<ISymbolicExpressionTreeNode>(); 93 Tree.Root.ForEachNodePostfix(n => { 94 if (n.HasLocalParameters) parametricNodes.Add(n); 95 }); 96 if (parametricNodes.Count > 0) { 74 var parametricNodes = Tree.IterateNodesPrefix().Where(x => x.HasLocalParameters).ToList(); 75 if (parametricNodes.Any()) { 97 76 var selectedPoint = parametricNodes.SampleRandom(random); 98 selectedPoint.ShakeLocalParameters(random, shakingFactor); 77 if (selectedPoint is VariableTreeNode variableTreeNode) { 78 var symbol = variableTreeNode.Symbol; 79 variableTreeNode.Weight = NormalDistributedRandom.NextDouble(random, symbol.WeightManipulatorMu, symbol.WeightManipulatorSigma); 80 } else { 81 selectedPoint.ShakeLocalParameters(random, shakingFactor); 82 } 83 99 84 } 100 85 } 101 86 public void SetLocalParameters(IRandom random, double shakingFactor) { 87 foreach (var node in Tree.IterateNodesPrefix().Where(x => x.HasLocalParameters)) { 88 if (node is VariableTreeNode variableTreeNode) { 89 var symbol = variableTreeNode.Symbol; 90 variableTreeNode.Weight = NormalDistributedRandom.NextDouble(random, symbol.WeightManipulatorMu, symbol.WeightManipulatorSigma); 91 } else { 92 node.ResetLocalParameters(random); 93 } 94 } 95 } 102 96 public override IDeepCloneable Clone(Cloner cloner) { 103 97 return new TreeModelTreeNode(this, cloner); … … 106 100 public override string ToString() { 107 101 108 string s = "model" + " " +TreeNumber.ToString()+"\n " + new InfixExpressionFormatter().Format(tree);102 string s = "model" + " " + TreeNumber.ToString() + "\n " + new InfixExpressionFormatter().Format(tree); 109 103 return s; 110 104 } -
branches/2988_ModelsOfModels2/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/TreeModel.cs
r16722 r16734 20 20 #endregion 21 21 22 using System; 23 using System.Collections.Generic; 22 using HEAL.Attic; 24 23 using HeuristicLab.Common; 25 24 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 26 using HEAL.Attic;27 25 namespace HeuristicLab.Problems.DataAnalysis.Symbolic { 28 [StorableType(" F8A6AD96-28D9-4BEC-8392-8B7BA824B085")]26 [StorableType("6F628649-7C71-49F3-862A-0BAB4BADF964")] 29 27 public sealed class TreeModel : Symbol { 30 28 … … 39 37 [StorableConstructor] 40 38 private TreeModel(StorableConstructorFlag _) : base(_) { } 41 private TreeModel(TreeModel original, Cloner cloner) : base(original, cloner) { 42 public TreeModel() : base("TreeModel", "Represents a TreeModel.") { 39 private TreeModel(TreeModel original, Cloner cloner) : base(original, cloner) { } 40 public TreeModel() : base("TreeModel", "Represents a TreeModel.") { } 43 41 public override ISymbolicExpressionTreeNode CreateTreeNode() { 44 return new TreeModelTreeNode(this); } 42 return new TreeModelTreeNode(this); 43 } 45 44 46 45 public override IDeepCloneable Clone(Cloner cloner) {
Note: See TracChangeset
for help on using the changeset viewer.