- Timestamp:
- 05/04/17 17:19:35 (7 years ago)
- Location:
- branches/PersistenceReintegration/HeuristicLab.Optimization/3.3
- Files:
-
- 58 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/Algorithms/Algorithm.cs
r14433 r14927 28 28 using HeuristicLab.Core; 29 29 using HeuristicLab.Data; 30 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;30 using HeuristicLab.Persistence; 31 31 32 32 namespace HeuristicLab.Optimization { … … 35 35 /// </summary> 36 36 [Item("Algorithm", "A base class for algorithms.")] 37 [Storable Class]37 [StorableType("53c02848-6ed3-4e1e-8414-a3f0671267a0")] 38 38 public abstract class Algorithm : ParameterizedNamedItem, IAlgorithm { 39 39 public static new Image StaticItemImage { … … 292 292 foreach ( 293 293 IStatefulItem statefulObject in 294 this.GetObjectGraphObjects(new HashSet<object>() { Runs}).OfType<IStatefulItem>()) {294 this.GetObjectGraphObjects(new HashSet<object>() { Runs }).OfType<IStatefulItem>()) { 295 295 statefulObject.ClearState(); 296 296 } … … 298 298 try { 299 299 runs.Add(new Run(string.Format("{0} Run {1}", Name, runsCounter), this)); 300 } 301 catch (ArgumentException e) { 300 } catch (ArgumentException e) { 302 301 OnExceptionOccurred(new InvalidOperationException("Run creation failed.", e)); 303 302 } 304 } 305 finally { 303 } finally { 306 304 ExecutionState = ExecutionState.Stopped; 307 305 EventHandler handler = Stopped; -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/Algorithms/BasicAlgorithm.cs
r14523 r14927 25 25 using HeuristicLab.Common; 26 26 using HeuristicLab.Core; 27 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;27 using HeuristicLab.Persistence; 28 28 29 29 namespace HeuristicLab.Optimization { 30 [Storable Class]30 [StorableType("56321a10-4f23-4ef8-88ce-35775f002e9a")] 31 31 public abstract class BasicAlgorithm : Algorithm, IStorableContent { 32 32 … … 81 81 try { 82 82 t.Wait(); 83 } 84 catch (AggregateException ex) { 83 } catch (AggregateException ex) { 85 84 try { 86 85 ex.Flatten().Handle(x => x is OperationCanceledException); 87 } 88 catch (AggregateException remaining) { 86 } catch (AggregateException remaining) { 89 87 if (remaining.InnerExceptions.Count == 1) OnExceptionOccurred(remaining.InnerExceptions[0]); 90 88 else OnExceptionOccurred(remaining); … … 129 127 initialized = true; 130 128 Run(cancellationToken); 131 } 132 finally { 129 } finally { 133 130 timer.Elapsed -= new System.Timers.ElapsedEventHandler(timer_Elapsed); 134 131 timer.Stop(); -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/Algorithms/EngineAlgorithm.cs
r14185 r14927 24 24 using HeuristicLab.Common; 25 25 using HeuristicLab.Core; 26 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;26 using HeuristicLab.Persistence; 27 27 using HeuristicLab.PluginInfrastructure; 28 28 … … 32 32 /// </summary> 33 33 [Item("EngineAlgorithm", "A base class for algorithms which use an engine for execution.")] 34 [Storable Class]34 [StorableType("032cf0ca-febf-4482-a5c2-49ab0bbae2e2")] 35 35 public abstract class EngineAlgorithm : Algorithm { 36 36 [Storable] -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/Algorithms/HeuristicOptimizationAlgorithm.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 { … … 30 30 /// </summary> 31 31 [Item("Heuristic Optimization Algorithm", "A base class for heuristic optimization algorithms.")] 32 [Storable Class]32 [StorableType("4d992b71-ad1e-46b0-8208-8dac699b04bf")] 33 33 public abstract class HeuristicOptimizationAlgorithm : Algorithm { 34 34 public new IHeuristicOptimizationProblem Problem { -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/Algorithms/HeuristicOptimizationEngineAlgorithm.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 { … … 30 30 /// </summary> 31 31 [Item("Heuristic Optimization Enigne Algorithm", "A base class for heuristic optimization algorithms using an execution engine.")] 32 [Storable Class]32 [StorableType("5eaa6392-3972-41c3-8c71-d5e5c8bd4f92")] 33 33 public abstract class HeuristicOptimizationEngineAlgorithm : EngineAlgorithm { 34 34 public new IHeuristicOptimizationProblem Problem { -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/Algorithms/UserDefinedAlgorithm.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 { … … 31 31 [Item("User-Defined Algorithm", "An algorithm which can be defined by the user.")] 32 32 [Creatable(CreatableAttribute.Categories.Algorithms, Priority = 100)] 33 [Storable Class]33 [StorableType("59cdbec9-8beb-477b-aa38-f6f8fb9807ce")] 34 34 public sealed class UserDefinedAlgorithm : EngineAlgorithm, IParameterizedItem, IStorableContent { 35 35 public string Filename { get; set; } -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/BasicProblems/BasicProblem.cs
r14185 r14927 26 26 using HeuristicLab.Core; 27 27 using HeuristicLab.Parameters; 28 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;28 using HeuristicLab.Persistence; 29 29 30 30 namespace HeuristicLab.Optimization { 31 [Storable Class]31 [StorableType("7ad76422-1b2f-4e10-9d28-fb18ac5246ba")] 32 32 public abstract class BasicProblem<TEncoding, TEvaluator> : HeuristicOptimizationProblem<TEvaluator, ISolutionCreator>, IProblemDefinition, IStorableContent 33 33 where TEncoding : class, IEncoding … … 67 67 Parameters.Add(new ValueParameter<TEncoding>("Encoding", "Describes the configuration of the encoding, what the variables are called, what type they are and their bounds if any.")); 68 68 oldEncoding = Encoding; 69 if (Encoding != null) Parameterize();69 if (Encoding != null) Parameterize(); 70 70 RegisterEvents(); 71 71 } -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/BasicProblems/Encoding.cs
r14185 r14927 26 26 using HeuristicLab.Core; 27 27 using HeuristicLab.Parameters; 28 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;28 using HeuristicLab.Persistence; 29 29 30 30 namespace HeuristicLab.Optimization { 31 31 [Item("Encoding", "Base class for describing different encodings.")] 32 [Storable Class]32 [StorableType("fae42d83-7076-4ff0-92aa-0eee034b0b13")] 33 33 public abstract class Encoding<T> : ParameterizedNamedItem, IEncoding 34 where T : class, ISolutionCreator {34 where T : class, ISolutionCreator { 35 35 public override sealed bool CanChangeName { 36 36 get { return false; } -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/BasicProblems/Individuals/MultiEncodingIndividual.cs
r14877 r14927 46 46 try { 47 47 encoding = (TEncoding)Encoding.Encodings.SingleOrDefault(e => e is TEncoding); 48 } 49 catch (InvalidOperationException) { 48 } catch (InvalidOperationException) { 50 49 throw new InvalidOperationException(string.Format("The individual uses multiple {0} .", typeof(TEncoding).GetPrettyName())); 51 50 } -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/BasicProblems/MultiEncoding.cs
r14185 r14927 25 25 using HeuristicLab.Common; 26 26 using HeuristicLab.Core; 27 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;27 using HeuristicLab.Persistence; 28 28 using HeuristicLab.PluginInfrastructure; 29 29 30 30 namespace HeuristicLab.Optimization { 31 31 [Item("MultiEncoding", "Describes a combined encoding consisting of multiple simpler encodings.")] 32 [Storable Class]32 [StorableType("11b01f45-059a-41f5-9598-790966fdc9dc")] 33 33 public sealed class MultiEncoding : Encoding<MultiEncodingCreator> { 34 34 -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/BasicProblems/MultiObjectiveBasicProblem.cs
r14185 r14927 25 25 using HeuristicLab.Data; 26 26 using HeuristicLab.Parameters; 27 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;27 using HeuristicLab.Persistence; 28 28 29 29 namespace HeuristicLab.Optimization { 30 [Storable Class]30 [StorableType("3d6385f7-0983-4acb-8f18-69d27b065ac8")] 31 31 public abstract class MultiObjectiveBasicProblem<TEncoding> : BasicProblem<TEncoding, MultiObjectiveEvaluator>, IMultiObjectiveHeuristicOptimizationProblem, IMultiObjectiveProblemDefinition 32 32 where TEncoding : class, IEncoding { -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/BasicProblems/Operators/MultiEncodingCreator.cs
r14185 r14927 24 24 using HeuristicLab.Common; 25 25 using HeuristicLab.Core; 26 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;26 using HeuristicLab.Persistence; 27 27 28 28 namespace HeuristicLab.Optimization { 29 29 [Item("MultiEncodingCreator", "Contains solution creators that together create a multi-encoding.")] 30 [Storable Class]30 [StorableType("9588eae5-5e0f-43bb-b2bb-0b93b28ca02a")] 31 31 public sealed class MultiEncodingCreator : MultiEncodingOperator<ISolutionCreator>, ISolutionCreator { 32 32 [StorableConstructor] -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/BasicProblems/Operators/MultiEncodingCrossover.cs
r14185 r14927 22 22 using HeuristicLab.Common; 23 23 using HeuristicLab.Core; 24 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;24 using HeuristicLab.Persistence; 25 25 26 26 namespace HeuristicLab.Optimization { 27 27 [Item("MultiEncoding Crossover", "Applies different crossovers to cross a multi-encoding.")] 28 [Storable Class]28 [StorableType("c2ce6b47-622b-4a09-a8d3-337629fdd0a7")] 29 29 public sealed class MultiEncodingCrossover : MultiEncodingOperator<ICrossover>, ICrossover { 30 30 [StorableConstructor] -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/BasicProblems/Operators/MultiEncodingManipulator.cs
r14185 r14927 22 22 using HeuristicLab.Common; 23 23 using HeuristicLab.Core; 24 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;24 using HeuristicLab.Persistence; 25 25 26 26 namespace HeuristicLab.Optimization { 27 27 [Item("MultiEncoding Manipulator", "Applies different manipulators to change a multi-encoding.")] 28 [Storable Class]28 [StorableType("c24f0b97-b885-4e2e-aead-f5cce69b4de4")] 29 29 public sealed class MultiEncodingManipulator : MultiEncodingOperator<IManipulator>, IManipulator { 30 30 [StorableConstructor] -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/BasicProblems/Operators/MultiEncodingOperator.cs
r14185 r14927 27 27 using HeuristicLab.Operators; 28 28 using HeuristicLab.Parameters; 29 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;29 using HeuristicLab.Persistence; 30 30 31 31 namespace HeuristicLab.Optimization { 32 [Storable Class]33 public abstract class MultiEncodingOperator<T> : Operator, IMultiEncodingOperator where T : class, IOperator {32 [StorableType("4590340e-4f05-4582-999e-de0f23d1be4b")] 33 public abstract class MultiEncodingOperator<T> : Operator, IMultiEncodingOperator where T : class, IOperator { 34 34 private List<IEncoding> encodings = new List<IEncoding>(); 35 35 [Storable(Name = "Encodings")] -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/BasicProblems/Operators/MultiObjectiveAnalyzer.cs
r14185 r14927 28 28 using HeuristicLab.Operators; 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("Multi-objective Analyzer", "Calls the Analyze method of the problem definition.")] 34 [Storable Class]34 [StorableType("aaaad94e-b94e-45d9-aefd-c452f123f39c")] 35 35 public class MultiObjectiveAnalyzer : SingleSuccessorOperator, IMultiObjectiveAnalysisOperator, IStochasticOperator { 36 36 public bool EnabledByDefault { get { return true; } } -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/BasicProblems/Operators/MultiObjectiveEvaluator.cs
r14185 r14927 26 26 using HeuristicLab.Operators; 27 27 using HeuristicLab.Parameters; 28 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;28 using HeuristicLab.Persistence; 29 29 30 30 namespace HeuristicLab.Optimization { 31 31 [Item("Multi-objective Evaluator", "Calls the Evaluate method of the problem definition and writes the return value into the scope.")] 32 [Storable Class]32 [StorableType("14c2280c-f384-485f-8b26-dac9c9529624")] 33 33 public class MultiObjectiveEvaluator : InstrumentedOperator, IMultiObjectiveEvaluationOperator, IStochasticOperator { 34 34 -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/BasicProblems/Operators/SingleObjectiveAnalyzer.cs
r14185 r14927 28 28 using HeuristicLab.Operators; 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("Single-objective Analyzer", "Calls the script's Analyze method to be able to write into the results collection.")] 34 [Storable Class]34 [StorableType("3644689d-7f66-40ff-acf3-0e5347f6c07d")] 35 35 public sealed class SingleObjectiveAnalyzer : SingleSuccessorOperator, ISingleObjectiveAnalysisOperator, IAnalyzer, IStochasticOperator { 36 36 public bool EnabledByDefault { get { return true; } } -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/BasicProblems/Operators/SingleObjectiveEvaluator.cs
r14185 r14927 26 26 using HeuristicLab.Operators; 27 27 using HeuristicLab.Parameters; 28 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;28 using HeuristicLab.Persistence; 29 29 30 30 namespace HeuristicLab.Optimization { 31 31 [Item("Single-objective Evaluator", "Calls the script's Evaluate method to get the quality value of the parameter vector.")] 32 [Storable Class]32 [StorableType("15490f3e-1d0f-4e8f-94d7-ede4b78090ce")] 33 33 public sealed class SingleObjectiveEvaluator : InstrumentedOperator, ISingleObjectiveEvaluationOperator, IStochasticOperator { 34 34 -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/BasicProblems/Operators/SingleObjectiveImprover.cs
r14185 r14927 28 28 using HeuristicLab.Operators; 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("Single-objective Improver", "Improves a solution by calling GetNeighbors and Evaluate of the corresponding problem definition.")] 34 [Storable Class]34 [StorableType("1a7e0e73-c6ed-4cbc-a62c-3563b963aec4")] 35 35 public sealed class SingleObjectiveImprover : SingleSuccessorOperator, INeighborBasedOperator, IImprovementOperator, ISingleObjectiveEvaluationOperator, IStochasticOperator { 36 36 public ILookupParameter<IRandom> RandomParameter { -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/BasicProblems/Operators/SingleObjectiveMoveEvaluator.cs
r14185 r14927 26 26 using HeuristicLab.Operators; 27 27 using HeuristicLab.Parameters; 28 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;28 using HeuristicLab.Persistence; 29 29 30 30 namespace HeuristicLab.Optimization { 31 31 [Item("Single-objective MoveEvaluator", "Evaluates a parameter vector that results from a move.")] 32 [Storable Class]32 [StorableType("0c7385a5-136a-4036-84d2-2d7af47991ca")] 33 33 public class SingleObjectiveMoveEvaluator : SingleSuccessorOperator, ISingleObjectiveEvaluationOperator, ISingleObjectiveMoveEvaluator, IStochasticOperator, ISingleObjectiveMoveOperator { 34 34 -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/BasicProblems/Operators/SingleObjectiveMoveGenerator.cs
r14185 r14927 29 29 using HeuristicLab.Operators; 30 30 using HeuristicLab.Parameters; 31 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;31 using HeuristicLab.Persistence; 32 32 33 33 namespace HeuristicLab.Optimization { 34 34 [Item("Single-objective MoveGenerator", "Calls the GetNeighbors method of the problem definition to obtain the moves.")] 35 [Storable Class]35 [StorableType("a1db93c6-33b5-4c3a-a3fe-7abe4e9748e6")] 36 36 public class SingleObjectiveMoveGenerator : SingleSuccessorOperator, INeighborBasedOperator, IMultiMoveGenerator, IStochasticOperator, ISingleObjectiveMoveOperator { 37 37 public ILookupParameter<IRandom> RandomParameter { -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/BasicProblems/Operators/SingleObjectiveMoveMaker.cs
r14185 r14927 26 26 using HeuristicLab.Operators; 27 27 using HeuristicLab.Parameters; 28 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;28 using HeuristicLab.Persistence; 29 29 30 30 namespace HeuristicLab.Optimization { 31 31 [Item("Single-objective MoveMaker", "Applies a move.")] 32 [Storable Class]32 [StorableType("5e58f693-0b40-43a7-96c3-9ca8c9ff2354")] 33 33 public class SingleObjectiveMoveMaker : InstrumentedOperator, IMoveMaker, ISingleObjectiveMoveOperator { 34 34 public ILookupParameter<IEncoding> EncodingParameter { -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/BasicProblems/SingleObjectiveBasicProblem.cs
r14185 r14927 26 26 using HeuristicLab.Data; 27 27 using HeuristicLab.Parameters; 28 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;28 using HeuristicLab.Persistence; 29 29 30 30 namespace HeuristicLab.Optimization { 31 [Storable Class]31 [StorableType("b3b8a681-3e04-4bfd-a49f-8ed88a65b992")] 32 32 public abstract class SingleObjectiveBasicProblem<TEncoding> : BasicProblem<TEncoding, SingleObjectiveEvaluator>, 33 33 ISingleObjectiveProblemDefinition, ISingleObjectiveHeuristicOptimizationProblem -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/Interfaces/IRunCollectionModifier.cs
r14185 r14927 27 27 28 28 namespace HeuristicLab.Optimization { 29 public interface IRunCollectionModifier : IItem { 29 public interface IRunCollectionModifier : IItem { 30 30 void Modify(List<IRun> runs); 31 31 } -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/MetaOptimizers/BatchRun.cs
r14185 r14927 27 27 using HeuristicLab.Core; 28 28 using HeuristicLab.Data; 29 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;29 using HeuristicLab.Persistence; 30 30 31 31 namespace HeuristicLab.Optimization { … … 37 37 [Item("Batch Run", "A run in which an optimizer is executed a given number of times.")] 38 38 [Creatable(CreatableAttribute.Categories.TestingAndAnalysis, Priority = 110)] 39 [Storable Class]39 [StorableType("99c15ae1-95a6-490e-813f-7a43c09e7c74")] 40 40 public sealed class BatchRun : NamedItem, IOptimizer, IStorableContent { 41 41 public string Filename { get; set; } … … 237 237 batchRunAction = BatchRunAction.Prepare; 238 238 // a race-condition may occur when the optimizer has changed the state by itself in the meantime 239 try { Optimizer.Prepare(clearRuns); } 240 catch (InvalidOperationException) { } 239 try { Optimizer.Prepare(clearRuns); } catch (InvalidOperationException) { } 241 240 } else { 242 241 ExecutionState = ExecutionState.Stopped; … … 250 249 if (Optimizer.ExecutionState == ExecutionState.Stopped) Optimizer.Prepare(); 251 250 // a race-condition may occur when the optimizer has changed the state by itself in the meantime 252 try { Optimizer.Start(); } 253 catch (InvalidOperationException) { } 251 try { Optimizer.Start(); } catch (InvalidOperationException) { } 254 252 } 255 253 public void Pause() { … … 260 258 if (Optimizer.ExecutionState != ExecutionState.Started) return; 261 259 // a race-condition may occur when the optimizer has changed the state by itself in the meantime 262 try { Optimizer.Pause(); } 263 catch (InvalidOperationException) { } 260 try { Optimizer.Pause(); } catch (InvalidOperationException) { } 264 261 } 265 262 public void Stop() { … … 273 270 } 274 271 // a race-condition may occur when the optimizer has changed the state by itself in the meantime 275 try { Optimizer.Stop(); } 276 catch (InvalidOperationException) { } 272 try { Optimizer.Stop(); } catch (InvalidOperationException) { } 277 273 } 278 274 -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/MetaOptimizers/Experiment.cs
r14185 r14927 28 28 using HeuristicLab.Common; 29 29 using HeuristicLab.Core; 30 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;30 using HeuristicLab.Persistence; 31 31 32 32 namespace HeuristicLab.Optimization { … … 36 36 [Item("Experiment", "An experiment which contains multiple algorithms, batch runs or other experiments.")] 37 37 [Creatable(CreatableAttribute.Categories.TestingAndAnalysis, Priority = 100)] 38 [Storable Class]38 [StorableType("4caf8199-dc27-407b-bea9-085857f25029")] 39 39 public sealed class Experiment : NamedItem, IOptimizer, IStorableContent { 40 40 public string Filename { get; set; } … … 181 181 foreach (IOptimizer optimizer in Optimizers.Where(x => x.ExecutionState != ExecutionState.Started)) { 182 182 // a race-condition may occur when the optimizer has changed the state by itself in the meantime 183 try { optimizer.Prepare(clearRuns); } 184 catch (InvalidOperationException) { } 183 try { optimizer.Prepare(clearRuns); } catch (InvalidOperationException) { } 185 184 } 186 185 } … … 195 194 if (optimizer != null) { 196 195 // a race-condition may occur when the optimizer has changed the state by itself in the meantime 197 try { optimizer.Start(); } 198 catch (InvalidOperationException) { } 196 try { optimizer.Start(); } catch (InvalidOperationException) { } 199 197 } 200 198 } … … 208 206 foreach (IOptimizer optimizer in Optimizers.Where(x => x.ExecutionState == ExecutionState.Started)) { 209 207 // a race-condition may occur when the optimizer has changed the state by itself in the meantime 210 try { optimizer.Pause(); } 211 catch (InvalidOperationException) { } 208 try { optimizer.Pause(); } catch (InvalidOperationException) { } 212 209 } 213 210 } … … 222 219 foreach (var optimizer in Optimizers.Where(x => (x.ExecutionState == ExecutionState.Started) || (x.ExecutionState == ExecutionState.Paused))) { 223 220 // a race-condition may occur when the optimizer has changed the state by itself in the meantime 224 try { optimizer.Stop(); } 225 catch (InvalidOperationException) { } 221 try { optimizer.Stop(); } catch (InvalidOperationException) { } 226 222 } 227 223 } else { … … 357 353 try { 358 354 ExecutionTime = Optimizers.Aggregate(TimeSpan.Zero, (t, o) => t + o.ExecutionTime); 359 } 360 finally { 355 } finally { 361 356 Monitor.Exit(locker); 362 357 } -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/MetaOptimizers/TimeLimitRun.cs
r14185 r14927 30 30 using HeuristicLab.Common.Resources; 31 31 using HeuristicLab.Core; 32 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;32 using HeuristicLab.Persistence; 33 33 34 34 namespace HeuristicLab.Optimization { … … 38 38 [Item("Timelimit Run", "A run in which an optimizer is executed a certain maximum time.")] 39 39 [Creatable(CreatableAttribute.Categories.TestingAndAnalysis, Priority = 115)] 40 [Storable Class]40 [StorableType("f06a64ea-1449-4310-9056-5e5626b88d54")] 41 41 public sealed class TimeLimitRun : NamedItem, IOptimizer, IStorableContent, INotifyPropertyChanged { 42 42 public string Filename { get; set; } -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/OptimizerList.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("Optimizer List", "Represents a list of optimizers.")] 29 [Storable Class]29 [StorableType("0097f8dd-c263-45db-88b3-45f0f46b6c45")] 30 30 public class OptimizerList : ItemList<IOptimizer> { 31 31 public OptimizerList() : base() { } -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/Problems/HeuristicOptimizationProblem.cs
r14185 r14927 24 24 using HeuristicLab.Core; 25 25 using HeuristicLab.Parameters; 26 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;26 using HeuristicLab.Persistence; 27 27 28 28 namespace HeuristicLab.Optimization { 29 29 [Item("Heuristic Optimization Problem", "Represents the base class for a heuristic optimization problem.")] 30 [Storable Class]30 [StorableType("6957e415-2fec-4037-ad72-375d6a340db9")] 31 31 public abstract class HeuristicOptimizationProblem<T, U> : Problem, IHeuristicOptimizationProblem 32 where T : class, IEvaluator33 where U : class, ISolutionCreator {32 where T : class, IEvaluator 33 where U : class, ISolutionCreator { 34 34 private const string EvaluatorParameterName = "Evaluator"; 35 35 private const string SolutionCreateParameterName = "SolutionCreator"; -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/Problems/MultiObjectiveHeuristicOptimizationProblem.cs
r14185 r14927 24 24 using HeuristicLab.Data; 25 25 using HeuristicLab.Parameters; 26 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;26 using HeuristicLab.Persistence; 27 27 28 28 namespace HeuristicLab.Optimization { 29 29 [Item("Multi-Objective Heuristic Optimization Problem", "A base class for multi-objective heuristic optimization problems.")] 30 [Storable Class]30 [StorableType("e3ca87fa-4f77-48e9-b07b-15ebc216b1e0")] 31 31 public abstract class MultiObjectiveHeuristicOptimizationProblem<T, U> : HeuristicOptimizationProblem<T, U>, IMultiObjectiveHeuristicOptimizationProblem 32 32 where T : class, IMultiObjectiveEvaluator -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/Problems/Problem.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("Problem", "Represents the base class for a problem.")] 34 [Storable Class]34 [StorableType("74188acd-6165-4bbc-b0c0-03bfefce80d3")] 35 35 public abstract class Problem : ParameterizedNamedItem, IProblem { 36 36 private const string OperatorsParameterName = "Operators"; -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/Problems/SingleObjectiveHeuristicOptimizationProblem.cs
r14826 r14927 24 24 using HeuristicLab.Data; 25 25 using HeuristicLab.Parameters; 26 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;26 using HeuristicLab.Persistence; 27 27 28 28 namespace HeuristicLab.Optimization { 29 29 [Item("Single-Objective Heuristic OptimizationProblem", "A base class for single-objective heuristic optimization problems.")] 30 [Storable Class]30 [StorableType("440128fd-9321-485a-89c6-ca6dfffb61ea")] 31 31 public abstract class SingleObjectiveHeuristicOptimizationProblem<T, U> : HeuristicOptimizationProblem<T, U>, ISingleObjectiveHeuristicOptimizationProblem 32 32 where T : class, ISingleObjectiveEvaluator -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/Problems/UserDefinedProblem.cs
r14185 r14927 30 30 using HeuristicLab.Data; 31 31 using HeuristicLab.Parameters; 32 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;32 using HeuristicLab.Persistence; 33 33 using HeuristicLab.PluginInfrastructure; 34 34 … … 39 39 [Item("User-Defined Problem", "A problem which can be defined by the user.")] 40 40 [Creatable(CreatableAttribute.Categories.Problems, Priority = 120)] 41 [Storable Class]41 [StorableType("96fc18e3-5753-40fa-a12a-391d09293cc6")] 42 42 public sealed class UserDefinedProblem : ParameterizedNamedItem, ISingleObjectiveHeuristicOptimizationProblem, IStorableContent { 43 43 public string Filename { get; set; } … … 235 235 236 236 [Item("EmptyUserDefinedProblemEvaluator", "A dummy evaluator that will throw an exception when executed.")] 237 [Storable Class]237 [StorableType("658f8333-caf1-46b7-a9d1-5ff2c63adefd")] 238 238 [NonDiscoverableType] 239 239 private sealed class EmptyUserDefinedProblemEvaluator : ParameterizedNamedItem, ISingleObjectiveEvaluator { -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/Results/Result.cs
r14185 r14927 24 24 using HeuristicLab.Common; 25 25 using HeuristicLab.Core; 26 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;26 using HeuristicLab.Persistence; 27 27 28 28 namespace HeuristicLab.Optimization { … … 31 31 /// </summary> 32 32 [Item("Result", "A result which has a name and a data type and holds an IItem.")] 33 [Storable Class]33 [StorableType("9da6b90f-6a8c-4672-83d6-10987fec8b3d")] 34 34 public sealed class Result : NamedItem, IResult, IStorableContent { 35 35 public string Filename { get; set; } -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/Results/ResultCollection.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 [Storable Class]28 [StorableType("fb1768a1-024c-4449-9f87-69d0a7602c43")] 29 29 [Item("ResultCollection", "Represents a collection of results.")] 30 30 public class ResultCollection : NamedItemCollection<IResult> { -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/Results/ResultParameter.cs
r14136 r14927 26 26 using HeuristicLab.Core; 27 27 using HeuristicLab.Parameters; 28 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;28 using HeuristicLab.Persistence; 29 29 30 30 namespace HeuristicLab.Optimization { 31 31 [Item("ResultParameter", "A parameter whose value is written to a result collection.")] 32 [Storable Class]32 [StorableType("ea3c0578-0c15-4bbd-bee9-c06f5228fd93")] 33 33 public sealed class ResultParameter<T> : LookupParameter<T>, IResultParameter<T> where T : class, IItem { 34 34 public override Image ItemImage { get { return VSImageLibrary.Exception; } } -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/Run.cs
r14185 r14927 27 27 using HeuristicLab.Common; 28 28 using HeuristicLab.Core; 29 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;29 using HeuristicLab.Persistence; 30 30 31 31 namespace HeuristicLab.Optimization { … … 34 34 /// </summary> 35 35 [Item("Run", "The parameters and results of an algorithm run.")] 36 [Storable Class]36 [StorableType("0b9128bd-6db2-4700-83b8-33a629bb2300")] 37 37 public sealed class Run : NamedItem, IRun, IStorableContent { 38 38 public string Filename { get; set; } -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/RunCollection.cs
r14185 r14927 28 28 using HeuristicLab.Core; 29 29 using HeuristicLab.Data; 30 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;30 using HeuristicLab.Persistence; 31 31 32 32 namespace HeuristicLab.Optimization { 33 33 [Item("Run Collection", "Represents a collection of runs.")] 34 34 [Creatable(CreatableAttribute.Categories.TestingAndAnalysis, Priority = 120)] 35 [Storable Class]35 [StorableType("cbc81843-153e-4843-8168-0de159dc49c4")] 36 36 public class RunCollection : ItemCollection<IRun>, IStringConvertibleMatrix, IStorableContent { 37 37 public string Filename { get; set; } -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/RunCollectionConstraints/RunCollectionComparisonConstraint.cs
r14185 r14927 25 25 using HeuristicLab.Core; 26 26 using HeuristicLab.Data; 27 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;27 using HeuristicLab.Persistence; 28 28 29 29 namespace HeuristicLab.Optimization { 30 [Storable Class]30 [StorableType("e9d6c6f2-2c23-4033-af62-d4c672dd627a")] 31 31 [Item("RunCollectionComparisonConstraint", "A constraint which compares the members of the contained runs with the constraint data.")] 32 32 public class RunCollectionComparisonConstraint : ComparisonConstraint, IRunCollectionColumnConstraint { -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/RunCollectionConstraints/RunCollectionConstraintCollection.cs
r14185 r14927 22 22 using HeuristicLab.Common; 23 23 using HeuristicLab.Core; 24 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;24 using HeuristicLab.Persistence; 25 25 26 26 namespace HeuristicLab.Optimization { 27 [Storable Class]27 [StorableType("47aee9c5-bff9-41eb-bd92-010556d2a0d6")] 28 28 [Item("RunCollectionConstraintCollection", "Represents a collection of constraints.")] 29 29 public class RunCollectionConstraintCollection : ItemCollection<IRunCollectionConstraint> { -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/RunCollectionConstraints/RunCollectionContentConstraint.cs
r14185 r14927 25 25 using HeuristicLab.Common; 26 26 using HeuristicLab.Core; 27 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;27 using HeuristicLab.Persistence; 28 28 29 29 namespace HeuristicLab.Optimization { 30 [Storable Class]30 [StorableType("ec291905-e19f-43aa-a3df-2d35cd7f5183")] 31 31 public class RunCollectionContentConstraint : Constraint, IRunCollectionConstraint { 32 32 public new RunCollection ConstrainedValue { -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/RunCollectionConstraints/RunCollectionEqualityConstraint.cs
r14185 r14927 25 25 using HeuristicLab.Core; 26 26 using HeuristicLab.Data; 27 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;27 using HeuristicLab.Persistence; 28 28 29 29 namespace HeuristicLab.Optimization { 30 [Storable Class]30 [StorableType("ca7a3921-1d48-4f4c-9646-2692dfa9a51c")] 31 31 [Item("RunCollectionEqualityConstraint", "A constraint which checks the members of the contained runs for equality to the constraint data.")] 32 32 public class RunCollectionEqualityConstraint : EqualityConstraint, IRunCollectionColumnConstraint { -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/RunCollectionConstraints/RunCollectionTypeCompatiblityConstraint.cs
r14185 r14927 25 25 using HeuristicLab.Core; 26 26 using HeuristicLab.Data; 27 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;27 using HeuristicLab.Persistence; 28 28 29 29 namespace HeuristicLab.Optimization { 30 [Storable Class]30 [StorableType("705e363e-e642-429d-8aad-c8cc2293492f")] 31 31 [Item("RunCollectionTypeCompatibilityConstraint", "A constraint which checks the members of the contained runs for type compabitiliby to the constraint data.")] 32 32 public class RunCollectionTypeCompatibilityConstraint : TypeCompatibilityConstraint, IRunCollectionColumnConstraint { -
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 } -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/Termination/ComparisonTerminator.cs
r14185 r14927 26 26 using HeuristicLab.Data; 27 27 using HeuristicLab.Parameters; 28 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;28 using HeuristicLab.Persistence; 29 29 30 30 namespace HeuristicLab.Optimization { 31 31 [Item("ComparisonTerminator", "An termination criterion which compares two values.")] 32 [Storable Class]32 [StorableType("6da350d6-6d4f-4436-be32-ac1766c0c189")] 33 33 public class ComparisonTerminator<T> : ThresholdTerminator<T> where T : class, IItem, IComparable, IStringConvertibleValue, new() { 34 34 public ILookupParameter<T> ComparisonValueParameter { -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/Termination/ExecutionTimeTerminator.cs
r14185 r14927 24 24 using HeuristicLab.Core; 25 25 using HeuristicLab.Data; 26 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;26 using HeuristicLab.Persistence; 27 27 28 28 namespace HeuristicLab.Optimization { 29 29 [Item("ExecutionTimeTerminator", "A termination criterion based on execution time of an algorithm.")] 30 [Storable Class]30 [StorableType("be3d1793-0191-48fb-a65f-27d7f87fb4a2")] 31 31 public class ExecutionTimeTerminator : ThresholdTerminator<TimeSpanValue> { 32 32 -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/Termination/MultiTerminator.cs
r14475 r14927 29 29 using HeuristicLab.Operators; 30 30 using HeuristicLab.Parameters; 31 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;31 using HeuristicLab.Persistence; 32 32 33 33 namespace HeuristicLab.Optimization { 34 34 [Item("MultiTerminator", "A multi operator, containing termination criteria.")] 35 [Storable Class]35 [StorableType("d344221f-f979-472b-813b-014da2a438fe")] 36 36 public sealed class MultiTerminator : CheckedMultiOperator<ITerminator>, ITerminator { 37 37 public static new Image StaticItemImage { 38 38 get { return HeuristicLab.Common.Resources.VSImageLibrary.FlagRed; } 39 39 } 40 40 41 41 public ILookupParameter<BoolValue> TerminateParameter { 42 42 get { return (ILookupParameter<BoolValue>)Parameters["Terminate"]; } -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/Termination/SingleObjectiveQualityTerminator.cs
r14185 r14927 23 23 using HeuristicLab.Core; 24 24 using HeuristicLab.Data; 25 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;25 using HeuristicLab.Persistence; 26 26 27 27 namespace HeuristicLab.Optimization { 28 28 [Item("SingleObjectiveQualityTerminator", "A termination criterion which uses a quality parameter (eg. current best quality) for termination.")] 29 [Storable Class]29 [StorableType("75adaa77-34e2-4e98-8398-63d23f731ff4")] 30 30 public class SingleObjectiveQualityTerminator : ComparisonTerminator<DoubleValue> { 31 31 [StorableConstructor] -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/Termination/TerminationOperator.cs
r14185 r14927 25 25 using HeuristicLab.Operators; 26 26 using HeuristicLab.Parameters; 27 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;27 using HeuristicLab.Persistence; 28 28 29 29 namespace HeuristicLab.Optimization { 30 30 [Item("TerminationOperator", "An operator which either calls the terminate- or the continue branch.")] 31 [Storable Class]31 [StorableType("ac3b177f-fc6e-41bc-bdea-060ae217c3f8")] 32 32 public sealed class TerminationOperator : InstrumentedOperator, ITerminationBasedOperator { 33 33 public ILookupParameter<ITerminator> TerminatorParameter { -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/Termination/Terminator.cs
r14185 r14927 27 27 using HeuristicLab.Operators; 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 [Item("Terminator", "A base class for all termination criteria.")] 33 [Storable Class]33 [StorableType("110869dd-d1d9-423b-be03-422ae2ad62f2")] 34 34 public abstract class Terminator : SingleSuccessorOperator, ITerminator { 35 35 public static new Image StaticItemImage { -
branches/PersistenceReintegration/HeuristicLab.Optimization/3.3/Termination/ThresholdTerminator.cs
r14185 r14927 25 25 using HeuristicLab.Data; 26 26 using HeuristicLab.Parameters; 27 using HeuristicLab.Persistence .Default.CompositeSerializers.Storable;27 using HeuristicLab.Persistence; 28 28 29 29 namespace HeuristicLab.Optimization { 30 30 [Item("ThresholdTerminator", "Base class for all termination criteria which specifies some threshold.")] 31 [Storable Class]31 [StorableType("1365dc70-bb0e-4c48-9927-e4b297e5bdd4")] 32 32 public abstract class ThresholdTerminator<T> : Terminator where T : class, IItem, IStringConvertibleValue, new() { 33 33 [Storable]
Note: See TracChangeset
for help on using the changeset viewer.