tag:blogger.com,1999:blog-7885798824287821949.post3047582332409891970..comments2023-03-31T06:30:04.317-07:00Comments on mACE Chess: How strong is the new iCEThomashttp://www.blogger.com/profile/12758727706662242193noreply@blogger.comBlogger5125tag:blogger.com,1999:blog-7885798824287821949.post-81530841357050096552013-07-12T17:22:43.537-07:002013-07-12T17:22:43.537-07:00Hi, thanks for the reply
Here a log from a perft ...Hi, thanks for the reply<br /><br />Here a log from a perft test from the start position:<br /><br /><b><br />position startpos<br />go infinite<br /><br />info score cp 30 depth 1 nodes 25 time 16 nps 1563 pv d2d4<br />Ordering:-1.#J, fhf:0, fh:0<br />info score cp 10 depth 2 nodes 277 time 16 nps 17313 pv d2d4 d7d5<br />Ordering:0.89, fhf:17, fh:19<br />info score cp 25 depth 3 nodes 1055 time 16 nps 65938 pv d2d4 d7d5 c1e3<br />Ordering:0.90, fhf:146, fh:163<br />info score cp 10 depth 4 nodes 2982 time 32 nps 93188 pv d2d4 d7d5 c1e3 c8e6<br />Ordering:0.90, fhf:758, fh:844<br />info score cp 20 depth 5 nodes 17981 time 32 nps 561906 pv d2d4 d7d5 c1e3 c8e6 b1c3<br />Ordering:0.87, fhf:2488, fh:2855<br />info score cp 10 depth 6 nodes 89142 time 110 nps 810382 pv d2d4 d7d5 c1e3 c8e6b1c3 g8f6<br />Ordering:0.85, fhf:22681, fh:26608<br />info score cp 25 depth 7 nodes 691989 time 578 nps 1197213 pv e2e4 e7e5 g1f3 g8f6 b1c3 f8d6 d2d4<br />Ordering:0.84, fhf:102192, fh:120992<br />info score cp 15 depth 8 nodes 3106308 time 2637 nps 1177000 pv e2e4 e7e5 g1f3 g8f6 b1c3 f8d6 d2d4 b8c6<br />Ordering:0.86, fhf:625142, fh:730977<br />info score cp 20 depth 9 nodes 14178599 time 10780 nps 1315000 pv d2d4 d7d5 b1c3 g8f6 c1f4 c8e6 e2e3 b8c6 f1d3<br />Ordering:0.84, fhf:1780916, fh:2125400<br /></b><br /><br />The lowest is 0.84, now I see where I have to start and it's improve first the move ordering<br /><br />Now it has Null Move + PVS and still lost vs the LMR version but I think there are some things that I have to take a look more deeply<br /><br />So much work... xD<br /><br />Thanks Thomas<br />tttonyhttps://www.blogger.com/profile/02452557509448520493noreply@blogger.comtag:blogger.com,1999:blog-7885798824287821949.post-55016699059448172842013-07-11T00:29:07.917-07:002013-07-11T00:29:07.917-07:00Hi,
the most important basic feature in a chess ...Hi, <br /><br />the most important basic feature in a chess engine is high quality move ordering. Some features like PVS or LMR rely on good move ordering and will not work if your ordering is bad.<br /><br />To measure your move ordering simply count the number of fail highs (beta cutoffs) that happen during a search and also count the number when this cutoff was achieved with already the 1st move. Then build the percentage<br /><br />pct = failhigh_1st_move / fail_high_total<br /><br />You want this to be 90% or higher. Probably you need a transposition table for that and also have a look at MVV/LVA, Static Exchange Evaluation and Killer Moves.<br /><br />Everything else can come later.<br /><br />A null move is a move where you just switch the side to move on the board without moving a piece. So the opponent can make two moves in a row. If he can move twice and you find out that you are still better than your opponent, then your position is so strong the opponent will not select moves leading to it. You don't have to search this branch any longer.<br /><br />The hashkey is not set to 0. The hashkey after the null move reflects that the side to move has changed.<br /><br />Thomas...Thomashttps://www.blogger.com/profile/12758727706662242193noreply@blogger.comtag:blogger.com,1999:blog-7885798824287821949.post-79709531164395325982013-07-10T12:22:40.175-07:002013-07-10T12:22:40.175-07:00Hi, thanks for the reply
Well I've no tested ...Hi, thanks for the reply<br /><br />Well I've no tested vs other engine, because some < 2000 does not play 1min, but I think the engine it's like 1700-1800<br /><br />The engine use bitboard, the evaluation it's pretty basic, it just eval PNBRK, now I'm implementing to eval the Isolated, Backwards and Passed pawns, I've found that the eval PNBRK from the Fruit 2.1 source it's good, I will test it<br /><br />I've implemented the LMR (Late Move Reduction) from Glaurung also Fruit, according to my tests it's +100 ELO, even the LMR is not 100% complete using the common condition from here -> http://chessprogramming.wikispaces.com/Late+Move+Reductions<br /><br />I tried to use PVS but the results were negative vs the LMR<br /><br />I used this example -> http://chessprogramming.wikispaces.com/Principal+Variation+Search, in the <b>Pseudo Code</b> part and <b>PVS + ZWS</b> also I've tested it in a little 400games tournament in Arena 1 minute using top200.pgn as start position and without good results, but I will test more deeply<br /><br />Right now the engine has no Hash implemented<br /><br />The Null move also I dont know how to apply but according to some engine sources it just <b>HashPosKey = 0;</b> and/or <b>move = 0;</b> right?<br /><br />I have many doubts, like the Fail-High, Fail-Low even Fails-Soft, upper bound, lower bound..... many technical things that I know what it the mening but I dont know how to apply to the engine.. it's complicated...<br /><br />I have like 20 version of the engine to test between "improvements"<br /><br />Thanks again for your time<br /><br />tttonyhttps://www.blogger.com/profile/02452557509448520493noreply@blogger.comtag:blogger.com,1999:blog-7885798824287821949.post-91969397579338754342013-07-10T05:08:11.194-07:002013-07-10T05:08:11.194-07:00Hi, it depends on what you already have implemente...Hi, it depends on what you already have implemented. What features do you have already and does your engine already have an ELO rating ?<br /><br />In general I would recommend a PVS framework for the search. Get this stable. You can gain a lot of strength just by optimizing your move ordering. Then add a hash table. This will further help you with the move ordering. Hash table is easy to do wrong as it contains a lot of potential pitfalls and bugs are not so easy to find.<br /><br />Then Null Move heuristics is very useful.<br /><br />Most of the techniques in the wiki actually should work if implemented correctly but some overlap and you might find a feature not so useful because you already have a feature that performs something similar. <br /><br />What features from the Wiki do you have doubts about ?<br /><br />Im my latest release more tha 150 ELO I guess just come from choosing better weights or values for existing features. <br /><br />And wasting time on something that does finally not work is part of the deal. The stronger your engine gets the more difficult it becomes to find something that makes it even stronger. <br /><br />Thomas... Thomashttps://www.blogger.com/profile/12758727706662242193noreply@blogger.comtag:blogger.com,1999:blog-7885798824287821949.post-7254169623802773842013-07-09T12:27:56.130-07:002013-07-09T12:27:56.130-07:00WOW!! +243 ELO Congratulations Thomas!
Very good ...WOW!! +243 ELO Congratulations Thomas!<br /><br />Very good improvement<br /><br />I'm developing a chess engine from a tutorial from internet and it's pretty difficult to tune it, my goal it to reach at least 2500 ELO in CCRL as you iCE0.3 but each day I touch the code I feel that I'm wasting my time even reading http://chessprogramming.wikispaces.com because in that site there are many ways to improve the engine but many of those ways are obsolete or I dont understand how to apply it to the engine<br /><br />Can you give me some light to found good resources to improve my engine?<br /><br />Thanks and keep it up!tttonyhttps://www.blogger.com/profile/02452557509448520493noreply@blogger.com