one question about knowledge chess engine match one ply ?

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: one question about knowledge chess engine match one ply

Post by bob »

Uri Blass wrote:
bob wrote:
Bill Rogers wrote:When I first got involved with computer chess I was told that the greater an engine plays at ply one the better it would play at deeper plys.
Some of todays chess programs simply fail when limited to only one ply of search and evaluation. I have always wondered just how much better they would do if the author increased their playing strength on one ply.
Bill
There are pros and cons. For example, a 1-ply search will fail to see a fork (say Nxc7+ forking king and rook). You can add this to your evaluation and you will play better at 1 ply. But at a more normal 16-20 plies, you will probably play worse, because that eval term takes time, and the search will find the fork before you get to the evaluation anyway.

So it depends on what you do. Adjusting pawn weights, king safety, etc, might pay off. But there are lots of things you can add that might hurt. I ran into this in the 1986 WCCC. I can explain if you are interested...
I am not sure if you are going to play worse at long time control when you evaluate forks by static evaluation.

Is there an evidence for it?
For me, yes. Older versions of "blitz" evaluated all sorts of tactical things. As we moved to the cray, we discovered we could remove those things and still play stronger because of the extra depth gained by ripping out evaluation that is redundant. Today we are going 2x deeper than we were in 1981-1982, maybe even a couple of plies more than that. If something happens near the root of the tree, it is difficult to avoid it. But if it happens near the tips, it is likely not forced at all.
Of course search can detect forks in the first plies but search can never detect forks at the leaves of the tree and by detecting forks at the leaves
of the tree you may have more accurate evaluation.
Or not. Some forks don't work with good tactical analysis. The eval will miss these. so accuracy is not necessarily better.


Note that I do not detect forks by static evaluation but the only test to say if it is worse is something like:
"I tried and tested and it did not work" and even this only proves it for your specific engine and specific implementation.

Uri
User avatar
Bill Rogers
Posts: 3562
Joined: Thu Mar 09, 2006 3:54 am
Location: San Jose, California

Re: one question about knowledge chess engine match one ply

Post by Bill Rogers »

Robert
Of course you are correct in some of the statements you made. However, of a period of 15 years I could not get past one ply as I was unable to inplement alpha/beta so during that time I tried hundreds of different things to increase my little programs playing strength. Without changing any of the evals I went to a deeper sort and discovered that some of those functions I needed at one ply because of the 'horizon' were not necessary at depth.
I still only have one evaluation routine and work on it as I would a one ply system, with some informed considerations of course. I am sure that some of you know that my experience in programming and in chess especialy I am still considered very weak, but my little program gets a little stronger with each passing day?, month? year? Sometime progress is very slow. :D
Bill
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: one question about knowledge chess engine match one ply

Post by bob »

Bill Rogers wrote:Robert
Of course you are correct in some of the statements you made. However, of a period of 15 years I could not get past one ply as I was unable to inplement alpha/beta so during that time I tried hundreds of different things to increase my little programs playing strength. Without changing any of the evals I went to a deeper sort and discovered that some of those functions I needed at one ply because of the 'horizon' were not necessary at depth.
I still only have one evaluation routine and work on it as I would a one ply system, with some informed considerations of course. I am sure that some of you know that my experience in programming and in chess especialy I am still considered very weak, but my little program gets a little stronger with each passing day?, month? year? Sometime progress is very slow. :D
Bill
I have always thought of it like this: "Evaluation is just a poor substitute for accurate search". If you can search deep enough, no evaluation is needed at all. That being said, there are things that help, clearly, and some that hurt, such as the pawn scoring issue we had in 1986 that almost lost the WCCC for us...
Uri Blass
Posts: 10282
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: one question about knowledge chess engine match one ply

Post by Uri Blass »

bob wrote:
Bill Rogers wrote:Robert
Of course you are correct in some of the statements you made. However, of a period of 15 years I could not get past one ply as I was unable to inplement alpha/beta so during that time I tried hundreds of different things to increase my little programs playing strength. Without changing any of the evals I went to a deeper sort and discovered that some of those functions I needed at one ply because of the 'horizon' were not necessary at depth.
I still only have one evaluation routine and work on it as I would a one ply system, with some informed considerations of course. I am sure that some of you know that my experience in programming and in chess especialy I am still considered very weak, but my little program gets a little stronger with each passing day?, month? year? Sometime progress is very slow. :D
Bill
I have always thought of it like this: "Evaluation is just a poor substitute for accurate search". If you can search deep enough, no evaluation is needed at all. That being said, there are things that help, clearly, and some that hurt, such as the pawn scoring issue we had in 1986 that almost lost the WCCC for us...
This is not correct that evaluation is just a poor substitute for accurate search.

With deep search to the end of the game and poor evaluation you can avoid losing games but you may have problems to win even against non GM players because the engine may simply choose moves that do not cause problems to the opponent and let the opponent draw easily.

Uri
chrisw

Re: one question about knowledge chess engine match one ply

Post by chrisw »

