You've made my point more strongly than I managed, with the reference to Cozzie - everyone does the same stuff, for the most part.Dann Corbit wrote:You lose your bets.benstoker wrote:My point is that the State of the Art in computer chess is today widely known and documented; not so much 10 or 15 years ago. Changes and new inventions in the evolution of computer chess is today slowing down significantly, compared to 10 years ago.Dann Corbit wrote:{snip}benstoker wrote:Tell me if I'm wrong, but I would wager that 10 or 15 years ago there were very significant differences between the top 10 chess engines in both "Ideas" and code. Contrast that with today; I bet the top 5 or 10 engines all use the same ideas. All use bitboards. All use all of the state of the art ideas in computer chess. If you don't use the state of the art ideas, your engine will simply not be in the top. The differences are but shades of gray compared to 10 years ago.
Fruit is quite a strong engine that does not use bitboards.
The switch to bitboards was inevitable once 64 bit CPUs, operating systems, and compilers went mainstream. The 0x88 (and derivatives) approach was competitive when CPUs were 32 bits, but the advantages of bitboards were always clear in the 64 bit area.
The strongest engines that are not commercial have always shared the best ideas. That's why programmers come to places like CCC and discuss how their chess engines work. Alpha Beta was not independently invented by all of the programmers and yet they all have been using it since ages and ages ago. The idea to quiesce a search has been shared for decades. Hash tables, move ordering, null move, double null move, all of these ideas have been shared for a very long time.
I don't think that there has ever been too big of a beef about sharing of and using ideas. The problems arise when ideas are taken in a way that is not approved of. This is an old story too. BIONIC (which I coined as "Belive It Or Not, It's Crafty") is one example of unauthorized use of code, as was Voyager. There were many others besides. And so what is being churned over and over here is not new waters that we have never seen. It is the same old scum, stirring up from the bottom.
Everything that rises must converge.
I bet you can make a list of absolutely essential Ideas that simply must be included in a top performing chess engine today, without which, the engine is just not a top tier program. And I bet 10 or 15 years ago there could be a whole lot more variance in what was essential for a top tier program. Since that time the natural progression is to slowly bring together in one engine the best ideas in the science.
I suppose another way to say it, is that originality in chess engines today is just a lot harder to come by than it was 10 years ago.
It's like squeezing blood out of a turnip. Or, how many different ways can you cook a pancake in 2011?
There is no difference between 15 years ago and today except that there are some new things like LMR that were simply not available 15 years ago.
Originality in computer chess today is identical to originality in computer chess 15 years ago.
What do you think there is that has changed in the last 10-15 years aside from a few new techniques? Lots of good ideas were widely known 10-15 years ago. They were implemented across all the engines.
15 years is a bit of a long reach, because we would only have 3 engines:
GnuChess, Crafty, and Arasan
but 10 years ago, we would have had this list:
[SNIP]
Almost all of those engines would have had:
alpha-beta
quiescent search
SEE
Hash tables
null move heuristic
move ordering
killer moves
lazy eval
check extensions
recapture extensions
king safety/mobility/passed pawns & pawn structure/bishop pair/bad bishop/center control
That's because those are the techniques that were known in that day.
Now, a few of those engines would not have some of those techniques. Those would be the weaker engines that were just beginning to be programmed, just like today.
Today, the list is longer, but the end result is the same. The strongest engines use the strongest techniques. I think that this is one of the things that Anthony Cozzie did not like about computer chess (everyone does the same stuff, for the most part).
You might imagine it is bad for so many chess engines to be doing stuff the same for all this time. And yet we see computer chess rapidly moving forwards anyway. Why is that? Because there will always be innovators like Dr. Hyatt and Fabian and Tord, etc. who are willing to share what they learn.
IMO-YMMV
Here's the IPON list:
Code: Select all
Rank Name Elo + - games score oppo. draws
1 Houdini 1.5a 3011 15 15 2200 83% 2739 22% +3
2 Deep Rybka 4 2954 14 13 2200 78% 2742 31% +1
3 Stockfish 2.01 JA 2916 13 13 2200 73% 2743 33% -3
4 Critter 0.90 SSE42 2888 13 12 2200 70% 2745 35% -4
5 Komodo64 1.3 JA 2830 12 12 2200 62% 2747 36% +1
6 Naum 4.2 2825 12 12 2200 61% 2747 38% +3
7 Deep Shredder 12 2800 12 12 2200 57% 2749 38%
8 Gull 1.1 2788 12 12 2200 56% 2749 37% +0
9 Deep Fritz 12 32b 2780 12 12 2200 55% 2749 37% +1
10 Deep Sjeng c't 2010 32b 2779 12 12 2200 54% 2749 37% +2
11 Protector 1.4.0 x64 2756 12 12 2200 51% 2751 38% -2
12 spark-1.0 SSE42 2751 12 12 2200 50% 2751 39% -3
13 HIARCS 13.2 MP 32b 2746 12 12 2200 49% 2751 39% -5
14 Zappa Mexico II 2706 12 12 2200 44% 2753 36% -7
15 Deep Onno 1-2-70 2682 12 12 2200 40% 2754 38% -2
16 Deep Junior 12 2680 12 12 2200 40% 2754 31% +2
17 Hannibal 1.0a 2679 12 13 2200 40% 2754 33% -3
18 Toga II 1.4 beta5c BB 2670 12 12 2200 38% 2754 37% +0
19 Umko 1.1 SSE42 2631 13 13 2200 33% 2756 35% -2
20 Loop 13.6/2007 2618 13 13 2200 31% 2757 33% +4
21 Jonny 4.00 32b 2605 13 13 2200 30% 2757 30% -9
22 Crafty 23.3 JA 2595 13 13 2200 29% 2758 29% -5
23 Spike 1.2 Turin 32b 2579 13 13 2200 26% 2759 30% +3
Hash tables/null move heuristic/move ordering/killer moves/lazy eval/check extensions/recapture extensions/king safety/mobility/passed pawns & pawn structure/bishop pair/bad bishop/center control" If any of them did NOT use ALL of these Ideas, would they be on the IPON list? Just as you say, "the strongest engines use the strongest techniques."
I'll ask it this way. Since Fruit was born, what new Ideas have been added to the list of "strongest techniques"? 1, 2, 3, ... 10?
I'll ask it this way. Today, is it really possible to have a top tier program that is truly more than 80% different from all other top tier engines?
[Hint: The answer is NO.]