Search or Evaluation?

You can discuss all aspects of programming and technical matters here.

Moderators: Harvey Williamson, Watchman

User avatar
Mark Uniacke
Hiarcs Author
Posts: 1459
Joined: Sun Jul 29, 2007 1:32 pm
Location: United Kingdom
Contact:

Re: Mexico - Zappa 5.5 v Rybka 4.5- Zappa wins $10,000

Post by Mark Uniacke »

Uri Blass wrote:Hi Ed,
I do not see it as unlikely that there are big difference between programmers in speed and in search implementation.

I know that movei has slightly higher rating than Prodeo based on the ccrl list and I think that it may be possible to improve speed at least by a factor of 2 by better data structure.

Another problem of movei is expensive evaluation when part of it is probably counter productive when I did not investigate exactly which parts are counter productive.

If you are 20 times slower than the opponents you may have problems to get to the top but if you are 3 times slower than the opponents than things are different and even rybka beta slowed down by a factor of 3 is better than movei and prodeo(and I think that it is even correct for the 32 bit version of tybka) .

When we talk about late move reductions I do not believe about constant improvement from it and it is possible that it may be possible to earn even 200 elo from late move reduction if you find the right conditions to reduce.

I got the code of strelka that is very similiar to rybka beta.
It is clear that strelka is small and fast relative to movei.

It is also clear that strelka's evaluation is small and I simply doubt if this small evaluation is better than prodeo's evaluation or movei's evaluation
if you assume same speed.


Strelka is clearly faster than movei and it is almost 3 times faster in nodes per second based on my tests.

I guess the relative advantages of strelka relative to movei is basically in better data structure and some search implementations(search implementation can be other things than history reductions and it is is clearly easier to know what you do wrong then to do it right).

Uri
Hi Uri,

You have made some very interesting points.

I have not really heard much of this Stelka program, who programs that?

You say its similar to Rybka, in which ways?

Does it do anything new or is it an efficient implmentation of the known state of the art approaches?
Best wishes,
Mark

https://www.hiarcs.com
Uri Blass
Member
Posts: 82
Joined: Sun Aug 12, 2007 1:40 pm

Post by Uri Blass »

I agree that search is more important than evaluation in the meaning that most chess programs can expect more elo improvement from search improvements.

I can also say that part of the improvement in search is going to reduce results in test suites and I am talking about the idea to prune based on evaluation when the remaining depth is small.

The problem is that test suites include sacrifices and the program may not find the sacrifice fast in case of doing aggresive pruning based on evaluation but in quiet positions when there is no important sacrifice it is going to search deeper and it is more important in games.

Uri
Uri Blass
Member
Posts: 82
Joined: Sun Aug 12, 2007 1:40 pm

Re: Mexico - Zappa 5.5 v Rybka 4.5- Zappa wins $10,000

Post by Uri Blass »

Mark Uniacke wrote:
Uri Blass wrote:Hi Ed,
I do not see it as unlikely that there are big difference between programmers in speed and in search implementation.

I know that movei has slightly higher rating than Prodeo based on the ccrl list and I think that it may be possible to improve speed at least by a factor of 2 by better data structure.

Another problem of movei is expensive evaluation when part of it is probably counter productive when I did not investigate exactly which parts are counter productive.

If you are 20 times slower than the opponents you may have problems to get to the top but if you are 3 times slower than the opponents than things are different and even rybka beta slowed down by a factor of 3 is better than movei and prodeo(and I think that it is even correct for the 32 bit version of tybka) .

When we talk about late move reductions I do not believe about constant improvement from it and it is possible that it may be possible to earn even 200 elo from late move reduction if you find the right conditions to reduce.

I got the code of strelka that is very similiar to rybka beta.
It is clear that strelka is small and fast relative to movei.

It is also clear that strelka's evaluation is small and I simply doubt if this small evaluation is better than prodeo's evaluation or movei's evaluation
if you assume same speed.


Strelka is clearly faster than movei and it is almost 3 times faster in nodes per second based on my tests.

I guess the relative advantages of strelka relative to movei is basically in better data structure and some search implementations(search implementation can be other things than history reductions and it is is clearly easier to know what you do wrong then to do it right).

