@Override
	public void scan(Particle[] particle) {
		
		for (int index = 0; index < particle.length; index++) {
			
			int startFrom = index - neighborhoodSize/2;
			int endAt = index + neighborhoodSize/2;
			if (startFrom < 0) startFrom = 0;
			if (endAt >= particle.length) endAt = particle.length - 1;
			
			int bestIndex = startFrom;
			int bestValue = particle[bestIndex].getBestProjectDuration();
			
			for (int i = startFrom + 1; i<= endAt; i++) {
				
				if (particle[i].getBestProjectDuration() < bestValue) {
					
					bestValue = particle[i].getBestProjectDuration();
					bestIndex = i;
					
				}
				
			}
			
			for (int d = 0; d < dimension; d++) {
				best[index][d] = particle[bestIndex].getBestWorkUnitIndexes()[d];
			}
			
		}

	}