jswarm_pso
Class Particle

java.lang.Object
  extended byjswarm_pso.Particle
Direct Known Subclasses:
MyParticle, MyParticle

public abstract class Particle
extends java.lang.Object

Basic (abstract) particle

Author:
Pablo Cingolani

Field Summary
(package private)  double bestFitness
          Best fitness funtion so far
(package private)  double[] bestPosition
          Best particles's position so far
(package private)  double fitness
          current fitness
(package private)  double[] position
          Position
(package private)  double[] velocity
          Velocity
 
Constructor Summary
Particle()
          Constructor
Particle(int dimention)
          Constructor
Particle(Particle sampleParticle)
          Constructor
 
Method Summary
 void allocate(int dimention)
          Allocate memory
 void applyConstraints(double[] minPosition, double[] maxPosition, double[] minVelocity, double[] maxVelocity)
          Apply position and velocity constraints
 void copyPosition(double[] positionCopy)
          Copy position[] to positionCopy[]
 void copyPosition2Best()
          Copy position[] to bestPosition[]
 double getBestFitness()
           
 double[] getBestPosition()
           
 int getDimention()
           
 double getFitness()
           
 double[] getPosition()
           
 double[] getVelocity()
           
 void init(double[] maxPosition, double[] minPosition, double[] maxVelocity, double[] minVelocity)
          Initialize a particles's position and velocity vectors
 java.lang.Object selfFactory()
          Create a new instance of this particle
 void setBestFitness(double bestFitness)
           
 void setBestPosition(double[] bestPosition)
           
 void setFitness(double fitness, boolean maximize)
          Set fitness and best fitness accordingly.
 void setPosition(double[] position)
           
 void setVelocity(double[] velocity)
           
 java.lang.String toString()
           
 void update(double inertia, double particleIncrement, double globalIncrement, double[] globalBestPosition)
          Update particle's velocity and position
 void updateRepulsive(double inertia, double particleIncrement, double otherParticleIncrement, double randomIncrement, double[] otherParticleBestPosition, double[] minVelocity, double[] maxVelocity)
          Update particle's position and velocity using repulsive algorithm
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

bestFitness

double bestFitness
Best fitness funtion so far


bestPosition

double[] bestPosition
Best particles's position so far


fitness

double fitness
current fitness


position

double[] position
Position


velocity

double[] velocity
Velocity

Constructor Detail

Particle

public Particle()
Constructor


Particle

public Particle(int dimention)
Constructor

Parameters:
dimention - : Particle's dimention

Particle

public Particle(Particle sampleParticle)
Constructor

Parameters:
sampleParticle - : A sample particles to copy
Method Detail

allocate

public void allocate(int dimention)
Allocate memory


applyConstraints

public void applyConstraints(double[] minPosition,
                             double[] maxPosition,
                             double[] minVelocity,
                             double[] maxVelocity)
Apply position and velocity constraints

Parameters:
minPosition - : Minimum position
maxPosition - : Maximum position
minVelocity - : Minimum velocity
maxVelocity - : Maximum velocity

copyPosition

public void copyPosition(double[] positionCopy)
Copy position[] to positionCopy[]


copyPosition2Best

public void copyPosition2Best()
Copy position[] to bestPosition[]


getBestFitness

public double getBestFitness()

getBestPosition

public double[] getBestPosition()

getDimention

public int getDimention()

getFitness

public double getFitness()

getPosition

public double[] getPosition()

getVelocity

public double[] getVelocity()

init

public void init(double[] maxPosition,
                 double[] minPosition,
                 double[] maxVelocity,
                 double[] minVelocity)
Initialize a particles's position and velocity vectors

Parameters:
maxPosition - : Vector stating maximun position for each dimention
minPosition - : Vector stating minimum position for each dimention
maxVelocity - : Vector stating maximun velocity for each dimention
minVelocity - : Vector stating minimum velocity for each dimention

selfFactory

public java.lang.Object selfFactory()
Create a new instance of this particle

Returns:
A new particle, just like this one

setBestFitness

public void setBestFitness(double bestFitness)

setBestPosition

public void setBestPosition(double[] bestPosition)

setFitness

public void setFitness(double fitness,
                       boolean maximize)
Set fitness and best fitness accordingly. If it's the best fitness so far, copy data to bestFitness[]

Parameters:
fitness - : New fitness value
maximize - : Are we maximizing or minimizing fitness funcion?

setPosition

public void setPosition(double[] position)

setVelocity

public void setVelocity(double[] velocity)

toString

public java.lang.String toString()

update

public void update(double inertia,
                   double particleIncrement,
                   double globalIncrement,
                   double[] globalBestPosition)
Update particle's velocity and position

Parameters:
inertia - : Inertia constant
particleIncrement - : Particle's best increment
globalIncrement - : Global's best increment
globalBestPosition - : Global's best position

updateRepulsive

public void updateRepulsive(double inertia,
                            double particleIncrement,
                            double otherParticleIncrement,
                            double randomIncrement,
                            double[] otherParticleBestPosition,
                            double[] minVelocity,
                            double[] maxVelocity)
Update particle's position and velocity using repulsive algorithm

Parameters:
inertia - : Inertia constant
particleIncrement - : Particle's best increment
otherParticleIncrement - : Other particle's best increment
randomIncrement - : random inccrement
otherParticleBestPosition - : other particle's best position
maxVelocity - : Max velocity array
minVelocity - : Min velocity array