Index: trunk/sources/HeuristicLab.Problems.Knapsack/3.3/Analyzers/BestKnapsackSolutionAnalyzer.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.Knapsack/3.3/Analyzers/BestKnapsackSolutionAnalyzer.cs	(revision 3659)
+++ trunk/sources/HeuristicLab.Problems.Knapsack/3.3/Analyzers/BestKnapsackSolutionAnalyzer.cs	(revision 3667)
@@ -38,42 +38,36 @@
   [Item("BestKnapsackSolutionAnalyzer", "An operator for analyzing the best solution for a knapsack problem.")]
   [StorableClass]
-  class BestKnapsackSolutionAnalyzer : SingleSuccessorOperator, IBestKnapsackSolutionAnalyzer, IAnalyzer {
+  class BestKnapsackSolutionAnalyzer : SingleSuccessorOperator, IAnalyzer {
 
-    public ILookupParameter<BinaryVector> BinaryVectorParameter {
-      get { return (ILookupParameter<BinaryVector>)Parameters["BinaryVector"]; }
+    public ScopeTreeLookupParameter<BinaryVector> BinaryVectorParameter {
+      get { return (ScopeTreeLookupParameter<BinaryVector>)Parameters["BinaryVector"]; }
     }
-    ILookupParameter IBestKnapsackSolutionAnalyzer.BinaryVectorParameter {
-      get { return BinaryVectorParameter; }
+    public LookupParameter<IntValue> KnapsackCapacityParameter {
+      get { return (LookupParameter<IntValue>)Parameters["KnapsackCapacity"]; }
     }
-    public ILookupParameter<IntValue> KnapsackCapacityParameter {
-      get { return (ILookupParameter<IntValue>)Parameters["KnapsackCapacity"]; }
+    public LookupParameter<IntArray> WeightsParameter {
+      get { return (LookupParameter<IntArray>)Parameters["Weights"]; }
     }
-    public ILookupParameter<IntArray> WeightsParameter {
-      get { return (ILookupParameter<IntArray>)Parameters["Weights"]; }
+    public LookupParameter<IntArray> ValuesParameter {
+      get { return (LookupParameter<IntArray>)Parameters["Values"]; }
     }
-    public ILookupParameter<IntArray> ValuesParameter {
-      get { return (ILookupParameter<IntArray>)Parameters["Values"]; }
+    public ScopeTreeLookupParameter<DoubleValue> QualityParameter {
+      get { return (ScopeTreeLookupParameter<DoubleValue>)Parameters["Quality"]; }
     }
-    public ILookupParameter<DoubleValue> QualityParameter {
-      get { return (ILookupParameter<DoubleValue>)Parameters["Quality"]; }
+    public LookupParameter<KnapsackSolution> BestSolutionParameter {
+      get { return (LookupParameter<KnapsackSolution>)Parameters["BestSolution"]; }
     }
-    ILookupParameter IBestKnapsackSolutionAnalyzer.QualityParameter {
-      get { return QualityParameter; }
-    }
-    public ILookupParameter<KnapsackSolution> BestSolutionParameter {
-      get { return (ILookupParameter<KnapsackSolution>)Parameters["BestSolution"]; }
-    }
-    public IValueLookupParameter<ResultCollection> ResultsParameter {
-      get { return (IValueLookupParameter<ResultCollection>)Parameters["Results"]; }
+    public ValueLookupParameter<ResultCollection> ResultsParameter {
+      get { return (ValueLookupParameter<ResultCollection>)Parameters["Results"]; }
     }
 
     public BestKnapsackSolutionAnalyzer()
       : base() {
-      Parameters.Add(new LookupParameter<BinaryVector>("BinaryVector", "The knapsack solutions from which the best solution should be visualized."));
+      Parameters.Add(new ScopeTreeLookupParameter<BinaryVector>("BinaryVector", "The knapsack solutions from which the best solution should be visualized."));
       Parameters.Add(new LookupParameter<IntValue>("KnapsackCapacity", "Capacity of the Knapsack."));
       Parameters.Add(new LookupParameter<IntArray>("Weights", "The weights of the items."));
       Parameters.Add(new LookupParameter<IntArray>("Values", "The values of the items."));
 
-      Parameters.Add(new LookupParameter<DoubleValue>("Quality", "The qualities of the knapsack solutions which should be visualized."));
+      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The qualities of the knapsack solutions which should be visualized."));
       Parameters.Add(new LookupParameter<KnapsackSolution>("BestSolution", "The best knapsack solution."));
       Parameters.Add(new ValueLookupParameter<ResultCollection>("Results", "The result collection where the knapsack solution should be stored."));
@@ -81,17 +75,19 @@
 
     public override IOperation Apply() {
-      BinaryVector binaryVector = BinaryVectorParameter.ActualValue;
-      DoubleValue quality = QualityParameter.ActualValue;
+      ItemArray<BinaryVector> binaryVectors = BinaryVectorParameter.ActualValue;
+      ItemArray<DoubleValue> qualities = QualityParameter.ActualValue;
       ResultCollection results = ResultsParameter.ActualValue;
+
+      int i = qualities.Select((x, index) => new { index, x.Value }).OrderBy(x => x.Value).First().index;
 
       KnapsackSolution solution = BestSolutionParameter.ActualValue;
       if (solution == null) {
-        solution = new KnapsackSolution(binaryVector, QualityParameter.ActualValue,
+        solution = new KnapsackSolution(binaryVectors[i], qualities[i],
           KnapsackCapacityParameter.ActualValue, WeightsParameter.ActualValue, ValuesParameter.ActualValue);
         BestSolutionParameter.ActualValue = solution;
         results.Add(new Result("Best Knapsack Solution", solution));
       }  else {
-        solution.BinaryVector = binaryVector;
-        solution.Quality = QualityParameter.ActualValue;
+        solution.BinaryVector = binaryVectors[i];
+        solution.Quality = qualities[i];
         solution.Capacity = KnapsackCapacityParameter.ActualValue;
         solution.Weights = WeightsParameter.ActualValue;
Index: trunk/sources/HeuristicLab.Problems.Knapsack/3.3/Analyzers/MultiPopulationBestKnapsackSolutionAnalyzer.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.Knapsack/3.3/Analyzers/MultiPopulationBestKnapsackSolutionAnalyzer.cs	(revision 3659)
+++ 	(revision )
@@ -1,121 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using HeuristicLab.Optimization;
-using HeuristicLab.Data;
-using HeuristicLab.Core;
-using HeuristicLab.Operators;
-using HeuristicLab.Encodings.BinaryVectorEncoding;
-using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-
-namespace HeuristicLab.Problems.Knapsack.Analyzers {
-  /// <summary>
-  /// An operator for analyzing the best solution for a knapsack problem.
-  /// </summary>
-  [Item("MultiPopulationBestKnapsackSolutionAnalyzer", "An operator for analyzing the best solution for a knapsack problem.")]
-  [StorableClass]
-  class MultiPopulationBestKnapsackSolutionAnalyzer : SingleSuccessorOperator, IBestKnapsackSolutionAnalyzer, IAnalyzer {
-
-    public ILookupParameter<ItemArray<ItemArray<BinaryVector>>> BinaryVectorParameter {
-      get { return (ILookupParameter<ItemArray<ItemArray<BinaryVector>>>)Parameters["BinaryVector"]; }
-    }
-    ILookupParameter IBestKnapsackSolutionAnalyzer.BinaryVectorParameter {
-      get { return BinaryVectorParameter; }
-    }
-    public ILookupParameter<IntValue> KnapsackCapacityParameter {
-      get { return (ILookupParameter<IntValue>)Parameters["KnapsackCapacity"]; }
-    }
-    public ILookupParameter<IntArray> WeightsParameter {
-      get { return (ILookupParameter<IntArray>)Parameters["Weights"]; }
-    }
-    public ILookupParameter<IntArray> ValuesParameter {
-      get { return (ILookupParameter<IntArray>)Parameters["Values"]; }
-    }
-    public ILookupParameter<ItemArray<ItemArray<DoubleValue>>> QualityParameter {
-      get { return (ILookupParameter<ItemArray<ItemArray<DoubleValue>>>)Parameters["Quality"]; }
-    }
-    ILookupParameter IBestKnapsackSolutionAnalyzer.QualityParameter {
-      get { return QualityParameter; }
-    }
-    public ILookupParameter<KnapsackSolution> BestSolutionParameter {
-      get { return (ILookupParameter<KnapsackSolution>)Parameters["BestSolution"]; }
-    }
-    public IValueLookupParameter<ResultCollection> ResultsParameter {
-      get { return (IValueLookupParameter<ResultCollection>)Parameters["Results"]; }
-    }
-
-    public MultiPopulationBestKnapsackSolutionAnalyzer()
-      : base() {
-      Parameters.Add(new ScopeTreeLookupParameter<ItemArray<BinaryVector>>("BinaryVector", "The knapsack solutions from which the best solution should be visualized."));
-      Parameters.Add(new LookupParameter<IntValue>("KnapsackCapacity", "Capacity of the Knapsack."));
-      Parameters.Add(new LookupParameter<IntArray>("Weights", "The weights of the items."));
-      Parameters.Add(new LookupParameter<IntArray>("Values", "The values of the items."));
-      
-      Parameters.Add(new ScopeTreeLookupParameter<ItemArray<DoubleValue>>("Quality", "The qualities of the knapsack solutions which should be visualized."));
-      Parameters.Add(new LookupParameter<KnapsackSolution>("BestSolution", "The best knapsack solution."));
-      Parameters.Add(new ValueLookupParameter<ResultCollection>("Results", "The result collection where the knapsack solution should be stored."));
-    }
-
-    public override IOperation Apply() {
-      ItemArray<ItemArray<BinaryVector>> binaryVectors = BinaryVectorParameter.ActualValue;
-      ItemArray<ItemArray<DoubleValue>> qualities = QualityParameter.ActualValue;
-      ResultCollection results = ResultsParameter.ActualValue;
-
-      DoubleValue bestQuality = new DoubleValue(double.MaxValue);
-      BinaryVector bestBinaryVector = null;
-
-      for (int i = 0; i < qualities.Length; i++) {
-        for (int j = 0; j < qualities[i].Length; j++) {
-          if (qualities[i][j].Value < bestQuality.Value) {
-            bestQuality = qualities[i][j];
-            bestBinaryVector = binaryVectors[i][j];
-          }
-        }
-      }
-
-      KnapsackSolution solution = BestSolutionParameter.ActualValue;
-      if (solution == null) {
-        solution = new KnapsackSolution(bestBinaryVector, bestQuality,
-          KnapsackCapacityParameter.ActualValue, WeightsParameter.ActualValue, ValuesParameter.ActualValue);
-        BestSolutionParameter.ActualValue = solution;
-
-        results.Add(new Result("Best Knapsack Solution", solution));
-      } else {
-        if (solution.Quality.Value > bestQuality.Value) {
-          solution.BinaryVector = bestBinaryVector;
-          solution.Quality = bestQuality;
-          solution.Capacity = KnapsackCapacityParameter.ActualValue;
-          solution.Weights = WeightsParameter.ActualValue;
-          solution.Values = ValuesParameter.ActualValue;
-
-          results["Best Knapsack Solution"].Value = solution;
-        }
-      }
-
-      return base.Apply();
-    }
-  }
-}
Index: trunk/sources/HeuristicLab.Problems.Knapsack/3.3/Analyzers/PopulationBestKnapsackSolutionAnalyzer.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.Knapsack/3.3/Analyzers/PopulationBestKnapsackSolutionAnalyzer.cs	(revision 3659)
+++ 	(revision )
@@ -1,108 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using HeuristicLab.Optimization;
-using HeuristicLab.Data;
-using HeuristicLab.Core;
-using HeuristicLab.Operators;
-using HeuristicLab.Encodings.BinaryVectorEncoding;
-using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-
-namespace HeuristicLab.Problems.Knapsack.Analyzers {
-  /// <summary>
-  /// An operator for analyzing the best solution for a knapsack problem.
-  /// </summary>
-  [Item("PopulationBestKnapsackSolutionAnalyzer", "An operator for analyzing the best solution for a knapsack problem.")]
-  [StorableClass]
-  class PopulationBestKnapsackSolutionAnalyzer : SingleSuccessorOperator, IBestKnapsackSolutionAnalyzer, IAnalyzer {
-
-    public ILookupParameter<ItemArray<BinaryVector>> BinaryVectorParameter {
-      get { return (ILookupParameter<ItemArray<BinaryVector>>)Parameters["BinaryVector"]; }
-    }
-    ILookupParameter IBestKnapsackSolutionAnalyzer.BinaryVectorParameter {
-      get { return BinaryVectorParameter; }
-    }
-    public ILookupParameter<IntValue> KnapsackCapacityParameter {
-      get { return (ILookupParameter<IntValue>)Parameters["KnapsackCapacity"]; }
-    }
-    public ILookupParameter<IntArray> WeightsParameter {
-      get { return (ILookupParameter<IntArray>)Parameters["Weights"]; }
-    }
-    public ILookupParameter<IntArray> ValuesParameter {
-      get { return (ILookupParameter<IntArray>)Parameters["Values"]; }
-    }
-    public ILookupParameter<ItemArray<DoubleValue>> QualityParameter {
-      get { return (ILookupParameter<ItemArray<DoubleValue>>)Parameters["Quality"]; }
-    }
-    ILookupParameter IBestKnapsackSolutionAnalyzer.QualityParameter {
-      get { return QualityParameter; }
-    }
-    public ILookupParameter<KnapsackSolution> BestSolutionParameter {
-      get { return (ILookupParameter<KnapsackSolution>)Parameters["BestSolution"]; }
-    }
-    public IValueLookupParameter<ResultCollection> ResultsParameter {
-      get { return (IValueLookupParameter<ResultCollection>)Parameters["Results"]; }
-    }
-
-    public PopulationBestKnapsackSolutionAnalyzer()
-      : base() {
-      Parameters.Add(new ScopeTreeLookupParameter<BinaryVector>("BinaryVector", "The knapsack solutions from which the best solution should be visualized."));
-      Parameters.Add(new LookupParameter<IntValue>("KnapsackCapacity", "Capacity of the Knapsack."));
-      Parameters.Add(new LookupParameter<IntArray>("Weights", "The weights of the items."));
-      Parameters.Add(new LookupParameter<IntArray>("Values", "The values of the items."));
-      
-      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The qualities of the knapsack solutions which should be visualized."));
-      Parameters.Add(new LookupParameter<KnapsackSolution>("BestSolution", "The best knapsack solution."));
-      Parameters.Add(new ValueLookupParameter<ResultCollection>("Results", "The result collection where the knapsack solution should be stored."));
-    }
-
-    public override IOperation Apply() {
-      ItemArray<BinaryVector> binaryVectors = BinaryVectorParameter.ActualValue;
-      ItemArray<DoubleValue> qualities = QualityParameter.ActualValue;
-      ResultCollection results = ResultsParameter.ActualValue;
-
-      int i = qualities.Select((x, index) => new { index, x.Value }).OrderBy(x => x.Value).First().index;
-      KnapsackSolution solution = BestSolutionParameter.ActualValue;
-      if (solution == null) {
-        solution = new KnapsackSolution(binaryVectors[i], QualityParameter.ActualValue[i],
-          KnapsackCapacityParameter.ActualValue, WeightsParameter.ActualValue, ValuesParameter.ActualValue);
-        BestSolutionParameter.ActualValue = solution;
-
-        results.Add(new Result("Best Knapsack Solution", solution));
-      } else {
-        solution.BinaryVector = binaryVectors[i];
-        solution.Quality = QualityParameter.ActualValue[i];
-        solution.Capacity = KnapsackCapacityParameter.ActualValue;
-        solution.Weights = WeightsParameter.ActualValue;
-        solution.Values = ValuesParameter.ActualValue;
-
-        results["Best Knapsack Solution"].Value = solution;
-      }
-
-      return base.Apply();
-    }
-  }
-}
Index: trunk/sources/HeuristicLab.Problems.Knapsack/3.3/HeuristicLab.Problems.Knapsack-3.3.csproj
===================================================================
--- trunk/sources/HeuristicLab.Problems.Knapsack/3.3/HeuristicLab.Problems.Knapsack-3.3.csproj	(revision 3659)
+++ trunk/sources/HeuristicLab.Problems.Knapsack/3.3/HeuristicLab.Problems.Knapsack-3.3.csproj	(revision 3667)
@@ -81,9 +81,6 @@
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="Analyzers\MultiPopulationBestKnapsackSolutionAnalyzer.cs" />
-    <Compile Include="Analyzers\PopulationBestKnapsackSolutionAnalyzer.cs" />
     <Compile Include="Evaluators\KnapsackEvaluator.cs" />
     <Compile Include="HeuristicLabProblemsKnapsackPlugin.cs" />
-    <Compile Include="Interfaces\IBestKnapsackSolutionAnalyzer.cs" />
     <Compile Include="Interfaces\IKnapsackEvaluator.cs" />
     <Compile Include="Interfaces\IKnapsackMoveEvaluator.cs" />
Index: trunk/sources/HeuristicLab.Problems.Knapsack/3.3/Interfaces/IBestKnapsackSolutionAnalyzer.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.Knapsack/3.3/Interfaces/IBestKnapsackSolutionAnalyzer.cs	(revision 3659)
+++ 	(revision )
@@ -1,40 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using HeuristicLab.Core;
-using HeuristicLab.Data;
-using HeuristicLab.Optimization;
-using HeuristicLab.Problems.Knapsack;
-
-namespace HeuristicLab.Problems.Knapsack {
-  /// <summary>
-  /// An interface which represents operators for analyzing the best solution of Knapsack Problems given in bit vector representation.
-  /// </summary>
-  public interface IBestKnapsackSolutionAnalyzer : IAnalyzer {
-    ILookupParameter BinaryVectorParameter { get; }
-    ILookupParameter<IntValue> KnapsackCapacityParameter { get; }
-    ILookupParameter<IntArray> WeightsParameter { get; }
-    ILookupParameter<IntArray> ValuesParameter { get; }
-    ILookupParameter QualityParameter { get; }
-    ILookupParameter<KnapsackSolution> BestSolutionParameter { get; }
-    IValueLookupParameter<ResultCollection> ResultsParameter { get; }
-  }
-}
Index: trunk/sources/HeuristicLab.Problems.Knapsack/3.3/KnapsackProblem.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.Knapsack/3.3/KnapsackProblem.cs	(revision 3659)
+++ trunk/sources/HeuristicLab.Problems.Knapsack/3.3/KnapsackProblem.cs	(revision 3667)
@@ -124,6 +124,6 @@
       get { return operators.Cast<IOperator>(); }
     }
-    private IEnumerable<IBestKnapsackSolutionAnalyzer> BestKnapsackSolutionAnalyzers {
-      get { return operators.OfType<IBestKnapsackSolutionAnalyzer>(); }
+    private BestKnapsackSolutionAnalyzer BestKnapsackSolutionAnalyzer {
+      get { return operators.OfType<BestKnapsackSolutionAnalyzer>().FirstOrDefault(); }
     }
     #endregion
@@ -206,5 +206,5 @@
       ParameterizeSolutionCreator();
       ParameterizeEvaluator();
-      ParameterizeAnalyzers();
+      ParameterizeAnalyzer();
       ParameterizeOperators();
       OnSolutionCreatorChanged();
@@ -212,19 +212,19 @@
     private void SolutionCreator_BinaryVectorParameter_ActualNameChanged(object sender, EventArgs e) {
       ParameterizeEvaluator();
-      ParameterizeAnalyzers();
+      ParameterizeAnalyzer();
       ParameterizeOperators();
     }
     private void EvaluatorParameter_ValueChanged(object sender, EventArgs e) {
       ParameterizeEvaluator();
-      ParameterizeAnalyzers();
+      ParameterizeAnalyzer();
       OnEvaluatorChanged();
     }
     void KnapsackCapacityParameter_ValueChanged(object sender, EventArgs e) {
       ParameterizeEvaluator();
-      ParameterizeAnalyzers();
+      ParameterizeAnalyzer();
     }
     void WeightsParameter_ValueChanged(object sender, EventArgs e) {
       ParameterizeEvaluator();
-      ParameterizeAnalyzers();
+      ParameterizeAnalyzer();
       ParameterizeSolutionCreator();
 
@@ -239,5 +239,5 @@
     void ValuesParameter_ValueChanged(object sender, EventArgs e) {
       ParameterizeEvaluator();
-      ParameterizeAnalyzers();
+      ParameterizeAnalyzer();
       ParameterizeSolutionCreator();
 
@@ -291,19 +291,15 @@
       }
     }
-    private void ParameterizeAnalyzers() {
-      foreach (IBestKnapsackSolutionAnalyzer analyzer in BestKnapsackSolutionAnalyzers) {
-        analyzer.BinaryVectorParameter.ActualName = SolutionCreator.BinaryVectorParameter.ActualName;
-        analyzer.KnapsackCapacityParameter.ActualName = KnapsackCapacityParameter.Name;
-        analyzer.WeightsParameter.ActualName = WeightsParameter.Name;
-        analyzer.ValuesParameter.ActualName = ValuesParameter.Name;
-        analyzer.ResultsParameter.ActualName = "Results";
-      }
+    private void ParameterizeAnalyzer() {
+      BestKnapsackSolutionAnalyzer.BinaryVectorParameter.ActualName = SolutionCreator.BinaryVectorParameter.ActualName;
+      BestKnapsackSolutionAnalyzer.KnapsackCapacityParameter.ActualName = KnapsackCapacityParameter.Name;
+      BestKnapsackSolutionAnalyzer.WeightsParameter.ActualName = WeightsParameter.Name;
+      BestKnapsackSolutionAnalyzer.ValuesParameter.ActualName = ValuesParameter.Name;
+      BestKnapsackSolutionAnalyzer.ResultsParameter.ActualName = "Results";
     }
     private void InitializeOperators() {
       operators = new List<IOperator>();
       operators.Add(new BestKnapsackSolutionAnalyzer());
-      operators.Add(new PopulationBestKnapsackSolutionAnalyzer());
-      operators.Add(new MultiPopulationBestKnapsackSolutionAnalyzer());
-      ParameterizeAnalyzers();
+      ParameterizeAnalyzer();
       foreach (IBinaryVectorOperator op in ApplicationManager.Manager.GetInstances<IBinaryVectorOperator>()) {
         if (!(op is ISingleObjectiveMoveEvaluator) || (op is IKnapsackMoveEvaluator)) {
