public ParallelVBPSO() { this.mainSwarm = new VBPSO(); VBPSO pso = (VBPSO) this.mainSwarm; ((SynchronousIterationStrategy) pso.getIterationStrategy()) .setBoundaryConstraint(new ReinitialisationBoundary()); VBParticle mainSwarmParticle = new VBParticle(); mainSwarmParticle.setVelocityInitializationStrategy(new RandomInitializationStrategy()); StandardVelocityProvider velocityUpdateStrategy = new StandardVelocityProvider(); velocityUpdateStrategy.setCognitiveAcceleration(ConstantControlParameter.of(1.0)); velocityUpdateStrategy.setSocialAcceleration(ConstantControlParameter.of(1.0)); velocityUpdateStrategy.setInertiaWeight(ConstantControlParameter.of(0.8)); mainSwarmParticle.setVelocityProvider(velocityUpdateStrategy); PopulationInitialisationStrategy mainSwarmInitialisationStrategy = new ClonedPopulationInitialisationStrategy(); mainSwarmInitialisationStrategy.setEntityType(mainSwarmParticle); mainSwarmInitialisationStrategy.setEntityNumber(20); this.mainSwarm.setInitialisationStrategy(mainSwarmInitialisationStrategy); this.randomProvider = new MersenneTwister(); distanceMeaser = new EuclideanDistanceMeasure(); currentNiche = 0; granularity = 0.05; }