<?xml version="1.0" encoding="UTF-8"?>

<rdf:RDF
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns="http://purl.org/rss/1.0/"
 xmlns:content="http://purl.org/rss/1.0/modules/content/"
 xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns:syn="http://purl.org/rss/1.0/modules/syndication/"
 xmlns:admin="http://webns.net/mvcb/"
>

<channel rdf:about="http://gaming.powerblogs.com/">
<title>The Tao of Gaming</title>
<link>http://gaming.powerblogs.com/</link>
<description>Board Games and lesser pursuits</description>
<dc:language>en-us</dc:language>
<dc:date>2008-01-31T00:01+00:00</dc:date>
<items>
 <rdf:Seq>
  <rdf:li rdf:resource="http://gaming.powerblogs.com/posts/1201739589.shtml" />
  <rdf:li rdf:resource="http://gaming.powerblogs.com/posts/1174685639.shtml" />
  <rdf:li rdf:resource="http://gaming.powerblogs.com/posts/1131683083.shtml" />
  <rdf:li rdf:resource="http://gaming.powerblogs.com/posts/1125842106.shtml" />
  <rdf:li rdf:resource="http://gaming.powerblogs.com/posts/1109120708.shtml" />
  <rdf:li rdf:resource="http://gaming.powerblogs.com/posts/1108600185.shtml" />
  <rdf:li rdf:resource="http://gaming.powerblogs.com/posts/1106697793.shtml" />
 </rdf:Seq>
</items>
</channel>

