Thoughts...

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

Moderators: hgm, Rebel, chrisw

Alexander Schmidt
Posts: 1203
Joined: Thu May 10, 2007 2:49 pm

Thoughts...

Post by Alexander Schmidt »

Now I had some days to think about the Ippolit/Robbolite engines. It could have been more, but I missed this engine for half a year because it was "banned" from the boards.

Why?

It was banned because of its strength, and because VR said it is a decompiled Rybka.

It is obvious that it is not a just decompiled Rybka. There are very much differences. So what is VR's statement worth? I'll give the answer to you: Nothing.

Hard to believe it is a decompiled Rybka with so much changes in that unreadable code. And then the result is a 70 ELO stronger engine? Come on...

Then, when some recognized that VR's story is unlogical we heard even a conspiracy theory that Ippolit is Rybka 4. It is meant to support VR's theory of a Rybka-Clone, but it is completely in conflict with what VR said and absolut speculation.

Ippolit has similaries to Kaissa, and I guess it is based on it like I posted here before.

Maybe Ippolit contains some code of a decompiled Rybka, but maybe it don't.

Maybe it contains only ideas of a decompiled Rybka, maybe just from Strelka and other open source engines. Is that illegal? Don't you think all other commercial programmers didn't look at Strelka, Fruit, Glaurung, Stockfish?

Remember how the engines inproved in the last years. After years of stagnation Fruit (and later Glaurung) appeared. Are you sure no one copied some code? Did you ever blame a commercial author for the improvement in his engine because he maybe took some code?

You did not, and that is fine.

You did not when Rybka 1 appeared, allthough it was 600 ELO points stronger than it's predecessor.

You did it not even when I showed similaries between Rybka and Fruit. This is also fine to me as long as you apply the same standart for all engines.

What more can a programmer do than to show the sources? So far I have seen no example of equal code by VR. There is just this statement, that only says to me: "There can't be an engine better than Rybka, so I better say it is a clone of Rybka"

And now? VR will for sure look into the sources. He will find new ideas, and will make Rybka 4 even stronger. Maybe he will even copy some code, but I am sure, this is fine for you all...

Ippolit will move the computerchess forward. Rybka will be stronger again because it is an unequal race. The closed source engine has a big advantage.

Before you now start to telling me that it is soooooooo clear, Ippolit must be a Rybka clone because of the strength, the website, VR's statement, and so on, I wanna let you know that I don't care about this crap. Maybe there is something wrong with Ippolit, but for me it is unguilty until prooven the opposite.

Funny that nearly exclusive people from the so called "constitutional states" forget this basic principles here...

Somehow disappointed,
Alex
Alex Lobanov
Posts: 40
Joined: Sun Jul 15, 2007 9:29 am

Re: Thoughts...

Post by Alex Lobanov »

+100 !
User avatar
Werner
Posts: 2871
Joined: Wed Mar 08, 2006 10:09 pm
Location: Germany
Full name: Werner Schüle

Re: Thoughts...

Post by Werner »

I have compared the search from that engine with Rybka 3 and I found similarities which I did not see with other engines. See here:

following position is from a game I made on my quad - Rybka 3 w32 1CPU - Naum 3.1 x64 4CPU:

[D] 1r6/2p2k1r/p1P1q1p1/1p1nPp2/4p1b1/P3P1P1/2Q2PB1/BRR3K1 w - b6 0 41[/D]

In the original game (see down) Rybka played 41. Rd1 -2.49/13 after 1:23
When you watch the search you see after a few seconds Rd1 -1.57/11 then Rybka starts the search 4 times on T12 with this move and after that searches it displays next line with Rd1 -2.63/ 1:12.

Next I used the engine R...d4 w32 on the same position. After a few seconds I saw Rd1 -1.87 16/45. Then the same procedure as above begins: The engine starts at T17 the search 4 times with the move Rd1 and then displays 41. Rd1 -2.88 17/59.

This looks like to me both engines are using the same search routines - or is this common?? Perhaps a Program Author can give a statement to me.

Here is the whole game:

[Event "R3-1"]
[Site "?"]
[Date "2008.08.09"]
[Round "38.1"]
[White "Rybka 3 1-cpu 32-bit w32"]
[Black "Naum 3.1 x64 4CPU"]
[Result "0-1"]
[ECO "A29"]
[Annotator "0.18;-0.06"]
[PlyCount "120"]
[EventDate "2008.08.08"]
[EventType "tourn"]
[Source "Werner"]
[TimeControl "40/600:40/600:40/600"]

{Intel(R) Core(TM)2 Quad CPU @ 2.66GHz 3504 MHz W=13.7 ply; 68kN/s;
208 TBAs; HS-8moves.ctg B=17.4 ply; 7.293kN/s; 1.973.995 TBAs; HS-8moves.ctg}
1. c4 {B 0} e5 {B 0} 2. Nc3 {B 0} Bc5 {B 0} 3. g3 {B 0} Nc6 {B 0} 4. Nf3 {B 0}
Nf6 {B 0} 5. Bg2 {B 0} d6 {B 0} 6. O-O {B 0} O-O {B 0} 7. d3 {B 0} a6 {B 0} 8.
a3 {B 0} h6 {B 0} 9. e3 {0.18/15 25} Bg4 {-0.06/16 26 (La7)} 10. h3 {0.26/15
17 (Ld2)} Bd7 {0.00/17 43 (Lf5)} 11. b4 {0.22/15 32} Ba7 {0.00/18 31} 12. Qe2 {
0.22/15 23 (Lb2)} Be6 {-0.05/17 28} 13. Rd1 {0.16/14 29 (Lb2)} Qd7 {0.00/16 21}
14. Kh2 {0.17/14 12} Rfe8 {0.05/17 86 (Tab8)} 15. Bb2 {0.23/15 63} Rab8 {0.16/
17 82} 16. Rac1 {0.31/15 70} Rbd8 {0.19/16 31} 17. Nd2 {0.26/14 44 (Tc2)} d5 {
0.12/17 12 (Tb8)} 18. cxd5 {0.26/13 6} Nxd5 {0.13/17 20} 19. Nce4 {0.28/14 11}
Nde7 {0.09/16 8 (f6)} 20. Nc4 {0.32/12 14 (Sf3)} f6 {0.18/17 14} 21. Nc5 {0.31/
13 12} Bxc5 {0.19/16 11} 22. bxc5 {0.31/12 0} Rb8 {0.17/16 11} 23. Bf3 {0.31/
13 18 (Tc2)} Bf5 {0.23/16 39 (Ted8)} 24. Bc3 {0.32/12 14 (g4)} Red8 {0.14/16
15 (Tbd8)} 25. d4 {0.32/12 7} Nd5 {0.16/16 6 (exd4)} 26. Ba1 {0.42/13 21 (Lb2)}
e4 {0.13/16 7} 27. Bg2 {0.43/13 5} Re8 {0.15/16 18 (De6)} 28. Rb1 {0.48/13 15
(Tc2)} Qe6 {0.09/14 6} 29. Rdc1 {0.47/13 9 (Lb2)} Bg6 {0.14/15 9 (Tec8)} 30.
Kg1 {0.46/13 14 (Tb2)} Re7 {0.10/15 9 (Tec8)} 31. Qg4 {0.48/13 12 (Lb2)} Bf5 {
-0.13/16 9 (Dxg4)} 32. Qh4 {0.36/14 28} h5 {-0.25/16 5} 33. Qxh5 {0.26/14 17}
g6 {-0.36/18 7} 34. Qe2 {0.36/15 31} Bxh3 {-0.36/17 11} 35. Bh1 {0.00/14 19}
Bg4 {-0.23/16 4} 36. Qc2 {0.00/15 12} f5 {-0.44/16 10 (Kg7)} 37. Bg2 {0.21/11 7
} Rh7 {-0.42/15 8} 38. Ne5 {0.12/12 5 (Te1)} Nxe5 {-1.58/15 3} 39. dxe5 {0.12/
9 0} Kf7 {-1.70/16 3 (Kg7)} 40. c6 {-0.44/9 4 (Td1)} b5 {-2.45/15 3} 41. Rd1 {
-2.49/13 83} Bf3 {-2.87/19 15} 42. Rxd5 {-2.84/13 58} Qxd5 {-2.86/4 0} 43. e6+
{-2.84/13 22 (Lxf3)} Qxe6 {-2.88/18 9} 44. Bxf3 {-2.92/14 25} exf3 {-2.52/4 0}
45. Qd1 {-2.95/14 29 (Td1)} Rb6 {-2.98/18 15 (De4)} 46. Qxf3 {-3.34/12 30 (a4)}
Qxc6 {-3.21/20 15} 47. Qg2 {-3.66/14 16} g5 {-3.21/21 17} 48. g4 {-3.77/13 12
(Ld4)} fxg4 {-3.31/17 9} 49. Rd1 {-3.96/14 13 (Ld4)} Qf3 {-4.13/20 18 (Dxg2+)}
50. Rd7+ {-5.12/15 24} Kg6 {-4.49/21 25} 51. Rxh7 {-5.14/15 16} Qxg2+ {-4.49/
21 17} 52. Kxg2 {-4.68/13 0} Kxh7 {-4.49/22 93} 53. Kg3 {-5.31/16 26} c5 {-6.
37/21 13} 54. Kxg4 {-5.32/15 12} b4 {-7.03/20 24 (Kg6)} 55. axb4 {-5.12/13 14}
cxb4 {-7.31/20 10} 56. Bb2 {-5.12/12 17} Rc6 {-10.97/20 29 (b3)} 57. Kf5 {-5.
52/11 8 (Kf3)} a5 {-12.08/18 14 (b3)} 58. Ba1 {-6.59/9 7 (Ld4)} a4 {-21.12/19
16 (b3)} 59. Ke4 {-11.67/11 62 (Le5)} a3 {-#19/18 24} 60. Bd4 {-12.08/8 5 (Kd5)
} b3 {-#20/8 0 (Tc4)} 0-1
Werner
User avatar
michiguel
Posts: 6401
Joined: Thu Mar 09, 2006 8:30 pm
Location: Chicago, Illinois, USA

Re: Thoughts...

Post by michiguel »

Alexander Schmidt wrote:Now I had some days to think about the Ippolit/Robbolite engines. It could have been more, but I missed this engine for half a year because it was "banned" from the boards.

Why?

It was banned because of its strength, and because VR said it is a decompiled Rybka.

It is obvious that it is not a just decompiled Rybka. There are very much differences. So what is VR's statement worth? I'll give the answer to you: Nothing.

Hard to believe it is a decompiled Rybka with so much changes in that unreadable code. And then the result is a 70 ELO stronger engine? Come on...

Then, when some recognized that VR's story is unlogical we heard even a conspiracy theory that Ippolit is Rybka 4. It is meant to support VR's theory of a Rybka-Clone, but it is completely in conflict with what VR said and absolut speculation.

Ippolit has similaries to Kaissa, and I guess it is based on it like I posted here before.

Maybe Ippolit contains some code of a decompiled Rybka, but maybe it don't.

Maybe it contains only ideas of a decompiled Rybka, maybe just from Strelka and other open source engines. Is that illegal? Don't you think all other commercial programmers didn't look at Strelka, Fruit, Glaurung, Stockfish?

Remember how the engines inproved in the last years. After years of stagnation Fruit (and later Glaurung) appeared. Are you sure no one copied some code? Did you ever blame a commercial author for the improvement in his engine because he maybe took some code?

You did not, and that is fine.

You did not when Rybka 1 appeared, allthough it was 600 ELO points stronger than it's predecessor.

You did it not even when I showed similaries between Rybka and Fruit. This is also fine to me as long as you apply the same standart for all engines.

What more can a programmer do than to show the sources? So far I have seen no example of equal code by VR. There is just this statement, that only says to me: "There can't be an engine better than Rybka, so I better say it is a clone of Rybka"

And now? VR will for sure look into the sources. He will find new ideas, and will make Rybka 4 even stronger. Maybe he will even copy some code, but I am sure, this is fine for you all...

Ippolit will move the computerchess forward.
Sure,

Miguel


Image

Rybka will be stronger again because it is an unequal race. The closed source engine has a big advantage.

Before you now start to telling me that it is soooooooo clear, Ippolit must be a Rybka clone because of the strength, the website, VR's statement, and so on, I wanna let you know that I don't care about this crap. Maybe there is something wrong with Ippolit, but for me it is unguilty until prooven the opposite.

Funny that nearly exclusive people from the so called "constitutional states" forget this basic principles here...

Somehow disappointed,
Alex
Alexander Schmidt
Posts: 1203
Joined: Thu May 10, 2007 2:49 pm

Re: Thoughts...

Post by Alexander Schmidt »

michiguel wrote:Ippolit will move the computerchess forward.


Sure,

Miguel
I am not a native english speaker. I mean it will make future chessprogramms stronger.

No comment on the more important points?
Uri Blass
Posts: 10281
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: Thoughts...

Post by Uri Blass »

Werner wrote:I have compared the search from that engine with Rybka 3 and I found similarities which I did not see with other engines. See here:

following position is from a game I made on my quad - Rybka 3 w32 1CPU - Naum 3.1 x64 4CPU:

[D] 1r6/2p2k1r/p1P1q1p1/1p1nPp2/4p1b1/P3P1P1/2Q2PB1/BRR3K1 w - b6 0 41[/D]

In the original game (see down) Rybka played 41. Rd1 -2.49/13 after 1:23
When you watch the search you see after a few seconds Rd1 -1.57/11 then Rybka starts the search 4 times on T12 with this move and after that searches it displays next line with Rd1 -2.63/ 1:12.

Next I used the engine R...d4 w32 on the same position. After a few seconds I saw Rd1 -1.87 16/45. Then the same procedure as above begins: The engine starts at T17 the search 4 times with the move Rd1 and then displays 41. Rd1 -2.88 17/59.

This looks like to me both engines are using the same search routines - or is this common?? Perhaps a Program Author can give a statement to me.

Here is the whole game:

[Event "R3-1"]
[Site "?"]
[Date "2008.08.09"]
[Round "38.1"]
[White "Rybka 3 1-cpu 32-bit w32"]
[Black "Naum 3.1 x64 4CPU"]
[Result "0-1"]
[ECO "A29"]
[Annotator "0.18;-0.06"]
[PlyCount "120"]
[EventDate "2008.08.08"]
[EventType "tourn"]
[Source "Werner"]
[TimeControl "40/600:40/600:40/600"]

{Intel(R) Core(TM)2 Quad CPU @ 2.66GHz 3504 MHz W=13.7 ply; 68kN/s;
208 TBAs; HS-8moves.ctg B=17.4 ply; 7.293kN/s; 1.973.995 TBAs; HS-8moves.ctg}
1. c4 {B 0} e5 {B 0} 2. Nc3 {B 0} Bc5 {B 0} 3. g3 {B 0} Nc6 {B 0} 4. Nf3 {B 0}
Nf6 {B 0} 5. Bg2 {B 0} d6 {B 0} 6. O-O {B 0} O-O {B 0} 7. d3 {B 0} a6 {B 0} 8.
a3 {B 0} h6 {B 0} 9. e3 {0.18/15 25} Bg4 {-0.06/16 26 (La7)} 10. h3 {0.26/15
17 (Ld2)} Bd7 {0.00/17 43 (Lf5)} 11. b4 {0.22/15 32} Ba7 {0.00/18 31} 12. Qe2 {
0.22/15 23 (Lb2)} Be6 {-0.05/17 28} 13. Rd1 {0.16/14 29 (Lb2)} Qd7 {0.00/16 21}
14. Kh2 {0.17/14 12} Rfe8 {0.05/17 86 (Tab8)} 15. Bb2 {0.23/15 63} Rab8 {0.16/
17 82} 16. Rac1 {0.31/15 70} Rbd8 {0.19/16 31} 17. Nd2 {0.26/14 44 (Tc2)} d5 {
0.12/17 12 (Tb8)} 18. cxd5 {0.26/13 6} Nxd5 {0.13/17 20} 19. Nce4 {0.28/14 11}
Nde7 {0.09/16 8 (f6)} 20. Nc4 {0.32/12 14 (Sf3)} f6 {0.18/17 14} 21. Nc5 {0.31/
13 12} Bxc5 {0.19/16 11} 22. bxc5 {0.31/12 0} Rb8 {0.17/16 11} 23. Bf3 {0.31/
13 18 (Tc2)} Bf5 {0.23/16 39 (Ted8)} 24. Bc3 {0.32/12 14 (g4)} Red8 {0.14/16
15 (Tbd8)} 25. d4 {0.32/12 7} Nd5 {0.16/16 6 (exd4)} 26. Ba1 {0.42/13 21 (Lb2)}
e4 {0.13/16 7} 27. Bg2 {0.43/13 5} Re8 {0.15/16 18 (De6)} 28. Rb1 {0.48/13 15
(Tc2)} Qe6 {0.09/14 6} 29. Rdc1 {0.47/13 9 (Lb2)} Bg6 {0.14/15 9 (Tec8)} 30.
Kg1 {0.46/13 14 (Tb2)} Re7 {0.10/15 9 (Tec8)} 31. Qg4 {0.48/13 12 (Lb2)} Bf5 {
-0.13/16 9 (Dxg4)} 32. Qh4 {0.36/14 28} h5 {-0.25/16 5} 33. Qxh5 {0.26/14 17}
g6 {-0.36/18 7} 34. Qe2 {0.36/15 31} Bxh3 {-0.36/17 11} 35. Bh1 {0.00/14 19}
Bg4 {-0.23/16 4} 36. Qc2 {0.00/15 12} f5 {-0.44/16 10 (Kg7)} 37. Bg2 {0.21/11 7
} Rh7 {-0.42/15 8} 38. Ne5 {0.12/12 5 (Te1)} Nxe5 {-1.58/15 3} 39. dxe5 {0.12/
9 0} Kf7 {-1.70/16 3 (Kg7)} 40. c6 {-0.44/9 4 (Td1)} b5 {-2.45/15 3} 41. Rd1 {
-2.49/13 83} Bf3 {-2.87/19 15} 42. Rxd5 {-2.84/13 58} Qxd5 {-2.86/4 0} 43. e6+
{-2.84/13 22 (Lxf3)} Qxe6 {-2.88/18 9} 44. Bxf3 {-2.92/14 25} exf3 {-2.52/4 0}
45. Qd1 {-2.95/14 29 (Td1)} Rb6 {-2.98/18 15 (De4)} 46. Qxf3 {-3.34/12 30 (a4)}
Qxc6 {-3.21/20 15} 47. Qg2 {-3.66/14 16} g5 {-3.21/21 17} 48. g4 {-3.77/13 12
(Ld4)} fxg4 {-3.31/17 9} 49. Rd1 {-3.96/14 13 (Ld4)} Qf3 {-4.13/20 18 (Dxg2+)}
50. Rd7+ {-5.12/15 24} Kg6 {-4.49/21 25} 51. Rxh7 {-5.14/15 16} Qxg2+ {-4.49/
21 17} 52. Kxg2 {-4.68/13 0} Kxh7 {-4.49/22 93} 53. Kg3 {-5.31/16 26} c5 {-6.
37/21 13} 54. Kxg4 {-5.32/15 12} b4 {-7.03/20 24 (Kg6)} 55. axb4 {-5.12/13 14}
cxb4 {-7.31/20 10} 56. Bb2 {-5.12/12 17} Rc6 {-10.97/20 29 (b3)} 57. Kf5 {-5.
52/11 8 (Kf3)} a5 {-12.08/18 14 (b3)} 58. Ba1 {-6.59/9 7 (Ld4)} a4 {-21.12/19
16 (b3)} 59. Ke4 {-11.67/11 62 (Le5)} a3 {-#19/18 24} 60. Bd4 {-12.08/8 5 (Kd5)
} b3 {-#20/8 0 (Tc4)} 0-1
Rybka does something that is uncommon to chess engines but you do not need to take code from rybka to understand the idea that rybka use and implement it in your engine.

The idea is simply that rybka does not solve fail low and try to find a better move.

Rybka has

Rd1 -1.57/11
at depth 12 rybka has a fail low.

Most engines try to solve the fail low.

Rybka simply does not do it.

In first iteration she may see that the score of Rd1 is lower than -1.77 so she searches all the moves and does not find move that gives a score that is better than -1.77

In the second iteration she may see that the score of Rd1 is lower than -1.97 and again not find a move that is better than Rd1
In the third iteration she may see that the score of Rd1 is lower than -2.37 and again does not find a better move when only in the 4th iteration she see that the score is exactly -2.63.

Rybka also does not print bounds of fail low and prints only exact scores.

Uri
User avatar
Rolf
Posts: 6081
Joined: Fri Mar 10, 2006 11:14 pm
Location: Munster, Nuremberg, Princeton

Re: Thoughts...

Post by Rolf »

Thoughts?

I agree with a single idea in your post and that is the fact that commercials like Fritz, Junior, Shredder etc. never were reverse engineered like Rybka. The only reason for that fact is that all the above have money behind them (ChessBase money) while Rybka is such a pain in the ___ of the antique former winner guys that it's blew their minds and made them believe that Rybka must be a cheat (from Fruit) because how otherwise someone could have found something they all had missed for years.

Tiger author Theron once wrote here in CCC that if he would forget about morals and would steal from Fruit then he could achive the same what Rajlich had achieved, but he, Theron, would have morals... When that had appeared I was outraged because of the unproven dirt. It has never been proven since then and Vas never was taken to court for anything.

Again, also then Theron never was interested in Fritz or Junior. So you ask a bit for too much if you claim now that therefore also your I____ should remain alive.

The reason why decent people in the community condemned these clones,

1) Vas is a integer character who never lied or pretended sonmething false

2) The evil of such inventions like Strelka or others is NOT only the clone stuff, it's that then this was published open in public so that more and more the secrets of Vas code became known. NB that the code of Fritz and others never was mistreated this way. You criticise it but the reason is money.

