Changeset 9363 for branches/OaaS/HeuristicLab.Problems.TestFunctions/3.3/SingleObjectiveTestFunctionProblem.cs
- Timestamp:
- 04/16/13 13:13:41 (11 years ago)
- Location:
- branches/OaaS
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/OaaS
- Property svn:ignore
-
old new 21 21 protoc.exe 22 22 _ReSharper.HeuristicLab 3.3 Tests 23 Google.ProtocolBuffers-2.4.1.473.dll 23 24 packages
-
- Property svn:mergeinfo changed
- Property svn:ignore
-
branches/OaaS/HeuristicLab.Problems.TestFunctions
-
Property
svn:mergeinfo
set to
(toggle deleted branches)
/trunk/sources/HeuristicLab.Problems.TestFunctions merged eligible /branches/Algorithms.GradientDescent/HeuristicLab.Problems.TestFunctions 5516-5520 /branches/Benchmarking/sources/HeuristicLab.Problems.TestFunctions 6917-7005 /branches/CMAES/HeuristicLab.Problems.TestFunctions 9121-9257 /branches/CloningRefactoring/HeuristicLab.Problems.TestFunctions 4656-4721 /branches/DataAnalysis Refactoring/HeuristicLab.Problems.TestFunctions 5471-5808 /branches/DataAnalysis SolutionEnsembles/HeuristicLab.Problems.TestFunctions 5815-6180 /branches/DataAnalysis/HeuristicLab.Problems.TestFunctions 4458-4459,4462,4464 /branches/GP.Grammar.Editor/HeuristicLab.Problems.TestFunctions 6284-6795 /branches/GP.Symbols (TimeLag, Diff, Integral)/HeuristicLab.Problems.TestFunctions 5060 /branches/NET40/sources/HeuristicLab.Problems.TestFunctions 5138-5162 /branches/ParallelEngine/HeuristicLab.Problems.TestFunctions 5175-5192 /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.TestFunctions 7568-7810 /branches/QAPAlgorithms/HeuristicLab.Problems.TestFunctions 6350-6627 /branches/Restructure trunk solution/HeuristicLab.Problems.TestFunctions 6828 /branches/RuntimeOptimizer/HeuristicLab.Problems.TestFunctions 8943-9078 /branches/ScatterSearch (trunk integration)/HeuristicLab.Problems.TestFunctions 7787-8333 /branches/SlaveShutdown/HeuristicLab.Problems.TestFunctions 8944-8956 /branches/SuccessProgressAnalysis/HeuristicLab.Problems.TestFunctions 5370-5682 /branches/Trunk/HeuristicLab.Problems.TestFunctions 6829-6865 /branches/UnloadJobs/HeuristicLab.Problems.TestFunctions 9168-9215 /branches/VNS/HeuristicLab.Problems.TestFunctions 5594-5752 /branches/histogram/HeuristicLab.Problems.TestFunctions 5959-6341
-
Property
svn:mergeinfo
set to
(toggle deleted branches)
-
branches/OaaS/HeuristicLab.Problems.TestFunctions/3.3/SingleObjectiveTestFunctionProblem.cs
r7442 r9363 20 20 #endregion 21 21 22 using System; 23 using System.Collections.Generic; 24 using System.Linq; 22 using HeuristicLab.Analysis; 25 23 using HeuristicLab.Common; 26 24 using HeuristicLab.Core; … … 31 29 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 32 30 using HeuristicLab.PluginInfrastructure; 31 using System; 32 using System.Collections.Generic; 33 using System.Linq; 33 34 34 35 namespace HeuristicLab.Problems.TestFunctions { … … 69 70 private BestSingleObjectiveTestFunctionSolutionAnalyzer BestSingleObjectiveTestFunctionSolutionAnalyzer { 70 71 get { return Operators.OfType<BestSingleObjectiveTestFunctionSolutionAnalyzer>().FirstOrDefault(); } 72 } 73 private SingleObjectivePopulationDiversityAnalyzer SingleObjectivePopulationDiversityAnalyzer { 74 get { return Operators.OfType<SingleObjectivePopulationDiversityAnalyzer>().FirstOrDefault(); } 71 75 } 72 76 #endregion … … 123 127 } 124 128 125 private bool IsNotFieldReferenced(IOperator x) {126 return !(x == strategyVectorCreator127 || x == strategyVectorCrossover128 || x == strategyVectorManipulator);129 }130 131 129 #region Events 132 130 protected override void OnSolutionCreatorChanged() { … … 139 137 protected override void OnEvaluatorChanged() { 140 138 base.OnEvaluatorChanged(); 141 ParameterizeEvaluator(); 139 bool problemSizeChange = ProblemSize.Value < Evaluator.MinimumProblemSize 140 || ProblemSize.Value > Evaluator.MaximumProblemSize; 141 if (problemSizeChange) { 142 ProblemSize.Value = Math.Max(Evaluator.MinimumProblemSize, Math.Min(ProblemSize.Value, Evaluator.MaximumProblemSize)); 143 } else { 144 ParameterizeEvaluator(); 145 } 142 146 UpdateMoveEvaluators(); 143 147 ParameterizeAnalyzers(); 144 148 Maximization.Value = Evaluator.Maximization; 145 149 BoundsParameter.Value = Evaluator.Bounds; 146 if (ProblemSize.Value < Evaluator.MinimumProblemSize)147 ProblemSize.Value = Evaluator.MinimumProblemSize;148 else if (ProblemSize.Value > Evaluator.MaximumProblemSize)149 ProblemSize.Value = Evaluator.MaximumProblemSize;150 150 BestKnownQuality = new DoubleValue(Evaluator.BestKnownQuality); 151 151 Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged); … … 247 247 } 248 248 private void ParameterizeAnalyzers() { 249 BestSingleObjectiveTestFunctionSolutionAnalyzer.RealVectorParameter.ActualName = SolutionCreator.RealVectorParameter.ActualName; 250 BestSingleObjectiveTestFunctionSolutionAnalyzer.ResultsParameter.ActualName = "Results"; 251 BestSingleObjectiveTestFunctionSolutionAnalyzer.QualityParameter.ActualName = Evaluator.QualityParameter.ActualName; 252 BestSingleObjectiveTestFunctionSolutionAnalyzer.BestKnownQualityParameter.ActualName = BestKnownQualityParameter.Name; 253 BestSingleObjectiveTestFunctionSolutionAnalyzer.BestKnownSolutionParameter.ActualName = BestKnownSolutionParameter.Name; 254 BestSingleObjectiveTestFunctionSolutionAnalyzer.MaximizationParameter.ActualName = MaximizationParameter.Name; 255 BestSingleObjectiveTestFunctionSolutionAnalyzer.EvaluatorParameter.ActualName = EvaluatorParameter.Name; 256 BestSingleObjectiveTestFunctionSolutionAnalyzer.BoundsParameter.ActualName = BoundsParameter.Name; 249 if (BestSingleObjectiveTestFunctionSolutionAnalyzer != null) { 250 BestSingleObjectiveTestFunctionSolutionAnalyzer.RealVectorParameter.ActualName = SolutionCreator.RealVectorParameter.ActualName; 251 BestSingleObjectiveTestFunctionSolutionAnalyzer.ResultsParameter.ActualName = "Results"; 252 BestSingleObjectiveTestFunctionSolutionAnalyzer.QualityParameter.ActualName = Evaluator.QualityParameter.ActualName; 253 BestSingleObjectiveTestFunctionSolutionAnalyzer.BestKnownQualityParameter.ActualName = BestKnownQualityParameter.Name; 254 BestSingleObjectiveTestFunctionSolutionAnalyzer.BestKnownSolutionParameter.ActualName = BestKnownSolutionParameter.Name; 255 BestSingleObjectiveTestFunctionSolutionAnalyzer.MaximizationParameter.ActualName = MaximizationParameter.Name; 256 BestSingleObjectiveTestFunctionSolutionAnalyzer.EvaluatorParameter.ActualName = EvaluatorParameter.Name; 257 BestSingleObjectiveTestFunctionSolutionAnalyzer.BoundsParameter.ActualName = BoundsParameter.Name; 258 } 259 260 if (SingleObjectivePopulationDiversityAnalyzer != null) { 261 SingleObjectivePopulationDiversityAnalyzer.MaximizationParameter.ActualName = MaximizationParameter.Name; 262 SingleObjectivePopulationDiversityAnalyzer.QualityParameter.ActualName = Evaluator.QualityParameter.ActualName; 263 SingleObjectivePopulationDiversityAnalyzer.ResultsParameter.ActualName = "Results"; 264 SingleObjectivePopulationDiversityAnalyzer.SimilarityCalculator = Operators.OfType<SingleObjectiveTestFunctionSimilarityCalculator>().SingleOrDefault(); 265 } 257 266 } 258 267 private void InitializeOperators() { 268 Operators.Add(new SingleObjectiveTestFunctionImprovementOperator()); 269 Operators.Add(new SingleObjectiveTestFunctionPathRelinker()); 270 Operators.Add(new SingleObjectiveTestFunctionSimilarityCalculator()); 271 259 272 Operators.Add(new BestSingleObjectiveTestFunctionSolutionAnalyzer()); 273 Operators.Add(new SingleObjectivePopulationDiversityAnalyzer()); 260 274 ParameterizeAnalyzers(); 261 275 Operators.AddRange(ApplicationManager.Manager.GetInstances<IRealVectorOperator>().Cast<IOperator>()); … … 308 322 Evaluator.PointParameter.ActualName = SolutionCreator.RealVectorParameter.ActualName; 309 323 Evaluator.PointParameter.Hidden = true; 310 BestKnownSolutionParameter.Value = Evaluator.GetBestKnownSolution(ProblemSize.Value); 324 try { 325 BestKnownSolutionParameter.Value = Evaluator.GetBestKnownSolution(ProblemSize.Value); 326 } 327 catch (ArgumentException e) { 328 ErrorHandling.ShowErrorDialog(e); 329 ProblemSize.Value = Evaluator.MinimumProblemSize; 330 } 311 331 } 312 332 private void ParameterizeOperators() { 313 foreach ( IRealVectorCrossover op in Operators.OfType<IRealVectorCrossover>()) {333 foreach (var op in Operators.OfType<IRealVectorCrossover>()) { 314 334 op.ParentsParameter.ActualName = SolutionCreator.RealVectorParameter.ActualName; 315 335 op.ParentsParameter.Hidden = true; … … 319 339 op.BoundsParameter.Hidden = true; 320 340 } 321 foreach ( IRealVectorManipulator op in Operators.OfType<IRealVectorManipulator>()) {341 foreach (var op in Operators.OfType<IRealVectorManipulator>()) { 322 342 op.RealVectorParameter.ActualName = SolutionCreator.RealVectorParameter.ActualName; 323 343 op.RealVectorParameter.Hidden = true; … … 325 345 op.BoundsParameter.Hidden = true; 326 346 } 327 foreach ( IRealVectorMoveOperator op in Operators.OfType<IRealVectorMoveOperator>()) {328 op.RealVectorParameter.ActualName = SolutionCreator.RealVectorParameter.ActualName; 329 op.RealVectorParameter.Hidden = true; 330 } 331 foreach ( IRealVectorMoveGenerator op in Operators.OfType<IRealVectorMoveGenerator>()) {347 foreach (var op in Operators.OfType<IRealVectorMoveOperator>()) { 348 op.RealVectorParameter.ActualName = SolutionCreator.RealVectorParameter.ActualName; 349 op.RealVectorParameter.Hidden = true; 350 } 351 foreach (var op in Operators.OfType<IRealVectorMoveGenerator>()) { 332 352 op.BoundsParameter.ActualName = BoundsParameter.Name; 333 353 op.BoundsParameter.Hidden = true; 334 354 } 335 foreach ( ISingleObjectiveTestFunctionAdditiveMoveEvaluator op in Operators.OfType<ISingleObjectiveTestFunctionAdditiveMoveEvaluator>()) {355 foreach (var op in Operators.OfType<ISingleObjectiveTestFunctionAdditiveMoveEvaluator>()) { 336 356 op.QualityParameter.ActualName = Evaluator.QualityParameter.ActualName; 337 357 op.QualityParameter.Hidden = true; … … 339 359 op.RealVectorParameter.Hidden = true; 340 360 } 341 foreach ( IRealVectorParticleCreator op in Operators.OfType<IRealVectorParticleCreator>()) {361 foreach (var op in Operators.OfType<IRealVectorParticleCreator>()) { 342 362 op.RealVectorParameter.ActualName = SolutionCreator.RealVectorParameter.ActualName; 343 363 op.RealVectorParameter.Hidden = true; … … 347 367 op.ProblemSizeParameter.Hidden = true; 348 368 } 349 foreach ( IRealVectorParticleUpdater op in Operators.OfType<IRealVectorParticleUpdater>()) {369 foreach (var op in Operators.OfType<IRealVectorParticleUpdater>()) { 350 370 op.RealVectorParameter.ActualName = SolutionCreator.RealVectorParameter.ActualName; 351 371 op.RealVectorParameter.Hidden = true; … … 353 373 op.BoundsParameter.Hidden = true; 354 374 } 355 foreach ( IRealVectorSwarmUpdater op in Operators.OfType<IRealVectorSwarmUpdater>()) {375 foreach (var op in Operators.OfType<IRealVectorSwarmUpdater>()) { 356 376 op.RealVectorParameter.ActualName = SolutionCreator.RealVectorParameter.ActualName; 357 377 op.RealVectorParameter.Hidden = true; … … 363 383 op.RealVectorParameter.Hidden = true; 364 384 } 385 foreach (var op in Operators.OfType<ISingleObjectiveImprovementOperator>()) { 386 op.SolutionParameter.ActualName = SolutionCreator.RealVectorParameter.ActualName; 387 op.SolutionParameter.Hidden = true; 388 } 389 foreach (var op in Operators.OfType<ISingleObjectivePathRelinker>()) { 390 op.ParentsParameter.ActualName = SolutionCreator.RealVectorParameter.ActualName; 391 op.ParentsParameter.Hidden = true; 392 } 393 foreach (var op in Operators.OfType<SingleObjectiveTestFunctionSimilarityCalculator>()) { 394 op.SolutionVariableName = SolutionCreator.RealVectorParameter.ActualName; 395 op.QualityVariableName = Evaluator.QualityParameter.ActualName; 396 op.Bounds = Bounds; 397 } 365 398 } 366 399 private void UpdateStrategyVectorBounds() { 367 DoubleMatrixstrategyBounds = (DoubleMatrix)Bounds.Clone();400 var strategyBounds = (DoubleMatrix)Bounds.Clone(); 368 401 for (int i = 0; i < strategyBounds.Rows; i++) { 369 402 if (strategyBounds[i, 0] < 0) strategyBounds[i, 0] = 0;
Note: See TracChangeset
for help on using the changeset viewer.