I started a new thread for this, as the "Bored with orthodox Chess" thread is becoming a bit long, and of mixed content.
Preliminary testing has uncovered some problems in Nibiyu_23:42:33.
1) False mate claim:
1k1cck2/2hhhhh1/8/5h2/3P4/1g3N2/wP1RBPPP/3KQ2R b - - 7 18
(With black Q=General, N=Warlord, R=Captain, B=Lieutenant, P=Hoplite, which I will use as standard substitutions in the future):
[d]1k1rrk2/2ppppp1/8/5p2/3P4/1q3N2/nP1RBPPP/3KQ2R b - - 7 18
Nebiyu is in the lead with black, and plays Wa2-b1. But it claims checkmate, while the white King is not even in check. It seems he thinks the Warlord checks along a rank.
2) freezing (CPU usage stops)
2k5/Q1hhhkhh/6h1/4c3/4g3/1w3PKN/6PP/5B1R w - - 0 25
[d]2k5/Q1pppkpp/6p1/4r3/4q3/1n3PKN/6PP/5B1R w - - 0 25
Nebiyu black again, and heavily winning (Fairy-Max at -4), but freezes after white plays fxe4. (Opening the rank between Wb3 and Kg3...).
2k2k2/1h1h4/1h1c1hh1/4l2Q/3w4/6KN/P5PP/R4B1R w - - 4 25
[d]2k2k2/1p1p4/1p1r1pp1/4b2Q/3n4/6KN/P5PP/R4B1R w - - 4 25
Nebiyu (black) freezes after white plays Kg3-h4 (stepping onto the same rank as Wd4!).
3) Freezing after promotion
6Rg/P6P/5k2/3h4/3k4/6h1/1PB1h3/2K4R w - - 0 47
[d]6Rq/P6P/5k2/3p4/3k4/6p1/1PB1p3/2K4R w - - 0 47
This time Nebiyu is losing with black, but freezes after a8=Q.
8/2k3h1/8/P1h5/1P4l1/2PBK3/6h1/8 b - - 1 50
[d]8/2k3p1/8/P1p5/1P4b1/2PBK3/6p1/8 b - - 1 50
This time with white, Nebiyou freezes after Hh1=W
Nebiyu problems
Moderator: Ras
-
hgm
- Posts: 28405
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
-
Daniel Shawul
- Posts: 4186
- Joined: Tue Mar 14, 2006 11:34 am
- Location: Ethiopia
Re: Nebiyu problems
Wow ton of bugs ! Luckily they all seem related to one thing. I forgot to initialize half of the attack board to zero ! It is a miracle it reported correct perft(6) with all those garbage attack information. Maybe the kings do not get exposed too much at the start position ! Anyway now that is fixed.
About promotions, is there an "=" sign in coordinate notation ? I just append the promotion letter there. e7e8Q not e7e8=Q. I haven't tested this so this is just to make sure before I look at it. More later.
Should I switch to the new notation you proposed for pieceChar ? Is it already supported ?
About promotions, is there an "=" sign in coordinate notation ? I just append the promotion letter there. e7e8Q not e7e8=Q. I haven't tested this so this is just to make sure before I look at it. More later.
Should I switch to the new notation you proposed for pieceChar ? Is it already supported ?
-
hgm
- Posts: 28405
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: Nebiyu problems
WinBoard would understand it all. But the official protocol definition is without '=' sign, and the piece in lower case, like "e7e8q". So be sure to understand that on input.
And anyway, if there is something you don't understand, but looks like a move, print "Illegal Move: OFFENDINGMOVE\n", so that we will get a clearer error diagnostic from WinBoard without going to the trouble of making debug files.
And anyway, if there is something you don't understand, but looks like a move, print "Illegal Move: OFFENDINGMOVE\n", so that we will get a clearer error diagnostic from WinBoard without going to the trouble of making debug files.
-
Daniel Shawul
- Posts: 4186
- Joined: Tue Mar 14, 2006 11:34 am
- Location: Ethiopia
Re: Nebiyu problems
Bug fixed version sent. The problem with the promotion was I think because I was using capital letters for the spartan and persian pieces. I changed that now so that spartans have small letters. And assuming winboard always sends promotion pieces in lowercase, I convert it to uppercase when persians promote. Hope everything is ok.
Branching factor could sometimes be very high with no move ordering . It searched only 2 iterations in some middle games. I will watch the games live if you have it running.
Daniel
Branching factor could sometimes be very high with no move ordering . It searched only 2 iterations in some middle games. I will watch the games live if you have it running.
Daniel
-
hgm
- Posts: 28405
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: Nebiyu problems
OK, the problems seem to be fixed. I did do 10 quick games on my laptop, without any glitches. The search depth is highly variable, though. The game below is a good example. At move 14 Nebiyu's depth has dropped to 3, and thenext few moves after that it does not seem to have provided a line of thinking output at all. (And indeedit plays a horrendous blunder,playing its Warlord to asquare where it is trapped and attacked by a Pawns the next moves.) This is a bit fishy: The lowest depth at which it prints a PV seems to be 2, and it does seem incredible it would not seem to be able to finish a 2-ply search. It must mean you have a total search explosion in QS.
Considering the depths you reach when there is no QS explosion, my guess is that you would have a very strong engine when you would capture the MVV first, irrespective of what elese you do for move ordering.
Anyway, I will set up some 5-min games against the others once Fairy-Max is done playing Oberon (or I get bored wth that
)
Considering the depths you reach when there is no QS explosion, my guess is that you would have a very strong engine when you would capture the MVV first, irrespective of what elese you do for move ordering.
Anyway, I will set up some 5-min games against the others once Fairy-Max is done playing Oberon (or I get bored wth that
Code: Select all
[Event "Computer Chess Game"]
[Site "CHESS_LAPTOP"]
[Date "2011.01.12"]
[Round "9"]
[White "Fairy-Max 4.8R"]
[Black "Nebiyu_10:24:27"]
[Result "1-0"]
[TimeControl "40/60"]
[Variant "spartan"]
[Annotator "1. +0.78 1... +0.30"]
1. Nf3 {+0.78/6} Lc6 {+0.30/11 1.1} 2. d3 {+0.68/6 1.5} Lf6 {+0.35/10 1.3}
3. Nc3 {+0.66/6 1.4} Ce6 {+0.30/8 1.4} 4. e3 {+0.83/6 2.5} Hhg6
{+0.50/9 1.4} 5. Be2 {+0.78/6 0.8} Hge5 {+0.60/8 1.4} 6. O-O {+0.73/6 1.9}
Hac5 {+0.65/6 1.5} 7. d4 {+0.64/7 3} Ld6 {+0.50/4 1.5} 8. Nb5 {+0.56/6 5}
Hbc6 {+0.65/4 1.4} 9. Nxd6 {+0.28/5 0.8} Cdxd6 10. Ba6 {+0.31/6 1.5} Kd8
{+1.15/3 1.0} 11. c3 {+0.32/5 2.7} Gb6 {+1.25/4 1.4} 12. Be2 {+0.35/6 1.1}
Wh6 {+1.35/3 1.1} 13. Qc2 {+0.26/6 1.9} Kg7 {+1.35/4 1.3} 14. Bd3
{+0.22/5 0.8} Hdf5 {+0.45/3 1.4} 15. e4 {+1.23/6 0.6} Wg4 16. h3
{+4.57/8 6} Wh5 17. g4 {+4.39/7 0.7} Wf4 18. Bxf4 {+4.45/6 2.7} Hxf4 19.
Nd2 {+4.35/6 0.8} Hfd5 {-3.25/6 0.5} 20. dxe5 {+4.39/6 0.6} Lxe5
{-3.35/7 0.7} 21. a4 {+4.44/5 0.7} Hd4 {-3.15/6 0.7} 22. Bc4 {+4.90/7 2.3}
Gc5 {-4.25/3 0.4} 23. b4 {+5.29/6 0.6} Gb6 {-4.35/3 0.1} 24. exd5
{+5.79/7 0.5} Hc5 {-7.15/7 0.7} 25. dxe6 {+7.69/6 0.5} Hxc4 {-7.15/8 0.5}
26. Nxc4 {+7.92/8 1.4} Gb7 {-7.65/10 0.6} 27. cxd4 {+8.32/7 0.5} Gxb4
{-8.50/10 0.6} 28. dxe5 {+8.22/7 0.7} Cd4 {-10.05/12 0.7} 29. Ne3
{+9.70/8 1.0}
{Black resigns} 1-0
-
Daniel Shawul
- Posts: 4186
- Joined: Tue Mar 14, 2006 11:34 am
- Location: Ethiopia
Re: Nebiyu problems
Thats great ! I also didn't have any problems with self-test matches. Couldn't find Oberon or Fairy-exe.
Yes I need to move order with MVV in qsearch. I had to dump SEE because that is very chess specific.
I only retain domain independent algorithms, so it is bye bye to SEE and bitboards.
I think I can use killers and history (with [piece][to] format) for all of the board games.
More later.
Yes I need to move order with MVV in qsearch. I had to dump SEE because that is very chess specific.
I only retain domain independent algorithms, so it is bye bye to SEE and bitboards.
I think I can use killers and history (with [piece][to] format) for all of the board games.
More later.
-
hgm
- Posts: 28405
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: Nebiyu problems
How about IID? Fairy-Max has no move ordering to speak of. Just the hash move, followed by moves in generation order. Where a 'hash' move is generated by IID in any node where there is none. This seems to do quite well, because the IID starts at 'no-reply' level, followed by QS, followed by d=1. The no-reply level pulls the MVV capture to front, then QS tries all the captures, then d=1 adds non-captures to this (after redoing all the captures, but these now should be instant hash hits). The only caveat is that beta cutoffs should be suppressed at 'no-reply' level, to make really sure you find the MVV, and won't stop at the first non-futile capture.
This seems quite game-unspecific.
This seems quite game-unspecific.
-
PK
- Posts: 912
- Joined: Mon Jan 15, 2007 11:23 am
- Location: Warsza
Re: Nebiyu problems
Oberon is at www.koziol.home.pl/oberon.zip.
As for dropping certain algorithms - perhaps some of them might come within game-dependent conditional clauses. for bitboards it would be too messy, but for things like null move (or perhaps non-bitboard SEE) it's perfectly useful. Generally speaking, I expect a variant engine to have a heavy initialization routine, a global data structure with a sizaable collection of flags and everything else very, very light and general.
BTW, Daniel, I wish You all good luck with making Your engine play Go. Sometimes I wondered whether pure (or, better still, biased) Monte Carlo algorithm placed on top of a chess-like search (say instead of quiescence search) plus a move generator weeding out some useless moves would result in a reasonable behaviour.
As for dropping certain algorithms - perhaps some of them might come within game-dependent conditional clauses. for bitboards it would be too messy, but for things like null move (or perhaps non-bitboard SEE) it's perfectly useful. Generally speaking, I expect a variant engine to have a heavy initialization routine, a global data structure with a sizaable collection of flags and everything else very, very light and general.
BTW, Daniel, I wish You all good luck with making Your engine play Go. Sometimes I wondered whether pure (or, better still, biased) Monte Carlo algorithm placed on top of a chess-like search (say instead of quiescence search) plus a move generator weeding out some useless moves would result in a reasonable behaviour.
Pawel Koziol
http://www.pkoziol.cal24.pl/rodent/rodent.htm
http://www.pkoziol.cal24.pl/rodent/rodent.htm
-
Daniel Shawul
- Posts: 4186
- Joined: Tue Mar 14, 2006 11:34 am
- Location: Ethiopia
Re: Nebiyu problems
Hmm.. MVV is in and also killers and history ! Elo has increased considerably. Here we come fairy & oberon:) https://sites.google.com/site/dshawul/N ... ects=0&d=1 No eval but chess is a proven wood counting game anyways 
@Pawel, Thanks for Oberon. Yes I plan to do the 9x9 first where computers have excelled at using the MCTS of Remi Colum I suppose. I can't say anything about that now because the closest thing I ever used MonteCarlo is for project management PERT to get a probablistic critical path. (PV if you will)
Also there seem to be a lot of chess specific optimizations that one could get away with. For instance I had an incremental "in check" status update in scorpio which is fast. Now I just ask the is_attacked() question when needed and it doesn't seem to do bad now, mostly because many moves get pruned and incremental update could be costlier.
Edit : pawel link 404 error.
Thanks
@Pawel, Thanks for Oberon. Yes I plan to do the 9x9 first where computers have excelled at using the MCTS of Remi Colum I suppose. I can't say anything about that now because the closest thing I ever used MonteCarlo is for project management PERT to get a probablistic critical path. (PV if you will)
Also there seem to be a lot of chess specific optimizations that one could get away with. For instance I had an incremental "in check" status update in scorpio which is fast. Now I just ask the is_attacked() question when needed and it doesn't seem to do bad now, mostly because many moves get pruned and incremental update could be costlier.
Edit : pawel link 404 error.
Thanks
-
Greg Strong
- Posts: 388
- Joined: Sun Dec 21, 2008 6:57 pm
- Location: Washington, DC
Re: Nebiyu problems
Pawel's 404 is just because there is an extra period at the end of the link. Drop the trailing period and all is well ...
So happy we're getting a decent number of competitive engines
So happy we're getting a decent number of competitive engines