<item rdf:about="http://gaming.powerblogs.com/posts/1201739589.shtml">
<title>Stunning Computer Opponent</title>
<link>http://gaming.powerblogs.com/posts/1201739589.shtml</link>
<description> I just (today) noticed Keldon's Blue Moon program w/AI (via this thread on BGG). I've just tried a game or two against the computer opponent, and it seems...</description>
<dc:creator>Brian</dc:creator>
<dc:date>2008-01-31T00:01+00:00</dc:date>
<content:encoded><![CDATA[<p class="firstinpost"><br/>
I just (today) noticed <a href="http://keldon.net/bluemoon/">Keldon's Blue Moon program w/AI</a> (<a href="http://www.boardgamegeek.com/thread/271927">via this thread on BGG</a>). I've just tried a game or two against the computer opponent, and it seems credible. (I'm no expert). Clearly if Neural Nets can handle Blue Moon, they should be able to handle Race...</p>
]]></content:encoded>
</item>

<item rdf:about="http://gaming.powerblogs.com/posts/1174685639.shtml">
<title>"Solving" Caylus</title>
<link>http://gaming.powerblogs.com/posts/1174685639.shtml</link>
<description> There's a BGG thread about solving Caylus. While I doubt it will be solved anytime soon (Chess shows no signs of giving up its secrets), I do think...</description>
<dc:creator>Brian</dc:creator>
<dc:date>2007-03-23T21:03+00:00</dc:date>
<content:encoded><![CDATA[<p class="firstinpost"><br/>
There's a BGG thread about <a href="http://www.boardgamegeek.com/thread/157486">solving</a> <a href="http://www.boardgamegeek.com/game/18602">Caylus</a>. While I doubt it will be solved anytime soon (Chess shows no signs of giving up its secrets), I do think a reasonable computer opponent could be developed.</p>

<p>My own technique would be to use some basic genetic algorithms for some decisions, and then use some <a href="http://gaming.powerblogs.com/posts/1106697793.shtml">recent advances in computer Go</a> as a jumping off point.</p>

<p>For example, during worker placement you'll typically have 15 options (Pass, Castle, Gate, Guild, Joust, Stables, Inn, Pass, Spaces 1-n). You mainly can't take occupied spaces, and you can eliminate some obviously bad moves (spaces you won't be able to use, or lose money). Now, if your genetic algorithm (or hardcoded rules) point to a clear decision ... take it. You can also have a clear evaluation function (money, favor, goods are positive ... wasted workers negative, etc etc).</p>

<p>But if you've got 2-3 candidate moves, consider each one. Simulate the turn out, then play out rest of the game 100 (or 200, or 1000) times using random moves for all players. (Possibly keeping the smarts that eliminate completely boneheaded moves). Whichever candidate gives you the best average outcome, take it. </p>

<p>Given how well this works for Go, I think it would be generally applicable.</p>

<p>You'd want to avoid randomly moving the provost (that would probably be hardcoded, and possibly genetic).</p>

<p>My Computer Science <b>theory</b> isn't quite strong enough for me to set up this framework myself (nor do I feel like spending the time) but if a project got started (say, on SourceForge) I may contribute.</p>
]]></content:encoded>
</item>

<item rdf:about="http://gaming.powerblogs.com/posts/1131683083.shtml">
<title>San Juan Software</title>
<link>http://gaming.powerblogs.com/posts/1131683083.shtml</link>
<description> I downloaded the San Juan freeware mentioned in this BGG thread. Very nice looking program, although the GUI functionality needs a touch of work. Reasonable AIs, too. I think...</description>
<dc:creator>Brian</dc:creator>
<dc:date>2005-11-11T04:11+00:00</dc:date>
<content:encoded><![CDATA[<p class="firstinpost"><br/>
I downloaded the San Juan freeware mentioned in this <a href="http://www.boardgamegeek.com/geekforum.php3?action=viewthread&articleid=686754">BGG thread</a>. Very nice looking program, although the GUI functionality needs a touch of work. Reasonable AIs, too. I think I'd rather play against real people (on BSW) where the games are faster, but this is worth checking out.</p>

<p class="update"><b class="update">Update:</b> OK, I've played a few games, and the computer opponents weak spots are a bit more obvious. The author admits that they probably won't challenge 'people who've played 500 games on BSW' (<a href="http://www.brettspielwelt.de/gate/jsp/en/userInfo_spiele.jsp?suchname=Bankler">cough cough</a>), so I guess he's right.
</p>

<p class="update"><b class="update">Update:</b> OK, I've now played a fair number of games, and the software can play well. I gather it's a genetic algorithm (somewhat) and it handles certain draws very well. It has it's flaws, but it's not bad.
</p>
]]></content:encoded>
</item>

<item rdf:about="http://gaming.powerblogs.com/posts/1125842106.shtml">
<title>Clever little bastards</title>
<link>http://gaming.powerblogs.com/posts/1125842106.shtml</link>
<description> Based on MJWills comment to a recent post, I downloaded the Puerto Rico Evolver from the geek [link to main PR page]....</description>
<dc:creator>Brian</dc:creator>
<dc:date>2005-09-04T13:09+00:00</dc:date>
<content:encoded><![CDATA[<p class="firstinpost"><br/>
Based on <a href="http://gaming.powerblogs.com/posts/1125258612.shtml">MJWills comment to a recent post</a>, I downloaded the <a href="http://www.boardgamegeek.com/game/3076">Puerto Rico Evolver from the geek</a> [link to main PR page].</p>

<p>And you know what, I have a shockingly bad win percentage against them. Well below my normal win percentage. However, after about eight plays, I can see the implicit collusion.  Evolution means adapting to your environment and the other creatures matter. [Also, the critters tend to have a very different style of mistakes]. If you took one of these babies and placed it in a game with four humans, I expect it would get crushed easily (even without any collusion). However, these tend to play to each other strengths. They do make some boneheaded plays (one time the computer took builder and passed). But they've got a reasonable amount of game going, and it was interesting experience. Things that the computer believes:
<ul>
   <li> Take the harbor at the first opportunity. Even without an income source.
   <li> Build the small indigo and sugar plants if you've got nothing else to do.
   <li> Build a large building ASAP.
</ul>
You could do worse than follow those.</p>

<p class="update"><b class="update">Update:</b> I can't really analyze the program, I've never played with Excel as a programming environment. I'd need Visual Basic or some such. The code is on BGG, and I could probably read it easily enough, but I'm lazy right now. Here's what I deduce (from background knowledge and the spreadsheet). </p>

<p>The 'genes' are decision making trees, and each gene answers a different "What do I do now?" question. Which building do I build, which plantation do I take, where do I place my people, which role do I take? The genes have some access to the game information. Whenever they have to make a decision, the genes provide the answer. [Judging from the length of the genes, I wager they rate each option and then the highest value is selected]. The real trick is that the 'organisms' play lots of games and are rated for fitness. The lowest rated are deleted, and the rest make copies (presumably the higher rated ones get more copies). I'm not sure how the copies are created (asexual duplicates or sexual mixtures). I imagine there's some random mutation tossed into the mix.</p>

<p>What's most impressive (to me) is just how crude the genes are. The basically only answer the above questions, and one other &mdash; "What stage of the game is it?" The stage question leads them to different genes for other selection (so their role selection changes based on early/mid/late game). Some simple genetic expression, I think. These buggers play a credible game for something so simple.</p>

<p>The organism are apparently specialized to their seat choice. (Player 1 Genes are different from player 2 genes), and specialized to a five player game. 
</p>
]]></content:encoded>
</item>

<item rdf:about="http://gaming.powerblogs.com/posts/1109120708.shtml">
<title>Random computer gaming</title>
<link>http://gaming.powerblogs.com/posts/1109120708.shtml</link>
<description>A special program has solved 5x5 Go. Researchers still haven't made a master level program that plays the full (19x19) game. Dr. Peter Drake (Mundungus on BGG) has a...</description>
<dc:creator>Brian</dc:creator>
<dc:date>2005-02-23T01:02+00:00</dc:date>
<content:encoded><![CDATA[<p class="firstinpost">A special program has <a href="http://www.cs.unimaas.nl/~vanderwerf/5x5/5x5solved.html">solved 5x5</a> Go. Researchers still haven't made a master level program that plays the full (19x19) game. Dr. Peter Drake (Mundungus on BGG) has <a href="http://www.lclark.edu/~drake/go/">a page</a> with useful links if you are interested.</p>

<p>And, apropos of my <a href="http://gaming.powerblogs.com/posts/1108600185.shtml">recent thoughts on Can't Stop</a> (and Larry's comment), Jim Cobb has released a <a href="http://www.rollordont.com/">new computer version</a>.</p>

<p>I have nothing clever to say, but figured a few of you may be interested. (I also figure most of you have already seen these, but hey, you never know).</p>

<p><b>Update August 4th, 2005</b> -- I've updated the link to <a href="http://www.rollordont.com/">Roll or Don't</a>.</p>]]></content:encoded>
</item>

<item rdf:about="http://gaming.powerblogs.com/posts/1108600185.shtml">
<title>Can't Stop Theory</title>
<link>http://gaming.powerblogs.com/posts/1108600185.shtml</link>
<description> 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....</description>
<dc:creator>Brian</dc:creator>
<dc:date>2005-02-17T00:02+00:00</dc:date>
<content:encoded><![CDATA[<p class="firstinpost"><br/>
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. </p>

<p>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.</p>

<p>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).</p>

<p>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").</p>

<p>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).</p>

<p>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....)</p>