Uri
Hi Uri,

You have made some very interesting points.

I have not really heard much of this Stelka program, who programs that?

You say its similar to Rybka, in which ways?

Does it do anything new or is it an efficient implmentation of the known state of the art approaches?
The analysis is similiar to rybka in a way that cannot be considered as an accident.

For example the analysis of king vs king has the same pv and evaluations as rybka(both do not have exactly 0.00 at small depths).

I also analyzed some closed drawn fortress positions(all the pawn blocked when one side has material advantage) and
found little difference in the evaluation(no difference or difference of 0.02 pawns).

finally strelka and rybka has the same type of strange behaviour or bugs

See the big drop in evaluation of strelka and rybka beta that other programs do not show.

New game - Glaurung Lodz 2007
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/R1BQKB1R w KQkq - 0 1

Analysis by Strelka 1.8 UCI:

1.e2-e3
-+ (-2.66) Depth: 1 00:00:00
1.d2-d3 Nb8-c6
-+ (-3.03) Depth: 2 00:00:00
1.d2-d3 Nb8-c6 2.Bc1-f4
-+ (-2.84) Depth: 3 00:00:00
1.d2-d4 Nb8-c6 2.d4-d5 Nc6-e5
-+ (-3.21) Depth: 4 00:00:00
1.d2-d4 Ng8-f6 2.Bc1-f4 Nb8-c6 3.Qd1-d3
-+ (-3.14) Depth: 5 00:00:00
1.d2-d4 Ng8-f6 2.d4-d5 e7-e6 3.Bc1-g5 Bf8-c5
-+ (-3.25) Depth: 6 00:00:00 6kN
1.d2-d4 Ng8-f6 2.d4-d5 d7-d6 3.Bc1-f4 Nf6-g4 4.Qd1-d4
-+ (-7.30) Depth: 7 00:00:00 31kN
1.d2-d4 e7-e6 2.Bc1-f4 c7-c5 3.d4xc5 Qd8-a5+ 4.Bf4-d2 Qa5xc5 5.c2-c3
-+ (-7.25) Depth: 8 00:00:00 555kN
1.d2-d4 e7-e6 2.d4-d5 e6xd5 3.Qd1xd5 Bf8-e7 4.Qd5-e4 Ng8-f6 5.Qe4-d3
-+ (-7.25) Depth: 9 00:00:01 926kN

(, 12.10.2007)

New game - Glaurung Lodz 2007
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/R1BQKB1R w KQkq - 0 1

Analysis by Rybka 1.0 Beta 32-bit:

1.d2-d4
-+ (-3.14) Depth: 3 00:00:00
1.d2-d4
-+ (-3.23) Depth: 4 00:00:00
1.d2-d4 Ng8-f6
-+ (-7.30) Depth: 5 00:00:00
1.d2-d4 c7-c6 2.Bc1-f4
-+ (-7.30) Depth: 6 00:00:00 120kN
1.d2-d4 c7-c6 2.Bc1-f4 Ng8-f6
-+ (-7.30) Depth: 7 00:00:00 190kN
1.d2-d4 c7-c6 2.Bc1-f4 Qd8-b6 3.Bf4-c1
-+ (-7.30) Depth: 8 00:00:01 702kN

(, 12.10.2007)


Uri
Ryan Benitez
Member
Posts: 6
Joined: Fri Aug 31, 2007 5:32 am

Post by Ryan Benitez »

Well both search and eval have to be very important but in the end everything you spend cpu time on in eval has to do something for your search. Otherwise you are losing cpu time in a time sensitive game. I think most strong engines prune or reduce more than just Null move, futility pruning, and LMR. For this I use data from eval (not just score) to make search decisions. This is in a way both search and eval. In the end it comes back to search. We are searching for a solution not evaluating for it. Eval just helps lead the hunt.
User avatar
ed
Member
Posts: 77
Joined: Tue Oct 02, 2007 8:54 pm
Location: Netherlands
Contact:

Post by ed »

Mark Uniacke wrote:I agree they are the two general purpose major advances although there are other ones that also offer extra Elo, like futility or even eliminating losing captures from the quiescence search. There are also many other search improvements which overlap with 1 & 2 and hence are much less effective, but without 1&2 existing then these other search improvements would be effective.