3) The talents who mistreat Rybka all along do not plan to have their own product in championships or tests, the sole purpose is the mistreatment of Rybka and its author. Unfortunately a lot of famous guys in CCC have helped that sort of campaign and I was among a few who criticised that from its beginning.

After 5 years to me it seems as if Rajlich is a saint because he's smart, but others are also smart, but he has the morals, the ethics and the philosophy to take such negative incidents with the patience of a wise monk who doesnt want to let himself be disturbed in pursuing his own path.
-Popper and Lakatos are good but I'm stuck on Leibowitz
zamar
Posts: 613
Joined: Sun Jan 18, 2009 7:03 am

Re: Thoughts...

Post by zamar »

Uri Blass wrote: Rybka does something that is uncommon to chess engines but you do not need to take code from rybka to understand the idea that rybka use and implement it in your engine.

The idea is simply that rybka does not solve fail low and try to find a better move.
Perhaps uncommon, but Stockfish (since 1.3) already has this behaviour :) Details are a bit different, but idea is the same.
Joona Kiiski
Alexander Schmidt
Posts: 1203
Joined: Thu May 10, 2007 2:49 pm

Re: Thoughts...

Post by Alexander Schmidt »

Rolf wrote:1) Vas is a integer character who never lied.
Then he is quite unique on the world :D

Do you know him very well? Is he liveing in your neighbourhood?
Alexander Schmidt
Posts: 1203
Joined: Thu May 10, 2007 2:49 pm

Re: Thoughts...

Post by Alexander Schmidt »

zamar wrote:Perhaps uncommon, but Stockfish (since 1.3) already has this behaviour :) Details are a bit different, but idea is the same.

Ssssssht. People will pretend Stockfish is a decompiled Rybka. :)