Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: questions about book learning

Author: Robert Hyatt

Date: 10:48:14 01/05/04

Go up one level in this thread


On January 05, 2004 at 10:39:51, Bob Durrett wrote:

>On January 04, 2004 at 23:24:25, Robert Hyatt wrote:
>
>>On January 04, 2004 at 22:52:32, Bob Durrett wrote:
>>
>>>On January 04, 2004 at 22:19:22, Robert Hyatt wrote:
>>>
>>>>On January 04, 2004 at 13:39:37, Bob Durrett wrote:
>>>>
>>>>>On January 03, 2004 at 23:46:10, Robert Hyatt wrote:
>>>>>
>>>>>>On January 03, 2004 at 21:22:51, K. Burcham wrote:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>I am not sure how this book learning works for each book move.
>>>>>>>The value that is changed, is this only because of the loss?
>>>>>>>Is the program using positional values once out of book to change the learned
>>>>>>>value?
>>>>>>
>>>>>>Here is a thumbnail of what I do.
>>>>>>
>>>>>>1.  Crafty remembers the evaluations for the first 10 moves out of book,
>>>>>>after each search has been completed.  It uses these evaluations to detect
>>>>>>a "trend".  IE is the evaluation good and getting better?  Is it bad and
>>>>>>getting worse?  Is it good but dropping (ie it grabbed a gambit pawn and
>>>>>>is beginning to see that it was bad) or is it bad but getting better (IE it
>>>>>>offered a gambit, the opponent took it, and the score is going up).
>>>>>>
>>>>>>It factors all of that together and marks the book line as good or bad.
>>>>>>
>>>>>>2.  Crafty takes the result of a game when it loses, and updates the book
>>>>>>line so that moves tried near the end of the line simply don't get played,
>>>>>>and alternatives near the front of the book line get tried next.
>>>>>>
>>>>>>There is more to it than that, and you can look at the crafty.doc file to
>>>>>>at least see what I am doing in more detail.  It is _very_ effective.
>>>>>>
>>>>>>
>>>>>>
>>>>>>>Lets say e4 is the most solid, dependable first move.
>>>>>>>Lets say we lose 25 games with e4.
>>>>>>>now we have a learned value for something.
>>>>>>>Is this learned value only for e4?
>>>>>>>Is this learned value only for the first move, regardlesss of the line played?
>>>>>>
>>>>>>For me, the entire line gets some "learning adjustment".  The closer to the
>>>>>>first move, the "smaller" the adjustment.
>>>>>>
>>>>>>
>>>>>>>
>>>>>>>If program A plays d4 against program B and wins 25 games.
>>>>>>>If program A plays d4 against program C and loses 25 games.
>>>>>>>If program C plays d4 against program B and loses 25 games.
>>>>>>>I am not sure how this helps the high level book.
>>>>>>
>>>>>>The danger is that you are not learning about the "book", but about
>>>>>>the "engines".  That is a problem.  Fortunately, it is not that common.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>>
>>>>>>>Is all this learning for only the first book move?
>>>>>>
>>>>>>No.  Crafty learns for _all_ moves along a line that was played.
>>>>>>
>>>>>>In fact, if you beat it with a line, you can expect to play against that
>>>>>>line when you change colors and play it again.  :)
>>>>>>
>>>>>>
>>>>>>
>>>>>>>
>>>>>>>kburcham
>>>>>
>>>>>Bob H:
>>>>>
>>>>>I get the impression that the communication with the book, and it's modification
>>>>>is done by a GUI [or UI].  Does this imply that you have modified somebody's GUI
>>>>>[or UI]?
>>>>>
>>>>>Bob D.
>>>>
>>>>Nope.  I have specific code in Crafty.  IE LearnBook() which is called by
>>>>the Crafty UI after each non-book move is played...  And at the end of the
>>>>game when the "result" is known.
>>>
>>>The crafty UI?????  That means you are more than just a mere engine designer.  :
>>>)  [you also do UIs]
>>>
>>>Are you talking about a highly specialized UI you designed for automated games
>>>at ICC?
>>
>>
>>
>>No.  Any useful program has some sort of user interface, otherwise the user
>>is not going to be able to do much with the program...
>>
>>>
>>>Just curious.
>>>
>>>My main interest is in getting a better handle on the division of labor between
>>>engines and software external to the engine, such as a GUI, tablebases, and
>>>maybe an opening book.  [may depend on programmer?] Partly, this is an attempt
>>>to find a more precise definition of an "engine."  I thought engine developers
>>>HATED programming GUIs and UIs.  : )  Where does the engine stop and the rest
>>>begin?
>>>
>>>Bob D.
>>
>>
>>Depends on the program.  Some have a GUI and it is part of the program.  Some
>>have a GUI that is separate (xboard/winboard for example).  Some don't have
>>a GUI at all.  All must have a UI of some sort however.
>
>I guess you force me to reveal my ignorance.  I no longer "understand" the
>meaning of "UI"  : (
>
>Bob D.

User Interface

As opposed to

Graphical User Interface

Crafty's "native" UI is basically "main.c".  But main.c has hooks that will
let it interface to xboard/winboard to pop up a GUI-based system, on demand.
Or speak moves.  Or whatever.



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.