Also although not a general technique I have found search extensions to be extremely effective and I can see how implementation of search extensions could have another big impact on the strength (or otherwise) of a chess program.

I don't think it is possible to rely on the displayed search depths because some programs don't display their true depths. Additionally as you well know there are many factors, sometimes it is not the iteration depth but the importance of not pruning a critical new line of play that is key.

15 years ago a number of us were guilty of tuning against position test sets which were usually tactical. This was compounded because important publications like CSS used to run features on new programs performing against the BT test or the LCT2 test or ...

So it also became even commercially important to do well in these test sets. Of course there is a very loose relationship between test positions and chess strength in games and I think understanding the reasons for that are very important in understanding where chess strength in games comes from.

It is your last statement where we disagree. It is clear to me that the big + and - in Elo comes from search and the gradual accumulation of rating points comes from eval. I believe the two mentioned search breakthroughs above can be implemented in various different ways and the range of strength improvement is still quite large.

So I think there is plenty of room still to improve chess programs in both search and eval but I believe ultimately more strength comes from the search than it does from the eval.
Hi Mark and Uri,

Our discussion is as old as the birth of computer chess and we should keep it going and redo at times until we are in agreement.

My take, let's evaluate some history:

Richard Lang ruled the mid 80's till about 1992. Richard has admitted that his domination mainly came from his advantage of the better hardware he got from Mephisto. IOW: search dominance.

1991/92: Tasc came with the ChessMachine hardware 2 times faster than his hardware, Richard lost his world-title. Search dominance again.

1993/1994: Intel enters the scene, the Pentium, the end of the dedicated industry. You win the 1993 WCCC in Munich. :wink:

1996: Rebel8 tops the SSDF with a +60 elo gap. What was Rebel8 about? Search improvements mainly. Search rules.

1998: Fritz5, the introduction of a new concept, Nullmove. Frans rules the computer chess world for a couple years. Search, search, search...

Eventually other programs catch up, Fritz loses its superiority.

2000/2001: Shredder discovers LMR and tops all rating lists for years to come. Search did the trick again...

But, but, but... and this is crucial, eventually other programs catch up, ending the Shredder hegemony.

We are now living in the Rybka era, nobody yet knows its secret. Search only? The 2 of you seem to suggest it.

I disagree.

Why?

Although (I think) it's a proven fact that search has ruled the computer chess area (see above history) from its early existence till now the tendency can be quite misleading for the future, it certainly can't be automatically assumed as the 2 of you do.

My thesis: while it is certainly true that implementation matters it's wrong to assume this can explain the big difference between Rybka and the other tops. It's like saying Vas is a search genius, the rest is incompetent. I don't buy that, even if it is true eventually others will catch up.

Why claim the success of Rybka is search? There is no proof of that. Maybe your search (and others) is better than Rybka, who can tell?

Nowadays with ease the current tops are searching at 14-16 plies covering about all possible tactics, so what is left? IMHO, asking the question is answering the question.

Food for thought?

Ed
Uri Blass
Member
Posts: 82
Joined: Sun Aug 12, 2007 1:40 pm

Post by Uri Blass »

Hi Ed,
I will believe that search is not important when hardware is going to stop to be important.

If you are going to earn only 10 elo by doubling the speed then I am going to accept that search is not important but as long as programs earn at least 50 elo from doubling the speed I am going to consider search as important.

Of course if you found all the good search tricks then the evaluation is more important but I do not think that people found all the good search tricks and late move reductions is something that clearly can be improved by better conditions when to reduce.

I can add that I looked at the code of strelka that is similiar to rybka beta and it clearly has a very small evaluation function(only few hundreds of lines) and it is clearly a fast searcher in nodes per second.

I can also add that
Larry kaufman believes that the reason that zappa is better at long time control(relative to rybka) is that zappa has more endgame knowledge and we could see that rybka missed wins because of lack of knowledge in endgames in the games against zappa.

Uri
User avatar
mclane
Senior Member
Posts: 1605
Joined: Sun Jul 29, 2007 9:04 am
Location: Luenen, germany, US of europe
Contact:

