|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object net.sourceforge.cilib.pso.velocityupdatestrategies.ConstrictionVelocityUpdate
public class ConstrictionVelocityUpdate
A velocity update strategy that utilizes the constriction coefficient as developed by Clerc.
References:
@INPROCEEDINGS{785513, title={The swarm and the queen: towards a deterministic and adaptive particle swarm optimization}, author={Clerc, M.}, booktitle={Evolutionary Computation, 1999. CEC 99. Proceedings of the 1999 Congress on}, year={1999}, month={}, volume={3}, number={}, pages={-1957 Vol. 3}, abstract={A very simple particle swarm optimization iterative algorithm is presented, with just one equation and one social/confidence parameter. We define a “no-hope” convergence criterion and a “rehope” method so that, from time to time, the swarm re-initializes its position, according to some gradient estimations of the objective function and to the previous re-initialization (it means it has a kind of very rudimentary memory). We then study two different cases, a quite “easy” one (the Alpine function) and a “difficult” one (the Banana function), but both just in dimension two. The process is improved by taking into account the swarm gravity center (the “queen”) and the results are good enough so that it is certainly worthwhile trying the method on more complex problems}, keywords={adaptive systems, deterministic algorithms, evolutionary computation, iterative methodsAlpine function, Banana function, adaptive particle swarm optimization, gradient estimations, no-hope convergence criterion, objective function, queen, re-initialization, rehope method, rudimentary memory, simple particle swarm optimization iterative algorithm, social/confidence parameter, swarm gravity center}, doi={10.1109/CEC.1999.785513}, ISSN={}, }
@ARTICLE{985692, title={The particle swarm - explosion, stability, and convergence in a multidimensional complex space}, author={Clerc, M. and Kennedy, J.}, journal={Evolutionary Computation, IEEE Transactions on}, year={2002}, month={Feb}, volume={6}, number={1}, pages={58-73}, abstract={The particle swarm is an algorithm for finding optimal regions of complex search spaces through the interaction of individuals in a population of particles. This paper analyzes a particle's trajectory as it moves in discrete time (the algebraic view), then progresses to the view of it in continuous time (the analytical view). A five-dimensional depiction is developed, which describes the system completely. These analyses lead to a generalized model of the algorithm, containing a set of coefficients to control the system's convergence tendencies. Some results of the particle swarm optimizer, implementing modifications derived from the analysis, suggest methods for altering the original algorithm in ways that eliminate problems and increase the ability of the particle swarm to find optima of some well-studied test functions }, keywords={convergence of numerical methods, genetic algorithms, numerical stability, search problemsconvergence, evolutionary computation, multidimensional complex space, optimization, particle swarm, particle trajectory, search spaces, stability}, doi={10.1109/4235.985692}, ISSN={1089-778X}, }
Note, this strategy does not the inertia control parameter. Certain constraints are imposed on the other control parameters in order to calculate the constriction coefficient, namely: $c1r1 + c2r2 \leq 4$ , and $\kappa \in [0, 1]$
Constructor Summary | |
---|---|
ConstrictionVelocityUpdate()
Default constructor. |
|
ConstrictionVelocityUpdate(ConstrictionVelocityUpdate copy)
Copy constructor. |
Method Summary | |
---|---|
protected void |
clamp(Vector velocity,
int i)
Clamp to maximum velocity. |
ConstrictionVelocityUpdate |
getClone()
Clone the VelocityUpdateStrategy object. |
ControlParameter |
getCognitiveAcceleration()
Get the coginitive acceleration parameter. |
ControlParameter |
getKappa()
Get the Kappa control parameter. |
ControlParameter |
getSocialAcceleration()
Get the social acceleration parameter. |
ControlParameter |
getVMax()
Get the maximum velocity parameter. |
void |
setCognitiveAcceleration(ControlParameter cognitiveAcceleration)
Set the coginitive acceleration parameter. |
void |
setKappa(ControlParameter kappa)
Set the Kappa control parameter. |
void |
setSocialAcceleration(ControlParameter socialAcceleration)
Set the social acceleration parameter. |
void |
setVMax(ControlParameter vMax)
Set the maximum velocity parameter. |
void |
updateControlParameters(Particle particle)
Update the needed control parameters for the VelocityUpdate, if needed. |
void |
updateVelocity(Particle particle)
Perform the velocity update operation on the specified Particle. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public ConstrictionVelocityUpdate()
public ConstrictionVelocityUpdate(ConstrictionVelocityUpdate copy)
copy
- the ConstrictionVelocityUpdate to copy.Method Detail |
---|
public ConstrictionVelocityUpdate getClone()
getClone
in interface VelocityUpdateStrategy
getClone
in interface Cloneable
Object.clone()
public void updateVelocity(Particle particle)
updateVelocity
in interface VelocityUpdateStrategy
particle
- The Particle to apply the operation on.protected void clamp(Vector velocity, int i)
velocity
- The Vector
to be clamped.i
- The dimension index to be clampedpublic void updateControlParameters(Particle particle)
updateControlParameters
in interface VelocityUpdateStrategy
particle
- The particle for whom the VelocityUpdateStrategy parameters need to be updated.public ControlParameter getCognitiveAcceleration()
control parameter
.public void setCognitiveAcceleration(ControlParameter cognitiveAcceleration)
cognitiveAcceleration
- the new cognitive acceleration control parameter
.public ControlParameter getKappa()
control parameter
.public void setKappa(ControlParameter kappa)
kappa
- the new kappa control parameter
.public ControlParameter getSocialAcceleration()
control parameter
.public void setSocialAcceleration(ControlParameter socialAcceleration)
socialAcceleration
- the new social accerelation control parameter
.public ControlParameter getVMax()
control parameter
.public void setVMax(ControlParameter vMax)
vMax
- the new maximum velocity control parameter
.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |