Index: branches/GP.Grammar.Editor/HeuristicLab.Algorithms.ParticleSwarmOptimization/3.3/HeuristicLabAlgorithmsParticleSwarmOptimizationPlugin.cs.frame
===================================================================
--- branches/GP.Grammar.Editor/HeuristicLab.Algorithms.ParticleSwarmOptimization/3.3/HeuristicLabAlgorithmsParticleSwarmOptimizationPlugin.cs.frame	(revision 6284)
+++ branches/GP.Grammar.Editor/HeuristicLab.Algorithms.ParticleSwarmOptimization/3.3/HeuristicLabAlgorithmsParticleSwarmOptimizationPlugin.cs.frame	(revision 6618)
@@ -26,5 +26,5 @@
   /// Plugin class for HeuristicLab.Algorithms.ParticleSwarmOptimization plugin.
   /// </summary>
-  [Plugin("HeuristicLab.Algorithms.ParticleSwarmOptimization", "3.3.4.$WCREV$")]
+  [Plugin("HeuristicLab.Algorithms.ParticleSwarmOptimization", "3.3.5.$WCREV$")]
   [PluginFile("HeuristicLab.Algorithms.ParticleSwarmOptimization-3.3.dll", PluginFileType.Assembly)]
   [PluginDependency("HeuristicLab.Analysis", "3.3")]