Post by mclane »

kaufmann can IMO say many things.
but fact is that zappa has only those chances when it uses 4 or 8 CPU's.
with 2 or 1 zappa has no chance against rybka.
so rybkas implementation is either not so good or the advantage of rybkas evals is eaten by zappas search progress in scaling from 1 to 8 cpu's.


IMO in ed's historical overview there is ONE tiny mistake:
mephisto III has IMO nullmove. and was world chess champion of 1984.
commercial world computer chess champion.

nitsche used a 3 stage search and IMO used nullmove.
LONG before morsch came to the idea, because it was in the first mephisto III 8 bit machines that appeared ~1982.

the way Nitsche+Hennes program "worked" is explained here:
http://www.schach-computer.info/wiki/in ... _3-Projekt

the difference to morsch is that nitsche used this idea in a software only doing 1-3 NPS. or 4-5 on the 68000 hardware (same hardware lang got 1985 for mephisto amsterdam).

as far as i remember Nitsche told 1986 on championship in cologne about his new search ideas. but maybe nitsche was too much ahead of his time and nobody recognized it.

he said he also sent his ideas in an article to ICCA/ICGA (i guess he said he sent it to marsland) but he meant it was never published or recognized.
What seems like a fairy tale today may be reality tomorrow.
Here we have a fairy tale of the day after tomorrow....
User avatar
ed
Member
Posts: 77
Joined: Tue Oct 02, 2007 8:54 pm
Location: Netherlands
Contact:

Post by ed »

mclane wrote:kaufmann can IMO say many things.
but fact is that zappa has only those chances when it uses 4 or 8 CPU's.
with 2 or 1 zappa has no chance against rybka.
so rybkas implementation is either not so good or the advantage of rybkas evals is eaten by zappas search progress in scaling from 1 to 8 cpu's.


IMO in ed's historical overview there is ONE tiny mistake:
mephisto III has IMO nullmove. and was world chess champion of 1984.
commercial world computer chess champion.

nitsche used a 3 stage search and IMO used nullmove.
LONG before morsch came to the idea, because it was in the first mephisto III 8 bit machines that appeared ~1982.

the way Nitsche+Hennes program "worked" is explained here:
http://www.schach-computer.info/wiki/in ... _3-Projekt

the difference to morsch is that nitsche used this idea in a software only doing 1-3 NPS. or 4-5 on the 68000 hardware (same hardware lang got 1985 for mephisto amsterdam).

as far as i remember Nitsche told 1986 on championship in cologne about his new search ideas. but maybe nitsche was too much ahead of his time and nobody recognized it.

he said he also sent his ideas in an article to ICCA/ICGA (i guess he said he sent it to marsland) but he meant it was never published or recognized.
It's just static eval criteria, no nullmove. Nullmove in the first plies does nothing, its strength is demonstrated at deeper depths. No nullmove possible at 1-3 NPS.

Ed
User avatar
Steve B
Site Admin
Posts: 10146
Joined: Sun Jul 29, 2007 10:02 am
Location: New York City USofA
Contact:

Post by Steve B »

mclane wrote:

IMO in ed's historical overview there is ONE tiny mistake:
mephisto III has IMO nullmove. and was world chess champion of 1984.
commercial world computer chess champion.
.

actually Thor in 1984 there were FOUR Co-World Champions
Spracklens(Fidelity)
Lang(Psion)
Rathsman(Conchess)
Nitsche+Hennes(Mephisto)

then in 1985 and every year thereafter it was Mephisto until the last dedicated won in 1992(Ed Schroeder)
well not really a decicated but a PC Card by Tasc

it should also be noted that the 1993 WMCCC was won by Hiarcs

Best
Steve
Last edited by Steve B on Sun Oct 14, 2007 10:05 pm, edited 1 time in total.
User avatar
mclane
Senior Member
Posts: 1605
Joined: Sun Jul 29, 2007 9:04 am
Location: Luenen, germany, US of europe
Contact:

Post by mclane »

yes steve. but nitsche+henne won with a commercial dedicated machine.
hiarcs in 1993 won software title.
its clear that 1984 4 guys won. but only 1 team had a commercial dedicated unit doing it.

i still believe saitek made a big mistake not taking hiarcs for their sparc-module.
the history of dedicated chess computers would have developed different if saitek would have made ANOTHER program for this strong hardware.

see also:
http://www.thorstenczub.de/hiarcs9.html
Last edited by mclane on Sun Oct 14, 2007 10:16 pm, edited 2 times in total.
What seems like a fairy tale today may be reality tomorrow.
Here we have a fairy tale of the day after tomorrow....
User avatar
Steve B
Site Admin
Posts: 10146
Joined: Sun Jul 29, 2007 10:02 am
Location: New York City USofA
Contact:

Post by Steve B »

mclane wrote:yes steve. but nitsche+henne won with a commercial dedicated machine.
hiarcs in 1993 won software and amateur title.
its clear that 1984 4 guys won. but only 1 team had a commercial dedicated unit doing it..

ok i see what you mean
nitsche+henne were the only ones using a computer that was commercially available ..at the time of the tournament

mclane wrote: i still believe saitek made a big mistake not taking hiarcs for their sparc-module.
the history of dedicated chess computers would have developed different if saitek would have made ANOTHER program for this strong hardware.

now THAT would be something
Hiarcs in a dedicated computer
:shock:

sadly i think i am too old to see such a dream come true
perhaps for the younger kids like you and Harvey
nay.. i am afraid i will be long gone before this comes to past
sigh..


Near Death Regards
Steve
Last edited by Steve B on Sun Oct 14, 2007 10:43 pm, edited 2 times in total.
Uri Blass
Member
Posts: 82
Joined: Sun Aug 12, 2007 1:40 pm

Post by Uri Blass »

mclane wrote:kaufmann can IMO say many things.
but fact is that zappa has only those chances when it uses 4 or 8 CPU's.
with 2 or 1 zappa has no chance against rybka.
so rybkas implementation is either not so good or the advantage of rybkas evals is eaten by zappas search progress in scaling from 1 to 8 cpu's.


IMO in ed's historical overview there is ONE tiny mistake:
mephisto III has IMO nullmove. and was world chess champion of 1984.
commercial world computer chess champion.

nitsche used a 3 stage search and IMO used nullmove.
LONG before morsch came to the idea, because it was in the first mephisto III 8 bit machines that appeared ~1982.

the way Nitsche+Hennes program "worked" is explained here:
http://www.schach-computer.info/wiki/in ... _3-Projekt

the difference to morsch is that nitsche used this idea in a software only doing 1-3 NPS. or 4-5 on the 68000 hardware (same hardware lang got 1985 for mephisto amsterdam).

as far as i remember Nitsche told 1986 on championship in cologne about his new search ideas. but maybe nitsche was too much ahead of his time and nobody recognized it.

he said he also sent his ideas in an article to ICCA/ICGA (i guess he said he sent it to marsland) but he meant it was never published or recognized.
There is another possibility:

Rybka's search advantage is so big that zappa's superior evaluation is not enough compensation on one cpu.

When zappa use many processors it can close part of rybka's advantage in the search thanks to more efficient use of many processors and the superior evaluation of zappa can win.

Uri
User avatar
Mark Uniacke
Hiarcs Author
Posts: 1459
Joined: Sun Jul 29, 2007 1:32 pm
Location: United Kingdom
Contact:

Post by Mark Uniacke »

ed wrote:
Mark Uniacke wrote:I agree they are the two general purpose major advances although there are other ones that also offer extra Elo, like futility or even eliminating losing captures from the quiescence search. There are also many other search improvements which overlap with 1 & 2 and hence are much less effective, but without 1&2 existing then these other search improvements would be effective.

Also although not a general technique I have found search extensions to be extremely effective and I can see how implementation of search extensions could have another big impact on the strength (or otherwise) of a chess program.

I don't think it is possible to rely on the displayed search depths because some programs don't display their true depths. Additionally as you well know there are many factors, sometimes it is not the iteration depth but the importance of not pruning a critical new line of play that is key.

15 years ago a number of us were guilty of tuning against position test sets which were usually tactical. This was compounded because important publications like CSS used to run features on new programs performing against the BT test or the LCT2 test or ...

