Author: José de Jesús García Ruvalcaba
Date: 08:35:49 10/17/00
Go up one level in this thread
On October 17, 2000 at 11:06:22, Graham Laight wrote: >The purpose of this is to build a program that can teach itself to do a good job >of evaluating chess positions, using only technology that is available today, >and can be applied on a PC which can be bought off the shelf today. > >Steps to building a self learning chess machine - 1st draft: > >* assemble a collection of evaluation components. There should be sufficient >eval components to be able to theoretically evaluate any position, if combined >correctly > >* set up a genetic algortithm to be able to combine these components into a >single evaluation function, and to be able to vary them from game to game > >* write a program that can "categorise" chess positions, and come up with a >measure of "similarity" between them > >* assemble a collection of categorisation components > >* set up a genetic algorithm to to be able to combine these components into a >single categorisation function, and to be able to vary them from game to game > >* new categories and evaluation functions can be made by combining components >from existing evaluation functions (chosen for their "similarity"), when the >"similarity" between the new position and existing categories is sufficiently >small > >* seed the system with some categories > >* seed the system with a categorisation function that works > >* seed the system with working eval functions suited to the categories > >* ensure the system is clever enough to get to check-mate from the 1st game of >the experiment > >* start the system playing against another copy of itself > >* During the game, every legal move will be evaluated (1 ply) and the best one >chosen > >* when the system loses a game, it must evolve. From the move list, the >evaluation function used prior to the eval score falling will be subjected to >the genetic algorithm, as will the categorisation > >There is a problem in computer chess that the problem may have occured before >the evaluation started to fall. In this system, the problem will be solved >because, with sufficient play, the poor evaluation will eventually make its way >back to the source of the problem (though other eval functions will temporarily >be messed up on the way!). > >It took roughly 400,000 generations to change chimpanzees into humans (based on >average generation of 15 years - a number I admit I've plucked out of the air, >but which is at least the right order of magnitude). > >Could 400,000 generations of the above system produce a great chess player? > I think no. Knowledge in a chess program is not only in the evaluation function. The following components have important and critical knowledge: 1. Evaluation function. 2. Search policy. 3. Move ordering. 4. Time management and allocation. 5. Opening book. 6. Traditional position and book learning. 7. Tablebases and tablebase handling. 8. Hashtable replacement policy. 9. Others that I do not recall now. Top chess programmers have devoted lots of time at least to the first four. In order to automatically produce a great chess player, I think it is neccesary to make it learn several of these components, and each one of them has several free parameters. Also, the evaluation function and the search policy often depend on a previous clasification of the position (e.g. endgame evaluation different from middlegame evaluation, turning off null move when there are few pieces left). All this increases the size of the problem by several orders of magnitude. José. >Comments please! > >-g
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.