Changeset 17134 for branches/2988_ModelsOfModels2/HeuristicLab.Algorithms.EMM/Maps/EMMDistanceMap.cs
- Timestamp:
- 07/11/19 16:30:22 (5 years ago)
- Location:
- branches/2988_ModelsOfModels2/HeuristicLab.Algorithms.EMM/Maps
- Files:
-
- 1 added
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
branches/2988_ModelsOfModels2/HeuristicLab.Algorithms.EMM/Maps/EMMDistanceMap.cs
r17133 r17134 24 24 using HeuristicLab.Core; 25 25 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 26 using HeuristicLab.Problems.DataAnalysis.Symbolic; 26 27 using System; 27 28 using System.Collections.Generic; 29 using System.Linq; 28 30 29 31 namespace HeuristicLab.Algorithms.EvolvmentModelsOfModels { … … 33 35 [Storable] 34 36 public List<List<double>> Probabilities { get; set; } 35 #region con ctructors37 #region constructors 36 38 [StorableConstructor] 37 39 protected EMMDisatanceMap(StorableConstructorFlag _) : base(_) { } … … 39 41 return new EMMDisatanceMap(this, cloner); 40 42 } 41 public EMMDisatanceMap() : base() { ModelSet = new List<ISymbolicExpressionTree>(); } 42 public EMMDisatanceMap(EMMDisatanceMap original, Cloner cloner) : base(original, cloner) { } 43 public EMMDisatanceMap() : base() { 44 ModelSet = new List<ISymbolicExpressionTree>(); 45 Probabilities = new List<List<double>>(); 46 } 47 public EMMDisatanceMap(EMMDisatanceMap original, Cloner cloner) : base(original, cloner) { 48 if (original.Probabilities != null) { 49 Probabilities = original.Probabilities.Select(x => x.ToList()).ToList(); 50 } 51 } 43 52 #endregion 44 #region MapCreation 45 override public void CreateMap(IRandom random, int k) { 46 47 Probabilities = new List<List<double>>(); 53 #region Map Creation 54 override public void CreateMap(IRandom random) { 48 55 MapSizeCheck(ModelSet.Count); 49 ApplyDistanceMapCreationAlgorithm(random, CalculateDistances(), Map, Probabilities);56 ApplyDistanceMapCreationAlgorithm(random, ModelSetPreparation.CalculateDistances(ModelSet), Map, Probabilities); 50 57 } 51 public static void ApplyDistanceMapCreationAlgorithm(IRandom random, double[,] distances, List<List<int>> map, List<List<double>> probabilities) { 58 override public string[] MapToStoreInFile() { // Function that prepare Map to printing in .txt File: create a set of strings for future reading by computer 59 string[] s; 60 s = new string[Map.Count]; 61 for (int i = 0; i < Map.Count; i++) { 62 s[i] = ""; 63 for (int j = 0; j < (Map.Count - 1); j++) { 64 s[i] += Probabilities[i][j].ToString(); 65 if (j != (Map.Count - 2)) { s[i] += " "; } 66 } 67 } 68 return s; 69 } 70 override public void MapRead(IEnumerable<ISymbolicExpressionTree> trees) { 71 base.MapRead(trees); 72 MapFullment(trees.Count()); 73 string fileName = ("Map" + DistanceParametr + ".txt"); 74 Probabilities = FileComuncations.DoubleMatrixFromFileRead(fileName); 75 } 76 override public void CreateMap(IRandom random, ISymbolicDataAnalysisSingleObjectiveProblem problem) { 77 MapSizeCheck(ModelSet.Count); 78 if (Map != null) { 79 Map.Clear(); 80 } 81 ApplyDistanceMapCreationAlgorithm(random, ModelSetPreparation.DistanceMatrixCalculation(ModelSet, DistanceParametr, problem), Map, Probabilities); 82 } 83 protected void ApplyDistanceMapCreationAlgorithm(IRandom random, double[,] distances, List<List<int>> map, List<List<double>> probabilities) { 52 84 int mapSize = distances.GetLength(0); 53 85 for (int t = 0; t < mapSize; t++) { … … 65 97 } 66 98 } 99 protected void MapFullment(int mapSize) { 100 if (Map != null) { 101 Map.Clear(); 102 } 103 for (int t = 0; t < mapSize; t++) { 104 for (int i = 0; i < mapSize; i++) { 105 if (i == t) 106 continue; 107 Map[t].Add(i); 108 } 109 } 110 } 67 111 #endregion 68 #region Map ApplayFunctions112 #region Map Apply Functions 69 113 public override ISymbolicExpressionTree NewModelForMutation(IRandom random, out int treeNumber, int parentTreeNumber) { 70 114 treeNumber = HelpFunctions.OneElementFromListProportionalSelection(random, Probabilities[parentTreeNumber]);
Note: See TracChangeset
for help on using the changeset viewer.