Nebiyu problems

Discussion of chess software programming and technical issues.

Moderator: Ras

User avatar
hgm
Posts: 28405
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Nebiyu problems

Post by hgm »

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
Daniel Shawul
Posts: 4186
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: Nebiyu problems

Post by Daniel Shawul »

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 ?
User avatar
hgm
Posts: 28405
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Nebiyu problems

Post by hgm »

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.
Daniel Shawul
Posts: 4186
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: Nebiyu problems

Post by Daniel Shawul »

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
User avatar
hgm
Posts: 28405
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Nebiyu problems

Post by hgm »

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 :wink: )

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

Post by Daniel Shawul »

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.
User avatar
hgm
Posts: 28405
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Nebiyu problems

Post by hgm »

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.
PK
Posts: 912
Joined: Mon Jan 15, 2007 11:23 am
Location: Warsza

Re: Nebiyu problems

Post by PK »

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.
Daniel Shawul
Posts: 4186
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: Nebiyu problems

Post by Daniel Shawul »

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
User avatar
Greg Strong
Posts: 388
Joined: Sun Dec 21, 2008 6:57 pm
Location: Washington, DC

Re: Nebiyu problems

Post by Greg Strong »

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 :)