-
Notifications
You must be signed in to change notification settings - Fork 32
Open
Description
You have taken x range between 1, 4. and y range between -1, 1. In every iteration best location should return X with in range 1, 4 and Y in -1, 1. But your code returning X negative values.
I have solved this by putting velocities of particle to 0.0 in initialisation.
Please check it update me if i am wrong.
public void initializeSwarm() {
Particle p;
for(int i=0; i<SWARM_SIZE; i++) {
p = new Particle();
// randomize location inside a space defined in Problem Set
double[] loc = new double[PROBLEM_DIMENSION];
loc[0] = ProblemSet.LOC_X_LOW + generator.nextDouble() * (ProblemSet.LOC_X_HIGH - ProblemSet.LOC_X_LOW);
loc[1] = ProblemSet.LOC_Y_LOW + generator.nextDouble() * (ProblemSet.LOC_Y_HIGH - ProblemSet.LOC_Y_LOW);
System.out.println("X value is " + loc[0]);
System.out.println("Y value is " + loc[1]);
Location location = new Location(loc);
// randomize velocity in the range defined in Problem Set
double[] vel = new double[PROBLEM_DIMENSION];
//vel[0] = ProblemSet.VEL_LOW + generator.nextDouble() * (ProblemSet.VEL_HIGH - ProblemSet.VEL_LOW);
//vel[1] = ProblemSet.VEL_LOW + generator.nextDouble() * (ProblemSet.VEL_HIGH - ProblemSet.VEL_LOW);
vel[0] = 0.0;
vel[1] = 0.0;
Velocity velocity = new Velocity(vel);
p.setLocation(location);
p.setVelocity(velocity);
swarm.add(p);
}
}
Metadata
Metadata
Assignees
Labels
No labels