So it also became even commercially important to do well in these test sets. Of course there is a very loose relationship between test positions and chess strength in games and I think understanding the reasons for that are very important in understanding where chess strength in games comes from.

It is your last statement where we disagree. It is clear to me that the big + and - in Elo comes from search and the gradual accumulation of rating points comes from eval. I believe the two mentioned search breakthroughs above can be implemented in various different ways and the range of strength improvement is still quite large.

So I think there is plenty of room still to improve chess programs in both search and eval but I believe ultimately more strength comes from the search than it does from the eval.
Hi Mark and Uri,

Our discussion is as old as the birth of computer chess and we should keep it going and redo at times until we are in agreement.

My take, let's evaluate some history:

Richard Lang ruled the mid 80's till about 1992. Richard has admitted that his domination mainly came from his advantage of the better hardware he got from Mephisto. IOW: search dominance.

1991/92: Tasc came with the ChessMachine hardware 2 times faster than his hardware, Richard lost his world-title. Search dominance again.

1993/1994: Intel enters the scene, the Pentium, the end of the dedicated industry. You win the 1993 WCCC in Munich. :wink:

1996: Rebel8 tops the SSDF with a +60 elo gap. What was Rebel8 about? Search improvements mainly. Search rules.

1998: Fritz5, the introduction of a new concept, Nullmove. Frans rules the computer chess world for a couple years. Search, search, search...

Eventually other programs catch up, Fritz loses its superiority.

2000/2001: Shredder discovers LMR and tops all rating lists for years to come. Search did the trick again...

But, but, but... and this is crucial, eventually other programs catch up, ending the Shredder hegemony.

We are now living in the Rybka era, nobody yet knows its secret. Search only? The 2 of you seem to suggest it.

I disagree.

Why?

Although (I think) it's a proven fact that search has ruled the computer chess area (see above history) from its early existence till now the tendency can be quite misleading for the future, it certainly can't be automatically assumed as the 2 of you do.

My thesis: while it is certainly true that implementation matters it's wrong to assume this can explain the big difference between Rybka and the other tops. It's like saying Vas is a search genius, the rest is incompetent. I don't buy that, even if it is true eventually others will catch up.

Why claim the success of Rybka is search? There is no proof of that. Maybe your search (and others) is better than Rybka, who can tell?

Nowadays with ease the current tops are searching at 14-16 plies covering about all possible tactics, so what is left? IMHO, asking the question is answering the question.

Food for thought?

Ed
Hi Ed,

I am not saying search is the only reason but that search is more significant in the Elo jump than other factors.

Thanks for the interesting history which in general I agree with but I should add for clarification...

In 1989 I was exposed to the null move in HIARCS' first official computer tournament at the Olympiad in London. John Hamlen had written his program Woodpusher as part of his M.Sc project investigating the null move :!: and although Woodpusher did not do well in that tournament I had the good fortune to discuss null move with John and reading his project which interested me very much. John and I had many discussions on computer chess over the following months :D

That Olympiad probably had an impact on you too and not only because Rebel won Gold above Mephisto Lyon and Fidelity X for the first time but because there was a program there running quite fast (at that time in history) called E6P (so named because it could reach 6 ply full width!) running on an Acorn ARM based machine. Jan was operating Rebel at the tournament as you know and I noticed Jan take a keen interest in this new machine. :shock:

Frans was using null move in Fritz 2 in Madrid 1992 (I am not sure about Fritz 1). I am sure you remember that tournament fondly :wink:

I remember at Madrid having a discussion with a few programmers including Richard about what on earth was Fritz 2 doing to reach the depths it was attaining, this seed of interest made me investigate search enhancements carefully after Madrid and it was then that I began re-investigating the null move. It was not long before HIARCS began using null moves too and by Christmas 1992 I had a working implementation which gave a big jump over Hiarcs 1 which had only been released shortly before. I had much fun playing my Hiarcs 1.n against Mephisto Risc 1 in late 1992, early 1993 and that sort of closes the circle on the E6P story :wink:

Even so, the null move idea still evolved and my implementation today is much better than it was initially and so it can be for other ideas. We can all profit from these techniques but some gain more than others if they find new ways to exploit it.

