Playing to learn
Design and implement a Least Mean Squares (LMS) learner that learns to
play connect4 by updating the weights of your static evaluation
function. You should start with random values for these weights. There are two ways to apply the LMS weight learner
- Use your hand tuned static evaluator to evaluate a board and return a value against which your measure your error
- Play two learners against each other and use the outcome to determine error
I expect you to use the first method to obtain a player that plays as well as your player from the prior assignment.
You will get extra-credit for using the second method and producing
a player that plays as well as, OR BETTER, than your player from the
prior assignment.
General rules
You may talk strategies but no code sharing.
Good Luck
Turning it in
Send me a link to a web page with the following:
- Your source, your data, executable (specify linux, android, mac, or windows).
- Analyze the strengths and weaknesses of your learned static
evaluator. You can do this, for example, by playing five games
that pit the handtuned evaluator (or target function) against
the LMS tuned target function and recording a move by move
analysis. Show your best learned weights and compare them to
the hand-tuned weights from the prior assignment.
- Movies of your running code that show the strengths and
weaknesses of your learned static evaluator. These strengths and
weaknesses should relate closely to your analysis.
Your grade depends on how well your program plays and how well
you are able to describe your static evaluator.
Sushil Louis