120 likes | 229 Views
Ideas for Othello Game Player (Deliverable 2). Improved Evaluation functions variations to weighted difference function, though still static evaluation functions that are conditioned on board configurations mobility – incorporate a factor that reflects the number
E N D
Ideas for Othello Game Player (Deliverable 2) • Improved Evaluation functions • variations to weighted difference function, though still static • evaluation functions that are conditioned on board • configurations • mobility – incorporate a factor that reflects the number • of move options available to a player (current mobility • is the number of legal moves available to a player; • potential mobility is number of blank squares next to • opponent piece) • edge stability – measure of likelihood that edge squares • can be flipped
Ideas for Othello Game Player (Deliverable 2) • More efficient searching (Alpha Beta will tend to prune more • moves, when moves are ordered “best” to “worst” (which • can only be “guessed” at ahead of time). Thus, rather than • relying on default ordering, do • static reordering (e.g., order boards based on weights used by • the weighted-diff function, or some other static weighting) • dynamic reordering (e.g., order boards by evaluation • function score) • Killer Moves – a (opponent) move in one line of play can be • effective (detrimental) in another line of play (e.g., if an • opponent can capture a corner on one line of play, • consider whether the opponent can capture the corner • in another line of play)
Ideas for Othello Game Player (Deliverable 2) • Improved Memory Management • Rather than dynamically allocating boards, then “throwing • away”, reuse dynamically allocated boards and mitigate • garbage collection • Anytime search and searching with time limits • Iterative Deepening (Alpha Beta) pruning (for Othello, with • a average branching factor about 10, searching to level • N+1 will be about 10 times more expensive than N; collect • stats at N, and dynamically determine whether N+1 is • doable • Forward pruning – don’t search down paths that seem non-promising
Ideas for Othello Game Player (Deliverable 2) • Aspiration search or iterative “broadening” • Instead of starting the search with alpha and beta values • of losing(-1) and winning(+1) values initially, • carefully choose a window (e.g., based on the • current board’s value), such as 0-100, and expand • the window only as needed • Think ahead – keep searching while opponent is moving, based on one or more guesses of what the opponent will do • Hash table of book moves, particularly of opening game • (where “the book” can be initialized by playing the program • against itself
Ideas for Othello Game Player (Deliverable 2) • Different strategy over course of game (e.g., shallower search • in midgame, all out search later) • Metareasoning – at each point (each search step, is it better • to stop now or keep searching) – manage the clock • “dynamically” rather than “statically (e.g., assume same • time limit per move) – always ask, is search further • cost effective. Another way to think about it – consider • ceasing the search as a “possible move” • Learning – about opponent and about “one’s self” (e.g., which • evaluation function is best)