Rebel 7/8/9 and Hiarcs 5/6/7 battled hard in those years and my big jump to the top of the rating lists happened partly because of a search change to Hiarcs 5/6 which led at one stage to a 71 Elo lead on the SSDF. I recall Rebel and Hiarcs exchanging the lead on the SSDF list a number of times in those years.

So we agree the impact search has made on computer chess progress is clear. Now we diverge on what might be the reason for new progress in the field.

Clearly we have good search enhancements on cut nodes and all nodes, but that does not mean they cannot be improved and enhanced or in fact that another technique might prove to be superior or complementary.

Meanwhile there can be no doubt that progress is made positionally irrespective of search but I do not believe it can be the reason for a breakthrough jump in chess strength but rather a steady climb.

But wait!

Maybe there is a middle way, a third avenue of improvement which sort of falls between the two pillars of search and evaluation and that is search intelligence. Something both of us have practiced in our programs for years but maybe not properly exploited. The ability of the eval to have a more significant impact on the search than traditionally has been the case. I think this area has been relatively unexplored and offers interesting potential. :idea:
Best wishes,
Mark

https://www.hiarcs.com
User avatar
Tony
Member
Posts: 11
Joined: Fri Oct 12, 2007 9:48 am

Post by Tony »

ed wrote:
Mark Uniacke wrote:I agree they are the two general purpose major advances although there are other ones that also offer extra Elo, like futility or even eliminating losing captures from the quiescence search. There are also many other search improvements which overlap with 1 & 2 and hence are much less effective, but without 1&2 existing then these other search improvements would be effective.

Also although not a general technique I have found search extensions to be extremely effective and I can see how implementation of search extensions could have another big impact on the strength (or otherwise) of a chess program.

I don't think it is possible to rely on the displayed search depths because some programs don't display their true depths. Additionally as you well know there are many factors, sometimes it is not the iteration depth but the importance of not pruning a critical new line of play that is key.

15 years ago a number of us were guilty of tuning against position test sets which were usually tactical. This was compounded because important publications like CSS used to run features on new programs performing against the BT test or the LCT2 test or ...

So it also became even commercially important to do well in these test sets. Of course there is a very loose relationship between test positions and chess strength in games and I think understanding the reasons for that are very important in understanding where chess strength in games comes from.

It is your last statement where we disagree. It is clear to me that the big + and - in Elo comes from search and the gradual accumulation of rating points comes from eval. I believe the two mentioned search breakthroughs above can be implemented in various different ways and the range of strength improvement is still quite large.

So I think there is plenty of room still to improve chess programs in both search and eval but I believe ultimately more strength comes from the search than it does from the eval.
Hi Mark and Uri,

Our discussion is as old as the birth of computer chess and we should keep it going and redo at times until we are in agreement.

My take, let's evaluate some history:

Richard Lang ruled the mid 80's till about 1992. Richard has admitted that his domination mainly came from his advantage of the better hardware he got from Mephisto. IOW: search dominance.

1991/92: Tasc came with the ChessMachine hardware 2 times faster than his hardware, Richard lost his world-title. Search dominance again.

1993/1994: Intel enters the scene, the Pentium, the end of the dedicated industry. You win the 1993 WCCC in Munich. :wink:

1996: Rebel8 tops the SSDF with a +60 elo gap. What was Rebel8 about? Search improvements mainly. Search rules.

1998: Fritz5, the introduction of a new concept, Nullmove. Frans rules the computer chess world for a couple years. Search, search, search...

Eventually other programs catch up, Fritz loses its superiority.

2000/2001: Shredder discovers LMR and tops all rating lists for years to come. Search did the trick again...

But, but, but... and this is crucial, eventually other programs catch up, ending the Shredder hegemony.

We are now living in the Rybka era, nobody yet knows its secret. Search only? The 2 of you seem to suggest it.

I disagree.

Why?

Although (I think) it's a proven fact that search has ruled the computer chess area (see above history) from its early existence till now the tendency can be quite misleading for the future, it certainly can't be automatically assumed as the 2 of you do.

My thesis: while it is certainly true that implementation matters it's wrong to assume this can explain the big difference between Rybka and the other tops. It's like saying Vas is a search genius, the rest is incompetent. I don't buy that, even if it is true eventually others will catch up.

