The Tao of Gaming

Wednesday, February 16, 2005

Can't Stop Theory


I've been thinking that I should write a simple computer opponent to explore various AI techniques (neural nets, genetic algorithms). Of course, I'm mainly in the 'thinking about' stage.

Can't Stop seems like a good choice because the rules are simple. If you could value a position then it's simple -- split the dice to maximize your position, then check [% failure to advance] * [current unbanked gains] is greater than [expected gain when you succeed]. If the first number is greater, stop.

But the real issue is -- how to quantify a position. A zeroeth order approximation is to call capping a column 1, and then each step on a column is worth 1/X, where X is the length of the column (counting the cap as a space).

Michael Keller's "World Game Review" [Issue 7, page 5] analyzes the game with this formula and provides a mnemonic for when to stop ("Math is hard").

But that doesn't seem right. The value depends on how far up the column everyone else is? [The WGR admits this as a problem, but offers no solution]. If '7' is almost capped, the first few steps of '7' should be basically valueless (so your advancement on other columns count).

So tweak the formula. I'm wondering how. I suspect that the best bet is to perhaps develop a generic formula per column(mybase, mycurrent, opponents bases) and then use a genetic algorithm to see where the coefficients drift toward (you can also have an 'aggressiveness' gene, that biases a strategy towards rolling or stopping....)

It should be possible to write a reasonable opponent, but I'll admit that I have no idea what the 'best' algorithm will look like....[it may also vary based on # of players].