<p>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].</p>
]]></content:encoded>
</item>

<item rdf:about="http://gaming.powerblogs.com/posts/1106697793.shtml">
<title>New Algorithm for Computer Go?</title>
<link>http://gaming.powerblogs.com/posts/1106697793.shtml</link>
<description>...</description>
<dc:creator>Brian</dc:creator>
<dc:date>2005-01-26T00:01+00:00</dc:date>
<content:encoded><![CDATA[<BR />
Found via <a href="http://www.pejmanesque.com/archives/009142.html">Pejman</a>:<BR />
<BR />
An <a href="http://research.microsoft.com/displayArticle.aspx?id=1062">interesting article on Computer Go</a>. Go appears the least solvable of all of the traditional games. World-class computer opponents exist for Chess, Checkers, and Backgammon. The idea of training Neural Networks using a database of professional games and evaluating the position probabalistically seems genius. Who knows, this project may produce the first master level computer go opponent.<BR />
<BR />
Neural nets <a href="http://www.jellyfish-backgammon.com/">worked</a> <a href="http://satirist.org/learn-game/systems/gammon/">for</a> <a href="http://web.cps.msu.edu/rlr/pub/Tesauro2.html">backgammon</a>, after all. Last year I tried the free version of <a href="http://www.jellyfish-backgammon.com/">Jellyfish</a> with staggering losses. Of course, I'm not a master player, but the fact that master Backgammon players <a href="http://www.bkgm.com/matches/woba.html">consult with their (snarky) computers</a> after a match says volumes.<BR />
<BR />
I don't play Go much, despite it's depth and elegance. strong players often can't explain what makes a good move to weaker players. Learning involves study and bashing your head against the wall, and while I like studying games as much as anyone, I found the progress depressingly slow.<BR />
<BR />
<BR />
<!-- ping: http://www.pejmanesque.com/cgi-bin/mt/mt-tb.cgi/9137  --><BR />
<BR />
<BR />
<p class="update"><b class="update">Update:</b> <BR />
</p> I tried to post the following as a comment on Pej's site, but failed.<BR />
<BR />
[Continuing laocoon's comment], I would imagine that the Neural Net would be used to generate candidate moves for strategic positions (particularly openings and for 'quiet' moves in general), the 'probability' function would be used to evaluate positions (using the NN to determine moves, likely counters, etc) and a tactical engine would handle localized fighting. [Even my old Sargon chess program in the early 80s always searched through the end of a capture sequence]. Endgames can also be solved handled analytically once the parts of the board cease to interact.]]></content:encoded>
</item>

</rdf:RDF>