Index: trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/ParticleOperators/SPSO2007ParticleUpdater.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/ParticleOperators/SPSO2007ParticleUpdater.cs	(revision 15181)
+++ trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/ParticleOperators/SPSO2007ParticleUpdater.cs	(revision 15214)
@@ -42,8 +42,8 @@
     #endregion
     
-    public static void UpdateVelocity(IRandom random, RealVector velocity, double maxVelocity, RealVector position, double inertia, RealVector personalBest, double personalBestAttraction, RealVector neighborBest, double neighborBestAttraction, double c = 1.193) {
+    public static void UpdateVelocity(IRandom random, RealVector velocity, RealVector position, RealVector personalBest, RealVector neighborBest, double inertia = 0.721, double personalBestAttraction = 1.193, double neighborBestAttraction = 1.193, double maxVelocity = double.MaxValue) {
       for (int i = 0; i < velocity.Length; i++) {
-        double r_p = random.NextDouble() * c;
-        double r_g = random.NextDouble() * c;
+        double r_p = random.NextDouble();
+        double r_g = random.NextDouble();
         velocity[i] =
           velocity[i] * inertia +
@@ -91,7 +91,6 @@
       var neighborBest = NeighborBestParameter.ActualValue;
       var neighborBestAttraction = NeighborBestAttractionParameter.ActualValue.Value;
-      var maxBeyond = MaxBeyondBestParameter.ActualValue.Value;
 
-      UpdateVelocity(random, velocity, maxVelocity, position, inertia, personalBest, personalBestAttraction, neighborBest, neighborBestAttraction, maxBeyond);
+      UpdateVelocity(random, velocity, position, personalBest, neighborBest, inertia, personalBestAttraction, neighborBestAttraction, maxVelocity);
       UpdatePosition(bounds, velocity, position);
 
Index: trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/ParticleOperators/SPSO2011ParticleUpdater.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/ParticleOperators/SPSO2011ParticleUpdater.cs	(revision 15181)
+++ trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/ParticleOperators/SPSO2011ParticleUpdater.cs	(revision 15214)
@@ -41,5 +41,5 @@
     #endregion
     
-    public static void UpdateVelocity(IRandom random, RealVector velocity, double maxVelocity, RealVector position, double inertia, RealVector personalBest, double personalBestAttraction, RealVector neighborBest, double neighborBestAttraction, double c = 1.193) {
+    public static void UpdateVelocity(IRandom random, RealVector velocity, RealVector position, RealVector personalBest, RealVector neighborBest, double inertia = 0.721, double personalBestAttraction = 1.193, double neighborBestAttraction = 1.193, double maxVelocity = double.MaxValue) {
       var gravity = new double[velocity.Length];
       var direction = new RealVector(velocity.Length);
@@ -49,5 +49,7 @@
 
       for (int i = 0; i < velocity.Length; i++) {
-        var g_id = c * ((personalBest[i] + neighborBest[i] - 2 * position[i]) / 3.0);
+        var g_id = (personalBestAttraction * personalBest[i]
+          + neighborBestAttraction * neighborBest[i]
+          - position[i] * (neighborBestAttraction + personalBestAttraction)) / 3.0;
         // center of the hyper-sphere
         gravity[i] = g_id + position[i];
@@ -108,7 +110,6 @@
       var neighborBest = NeighborBestParameter.ActualValue;
       var neighborBestAttraction = NeighborBestAttractionParameter.ActualValue.Value;
-      var maxBeyond = MaxBeyondBestParameter.ActualValue.Value;
 
-      UpdateVelocity(random, velocity, maxVelocity, position, inertia, personalBest, personalBestAttraction, neighborBest, neighborBestAttraction, maxBeyond);
+      UpdateVelocity(random, velocity, position, personalBest, neighborBest, inertia, personalBestAttraction, neighborBestAttraction, maxVelocity);
       UpdatePosition(bounds, velocity, position);
 
Index: trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/ParticleOperators/SPSOParticleUpdater.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/ParticleOperators/SPSOParticleUpdater.cs	(revision 15181)
+++ trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/ParticleOperators/SPSOParticleUpdater.cs	(revision 15214)
@@ -71,8 +71,4 @@
       get { return (ILookupParameter<DoubleValue>)Parameters["NeighborBestAttraction"]; }
     }
-
-    public IValueLookupParameter<DoubleValue> MaxBeyondBestParameter {
-      get { return (IValueLookupParameter<DoubleValue>)Parameters["MaxBeyondBest"]; }
-    }
     #endregion
 
@@ -93,5 +89,4 @@
       Parameters.Add(new LookupParameter<DoubleValue>("PersonalBestAttraction", "The weight for the particle's personal best position."));
       Parameters.Add(new LookupParameter<DoubleValue>("NeighborBestAttraction", "The weight for the global best position."));
-      Parameters.Add(new ValueLookupParameter<DoubleValue>("MaxBeyondBest", "A factor of how much the velocity update may maximally aim beyond the personal and neighbor best.", new DoubleValue(1.193)));
     }
     #endregion