bob wrote:
Bill Rogers wrote:Robert
Of course you are correct in some of the statements you made. However, of a period of 15 years I could not get past one ply as I was unable to inplement alpha/beta so during that time I tried hundreds of different things to increase my little programs playing strength. Without changing any of the evals I went to a deeper sort and discovered that some of those functions I needed at one ply because of the 'horizon' were not necessary at depth.
I still only have one evaluation routine and work on it as I would a one ply system, with some informed considerations of course. I am sure that some of you know that my experience in programming and in chess especialy I am still considered very weak, but my little program gets a little stronger with each passing day?, month? year? Sometime progress is very slow. :D
Bill
I have always thought of it like this: "Evaluation is just a poor substitute for accurate search". If you can search deep enough, no evaluation is needed at all. That being said, there are things that help, clearly, and some that hurt, such as the pawn scoring issue we had in 1986 that almost lost the WCCC for us...
This concept, a Bob favourite for many years, is true in an absolute sense but can be rejected for current paradigm. It would only be true in a full width, no pruning, depth sufficient to see to EGTB/mate, but since such a search is effectively impossible it renders the concept meaningless and valueless.

Current paradigm is (in part) to use some form of forward pruning (null move for example) to cut back the search width. To do that requires an evaluation function of some sort. Which parts of the search tree get thrown out and which are searched is then completely dependent on the evaluation function, such that different programs will search different trees. This was the idea of CSTal of course.

So, programmers, don't be misled by Bob's favourite 'truth' ;-)
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: one question about knowledge chess engine match one ply

Post by bob »

Uri Blass wrote:
bob wrote:
Bill Rogers wrote:Robert
Of course you are correct in some of the statements you made. However, of a period of 15 years I could not get past one ply as I was unable to inplement alpha/beta so during that time I tried hundreds of different things to increase my little programs playing strength. Without changing any of the evals I went to a deeper sort and discovered that some of those functions I needed at one ply because of the 'horizon' were not necessary at depth.
I still only have one evaluation routine and work on it as I would a one ply system, with some informed considerations of course. I am sure that some of you know that my experience in programming and in chess especialy I am still considered very weak, but my little program gets a little stronger with each passing day?, month? year? Sometime progress is very slow. :D
Bill
I have always thought of it like this: "Evaluation is just a poor substitute for accurate search". If you can search deep enough, no evaluation is needed at all. That being said, there are things that help, clearly, and some that hurt, such as the pawn scoring issue we had in 1986 that almost lost the WCCC for us...
This is not correct that evaluation is just a poor substitute for accurate search.

With deep search to the end of the game and poor evaluation you can avoid losing games but you may have problems to win even against non GM players because the engine may simply choose moves that do not cause problems to the opponent and let the opponent draw easily.

Uri
Silly. Let's get back to reality. If I can search deeply enough, I will _not_ be making moves that let my opponent escape with a draw. If the game is drawn from move one, so what? I don't know how to play the game hoping my opponent makes a mistake and I don't. But I do know how, with search, to not make any mistakes from my perspective, again given deep enough search. You are not going to be able to come up with "knowledge" to solve this problem, or else you would be able to do so already and never lose a drawn game nor never draw a won game. But evaluation is not good enough to reach that level, nor will it ever be so.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: one question about knowledge chess engine match one ply

Post by bob »

chrisw wrote:
bob wrote:
Bill Rogers wrote:Robert
Of course you are correct in some of the statements you made. However, of a period of 15 years I could not get past one ply as I was unable to inplement alpha/beta so during that time I tried hundreds of different things to increase my little programs playing strength. Without changing any of the evals I went to a deeper sort and discovered that some of those functions I needed at one ply because of the 'horizon' were not necessary at depth.
I still only have one evaluation routine and work on it as I would a one ply system, with some informed considerations of course. I am sure that some of you know that my experience in programming and in chess especialy I am still considered very weak, but my little program gets a little stronger with each passing day?, month? year? Sometime progress is very slow. :D
Bill
I have always thought of it like this: "Evaluation is just a poor substitute for accurate search". If you can search deep enough, no evaluation is needed at all. That being said, there are things that help, clearly, and some that hurt, such as the pawn scoring issue we had in 1986 that almost lost the WCCC for us...
This concept, a Bob favourite for many years, is true in an absolute sense but can be rejected for current paradigm. It would only be true in a full width, no pruning, depth sufficient to see to EGTB/mate, but since such a search is effectively impossible it renders the concept meaningless and valueless.

Current paradigm is (in part) to use some form of forward pruning (null move for example) to cut back the search width. To do that requires an evaluation function of some sort. Which parts of the search tree get thrown out and which are searched is then completely dependent on the evaluation function, such that different programs will search different trees. This was the idea of CSTal of course.

So, programmers, don't be misled by Bob's favourite 'truth' ;-)
In the context I gave it, it is an _absolute_ truth, not conjecture. And the original statement, "evaluation is a poor substitute for search" is also absolute truth. Otherwise why don't you write a program with _no_ searching? Evaluation is code written to pick up where the search leaves off and try to make some basic sense of the resulting positions for comparison purposes. But we _know_ it is beyond "highly inaccurate". Otherwise everyone would be quite happy with 1 ply searches...
Uri Blass
Posts: 10282
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: one question about knowledge chess engine match one ply

