This is G o o g l e's cache of http://sixteenvolts.blogspot.com/2006/05/programmed-by-god.html as retrieved on 2 Sep 2006 05:00:22 GMT.
G o o g l e's cache is the snapshot that we took of the page as we crawled the web.
The page may have changed since that time. Click here for the current page without highlighting.
This cached page may reference images which are no longer available. Click here for the cached text only.
To link to or bookmark this page, use the following url: http://www.google.com/search?q=cache:Ys6y3Pqbc9IJ:sixteenvolts.blogspot.com/2006/05/programmed-by-god.html+site:sixteenvolts.blogspot.com&hl=en&ct=clnk&cd=214


Google is neither affiliated with the authors of this page nor responsible for its content.

Send As SMS

« Home | Just use Concrete instead » | Oh, you crumbums » | A black fly in your Chardonnay » | Can't tolerate this » | For he is a discriminating gentleman » | The F word » | Pip pip, sir » | Rutabagas » | For I have truly seen the face of evil » | I got the poison, I got the remedy »

Programmed by God

I read "One Jump Ahead" by Jonathan Schaeffer. This book, which was very similar in spirit to "Behind Deep Blue" about the development of the chess computer Deep Blue that beat Garry Kasparov in the famous media event, is a not-too-light but at the same time enthralling story of the development of the checkers program Chinook, and how this program improved in strength and eventually beat Marion Tinsley, a God-fearing Southern gentleman, professor of mathematics and a Baptist minister who was the greatest human checkers player of all time. The book describes how the author used then-really-mighty 30 MHz computers to search through position trees and generate endgame databases. It also describes the bugs that haunted him and the optimizations that he made in an interesting fashion. I also learned a handy new word "tyro", which was actually used in Barclay Cooke's book too but which I didn't bother to look up but guessed its meaning from the context.

While I was reading this book, I kept casually thinking on the background how to write a checkers program, and realized that it would make an excellent example of not only the details of and additions to the minimax algorithm (plus that representation and storage of states and quickly generating the legal moves feels like an interesting and educational algorithmic problem), but also of machine learning techniques. Also instead of choosing weights for various board features by hand and intuition, why not use self-play and reinforcement learning techniques to find them? Seeing that Arthur Samuel already did something like this in the fifties, this task shouldn't really be that complicated with today's programming tools. As long as the resulting program can beat me and the checkers applets that I can find on the web, I am happy.

I also wondered how genetic algorithms would fare in finding and optimizing these weights static evaluation function, with some kind of tournament evalution used to find the breeders in each generation. All these topics together might make an interesting chapter or two for my next book. Speaking of which, I received an email from the publisher, and if I was able to read and interpret the attached spreadsheet page correctly, about half of the initial print run has already been sold, even though the book has been out only for a few weeks now. I hope that this book turns out to be useful for its readers. I can only try to imagine some guy out there, perhaps some CS freshman or maybe some otherwise interested older gentleman, picking up my book and learning at least a few useful things and techniques from it, so that all my work has not been in vain. I simply try to write the books that I would have wanted to read when I was a beginner. Back then, I had SICP and CLR to go with. I am not trying to pretend that my puny books would even deserve to be mentioned in the same paragraph, but at least they are in Finnish, reasonably well-written (even if I say it myself) and contain very little explicit math. Boo, math, especially any kind of non-discrete math, which is an affront to nature and thus an abomination.

I also picked up the latest novel from Douglas Coupland, "JPod", that my wife had reserved for herself. But the book looks so interesting (and no, it is not a biography of the well-known neocon, despite the name) that I'll see if I can sneak it away from her for my bedtime reading tonight. I can still remember the day when I read my first Coupland novel, "Shampoo Planet", during some lazy Sunday that must have been during the second year we were married. About midway through, I noted to my wife how this book rules like nothing has ever ruled before, and it's like they had followed my life and turned it into a novel. My memory is somewhat hazy about the details of what followed, but I think she answered "Yes, dear" or something equivalent and patted me on the head, but with a somewhat skeptical tone that was dripping with, like, hipsterish irony. But at least this book indelibly imprinted the name "Heather Jo Lockheed" to our mutual married-couple vocabulary. And I can't believe how young the two of us looked like in that memory.

1 comment

I sometimes use chess engine Crafty in evaluating positions. It gives numerical estimates given in percentages, e.g. 45%-55% for a black advantage. It often gives a considerable advantages in positions that are clearly inevitable draws and no patzer can lose the games without deliberately playing to it. It even gives a significant advantages in cases where there are no theoretical chances of mate whatsoever due to insufficient material, a lone bishop or a lone knight with the king e.g..

Post a Comment

Links to this post

Create a Link

Contact

ilkka.kokkarinen@gmail.com

Buttons

Site Meter
Subscribe to this blog's feed
[What is this?]