Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Fine tuning the engine's strength

Author: John Coffey

Date: 13:21:51 07/27/00

Go up one level in this thread


On July 26, 2000 at 13:27:33, KarinsDad wrote:

>On July 26, 2000 at 11:45:30, John Coffey wrote:
>
>[snip]
>>
>>My concern is that attempts to choose from a random list of moves will produce
>>the same kind of effect that we see with some programs - where they will play
>>really well on some moves but do something completely stupid on another.  I have
>>had games with Fritz (on a lower rating) where it clearly could have won a king
>>and pawn endgame but started making random king moves and lost.   It was much
>>too obvious that the computer was throwing the game.   It seemed bad to struggle
>>so hard against the computer the whole game only to have the computer completely
>>botch it.
>>
>>Now maybe the idea of playing well on some moves and bad on others is how 1200
>>players actually play.  I prefer to have an consistant standard that I am
>>playing against - so even if the program doesn't make one move blunders (unless
>>we set the nodes really low) I am going to get a more consistent feel throughout
>>the whole game.  I feel that this is a better training method for
>>me trying to improve my game.
>>
>>It is hard to define how many bad blunders a 1200 should make.   I have played
>>1200's in tournament who drop pieces.  On the other hand, I just lost to an
>>1100 in a tournament who didn't seem to make any mistakes the whole game.  (I am
>>an A player.)
>>
>>Yes, I wish for the ability to set the think time to fractions of seconds per
>>move.
>>
>>John Coffey
>
>
>You must not have carefully read what I wrote. I never said to play random
>moves. I said to play one of the best x moves, probably based on a bell curve
>decision, and probably limiting depth for the lower settings.
>
>At setting 1200, the program might search the best 7 moves at a ply 4 depth, and
>the position scores result in:
>
>1) +0.2    9%
>2) +0.19  12%
>3) +0.14  16%
>4) -0.12  26%
>5) -0.74  16%
>6) -1.15  12%
>7) -6.74   9%
>
>as the best 7 moves with respective probabilities of being played.
>
>So, the program will often play a somewhat ok move in this position and
>occassionally play move #7. However, the ply was only 4, so move #7 might
>actually be the best move on the board.
>
>At setting 1600, the program might search the best 5 moves at a ply 6 depth, and
>the position scores result in:
>
>3) +0.31   8%
>2) +0.26  23%
>1) +0.19  38%
>6) +0.07  23%
>5) -0.21   8%
>
>as the best 5 moves with respective probabilities of being played.
>
>You'll note that the order and scores of the moves has changed due to searching
>deeper ply. Additionally, there is a lesser chance of playing an inferior move
>since only the top 5 moves are examined.
>
>At setting 1650, the program might use the same algorithm as 1600, but shift the
>probabilities for a given move up:
>
>3) +0.31  11%
>2) +0.26  37%
>1) +0.19  31%
>6) +0.07  16%
>5) -0.21   5%
>
>Yes, there is randomness in this approach, but it is not linear, nor is it based
>off random extremely bad moves.
>
>Additionally, the scores of the x moves could play a part in the percentages as
>well.
>
>KarinsDad :)

I have thought about the very same thing for years now.

My concern about this is that I don't think that it will produce the desired
effect.  (Or even if it produced the desired effect, I am not sure that it is
the best approach.)

First of all there are going to be several places in a game where only 1 move
(or maybe 2) prevents total loss.  That means you have to put in some
criteria that says don't make a totally losing move (as you said.)  This
criteria might
change for different levels, but the moment it changes a little (say from don't
make a 3 point blunder to don't make a 2 point blunder) then you will have
a dramatic difference in the way the program plays (one hangs knights and the
other doesn't.)

I didn't say make random moves.  I was not totally clear on this.  I meant the
same thing you did, which is to select randomly from the best moves.

My concern is selecting randomly from a list of best moves will see the same
problem that we see with many programs:  They play really well until they
do something enormously stupid.  I saw this happen with Chessmaster 6000 and
Fritz.

My goal here was not to emulate human 1200 players but instead being able to
fine tune the ability of the computer.  Fine tuning implies that the change from
one level to the next is subtle.  The cheapest, simplest and most consistant
way to do this is to limit the number of nodes the program looks at.  I also
think that it is the most desirable approach, because it gives the user a
finite standard by which he can judge his ability.  (Also given a choice
between a program that is going to make a bad move quickly and a program
that is going to think for a long time and make a bad move then I would prefer
the former.)

Note that limiting the number of ply is NOT a good approach because of the
weakness in the endgame

Now will someone please give me a program where I can say -NNODES so that
I can experiment with this approach?  (I am writting my own program but it is
far from complete.)

Best wishes,

John Coffey



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.