On Tue 21 Aug 2007 (13:31 -0400), Roy A. Crabtree wrote: > Some responses; most of what you said I concur with, but NOT most > of your conclusions. > > To reiterate: gnubg is a great result. Keep on keepin' on.
Thanks. I have a great deal of trouble actually reading your responses, they often seem to have sections missing or almost appear to be two different blocks of text interleaved. As far as I can tell, you have some serious misapprehensions about gnubg (and most other bg programs as well. First gnubg uses three external sources of information: A table of weights, which determine the behaviour of the neural nets gnubg uses to evaluate the probable outcome of a game (played without the cube) given a particular position of the chequers. A match equity table (MET), which gives the match winning chances for a player at a given match score. All of the METs provided with gnubg assume that both players are equally strong. An interested player could attempt to make a MET for unequal players - I believe Walter Trice has explored what such a table would be like. I am not aware of any such tables being available, but if one is, it could be put into a format such that gnubg could use it. A bearoff database which gives the probable number of rolls to clear all a player's pieces off in non-contact positions. As shipped, gnubg has such a database for all the player's pieces in his homeboard. Larger tables, allowing the player's pieces to be on more points are available for download and gnubg can use them. Experiments indicate that the neural net is so accurate for this type of race that there is little purpose served in using them. These are the sole external data sources for gnubg which can cause its play to be altered. Gnubg has no provision for updating any of those sources of data - it can read them, it will never write them. Gnubg has a small number of neural nets, each optimised for a particular type of position - racing (non-contact), contact, crashed (the player's home board is collapsing). It has a smaller neural net which is generally used to produce a rough and ready estimate of what the full net will produce. This is used to prune away un-promising moves to make evaluations faster. The point of all this is that gnubg's behaviour is set when the above data sources are attached to the program. Given two machines running gnubg, as long as both use the same neural net weights, MET and bearoff database, then both copies will play identically. They will _always_ play the same way, no matter if they lose 100,000 games in a row. Gnubg's behaviour is static in that sense. It does not learn, it does not adapt, it does not get better, it does not get worse. It does not have some database of neural net responses or whatever you were trying to suggest in your posting. It does not choose moves using a neural net. It does not make cube decisions using a neural net. The only thing it does with the neural nets is estimate the probability of the various outcomes given a particular arrangement of the chequers. The choice of move is done by examining the nn outputs for the position resulting from each of the possible legal moves, then for each of the better ones of those, the possible dice rolls and moves for the opponent, for each roll, it tests the resulting position again and calls the neural net for a new estimate. Eventually, it chooses the move giving the highest equity for itself Similarly, the cube decision is made by examining all the possible rolls that could occur and the resulting best position for each roll, eventually leading to an expected value for the winning/gammon/bg chances before the dice are rolled. At no time does gnubg have any information about forthcoming rolls, even when using one of its own built in random number generators. There is no code in gnubg to analyze the supplied random numbers to see if there is some possibly useful statistical bias. There is no code in gnubg to analyse its opponent's play to allow it to alter its estimate of the win/gammon/bg/lose/lose gammon/lose bg chances. It is static and, given the same dice rolls it will play the same game forever. The neural nets can be trained to generate new weights for the various nets. Training is done using separate software derived from, but not identical to, gnubg's. Effective training involves rolling out positions tens and hundreds of thousands of times to get sufficient information to allow adjusting the weights. Even if gnubg were adaptive, even the most fanatical player couldn't play enough games to produce any perceptible change in gnubg's weights, and hence it's style of play. In short, gnubg is about as dynamic as your average housebrick. -- Jim Segrave [EMAIL PROTECTED] _______________________________________________ Bug-gnubg mailing list [email protected] http://lists.gnu.org/mailman/listinfo/bug-gnubg
