Calvin Hayes
Period 5
C. Hayes Genetic Algorithms in Machine Learning
Oct. 3 - GA program to solve 8-Queens (from Russell AI text)
Oct. 5 - randomly generated population, working on crossover/mutation techniques
Oct. 7 - prepared output for current prototype
(NEEDS EXPLANATORY TEXT...here's the output)
[[1, 2, 7, 1, 4, 0, 3, 6], 3]
[[3, 3, 6, 2, 7, 2, 0, 4], 5]
[[6, 4, 3, 1, 0, 1, 6, 4], 7]
[[2, 5, 0, 4, 4, 6, 4, 0], 8]
parent one: 2
parent two: 1
keep: 4
drop: 3
exchange point: 7
child: [3, 3, 6, 2, 7, 2, 0, 6]
counter 0
[[1, 2, 7, 1, 4, 0, 3, 6], 3]
[[3, 3, 6, 2, 7, 2, 0, 6], 5]
[[3, 3, 6, 2, 7, 2, 0, 4], 5]
[[2, 5, 0, 4, 4, 6, 4, 0], 8]
parent one: 4
parent two: 1
keep: 2
drop: 3
exchange point: 7
child: [2, 5, 0, 4, 4, 6, 4, 6]
counter 1
[[1, 2, 7, 1, 4, 0, 3, 6], 3]
[[3, 3, 6, 2, 7, 2, 0, 6], 5]
[[2, 5, 0, 4, 4, 6, 4, 6], 7]
[[2, 5, 0, 4, 4, 6, 4, 0], 8]
parent one: 2
parent two: 4
keep: 1
drop: 3
exchange point: 2
mutation
child: [3, 3, 0, 4, 2, 6, 4, 0]
counter 2
Oct. 14 - 8-Queens, done, setting up a framework for Othello
Nov. 4 - website
Black (AI): 47
White (random): 17
greedy: 5.16
mobile: 16.48
stabile: 17.28
weighted combination: 19.36
Nov. 4 - Notes from his webpage ~chayes
This source code runs and displays 25 Othello games between black, the specified
AI that uses one or more heuristic values but not forward-search, and white, a
random player. After each set of games has been played, the value printed is
the average margin of victory for black. The viewer can then compare the success
of each method. Be warned, however, that there is a lot of variation for each
margin of victory average due to the relatively low number of trials.
Note that the weighted combination is at this time equal to 10*stability + 3*mobility + 1*power.
Nov. 30 - Notes from his webpage
THIS PART IS THE SAME AS ABOVE
This source code runs 10 Othello games between black, the specified AI that uses
one or more heuristic values that may or may not include forward-search, and
white, a random player. After each set of games has been played, the value printed
is the average margin of victory for black. The viewer can then compare the success
of each method. Be warned, however, that there is a lot of variation for each
margin of victory average due to the relatively low number of trials.
THIS PART IS NEW
In this trial, comparisons are made between searches of different depths for
the greedy and combination heuristics. Note that the weighted combination is at
this time equal to 15*stability + 2*mobility + 1*power. "Forward" indicates a
3-ply search, and "Far Forward" indicates a 5-ply search.
Dec. 7 - Notes from his webpage
SAME AS ABOVE Nov.30 and Nov. 4
This source code runs 25 Othello games between black, the specified AI that uses
one or more heuristic values that may or may not include forward-search, and
white, a random player. After each set of games has been played, the value printed
is the average margin of victory for black. The viewer can then compare the success
of each method. Be warned, however, that there is a lot of variation for each
margin of victory average due to the relatively low number of trials.
THIS IS NEW
This prototype compares each of 4 direct heuristics (greedy, mobile, stable,
and a combination) with and without forward-searching. The number of trials has
been increased to 25.
Jan 4 - Status Report -
see Jan 4
This source code runs 100 iterations of the completed genetic algorithm. Now, instead of simply playing games
for each heuristic, or set of weights, and measuring the results, the machine is changing these weights after
each iteration using the results. A slate of six 'players' is initialized, each with a current state of four
weights, one for each heuristic function. Each iteration, three games are played against a random player for
each 'player'. After all games have been played, the player with the lowest score is replaced by a new
'player', that is created as a combination of the the two best scoring 'players'. These high-scoring players
are called 'parents' of this new 'child'. There is a one in 5 chance that the new 'child' will undergo a
mutation in one of the weights, and a one in 25 chance that the 'child' will have all of its weights set
randomly. No forward search capabilities are used to preserve time. The program may take a few minutes to
run to its conclusion as is.
Jan. 23 - Current version,
Jan. 20th version is a good one to run for grading and review
Notes:
Calvin Hayes
January 20, 2005
Period 5
Notes
This source code runs 100 iterations of the completed genetic algorithm. Now,
instead of simply playing games for each heuristic, or set of weights, and
measuring the results, the machine is changing these weights after each
iteration using the results. A slate of twelve 'players' is initialized, each
with a current state of six weights, one for each Othello heuristic function.
Each iteration, three games are played against a random player for each 'player'.
After all games have been played, the player with the lowest score is replaced
by a new 'player', that is created as a combination of the the two best scoring
'players'. These high-scoring players are called 'parents' of this new 'child'.
This iteration has made some changes in the way the algorithm is run. First of
all, the slate of players has been increased to 12. This allows for a more
diverse group of players. Next, when considering which players have preformed
best, the program now takes into account their performance on earlier iterations.
Finally, the proportion of mutations has been increased greatly and multiple
mutations are possible on one child. However, in each mutation, the amount that
a weight can be mutated is limited to 200 points.