Changeset 14927 for branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/RunCollectionModification
- Timestamp:
- 05/04/17 17:19:35 (7 years ago)
- Location:
- branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/RunCollectionModification
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/RunCollectionModification/Calculator.cs
r14185 r14927 29 29 using HeuristicLab.Core; 30 30 using HeuristicLab.Data; 31 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;31 using HeuristicLab.Persistence; 32 32 33 33 namespace HeuristicLab.Optimization { 34 34 35 [Storable Class]35 [StorableType("aa7e5351-a2e2-45e8-9213-f0fdfd320d4a")] 36 36 public class Calculator : IDeepCloneable { 37 37 -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/RunCollectionModification/RunCollectionDiscretizer.cs
r14185 r14927 28 28 using HeuristicLab.Data; 29 29 using HeuristicLab.Parameters; 30 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;30 using HeuristicLab.Persistence; 31 31 32 32 namespace HeuristicLab.Optimization { … … 34 34 "Creates several levels from the distribution of a certain result accross a run collection and " + 35 35 "assigns a discretized value. Non-existing numbers as well as NaN and infinities are excluded from the caluclation.")] 36 [Storable Class]36 [StorableType("706dd5f8-e2a1-4276-a238-7efdddde710a")] 37 37 public class RunCollectionDiscretizer : ParameterizedNamedItem, IRunCollectionModifier { 38 38 … … 52 52 public ValueParameter<StringValue> GroupByParameter { 53 53 get { return (ValueParameter<StringValue>)Parameters["GroupBy"]; } 54 } 54 } 55 55 public ValueParameter<ItemList<StringValue>> LevelsParameter { 56 56 get { return (ValueParameter<ItemList<StringValue>>)Parameters["Levels"]; } 57 } 57 } 58 58 #endregion 59 59 … … 62 62 get { return TargetParameter.Value.Value; } 63 63 set { TargetParameter.Value.Value = value; } 64 } 64 } 65 65 private double Spread { get { return SpreadParameter.Value.Value; } } 66 66 private string GroupBy { get { return GroupByParameter.Value.Value; } } 67 67 private List<string> Levels { get { return LevelsParameter.Value.Select(v => v.Value).ToList(); } } 68 68 69 69 #region Construction & Cloning 70 70 [StorableConstructor] 71 71 protected RunCollectionDiscretizer(bool deserializing) : base(deserializing) { } … … 86 86 new StringValue("High"), 87 87 new StringValue("Very High"), 88 })); 88 })); 89 89 RegisterEvents(); 90 90 UpdateName(); … … 117 117 Target, 118 118 Source, 119 string.IsNullOrWhiteSpace(GroupBy) ? "" : string.Format("/{0}", GroupBy)); 119 string.IsNullOrWhiteSpace(GroupBy) ? "" : string.Format("/{0}", GroupBy)); 120 120 OnNameChanged(); 121 121 } … … 125 125 public void Modify(List<IRun> runs) { 126 126 foreach (var group in runs 127 .Select(r => new { Run=r, Value=GetSourceValue(r)})127 .Select(r => new { Run = r, Value = GetSourceValue(r) }) 128 128 .Where(r => r.Value.HasValue && !double.IsNaN(r.Value.Value) && !double.IsInfinity(r.Value.Value)) 129 .Select(r => new { r.Run, r.Value.Value, Bin=GetGroupByValue(r.Run)})129 .Select(r => new { r.Run, r.Value.Value, Bin = GetGroupByValue(r.Run) }) 130 130 .GroupBy(r => r.Bin).ToList()) { 131 131 var values = group.Select(r => r.Value).ToList(); … … 145 145 } 146 146 } 147 } 147 } 148 148 } 149 149 … … 169 169 variables.TryGetValue(Source, out value); 170 170 var intValue = value as IntValue; 171 if (intValue != null) 171 if (intValue != null) 172 172 return intValue.Value; 173 173 var doubleValue = value as DoubleValue; … … 178 178 179 179 private string Discretize(double value, double avg, double stdDev) { 180 double dev = (value - avg) /(stdDev*Spread);180 double dev = (value - avg) / (stdDev * Spread); 181 181 int index; 182 182 if (Levels.Count % 2 == 1) { 183 index = (int) 184 index = (Levels.Count - 1) /2 + Math.Sign(dev) * index;183 index = (int)Math.Floor(Math.Abs(dev)); 184 index = (Levels.Count - 1) / 2 + Math.Sign(dev) * index; 185 185 } else { 186 index = (int) 186 index = (int)Math.Ceiling(Math.Abs(dev)); 187 187 if (dev > 0) 188 index = Levels.Count /2 + index;188 index = Levels.Count / 2 + index; 189 189 else 190 index = Levels.Count /2 + 1 - index;190 index = Levels.Count / 2 + 1 - index; 191 191 } 192 192 return Levels[Math.Min(Levels.Count - 1, Math.Max(0, index))]; … … 195 195 private string Discretize(double value, double[] values) { 196 196 var index = Array.BinarySearch(values, value); 197 var pos = 1.0 *(index < 0 ? ~index : index)/(values.Length-1);198 return Levels[Math.Min(Levels.Count - 1, Math.Max(0, (int) Math.Round(pos*(Levels.Count-1))))];197 var pos = 1.0 * (index < 0 ? ~index : index) / (values.Length - 1); 198 return Levels[Math.Min(Levels.Count - 1, Math.Max(0, (int)Math.Round(pos * (Levels.Count - 1))))]; 199 199 } 200 200 -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/RunCollectionModification/RunCollectionFormulaModifer.cs
r14185 r14927 28 28 using HeuristicLab.Data; 29 29 using HeuristicLab.Parameters; 30 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;30 using HeuristicLab.Persistence; 31 31 32 32 namespace HeuristicLab.Optimization { 33 33 34 34 [Item("RunCollection Formula Modifier", "Modifies a RunCollection by adding results using the given formula.")] 35 [Storable Class]35 [StorableType("03ddcd5a-a2a0-416e-8ea0-d029cdbc5779")] 36 36 public class RunCollectionFormulaModifer : ParameterizedNamedItem, IRunCollectionModifier { 37 37 -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/RunCollectionModification/RunCollectionGroupCreater.cs
r14185 r14927 27 27 using HeuristicLab.Data; 28 28 using HeuristicLab.Parameters; 29 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;29 using HeuristicLab.Persistence; 30 30 31 31 namespace HeuristicLab.Optimization { 32 32 33 33 [Item("RunCollection Group Creater", "Regroups existing runs according to equal values in GroupBy and prefixes them according to their value in Prefix.")] 34 [Storable Class]34 [StorableType("ef5dd619-133c-4c72-9730-d330b9bf2c04")] 35 35 public class RunCollectionGroupCreater : ParameterizedNamedItem, IRunCollectionModifier { 36 36 37 37 public ValueParameter<ItemCollection<StringValue>> GroupByParameter { 38 38 get { return (ValueParameter<ItemCollection<StringValue>>)Parameters["GroupBy"]; } … … 54 54 new ItemCollection<StringValue>(new[] { new StringValue("Problem Name") }))); 55 55 Parameters.Add(new ValueParameter<StringValue>("Prefix", "The distinguishing prefix values for the individual runs.", 56 new StringValue("Algorithm Name"))); 56 new StringValue("Algorithm Name"))); 57 57 } 58 58 public override IDeepCloneable Clone(Cloner cloner) { … … 100 100 name = string.Format("{0}_{1}.{2}", prefix, ++n, key); 101 101 } 102 dict.Add(name, value); 102 dict.Add(name, value); 103 103 } 104 104 } -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/RunCollectionModification/RunCollectionRunRemover.cs
r14185 r14927 23 23 using HeuristicLab.Common; 24 24 using HeuristicLab.Core; 25 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;25 using HeuristicLab.Persistence; 26 26 27 27 namespace HeuristicLab.Optimization { 28 28 [Item("RunCollection Run Remover", "Removes all currently visible runs. Use the filtering tab to selectively remove runs.")] 29 [Storable Class]29 [StorableType("43df1d21-d925-479e-90fb-91624836bd29")] 30 30 public class RunCollectionRunRemover : ParameterizedNamedItem, IRunCollectionModifier { 31 31 … … 33 33 [StorableConstructor] 34 34 protected RunCollectionRunRemover(bool deserializing) : base(deserializing) { } 35 protected RunCollectionRunRemover(RunCollectionRunRemover original, Cloner cloner) : base(original, cloner) { }36 public RunCollectionRunRemover() { }35 protected RunCollectionRunRemover(RunCollectionRunRemover original, Cloner cloner) : base(original, cloner) { } 36 public RunCollectionRunRemover() { } 37 37 public override IDeepCloneable Clone(Cloner cloner) { 38 38 return new RunCollectionRunRemover(this, cloner); -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/RunCollectionModification/RunCollectionSorter.cs
r14185 r14927 28 28 using HeuristicLab.Data; 29 29 using HeuristicLab.Parameters; 30 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;30 using HeuristicLab.Persistence; 31 31 32 32 namespace HeuristicLab.Optimization { 33 33 [Item("RunCollection Sorter", "Sorts a run collection according the specified key variable.")] 34 [Storable Class]34 [StorableType("95b92306-f4fd-4e40-b599-cc5a9b225293")] 35 35 public class RunCollectionSorter : ParameterizedNamedItem, IRunCollectionModifier { 36 36 … … 100 100 public void Modify(List<IRun> runs) { 101 101 var sortedRuns = runs 102 .Select(r => new { Run = r, Key = GetValue(r)})102 .Select(r => new { Run = r, Key = GetValue(r) }) 103 103 .OrderBy(r => r.Key, Comparer) 104 104 .Select(r => r.Run).ToList(); -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/RunCollectionModification/RunCollectionValueRemover.cs
r14185 r14927 28 28 using HeuristicLab.Data; 29 29 using HeuristicLab.Parameters; 30 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;30 using HeuristicLab.Persistence; 31 31 32 32 namespace HeuristicLab.Optimization { 33 33 34 34 [Item("RunCollection Value Remover", "Modifies a RunCollection by removing results or parameters.")] 35 [Storable Class]35 [StorableType("18b2175c-a5b3-4307-865c-704d99577de1")] 36 36 public class RunCollectionValueRemover : ParameterizedNamedItem, IRunCollectionModifier { 37 37 38 38 public ValueParameter<CheckedItemCollection<StringValue>> ValuesParameter { 39 39 get { return (ValueParameter<CheckedItemCollection<StringValue>>)Parameters["Values"]; } … … 51 51 } 52 52 public RunCollectionValueRemover() { 53 Parameters.Add(new ValueParameter<CheckedItemCollection<StringValue>>("Values", "The result or parameter values to be removed from each run.")); 53 Parameters.Add(new ValueParameter<CheckedItemCollection<StringValue>>("Values", "The result or parameter values to be removed from each run.")); 54 54 } 55 55 public override IDeepCloneable Clone(Cloner cloner) { 56 56 return new RunCollectionValueRemover(this, cloner); 57 } 58 #endregion 57 } 58 #endregion 59 59 60 public void Modify(List<IRun> runs) { 60 public void Modify(List<IRun> runs) { 61 61 foreach (var run in runs) { 62 62 foreach (var value in Values) { 63 63 run.Parameters.Remove(value); 64 64 run.Results.Remove(value); 65 } 66 } 65 } 66 } 67 67 } 68 68 69 69 } 70 70 }
Note: See TracChangeset
for help on using the changeset viewer.