-
Notifications
You must be signed in to change notification settings - Fork 0
/
Population.java
67 lines (51 loc) · 1.64 KB
/
Population.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package intjuba.decreasing;
import java.util.Arrays;
public class Population {
Individual[] individuals;
private int chromosome_length;
public Population(int population_size, int chromosome_length, boolean initialize) {
individuals = new Individual[population_size];
this.chromosome_length = chromosome_length;
//Initialize population
if (initialize) {
for (int i = 0; i < size(); i++) {
Individual ind = new Individual();
ind.generateIndividual(chromosome_length);
saveIndividual(i, ind);
}
}
}
public void saveIndividual(int index, Individual individual) {
individuals[index] = individual;
}
public int size() {
return individuals.length;
}
public Individual getIndividual(int index) {
return individuals[index];
}
public int getChromosomeLength() {
return chromosome_length;
}
public void setChromosomeLength(int length) {
chromosome_length = length;
}
public Individual[] getFittest(int n) {
Individual[] fittest = new Individual[n];
Arrays.sort(individuals);
for (int i = 0; i < n; i++) {
fittest[i] = individuals[i];
}
return fittest;
}
public Individual getFittest() {
Individual fittest = individuals[0];
// Loop through individuals to find fittest
for (int i = 0; i < size(); i++) {
if (fittest.getFitness() <= getIndividual(i).getFitness()) {
fittest = getIndividual(i);
}
}
return fittest;
}
}