Index: branches/GP.Grammar.Editor/HeuristicLab.Algorithms.ParticleSwarmOptimization/3.3/ParticleSwarmOptimization.cs
===================================================================
--- branches/GP.Grammar.Editor/HeuristicLab.Algorithms.ParticleSwarmOptimization/3.3/ParticleSwarmOptimization.cs	(revision 6284)
+++ branches/GP.Grammar.Editor/HeuristicLab.Algorithms.ParticleSwarmOptimization/3.3/ParticleSwarmOptimization.cs	(revision 6618)
@@ -39,6 +39,63 @@
   [StorableClass]
   public sealed class ParticleSwarmOptimization : HeuristicOptimizationEngineAlgorithm, IStorableContent {
-
-    #region Problem Properties
+    #region Parameter Properties
+    public IValueParameter<IntValue> SeedParameter {
+      get { return (IValueParameter<IntValue>)Parameters["Seed"]; }
+    }
+    public IValueParameter<BoolValue> SetSeedRandomlyParameter {
+      get { return (IValueParameter<BoolValue>)Parameters["SetSeedRandomly"]; }
+    }
+    public IValueParameter<IntValue> SwarmSizeParameter {
+      get { return (IValueParameter<IntValue>)Parameters["SwarmSize"]; }
+    }
+    public IValueParameter<IntValue> MaxIterationsParameter {
+      get { return (IValueParameter<IntValue>)Parameters["MaxIterations"]; }
+    }
+    public IValueParameter<DoubleValue> InertiaParameter {
+      get { return (IValueParameter<DoubleValue>)Parameters["Inertia"]; }
+    }
+    public IValueParameter<DoubleValue> PersonalBestAttractionParameter {
+      get { return (IValueParameter<DoubleValue>)Parameters["PersonalBestAttraction"]; }
+    }
+    public IValueParameter<DoubleValue> NeighborBestAttractionParameter {
+      get { return (IValueParameter<DoubleValue>)Parameters["NeighborBestAttraction"]; }
+    }
+    public IValueParameter<MultiAnalyzer> AnalyzerParameter {
+      get { return (IValueParameter<MultiAnalyzer>)Parameters["Analyzer"]; }
+    }
+    public ConstrainedValueParameter<IParticleCreator> ParticleCreatorParameter {
+      get { return (ConstrainedValueParameter<IParticleCreator>)Parameters["ParticleCreator"]; }
+    }
+    public ConstrainedValueParameter<IParticleUpdater> ParticleUpdaterParameter {
+      get { return (ConstrainedValueParameter<IParticleUpdater>)Parameters["ParticleUpdater"]; }
+    }
+    public OptionalConstrainedValueParameter<ITopologyInitializer> TopologyInitializerParameter {
+      get { return (OptionalConstrainedValueParameter<ITopologyInitializer>)Parameters["TopologyInitializer"]; }
+    }
+    public OptionalConstrainedValueParameter<ITopologyUpdater> TopologyUpdaterParameter {
+      get { return (OptionalConstrainedValueParameter<ITopologyUpdater>)Parameters["TopologyUpdater"]; }
+    }
+    public OptionalConstrainedValueParameter<IDiscreteDoubleValueModifier> InertiaUpdaterParameter {
+      get { return (OptionalConstrainedValueParameter<IDiscreteDoubleValueModifier>)Parameters["InertiaUpdater"]; }
+    }
+    public ConstrainedValueParameter<ISwarmUpdater> SwarmUpdaterParameter {
+      get { return (ConstrainedValueParameter<ISwarmUpdater>)Parameters["SwarmUpdater"]; }
+
+    }
+    #endregion
+
+    #region Properties
+
+    public string Filename { get; set; }
+
+    [Storable]
+    private BestAverageWorstQualityAnalyzer qualityAnalyzer;
+
+    [Storable]
+    private SolutionsCreator solutionsCreator;
+
+    [Storable]
+    private ParticleSwarmOptimizationMainLoop mainLoop;
+    
     public override Type ProblemType {
       get { return typeof(ISingleObjectiveHeuristicOptimizationProblem); }
@@ -48,91 +105,59 @@
       set { base.Problem = value; }
     }
+    public IntValue Seed {
+      get { return SeedParameter.Value; }
+      set { SeedParameter.Value = value; }
+    }
+    public BoolValue SetSeedRandomly {
+      get { return SetSeedRandomlyParameter.Value; }
+      set { SetSeedRandomlyParameter.Value = value; }
+    }
+    public IntValue SwarmSize {
+      get { return SwarmSizeParameter.Value; }
+      set { SwarmSizeParameter.Value = value; }
+    }
+    public IntValue MaxIterations {
+      get { return MaxIterationsParameter.Value; }
+      set { MaxIterationsParameter.Value = value; }
+    }
+    public DoubleValue Inertia {
+      get { return InertiaParameter.Value; }
+      set { InertiaParameter.Value = value; }
+    }
+    public DoubleValue PersonalBestAttraction {
+      get { return PersonalBestAttractionParameter.Value; }
+      set { PersonalBestAttractionParameter.Value = value; }
+    }
+    public DoubleValue NeighborBestAttraction {
+      get { return NeighborBestAttractionParameter.Value; }
+      set { NeighborBestAttractionParameter.Value = value; }
+    }
     public MultiAnalyzer Analyzer {
       get { return AnalyzerParameter.Value; }
       set { AnalyzerParameter.Value = value; }
     }
+    public IParticleCreator ParticleCreator {
+      get { return ParticleCreatorParameter.Value; }
+      set { ParticleCreatorParameter.Value = value; }
+    }
+    public IParticleUpdater ParticleUpdater {
+      get { return ParticleUpdaterParameter.Value; }
+      set { ParticleUpdaterParameter.Value = value; }
+    }
+    public ITopologyInitializer TopologyInitializer {
+      get { return TopologyInitializerParameter.Value; }
+      set { TopologyInitializerParameter.Value = value; }
+    }
+    public ITopologyUpdater TopologyUpdater {
+      get { return TopologyUpdaterParameter.Value; }
+      set { TopologyUpdaterParameter.Value = value; }
+    }
     public IDiscreteDoubleValueModifier InertiaUpdater {
       get { return InertiaUpdaterParameter.Value; }
       set { InertiaUpdaterParameter.Value = value; }
     }
-    #endregion
-
-    #region Parameter Properties
-    public IValueParameter<IntValue> SeedParameter {
-      get { return (IValueParameter<IntValue>)Parameters["Seed"]; }
-    }
-    public IValueParameter<BoolValue> SetSeedRandomlyParameter {
-      get { return (IValueParameter<BoolValue>)Parameters["SetSeedRandomly"]; }
-    }
-    public IValueParameter<IntValue> SwarmSizeParameter {
-      get { return (IValueParameter<IntValue>)Parameters["SwarmSize"]; }
-    }
-    public IValueParameter<IntValue> MaxIterationsParameter {
-      get { return (IValueParameter<IntValue>)Parameters["MaxIterations"]; }
-    }
-    public IValueParameter<DoubleValue> InertiaParameter {
-      get { return (IValueParameter<DoubleValue>)Parameters["Inertia"]; }
-    }
-    public IValueParameter<DoubleValue> PersonalBestAttractionParameter {
-      get { return (IValueParameter<DoubleValue>)Parameters["PersonalBestAttraction"]; }
-    }
-    public IValueParameter<DoubleValue> NeighborBestAttractionParameter {
-      get { return (IValueParameter<DoubleValue>)Parameters["NeighborBestAttraction"]; }
-    }
-    public IValueParameter<MultiAnalyzer> AnalyzerParameter {
-      get { return (IValueParameter<MultiAnalyzer>)Parameters["Analyzer"]; }
-    }
-    public ConstrainedValueParameter<IParticleCreator> ParticleCreatorParameter {
-      get { return (ConstrainedValueParameter<IParticleCreator>)Parameters["ParticleCreator"]; }
-    }
-    public ConstrainedValueParameter<IParticleUpdater> ParticleUpdaterParameter {
-      get { return (ConstrainedValueParameter<IParticleUpdater>)Parameters["ParticleUpdater"]; }
-    }
-    public OptionalConstrainedValueParameter<ITopologyInitializer> TopologyInitializerParameter {
-      get { return (OptionalConstrainedValueParameter<ITopologyInitializer>)Parameters["TopologyInitializer"]; }
-    }
-    public OptionalConstrainedValueParameter<ITopologyUpdater> TopologyUpdaterParameter {
-      get { return (OptionalConstrainedValueParameter<ITopologyUpdater>)Parameters["TopologyUpdater"]; }
-    }
-    public OptionalConstrainedValueParameter<IDiscreteDoubleValueModifier> InertiaUpdaterParameter {
-      get { return (OptionalConstrainedValueParameter<IDiscreteDoubleValueModifier>)Parameters["InertiaUpdater"]; }
-    }
-    public ConstrainedValueParameter<ISwarmUpdater> SwarmUpdaterParameter {
-      get { return (ConstrainedValueParameter<ISwarmUpdater>)Parameters["SwarmUpdater"]; }
-
-    }
-    #endregion
-
-    #region Properties
-
-    public string Filename { get; set; }
-
-    [Storable]
-    private BestAverageWorstQualityAnalyzer qualityAnalyzer;
-
-    [Storable]
-    private SolutionsCreator solutionsCreator;
-
-    [Storable]
-    private ParticleSwarmOptimizationMainLoop mainLoop;
-
-    public ITopologyInitializer TopologyInitializer {
-      get { return TopologyInitializerParameter.Value; }
-      set { TopologyInitializerParameter.Value = value; }
-    }
-
-    public ITopologyUpdater TopologyUpdater {
-      get { return TopologyUpdaterParameter.Value; }
-      set { TopologyUpdaterParameter.Value = value; }
-    }
-
-    public IParticleCreator ParticleCreator {
-      get { return ParticleCreatorParameter.Value; }
-      set { ParticleCreatorParameter.Value = value; }
-    }
-
-    public IParticleUpdater ParticleUpdater {
-      get { return ParticleUpdaterParameter.Value; }
-      set { ParticleUpdaterParameter.Value = value; }
+    public ISwarmUpdater SwarmUpdater {
+      get { return SwarmUpdaterParameter.Value; }
+      set { SwarmUpdaterParameter.Value = value; }
     }
     #endregion
@@ -333,4 +358,13 @@
     }
 
+    private void ParameterizeTopologyUpdaters() {
+      foreach (var updater in TopologyUpdaterParameter.ValidValues) {
+        var multiPsoUpdater = updater as MultiPSOTopologyUpdater;
+        if (multiPsoUpdater != null) {
+          multiPsoUpdater.CurrentIterationParameter.ActualName = "Iterations";
+        }
+      }
+    }
+
     private void UpdateTopologyParameters() {
       ITopologyUpdater oldTopologyUpdater = TopologyUpdater;
@@ -355,4 +389,6 @@
           if (newParticleUpdater != null) ParticleUpdater = newParticleUpdater;
         }
+
+        ParameterizeTopologyUpdaters();
       }
     }
Index: branches/GP.Grammar.Editor/HeuristicLab.Algorithms.ParticleSwarmOptimization/3.3/Properties/AssemblyInfo.frame
===================================================================
--- branches/GP.Grammar.Editor/HeuristicLab.Algorithms.ParticleSwarmOptimization/3.3/Properties/AssemblyInfo.frame	(revision 6284)
+++ branches/GP.Grammar.Editor/HeuristicLab.Algorithms.ParticleSwarmOptimization/3.3/Properties/AssemblyInfo.frame	(revision 6618)
@@ -53,3 +53,3 @@
 // by using the '*' as shown below:
 [assembly: AssemblyVersion("3.3.0.0")]
-[assembly: AssemblyFileVersion("3.3.4.$WCREV$")]
+[assembly: AssemblyFileVersion("3.3.5.$WCREV$")]
