pre-announcement: 10x8 tourney

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: pre-announcement: 10x8 tourney

Post by Ferdy »

hgm wrote:Very interesting game between Bihasa and Joker80, where the chances turned several times, until Bihasa finally won:
Bihasa gets material advantage but its king was forced to go to center, after which it was Jokers' time to go for a win.

On move 49 Bihasa is at +12.70, Nebiyu is comparatively unworried (-1.65). On move 50 Bihasa's score sudddenly collapses to +1.71. It must have overlooked something (could be a perpetual).
Nebiyu is hunting for Bihasa's king, Bihasa was able to neutralize the attack by giving material back.

These 2 additional pieces seemed to be very difficult to evaluate.
TonyJH
Posts: 183
Joined: Tue Jun 20, 2006 4:41 am
Location: USA

Re: pre-announcement: 10x8 tourney

Post by TonyJH »

It's nice to see a growing list of engines. It would be good to update to the latest TJchess10x8, which is version 1.01: http://tonyjh.com/chess/TJchess10x8-101.zip
User avatar
hgm
Posts: 27796
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: pre-announcement: 10x8 tourney

Post by hgm »

For the tourney I certainly will. In the Bihasa gauntlet I just used the old version I happened to have around. I also noticed now that I used an old Joker80 version, from before the optimalization of the piece values.

But the purpose of the gauntlet was just to spot possible problems in Bihasa,and get a vague impression of its strength. I don't want to spoil the tourney by making it obvious what the outcome will be! :wink:

I paused the gauntlet although there are still a few things that were not tested, in particular playing from a setup position. But I needed the computerfor a big mini-Shogi round-robin to determine piece values.

Speaking of Shogi, did you implement 5x5 mini-Shogi in TJshogi? That should be almost trivial; it took me only one evening in the hotel in Kanazawa last year to make Shokidoki play it. The rules are just a subet of normal Shogi rules. Basically you just have to fill up the outer rings of the board to make them inaccessible.
TonyJH
Posts: 183
Joined: Tue Jun 20, 2006 4:41 am
Location: USA

Re: pre-announcement: 10x8 tourney

Post by TonyJH »

Yes I have a minishogi version of TJshogi that I never got around to releasing. I can send you a copy.
User avatar
hgm
Posts: 27796
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: pre-announcement: 10x8 tourney

Post by hgm »

Yes, I would be interested in that. The only other 5x5 engine I could find was PetitShogi, but unfortunately that has a crippling bug (in USI mode at least) making it unusable. You have my e-mail address?

I am now tuning Shokidoki's piece values in self-play. I was not even sure of the order of the piece values; B and R of course lose much of their value on a smaller board. I am getting a reasonably consistent picture for the piece-value differences, tough. I am not sure absolute piece values are well defined; it seems pretty much that a 2-1 trade is always fatal, even when you are left with the three strongest pieces against the 5 weakest. Even if some of the strongest are promoted; it seems promotion is only a minor compensation, as you must constantly trade pieces to not be overrun.
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: pre-announcement: 10x8 tourney

Post by Evert »

Progress has been a bit slow while I've been geting into the rhythm of a new job and fitting in chess-programming related stuff (and I've mainly worked on Jazz when I had time), but I've finally made some progress.

I've merged Sjaak and BigSjaak, so in the end there will only be the one version. I've set up the board representation and manipulation and everything tests ok now, so it's time to start work on the "big" move generator.

More soon (hopefully) :)
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: pre-announcement: 10x8 tourney

Post by Evert »

I'm close to having a working program. The move generator and make/unmake move code all work as they should, and the code runs with assertions enabled, so that's so far so good.
However, I seem to have a problem with check detection, so it isn't quite working correctly yet. The move generator is also missing castling at the moment because the castle tests are hard-coded for an 8x8 board. That's easy to fix though, and when I have I should be able to to Fischer Random Chess as well as a side-effect (not that I'm particularly interested in that, but if it's no effort to include I might as well).

Of course, when that's all done, the real fun that is tuning the evaluation function can start. ;)

Speaking of the check detection, this seems to be really slow (even when it doesn't actually work correctly), so I may look for ways to accelerate it. I could just not check and return a flag from the move generator when the child node is searched, but the move generator is actually even more expensive than the in-check test. I may look into incrementally updated attack tables though, which should help. Testing whether they have to be updated in response to a move is easy and should be cheaper than the in-check test is right now, while the in-check test itself becomes very cheap.
Anyway, that's one for the TODO list.
User avatar
hgm
Posts: 27796
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: pre-announcement: 10x8 tourney

Post by hgm »

Well, incrementally updated attack tables are also not that easy to maintain. I have had them sort of working in Spartacus off and on (and then I added a variant for which they did not work, or changed the board format that broke them...)

Anyway, glad that you made progress. It is good to see so many new programs, it will make the tourney really exciting.
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: pre-announcement: 10x8 tourney

Post by Evert »

hgm wrote:Well, incrementally updated attack tables are also not that easy to maintain. I have had them sort of working in Spartacus off and on (and then I added a variant for which they did not work, or changed the board format that broke them...)
It should be ok if I maintain one table per piece-type and per player. When I say table, I mean bitboard, of course. When I make a move, I make a bitboard out of all the squares that have been affected by this move (all pickups and all drops) and when the intersection of this bitboard with one of the attack-tables is non-zero, that table needs to be updated.
Actually, hoppers might be more tricky than I'd at first thought because the set of squares that requires their attack table to be updated is larger than the attack table itself, but in that case I could simply take a positive result as something that needs a more accurate test. As long as a negative result is reliable this should still be helpful.
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: pre-announcement: 10x8 tourney

Post by Evert »

Ok, I seem to be getting correct perft results now (still without castling though):

Code: Select all

Variant: Capablanca chess
 1         28  0.00    848484.85nps
 2        784  0.00   3111111.11nps
 3      25228  0.01   3569326.54nps
 4     805128  0.26   3087206.43nps
 5   28741319  8.13   3534822.37nps
 6 1015802437 311.91   3256678.18nps
Sleep first, I'll try to get castling working tomorrow so I can run some test matches on my desktop over the weekend.