private void createNiches() { calculateNeighbourhoodBest(); double smallR = 1000000000000000.0; double radius; for (VBParticle p : mainSwarm.getTopology()) { p.setNeighbourhoodBest(yhead.getClone()); p.calculateVG(); p.calculateDotProduct(); radius = distanceMeaser.distance(yhead.getBestPosition(), p.getPosition()); p.setRadius(radius); if (radius < smallR && p.getDotProduct() < 0) { smallR = radius; } } nicheRadius = smallR; calculateNewNiche(); }