Changeset 3667
- Timestamp:
- 05/06/10 12:49:05 (15 years ago)
- Location:
- trunk/sources
- Files:
-
- 6 deleted
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.Knapsack/3.3/Analyzers/BestKnapsackSolutionAnalyzer.cs
r3658 r3667 38 38 [Item("BestKnapsackSolutionAnalyzer", "An operator for analyzing the best solution for a knapsack problem.")] 39 39 [StorableClass] 40 class BestKnapsackSolutionAnalyzer : SingleSuccessorOperator, I BestKnapsackSolutionAnalyzer, IAnalyzer {40 class BestKnapsackSolutionAnalyzer : SingleSuccessorOperator, IAnalyzer { 41 41 42 public ILookupParameter<BinaryVector> BinaryVectorParameter {43 get { return ( ILookupParameter<BinaryVector>)Parameters["BinaryVector"]; }42 public ScopeTreeLookupParameter<BinaryVector> BinaryVectorParameter { 43 get { return (ScopeTreeLookupParameter<BinaryVector>)Parameters["BinaryVector"]; } 44 44 } 45 ILookupParameter IBestKnapsackSolutionAnalyzer.BinaryVectorParameter {46 get { return BinaryVectorParameter; }45 public LookupParameter<IntValue> KnapsackCapacityParameter { 46 get { return (LookupParameter<IntValue>)Parameters["KnapsackCapacity"]; } 47 47 } 48 public ILookupParameter<IntValue> KnapsackCapacityParameter {49 get { return ( ILookupParameter<IntValue>)Parameters["KnapsackCapacity"]; }48 public LookupParameter<IntArray> WeightsParameter { 49 get { return (LookupParameter<IntArray>)Parameters["Weights"]; } 50 50 } 51 public ILookupParameter<IntArray> WeightsParameter {52 get { return ( ILookupParameter<IntArray>)Parameters["Weights"]; }51 public LookupParameter<IntArray> ValuesParameter { 52 get { return (LookupParameter<IntArray>)Parameters["Values"]; } 53 53 } 54 public ILookupParameter<IntArray> ValuesParameter {55 get { return ( ILookupParameter<IntArray>)Parameters["Values"]; }54 public ScopeTreeLookupParameter<DoubleValue> QualityParameter { 55 get { return (ScopeTreeLookupParameter<DoubleValue>)Parameters["Quality"]; } 56 56 } 57 public ILookupParameter<DoubleValue> QualityParameter {58 get { return ( ILookupParameter<DoubleValue>)Parameters["Quality"]; }57 public LookupParameter<KnapsackSolution> BestSolutionParameter { 58 get { return (LookupParameter<KnapsackSolution>)Parameters["BestSolution"]; } 59 59 } 60 ILookupParameter IBestKnapsackSolutionAnalyzer.QualityParameter { 61 get { return QualityParameter; } 62 } 63 public ILookupParameter<KnapsackSolution> BestSolutionParameter { 64 get { return (ILookupParameter<KnapsackSolution>)Parameters["BestSolution"]; } 65 } 66 public IValueLookupParameter<ResultCollection> ResultsParameter { 67 get { return (IValueLookupParameter<ResultCollection>)Parameters["Results"]; } 60 public ValueLookupParameter<ResultCollection> ResultsParameter { 61 get { return (ValueLookupParameter<ResultCollection>)Parameters["Results"]; } 68 62 } 69 63 70 64 public BestKnapsackSolutionAnalyzer() 71 65 : base() { 72 Parameters.Add(new LookupParameter<BinaryVector>("BinaryVector", "The knapsack solutions from which the best solution should be visualized."));66 Parameters.Add(new ScopeTreeLookupParameter<BinaryVector>("BinaryVector", "The knapsack solutions from which the best solution should be visualized.")); 73 67 Parameters.Add(new LookupParameter<IntValue>("KnapsackCapacity", "Capacity of the Knapsack.")); 74 68 Parameters.Add(new LookupParameter<IntArray>("Weights", "The weights of the items.")); 75 69 Parameters.Add(new LookupParameter<IntArray>("Values", "The values of the items.")); 76 70 77 Parameters.Add(new LookupParameter<DoubleValue>("Quality", "The qualities of the knapsack solutions which should be visualized."));71 Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The qualities of the knapsack solutions which should be visualized.")); 78 72 Parameters.Add(new LookupParameter<KnapsackSolution>("BestSolution", "The best knapsack solution.")); 79 73 Parameters.Add(new ValueLookupParameter<ResultCollection>("Results", "The result collection where the knapsack solution should be stored.")); … … 81 75 82 76 public override IOperation Apply() { 83 BinaryVector binaryVector= BinaryVectorParameter.ActualValue;84 DoubleValue quality= QualityParameter.ActualValue;77 ItemArray<BinaryVector> binaryVectors = BinaryVectorParameter.ActualValue; 78 ItemArray<DoubleValue> qualities = QualityParameter.ActualValue; 85 79 ResultCollection results = ResultsParameter.ActualValue; 80 81 int i = qualities.Select((x, index) => new { index, x.Value }).OrderBy(x => x.Value).First().index; 86 82 87 83 KnapsackSolution solution = BestSolutionParameter.ActualValue; 88 84 if (solution == null) { 89 solution = new KnapsackSolution(binaryVector , QualityParameter.ActualValue,85 solution = new KnapsackSolution(binaryVectors[i], qualities[i], 90 86 KnapsackCapacityParameter.ActualValue, WeightsParameter.ActualValue, ValuesParameter.ActualValue); 91 87 BestSolutionParameter.ActualValue = solution; 92 88 results.Add(new Result("Best Knapsack Solution", solution)); 93 89 } else { 94 solution.BinaryVector = binaryVector ;95 solution.Quality = QualityParameter.ActualValue;90 solution.BinaryVector = binaryVectors[i]; 91 solution.Quality = qualities[i]; 96 92 solution.Capacity = KnapsackCapacityParameter.ActualValue; 97 93 solution.Weights = WeightsParameter.ActualValue; -
trunk/sources/HeuristicLab.Problems.Knapsack/3.3/HeuristicLab.Problems.Knapsack-3.3.csproj
r3641 r3667 81 81 </ItemGroup> 82 82 <ItemGroup> 83 <Compile Include="Analyzers\MultiPopulationBestKnapsackSolutionAnalyzer.cs" />84 <Compile Include="Analyzers\PopulationBestKnapsackSolutionAnalyzer.cs" />85 83 <Compile Include="Evaluators\KnapsackEvaluator.cs" /> 86 84 <Compile Include="HeuristicLabProblemsKnapsackPlugin.cs" /> 87 <Compile Include="Interfaces\IBestKnapsackSolutionAnalyzer.cs" />88 85 <Compile Include="Interfaces\IKnapsackEvaluator.cs" /> 89 86 <Compile Include="Interfaces\IKnapsackMoveEvaluator.cs" /> -
trunk/sources/HeuristicLab.Problems.Knapsack/3.3/KnapsackProblem.cs
r3641 r3667 124 124 get { return operators.Cast<IOperator>(); } 125 125 } 126 private IEnumerable<IBestKnapsackSolutionAnalyzer> BestKnapsackSolutionAnalyzers{127 get { return operators.OfType< IBestKnapsackSolutionAnalyzer>(); }126 private BestKnapsackSolutionAnalyzer BestKnapsackSolutionAnalyzer { 127 get { return operators.OfType<BestKnapsackSolutionAnalyzer>().FirstOrDefault(); } 128 128 } 129 129 #endregion … … 206 206 ParameterizeSolutionCreator(); 207 207 ParameterizeEvaluator(); 208 ParameterizeAnalyzer s();208 ParameterizeAnalyzer(); 209 209 ParameterizeOperators(); 210 210 OnSolutionCreatorChanged(); … … 212 212 private void SolutionCreator_BinaryVectorParameter_ActualNameChanged(object sender, EventArgs e) { 213 213 ParameterizeEvaluator(); 214 ParameterizeAnalyzer s();214 ParameterizeAnalyzer(); 215 215 ParameterizeOperators(); 216 216 } 217 217 private void EvaluatorParameter_ValueChanged(object sender, EventArgs e) { 218 218 ParameterizeEvaluator(); 219 ParameterizeAnalyzer s();219 ParameterizeAnalyzer(); 220 220 OnEvaluatorChanged(); 221 221 } 222 222 void KnapsackCapacityParameter_ValueChanged(object sender, EventArgs e) { 223 223 ParameterizeEvaluator(); 224 ParameterizeAnalyzer s();224 ParameterizeAnalyzer(); 225 225 } 226 226 void WeightsParameter_ValueChanged(object sender, EventArgs e) { 227 227 ParameterizeEvaluator(); 228 ParameterizeAnalyzer s();228 ParameterizeAnalyzer(); 229 229 ParameterizeSolutionCreator(); 230 230 … … 239 239 void ValuesParameter_ValueChanged(object sender, EventArgs e) { 240 240 ParameterizeEvaluator(); 241 ParameterizeAnalyzer s();241 ParameterizeAnalyzer(); 242 242 ParameterizeSolutionCreator(); 243 243 … … 291 291 } 292 292 } 293 private void ParameterizeAnalyzers() { 294 foreach (IBestKnapsackSolutionAnalyzer analyzer in BestKnapsackSolutionAnalyzers) { 295 analyzer.BinaryVectorParameter.ActualName = SolutionCreator.BinaryVectorParameter.ActualName; 296 analyzer.KnapsackCapacityParameter.ActualName = KnapsackCapacityParameter.Name; 297 analyzer.WeightsParameter.ActualName = WeightsParameter.Name; 298 analyzer.ValuesParameter.ActualName = ValuesParameter.Name; 299 analyzer.ResultsParameter.ActualName = "Results"; 300 } 293 private void ParameterizeAnalyzer() { 294 BestKnapsackSolutionAnalyzer.BinaryVectorParameter.ActualName = SolutionCreator.BinaryVectorParameter.ActualName; 295 BestKnapsackSolutionAnalyzer.KnapsackCapacityParameter.ActualName = KnapsackCapacityParameter.Name; 296 BestKnapsackSolutionAnalyzer.WeightsParameter.ActualName = WeightsParameter.Name; 297 BestKnapsackSolutionAnalyzer.ValuesParameter.ActualName = ValuesParameter.Name; 298 BestKnapsackSolutionAnalyzer.ResultsParameter.ActualName = "Results"; 301 299 } 302 300 private void InitializeOperators() { 303 301 operators = new List<IOperator>(); 304 302 operators.Add(new BestKnapsackSolutionAnalyzer()); 305 operators.Add(new PopulationBestKnapsackSolutionAnalyzer()); 306 operators.Add(new MultiPopulationBestKnapsackSolutionAnalyzer()); 307 ParameterizeAnalyzers(); 303 ParameterizeAnalyzer(); 308 304 foreach (IBinaryVectorOperator op in ApplicationManager.Manager.GetInstances<IBinaryVectorOperator>()) { 309 305 if (!(op is ISingleObjectiveMoveEvaluator) || (op is IKnapsackMoveEvaluator)) { -
trunk/sources/HeuristicLab.Problems.OneMax.Views/3.3/OneMaxSolutionView.cs
r3649 r3667 63 63 Invoke(new EventHandler(Content_QualityChanged), sender, e); 64 64 else { 65 qualityView.ViewType = null;66 65 qualityView.Content = Content.Quality; 67 66 } … … 70 69 void Content_BinaryVectorChanged(object sender, EventArgs e) { 71 70 if (InvokeRequired) 72 Invoke(new EventHandler(Content_ QualityChanged), sender, e);71 Invoke(new EventHandler(Content_BinaryVectorChanged), sender, e); 73 72 else { 74 binaryVectorView.ViewType = null;75 73 binaryVectorView.Content = Content.BinaryVector; 76 74 } … … 84 82 binaryVectorView.Content = null; 85 83 } else { 86 qualityView.ViewType = null;87 84 qualityView.Content = Content.Quality; 88 89 binaryVectorView.ViewType = null;90 85 binaryVectorView.Content = Content.BinaryVector; 91 86 } -
trunk/sources/HeuristicLab.Problems.OneMax/3.3/Analyzers/BestOneMaxSolutionAnalyzer.cs
r3658 r3667 38 38 [Item("BestOneMaxSolutionAnalyzer", "An operator for analyzing the best solution for a OneMax problem.")] 39 39 [StorableClass] 40 class BestOneMaxSolutionAnalyzer : SingleSuccessorOperator, I BestOneMaxSolutionAnalyzer, IAnalyzer {40 class BestOneMaxSolutionAnalyzer : SingleSuccessorOperator, IAnalyzer { 41 41 42 public ILookupParameter<BinaryVector> BinaryVectorParameter {43 get { return ( ILookupParameter<BinaryVector>)Parameters["BinaryVector"]; }42 public ScopeTreeLookupParameter<BinaryVector> BinaryVectorParameter { 43 get { return (ScopeTreeLookupParameter<BinaryVector>)Parameters["BinaryVector"]; } 44 44 } 45 ILookupParameter IBestOneMaxSolutionAnalyzer.BinaryVectorParameter {46 get { return BinaryVectorParameter; }45 public ScopeTreeLookupParameter<DoubleValue> QualityParameter { 46 get { return (ScopeTreeLookupParameter<DoubleValue>)Parameters["Quality"]; } 47 47 } 48 public ILookupParameter<DoubleValue> QualityParameter {49 get { return ( ILookupParameter<DoubleValue>)Parameters["Quality"]; }48 public LookupParameter<OneMaxSolution> BestSolutionParameter { 49 get { return (LookupParameter<OneMaxSolution>)Parameters["BestSolution"]; } 50 50 } 51 ILookupParameter IBestOneMaxSolutionAnalyzer.QualityParameter { 52 get { return QualityParameter; } 53 } 54 public ILookupParameter<OneMaxSolution> BestSolutionParameter { 55 get { return (ILookupParameter<OneMaxSolution>)Parameters["BestSolution"]; } 56 } 57 public IValueLookupParameter<ResultCollection> ResultsParameter { 58 get { return (IValueLookupParameter<ResultCollection>)Parameters["Results"]; } 51 public ValueLookupParameter<ResultCollection> ResultsParameter { 52 get { return (ValueLookupParameter<ResultCollection>)Parameters["Results"]; } 59 53 } 60 54 61 55 public BestOneMaxSolutionAnalyzer() 62 56 : base() { 63 Parameters.Add(new LookupParameter<BinaryVector>("BinaryVector", "The Onemax solutions from which the best solution should be visualized."));57 Parameters.Add(new ScopeTreeLookupParameter<BinaryVector>("BinaryVector", "The Onemax solutions from which the best solution should be visualized.")); 64 58 65 Parameters.Add(new LookupParameter<DoubleValue>("Quality", "The qualities of the Onemax solutions which should be visualized."));59 Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The qualities of the Onemax solutions which should be visualized.")); 66 60 Parameters.Add(new LookupParameter<OneMaxSolution>("BestSolution", "The best Onemax solution.")); 67 61 Parameters.Add(new ValueLookupParameter<ResultCollection>("Results", "The result collection where the Onemax solution should be stored.")); … … 69 63 70 64 public override IOperation Apply() { 71 BinaryVector binaryVector= BinaryVectorParameter.ActualValue;72 DoubleValue quality= QualityParameter.ActualValue;65 ItemArray<BinaryVector> binaryVectors = BinaryVectorParameter.ActualValue; 66 ItemArray<DoubleValue> qualities = QualityParameter.ActualValue; 73 67 ResultCollection results = ResultsParameter.ActualValue; 68 69 int i = qualities.Select((x, index) => new { index, x.Value }).OrderBy(x => x.Value).First().index; 74 70 75 71 OneMaxSolution solution = BestSolutionParameter.ActualValue; 76 72 if (solution == null) { 77 solution = new OneMaxSolution(binaryVector , QualityParameter.ActualValue);73 solution = new OneMaxSolution(binaryVectors[i], QualityParameter.ActualValue[i]); 78 74 BestSolutionParameter.ActualValue = solution; 79 75 results.Add(new Result("Best OneMax Solution", solution)); 80 76 } else { 81 solution.BinaryVector = binaryVector ;82 solution.Quality = QualityParameter.ActualValue ;77 solution.BinaryVector = binaryVectors[i]; 78 solution.Quality = QualityParameter.ActualValue[i]; 83 79 84 80 results["Best OneMax Solution"].Value = solution; -
trunk/sources/HeuristicLab.Problems.OneMax/3.3/HeuristicLab.Problems.OneMax-3.3.csproj
r3642 r3667 87 87 <ItemGroup> 88 88 <Compile Include="Analyzers\BestOneMaxSolutionAnalyzer.cs" /> 89 <Compile Include="Analyzers\MultiPopulationBestOneMaxSolutionAnalyzer.cs" />90 <Compile Include="Analyzers\PopulationBestOneMaxSolutionAnalyzer.cs" />91 <Compile Include="Interfaces\IBestOneMaxSolutionAnalyzer.cs" />92 89 <Compile Include="Interfaces\IOneMaxSolutionsVisualizer.cs" /> 93 90 <Compile Include="Interfaces\IOneMaxMoveEvaluator.cs" /> -
trunk/sources/HeuristicLab.Problems.OneMax/3.3/OnemaxProblem.cs
r3642 r3667 102 102 get { return operators.Cast<IOperator>(); } 103 103 } 104 private IEnumerable<IBestOneMaxSolutionAnalyzer> BestOneMaxSolutionAnalyzers{105 get { return operators.OfType< IBestOneMaxSolutionAnalyzer>(); }104 private BestOneMaxSolutionAnalyzer BestOneMaxSolutionAnalyzer { 105 get { return operators.OfType<BestOneMaxSolutionAnalyzer>().FirstOrDefault(); } 106 106 } 107 107 #endregion … … 157 157 ParameterizeSolutionCreator(); 158 158 ParameterizeEvaluator(); 159 ParameterizeAnalyzer s();159 ParameterizeAnalyzer(); 160 160 ParameterizeOperators(); 161 161 OnSolutionCreatorChanged(); … … 163 163 private void SolutionCreator_BinaryVectorParameter_ActualNameChanged(object sender, EventArgs e) { 164 164 ParameterizeEvaluator(); 165 ParameterizeAnalyzer s();165 ParameterizeAnalyzer(); 166 166 ParameterizeOperators(); 167 167 } 168 168 private void EvaluatorParameter_ValueChanged(object sender, EventArgs e) { 169 169 ParameterizeEvaluator(); 170 ParameterizeAnalyzer s();170 ParameterizeAnalyzer(); 171 171 OnEvaluatorChanged(); 172 172 } … … 209 209 ((OneMaxEvaluator)Evaluator).BinaryVectorParameter.ActualName = SolutionCreator.BinaryVectorParameter.ActualName; 210 210 } 211 private void ParameterizeAnalyzers() { 212 foreach (IBestOneMaxSolutionAnalyzer analyzer in BestOneMaxSolutionAnalyzers) { 213 analyzer.BinaryVectorParameter.ActualName = SolutionCreator.BinaryVectorParameter.ActualName; 214 analyzer.ResultsParameter.ActualName = "Results"; 215 } 211 private void ParameterizeAnalyzer() { 212 BestOneMaxSolutionAnalyzer.BinaryVectorParameter.ActualName = SolutionCreator.BinaryVectorParameter.ActualName; 213 BestOneMaxSolutionAnalyzer.ResultsParameter.ActualName = "Results"; 216 214 } 217 215 private void InitializeOperators() { 218 216 operators = new List<IOperator>(); 219 217 operators.Add(new BestOneMaxSolutionAnalyzer()); 220 operators.Add(new PopulationBestOneMaxSolutionAnalyzer()); 221 operators.Add(new MultiPopulationBestOneMaxSolutionAnalyzer()); 222 ParameterizeAnalyzers(); 218 ParameterizeAnalyzer(); 223 219 foreach(IBinaryVectorOperator op in ApplicationManager.Manager.GetInstances<IBinaryVectorOperator>()) { 224 220 if (!(op is ISingleObjectiveMoveEvaluator) || (op is IOneMaxMoveEvaluator)) { -
trunk/sources/HeuristicLab.Problems.TestFunctions.Views/3.3/SingleObjectiveTestFunctionSolutionView.cs
r3665 r3667 75 75 private void Content_BestRealVectorChanged(object sender, EventArgs e) { 76 76 if (InvokeRequired) 77 Invoke(new EventHandler(Content_ QualityChanged), sender, e);77 Invoke(new EventHandler(Content_BestRealVectorChanged), sender, e); 78 78 else { 79 realVectorView.ViewType = null;80 79 realVectorView.Content = Content.BestRealVector; 81 80 pictureBox.Visible = Content.BestRealVector.Length == 2; … … 88 87 Invoke(new EventHandler(Content_QualityChanged), sender, e); 89 88 else { 90 qualityView.ViewType = null;91 89 qualityView.Content = Content.BestQuality; 92 90 pictureBox.Visible = Content.BestRealVector.Length == 2; … … 110 108 realVectorView.Content = null; 111 109 } else { 112 qualityView.ViewType = null;113 110 qualityView.Content = Content.BestQuality; 114 115 realVectorView.ViewType = null;116 111 realVectorView.Content = Content.BestRealVector; 117 112
Note: See TracChangeset
for help on using the changeset viewer.