-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMain.java
More file actions
45 lines (32 loc) · 1.46 KB
/
Main.java
File metadata and controls
45 lines (32 loc) · 1.46 KB
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
import crossover.KPointCrossover;
import fitness.BFGenProgFitness;
import fitness.PolynomialMatchFitness;
import fitness.RandomMatchFitness;
import generic.EvolutionaryAlgorithm;
import generic.IncompatibleFunctionsException;
import generic.MBFInterpreter;
import generic.Solution;
import mutation.BitInversionMutation;
import selection.MostFitWeightedSelection;
import selection.TournamentSelection;
import selection.TournamentWeightedSelection;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IncompatibleFunctionsException {
EvolutionaryAlgorithm test = new EvolutionaryAlgorithm(new BFGenProgFitness(2500, new int[]{1, 3, 5, 7, 9}), new TournamentWeightedSelection(2), new BitInversionMutation(1.0/15.0), new KPointCrossover(25, 10), 500, 15, Solution.initGenes.zeros);
try{
BufferedWriter graph = new BufferedWriter(new FileWriter("data.csv"));
for( int i = 50000; i > 0; i--) {
test.runEpoch();
System.out.println(test.getBestPopulationMember().getFitness());
graph.write(test.getBestPopulationMember().getFitness() + ",");
graph.newLine();
for(boolean b : test.getBestPopulationMember().getGenome())System.out.print(b+" ");
System.out.println();
}
graph.close();
} catch (IOException ignored){}
}
}