Post by Uri Blass »

bob wrote:
Uri Blass wrote:
bob wrote:
Bill Rogers wrote:Robert
Of course you are correct in some of the statements you made. However, of a period of 15 years I could not get past one ply as I was unable to inplement alpha/beta so during that time I tried hundreds of different things to increase my little programs playing strength. Without changing any of the evals I went to a deeper sort and discovered that some of those functions I needed at one ply because of the 'horizon' were not necessary at depth.
I still only have one evaluation routine and work on it as I would a one ply system, with some informed considerations of course. I am sure that some of you know that my experience in programming and in chess especialy I am still considered very weak, but my little program gets a little stronger with each passing day?, month? year? Sometime progress is very slow. :D
Bill
I have always thought of it like this: "Evaluation is just a poor substitute for accurate search". If you can search deep enough, no evaluation is needed at all. That being said, there are things that help, clearly, and some that hurt, such as the pawn scoring issue we had in 1986 that almost lost the WCCC for us...
This is not correct that evaluation is just a poor substitute for accurate search.

With deep search to the end of the game and poor evaluation you can avoid losing games but you may have problems to win even against non GM players because the engine may simply choose moves that do not cause problems to the opponent and let the opponent draw easily.

Uri
Silly. Let's get back to reality. If I can search deeply enough, I will _not_ be making moves that let my opponent escape with a draw. If the game is drawn from move one, so what? I don't know how to play the game hoping my opponent makes a mistake and I don't. But I do know how, with search, to not make any mistakes from my perspective, again given deep enough search. You are not going to be able to come up with "knowledge" to solve this problem, or else you would be able to do so already and never lose a drawn game nor never draw a won game. But evaluation is not good enough to reach that level, nor will it ever be so.
evaluation can clearly help you to make better moves in a drawn positions and not all the draw moves are trhe same.

Some cause practical problems to the opponent and some do not cause practical problems.

with only search you may make moves that allow the non perfect opponent to get a positional advanage that is not enough to win the game and later force a draw when good evaluation can prevent it by moves that cause practical problems.

Uri
BubbaTough
Posts: 1154
Joined: Fri Jun 23, 2006 5:18 am

Re: one question about knowledge chess engine match one ply

Post by BubbaTough »

evaluation can clearly help you to make better moves in a drawn positions and not all the draw moves are trhe same.

Some cause practical problems to the opponent and some do not cause practical problems.

with only search you may make moves that allow the non perfect opponent to get a positional advanage that is not enough to win the game and later force a draw when good evaluation can prevent it by moves that cause practical problems.
I am not sure what you mean. An accurate eval of a drawn position means the eval score is 0, and a normal search generally does a poor job of winning drawn positions in those situations (such as win tablebase is giving accurate eval of 0). For example, if your eval says score of 0 in drawn KRB vs. KR position, only great search will find cheapo wins for you. In these cases, it may help to have slightly inaccurate eval (such as a slight positive for the side with KRB pushing opponent king toward edge) but this absolutely needs to be combined with deep search. And when you give positive eval for drawn KRB v. KR positions, your inaccurate eval of that position risks tricking you into transitioning into it when you shouldn't. When you are in a drawn position and want to look for cheapos, you can invoke a different type of search (a special cheapo search) if you want, but that does not require an eval that distinguishes between different shades of drawn, just one that distinguishes on a gross level between clear draw/maybe win

-Sam
Uri Blass
Posts: 10282
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: one question about knowledge chess engine match one ply

Post by Uri Blass »

BubbaTough wrote:
evaluation can clearly help you to make better moves in a drawn positions and not all the draw moves are trhe same.

Some cause practical problems to the opponent and some do not cause practical problems.

with only search you may make moves that allow the non perfect opponent to get a positional advanage that is not enough to win the game and later force a draw when good evaluation can prevent it by moves that cause practical problems.
I am not sure what you mean. An accurate eval of a drawn position means the eval score is 0, and a normal search generally does a poor job of winning drawn positions in those situations (such as win tablebase is giving accurate eval of 0). For example, if your eval says score of 0 in drawn KRB vs. KR position, only great search will find cheapo wins for you. In these cases, it may help to have slightly inaccurate eval (such as a slight positive for the side with KRB pushing opponent king toward edge) but this absolutely needs to be combined with deep search. And when you give positive eval for drawn KRB v. KR positions, your inaccurate eval of that position risks tricking you into transitioning into it when you shouldn't. When you are in a drawn position and want to look for cheapos, you can invoke a different type of search (a special cheapo search) if you want, but that does not require an eval that distinguishes between different shades of drawn, just one that distinguishes on a gross level between clear draw/maybe win

-Sam
I do not consider evaluation that gives 0.00 to drawn KRB vs KR positions to be good evaluation.

An evaluation that gives different scores to different draws may be practically better.

Uri