-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathREADME.txt
129 lines (82 loc) · 4.42 KB
/
README.txt
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
GA and 8-Queen Problem
=======================================
Program Execution
---------------------------------------
The Eight Queens Problem solution is a Java program, to run the program
execute the JAR file EightQueens.jar in the bin/ folder. The program will
execute and solve for all 92 solutions to the Eight Queens Problem and display
10 solutions to the problem as 10 separate windows.
You can also execute the program from the command prompt, doing so will display
all of the console output for the program, including the number of generations
required for each solution, as well as the chromosome similarity and mutation
statistics for the variable mutation due to inbreeding.
You can execute the program from the command prompt using the following command:
java -jar EightQueens.jar
Source Code
---------------------------------------
The source code for the Eight Queens Problem is located in the src/ folder, this
folder contains a sub-folder for each package. The following is an overview
of the classes and source code contained within each package.
algorithm/
- Contains the main classes and source code for the genetic algorithm
implementation used to solve the Eight Queens Problem.
- EightQueens.java contains the main method for the program.
- Chromosome.java contains the class for the chromosome which represents the
location of the eight queens on the chessboard.
- Fitness.java, Selection.java, and Breed.java contain the implementation for
the fitness function, chromosome selection, and the crossover and mutation
operations.
gameboard/
- Contains the classes used to display the chessboard and draw the eight
queens on the chessboard.
plotting/
- Contains the classes for plotting the varies series and box plots used in
the report.
Documentation -- JavaDoc
---------------------------------------
The documentation for the Eight Queens Problem is located in the doc/ folder, this
folder contains all of the JavaDoc, documentation, generated for the program.
To view the JavaDoc documentation, simply open the file "index.html" in the
doc/ folder using a web browser.
Eight Queens Problem Solutions
---------------------------------------
The solutions/ folder contains screenshots of 10 solutions to the Eight Queens
Problem generated by the program.
DE and Benchmark Functions
=======================================
Program Execution
---------------------------------------
The DE and Benchmark Functions solution is a Java program, to run the program
execute the JAR file FunctionOptimization.jar in the bin/ folder. The program will
execute and display plots of the best fitness value vs. number of function calls
(NFC) for each benchmark function.
You can also execute the program from the command prompt, doing so will display
the best fitness value average and standard deviation.
You can execute the program from the command prompt using the following command:
java -jar FunctionOptimization.jar
Source Code
---------------------------------------
The source code for the DE and Benchmark Functions is located in the src/ folder.
The following is an overview of the classes and source code.
- DifferentalEvolution.java contains the main method which applies the DE
algorithm to each of the benchmark functions.
- ControlVariable.java contains each of the control variables, such as
population size and mutation rate.
- Dejong.java, HyperEllipsoid.java, Rastrigin.java, RosenbrocksValley.java,
and Schwefel.java are classes which implement the fitness function for
each of the corresponding benchmark functions. Each of these classes
implements the FitnessFunciton interface defined in FitnessFunction.java
- Vector.java and VectorOperations.java are classes which describe the vector
used in the DE algorithm and the vector operations such as mutation and
crossover, which are applied to the vectors.
Documentation -- JavaDoc
---------------------------------------
The documentation for the DE and Benchmark Functions is located in the doc/
folder, this folder contains all of the JavaDoc, documentation, generated for
the program.
To view the JavaDoc documentation, simply open the file "index.html" in the
doc/ folder using a web browser.
Fitness Plots
---------------------------------------
The plots/ folder contains screenshots of the best fitness value vs. number of
function calls (NFC) for each benchmark function.