diepeveen wrote:Uri Blass wrote:Peter Fendrich wrote:Hi Vincent,
diepeveen wrote:When i saw source code of Fruit first time, i understood it 100%.
Yes it's not very hard to understand but what is hard to see is why it is so very strong. It is quite simple and still beats most of its opponents. The balance between search and evaluation is not really visible (for me).
/Peter
I disagree.
It is not hard to understand parts of it but understanding everything is not easy.
For the question why it is so strong I can say that I believe that it has more knowledge than most of the engines (both better tricks in the search and better evaluation).
Movei does not have a lot of knowledge that fruit has in evaluation and also does not use some search tricks of fruit.
I think that understanding fruit may help me to make big improvement in Movei (understanding means knowing the meaning of every variable and not only having some idea about what they are doing).
Only the structure of fruit is something that I already learned from it and having many .h files is simply better than having one file of global variables.
Uri
I DISAGREE.
All strong amateurs and especially commercials have way way way more knowledge than Fruit. So you hit the ball wrong again and scored in own goal.
Vincent
My opinion is that knowledge need to be productive and I do not think that it is a good idea to implement a lot of things without testing.
I believe that at least a lot of amateur programmers do not hurry to implement as much as possible and prefer to add one thing and test.
I know that at least Movei has less knowledge than fruit in many things.
If we discuss about evaluation here is a position that fruit evaluate as close to equal even at depth 1.
It probably has some better knowledge than both Movei and myself because I evaluate the position after 16.Bxf8 Rxf8 as advantage for white
of about half a pawn.
White has exchange for a pawn and pair of bishop but pair of bishops is not big enough to compensate for the material advantage.
Movei evaluates it as +0.38 for white.
White rook at a1 is evaluated as 1.6 pawns more than black bishop at d5
pair of bishop gives only 0.2 pawns compensation for black so it is 0.4 pawns based on fast calculation.
black has slightly better mobility after 16.Bxf8 Rxf8 but king at h7 is not good in the middle game like king at g1 so the total score for other things is near 0)
Movei evaluates it as bigger advantage for white at bigger depthes.
Note that Yace shows similiar behaviour and I am not surprised because Yace is the most materialistic engine out of the engines that I tried(Yace in most cases is more materialistic than Movei and I guess that Yace's king safety knowledge is even worse than Movei when Fruit's king safety evaluation is probably superior to Movei).
New game - Fruit 2.1, 10'/40+10'/40+10'/40
r4r2/pppq1pbk/2n3pp/2Bbp3/8/1P3NP1/P3PPBP/R1Q2RK1 w - - 0 1
Analysis by Fruit 2.1:
16.Bxf8 Rxf8
= (0.02) Depth: 1/2 00:00:00
16.Bxf8 Rxf8 17.Rd1
? (0.37) Depth: 2/12 00:00:00
16.Bxf8 Bxf8 17.Rd1 Bb4
= (0.09) Depth: 3/12 00:00:00
16.Rd1 e4 17.Bxf8 Rxf8
? (0.26) Depth: 3/13 00:00:00
16.Rd1 e4 17.Bxf8 Rxf8 18.Qc5 Bxa1 19.Rxd5
? (-0.51) Depth: 4/14 00:00:00
16.Bxf8 Rxf8 17.Qc5 Rd8 18.Rfd1
? (0.34) Depth: 4/14 00:00:00
16.Bxf8 Rxf8 17.Qc5 Rd8 18.Rfd1 f5
= (0.18) Depth: 5/15 00:00:00
16.e4 Bxe4 17.Ng5+ hxg5 18.Bxe4 g4 19.Bxf8 Rxf8 20.Bxc6 bxc6
= (0.22) Depth: 5/15 00:00:00
16.e4 Bxe4 17.Ng5+ hxg5 18.Bxe4 g4 19.Bxf8 Rxf8 20.Bxc6 bxc6
= (0.22) Depth: 6/15 00:00:00 56kN
16.e4 Bxe4 17.Bxf8 Rxf8 18.Ng5+ hxg5 19.Bxe4 Bf6 20.Bxc6 Qxc6 21.Qxc6 bxc6
? (0.42) Depth: 7/18 00:00:00 128kN
16.e4 Be6 17.Rd1 Nd4 18.Bxf8 Rxf8 19.Qa3 Ra8 20.Rac1
? (0.60) Depth: 8/21 00:00:00 260kN
16.e4 Be6 17.Rd1 Nd4 18.Bxf8 Rxf8 19.Qa3 Ra8 20.Rac1 Bf6
? (0.41) Depth: 9/21 00:00:01 492kN
16.e4 Be6 17.Rd1 Nd4 18.Bxf8 Rxf8 19.Qa3 Ra8 20.Rac1 Bf6 21.Qb4
? (0.49) Depth: 10/23 00:00:01 1209kN
16.e4 Be6 17.Rd1 Nd4 18.Bxf8 Rxf8 19.Qa3 Ra8 20.Rac1 Bg4 21.Kh1 Bf6
? (0.39) Depth: 11/25 00:00:03 2290kN
16.e4 Be6 17.Rd1 Nd4 18.Bxf8 Rxf8 19.Qe3 Rd8 20.Rac1 Qe7 21.Rd2 Kg8 22.Nxd4 exd4
? (0.26) Depth: 12/28 00:00:06 5630kN
16.e4 Be6 17.Rd1 Nd4 18.Bxf8 Rxf8 19.Qe3 Bf6 20.Rac1 Qd6 21.Bf1 Bg4 22.Be2 Kg8
? (0.26) Depth: 13/29 00:00:14 12981kN
16.e4 Be6 17.Rd1 Nd4 18.Bxf8 Rxf8 19.Nxd4 exd4 20.Qc2 Bg4 21.Rd3 f5 22.e5 f4 23.Qc5 fxg3 24.hxg3
= (0.21) Depth: 14/29 00:00:29 27365kN
16.e4 Bxe4 17.Bxf8 Rxf8 18.Ng5+ hxg5 19.Bxe4 Nd4 20.Qxg5 f5 21.Bg2 e4 22.Rad1 Rd8 23.Kh1 Bh6 24.Qf6
= (0.21) Depth: 15/37 00:01:18 75351kN
16.e4 Bxe4 17.Bxf8 Rxf8 18.Ng5+ hxg5 19.Bxe4 Nd4 20.Qxg5 f5 21.Bg2 e4 22.Qh4+ Kg8 23.Rad1 Rd8 24.Kh1 Be5 25.Rfe1
= (0.12) Depth: 16/40 00:02:19 136859kN
16.e4 Bxe4 17.Bxf8 Rxf8 18.Ng5+ hxg5 19.Bxe4 Nd4 20.Qxg5 f5 21.Bg2 e4 22.Rad1 Rd8 23.Kh1 Qd6 24.Rfe1 Bf6 25.Qe3
= (0.19) Depth: 17/45 00:05:02 298538kN
16.e4 Bxe4 17.Bxf8 Rxf8 18.Ng5+ hxg5 19.Bxe4 Nd4 20.Qxg5 f5 21.Bg2 e4 22.Rad1 Rd8 23.Kh1 Qd6 24.Qh4+ Kg8 25.Rfe1 Bf6 26.Qh6
= (0.10) Depth: 18/45 00:08:49 522677kN
(, 29.06.2005)