- 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/EMMIslandMap.cs
r16899 r17002 24 24 using HeuristicLab.Core; 25 25 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 26 using HeuristicLab.Random; 26 27 using System.Collections.Generic; 28 using System.Linq; 27 29 28 30 namespace HeuristicLab.Algorithms.EvolvmentModelsOfModels { … … 30 32 [StorableType("E4AB04B9-FD5D-47EE-949D-243660754F3A")] 31 33 public class EMMIslandMap : EMMMapBase<ISymbolicExpressionTree> { 34 [Storable] 35 public List<int> ClusterNumber { get; set; } // May be only Island Map really need it 32 36 #region conctructors 33 37 [StorableConstructor] 34 38 protected EMMIslandMap(StorableConstructorFlag _) : base(_) { } 35 public EMMIslandMap() : this(1) { } 39 public EMMIslandMap() { 40 ModelSet = new List<ISymbolicExpressionTree>(); 41 ClusterNumber = new List<int>(); 42 } 36 43 public override IDeepCloneable Clone(Cloner cloner) { 37 44 return new EMMIslandMap(this, cloner); 38 45 } 39 public EMMIslandMap(int k) : base(k) { ModelSet = new List<ISymbolicExpressionTree>(); } 40 public EMMIslandMap(EMMIslandMap original, Cloner cloner) : base(original, cloner) { } 41 // public EMMIslandMap(IRandom random, IEnumerable<ISymbolicExpressionTree> trees, int k, int neghboorNumber) : base(random, trees, k) { } 42 //public EMMIslandMap(IRandom random, IEnumerable<ISymbolicExpressionTree> trees, string fileName = "Map.txt") : base(random, trees, fileName) { } 46 public EMMIslandMap(EMMIslandMap original, Cloner cloner) : base(original, cloner) { 47 if (original.ClusterNumber != null) { 48 ClusterNumber = original.ClusterNumber.ToList(); 49 } 50 } 43 51 #endregion 44 52 #region MapApplayFunctions 45 53 override public void CreateMap(IRandom random, int k) { 46 K = EMModelsClusterizationAlgorithm.ApplyClusteringAlgorithm(random, Distances, ClusterNumber, k); 47 MapSizeCheck(); 54 55 k = EMModelsClusterizationAlgorithm.ApplyClusteringAlgorithm(random, CalculateDistances(), ClusterNumber, k); 56 MapSizeCheck(k); 48 57 for (int i = 0; i < ModelSet.Count; i++) { 49 58 Map[ClusterNumber[i]].Add(i); 50 59 } 51 60 } 52 override public ISymbolicExpressionTree NewModelForInizializtionNotTree(IRandom random, out int cluster, out int treeNumber) { 53 return NewModelForInizializtion(random, out cluster, out treeNumber); 61 override public ISymbolicExpressionTree NewModelForInizializtionNotTree(IRandom random, out int treeNumber) { 62 return NewModelForInizializtion(random, out treeNumber); 63 } 64 65 public override ISymbolicExpressionTree NewModelForMutation(IRandom random, out int treeNumber, int parentTreeNumber) { 66 if (parentTreeNumber == -10) { 67 treeNumber = random.Next(ModelSet.Count); 68 } else { 69 treeNumber = Map[ClusterNumber[parentTreeNumber]].SampleRandom(random); 70 } 71 return (ISymbolicExpressionTree)ModelSet[treeNumber].Clone(); 72 } 73 public void ClusterNumbersCalculate() { // May be it should be transported to Child Clase (IslandMap) 74 for (int i = 0; i < Map.Count; i++) { 75 for (int j = 0; j < Map[i].Count; j++) { 76 ClusterNumber.Add(0); 77 } 78 } 79 for (int i = 0; i < Map.Count; i++) { 80 for (int j = 0; j < Map[i].Count; j++) { 81 ClusterNumber[Map[i][j]] = i; 82 } 83 } 54 84 } 55 85 #endregion
Note: See TracChangeset
for help on using the changeset viewer.