Why claim the success of Rybka is search? There is no proof of that. Maybe your search (and others) is better than Rybka, who can tell?

Nowadays with ease the current tops are searching at 14-16 plies covering about all possible tactics, so what is left? IMHO, asking the question is answering the question.

Food for thought?

Ed
I vote that Rybka has better evaluation too, but maybe my motives are not so good.

I find it easier to admit he has a better eval because he's a better chessplayer than to admit he has a better search because he's a better programmer ;)

More seriously, with current hardware I think they are more related than ever. Evaluation can use the improved power to calculate certain stuff, and therefor throw away big part of the tree. OTOH, evaluation can be more speculative, because deep searches can correct it.

In XiniX, I use the first fe with endgames, where I try to recognize won endgames (more than just square of the pawn, but related). But also for fe static mate detection.
The second seems to be fe how Junior looks at king attacks.

Tony
User avatar
mclane
Senior Member
Posts: 1605
Joined: Sun Jul 29, 2007 9:04 am
Location: Luenen, germany, US of europe
Contact:

Post by mclane »

mclane wrote:and here we go again IMO to what chris has written many years ago:
The 'looking-glass' paradigm makes slow and complex evaluations at each node and prefers to prune the search tree by use of this evaluation function. In this model search is to be avoided
unless absolutely necessary. Thus the search tree is not central to the new paradigm, rather the search tree is used to find details overlooked, or mistakes made, by the evaluation function. The 'looking-glass' paradigm has the components of human thought - detailed, intuitive evaluation, with search carried out to ensure that the program is not
falling into any traps. I estimate that the difference in nodes per second between and extreme classical program and a 'looking-glass' program will be of the order of 20-30 times, sufficient to give the classical program an extra two plies of search (albeit with reduced knowledge at the nodes). Thus the increased knowledge of the 'looking-glass' program has to compensate for this apparently reduced search depth. The looking-glass strategy necessitates much programming effort, and requires the programmer to have an exceptionally good knowledge of chess strategy and tactics. When such a program is first
being developed it will constantly be outplayed by classical programs, for classical programs see everything within their horizon and the newly developing 'looking-glass' program cannot yet hope to know sufficient tactical and positional themes to compete, but our experience shows that once breakthrough (a knowledge o f sufficient chess themes to compensate for reduced search depth) occurs the looking-glass program begins to
consistently outplay the classical programs. Further advantages emerge from the high level of chess knowledge in the evaluation function - better move selection and move sorting, resulting in more efficient search - more possibilities of accurate forward pruning, resulting in smaller search trees. With increases in tree size (from faster hardware), these advantages are geometric.

B-Search or A-B-Search? - NO! Evaluation based or search based!
===============================================================
The classicists maintain the computer chess dichotomy of B-search (which I understand means pruning occurs at all levels of the tree) or A-B Search (which apparently means that part of the search is full width).
The looking-glass programmer condemns this dichotomy as meaningless.
The new paradigm makes the issue clear: chess programs either have simple evaluation and generate intelligence through search, or have complex evaluations and use limited search as a backup to cover oversights and mistakes. All chess programs prune in one way or another, but looking-glass programs, with complex evaluation, are able to prune more.

Of course, the issue is not so black and white. There is a grey scale between the extreme looking-glass (human play style) and extreme classical style. At the classical end of the scale the B or A-B dichotomy tries to position the program on the scale, but basically classicists believe in search. At the looking-glass end of the scale the issue is how much does the evaluation function allow us to prune or extend - how many risks can we take based on our evaluation function ? Basically looking-glass programmers believe in evaluation.
give the evaluation function MORE power so that the knowledge
in the evaluation function is the master and above the search.

chris wrote (i guess it must have been arround 1996)
I estimate that the difference in nodes per second between and extreme classical program and a 'looking-glass' program will be of the order of 20-30 times
take 1.500.000 NPS and divide it with 20 or 30 and you get the 50.000-75.000 NPS rybka claims to compute.
What seems like a fairy tale today may be reality tomorrow.
Here we have a fairy tale of the day after tomorrow....
Post Reply