Flits Dxp Server

Discussion about development of draughts in the time of computer and Internet.
jj
Posts: 190
Joined: Sun Sep 13, 2009 23:33
Real name: Jan-Jaap van Horssen
Location: Zeist, Netherlands

Re: Flits Dxp Server

Post by jj » Sun Aug 08, 2010 13:34

Ed,

Great job! Thanks N times! (where N equals the number of automatic games, 42 so far...)

The Truus DXP server works fine.

Two remarks about the Flits DXP server:

1. The -i option doesn't seem to work properly.
flits_dxp_server -i doesn't initiate a 158 game match
flits_dsp_server -c -h 127.0.0.1 on the other hand does, even without -i
This is not a big problem.
2. It seems impossible to play a single game where Flits plays white (GAMEREQ with follower color 'W').
The first move from Flits is not seen by flits_dxp_server and not sent to the other program.
This is a pity!

I also noticed Flits making terrible moves every once in a while. Usually in endgame positions, but how about this one:

Image
[FEN "B:W27,28,32,34,35,37,38,39,40,43,48:B3,6,8,13,15,16,19,20,21,23,24."]

34...23-29?? 35.34x25

My program ABCdam (new name Maximus) is under construction. When I have a new version to test I will play the 158 game matches against Truus and Flits.

Jan-Jaap
www.maximusdraughts.org

Ed Gilbert
Posts: 859
Joined: Sat Apr 28, 2007 14:53
Real name: Ed Gilbert
Location: Morristown, NJ USA
Contact:

Re: Flits Dxp Server

Post by Ed Gilbert » Sun Aug 08, 2010 18:43

Hi Jan-Jaap,

I am glad to hear that you are using the dxp servers. It certainly is a lot easier to use DamExchange than to play a large number of games manually.
Two remarks about the Flits DXP server:

1. The -i option doesn't seem to work properly.
flits_dxp_server -i doesn't initiate a 158 game match
flits_dsp_server -c -h 127.0.0.1 on the other hand does, even without -i
This is not a big problem.
You are right in one sense. The -i (Iniitiator) option does not work properly unless the flits server is also acting as the client and the remote program is already listening for a connection. So if you use -i along with -c, -h, -m, and -t, then the match will start up properly. If you use -i by itself, that is asking the flits server to be an Initiator but also be a listener (server) to establish the connection. In that mode it does not start up correctly as an Initiator, and also if it receives a GAMEREQ message it will probably switch to acting as a follower. I apologize for not documenting that combination.
2. It seems impossible to play a single game where Flits plays white (GAMEREQ with follower color 'W').
The first move from Flits is not seen by flits_dxp_server and not sent to the other program.
This is a pity!
I cannot reproduce this problem. I just started a match against kingsrow using this command line:

Code: Select all

flits_dxp_server -i -c -h 127.0.0.1 -t 5 -m 75
It has already played a few games, the follower color has alternated after each game. Also, whenever I play a long match between kingsrow and flits, I usually make kingsrow the initiator and flits the follower, and these games also alternate the follower color every game. If you like I can try to help you get this going. Tell me what command line you used to start the flits server, what the Initiator program is (ABCDam or something else), what startup messages are exchanged, etc.
I also noticed Flits making terrible moves every once in a while. Usually in endgame positions, but how about this one:
Wow, that's terrible! Flits is a good program though in spite of these occasional glitches. It's stronger than Truus and has a nicer user interface.
My program ABCdam (new name Maximus) is under construction. When I have a new version to test I will play the 158 game matches against Truus and Flits.
I hope to see it some time. What can you tell us about ABCdam or Maximus? What language is it written in? What framework (if any) is the user interface using?

-- Ed

jj
Posts: 190
Joined: Sun Sep 13, 2009 23:33
Real name: Jan-Jaap van Horssen
Location: Zeist, Netherlands

Re: Flits Dxp Server

Post by jj » Sun Aug 08, 2010 20:36

Hi Ed,

No apologies necessary ;-)
It seems impossible to play a single game where Flits plays white ...
I meant one game, apart from a match. Playing matches works fine, both Flits-Truus and Flits-Maximus, tested for a couple of games with Flits playing white and black.

What I was trying to do is:

1. start Flits (with the recommended GUI settings)
2. start flits_dxp_server (without any parameters)
3. start Maximus and connect to flits_dxp_server

This all works fine.

4. initiate a (one) new game against Flits from the Maximus GUI, with Flits either black (works) or white (does not work)

In the latter case, Flits playing white, the dxp server says something like

GAMEREQ from Maximus; time 1; moves 75; start position is GAYP; Flits plays white
Sent: "AFlits...0"
to flits: fw

and waits for Flits to move. However, When Flits plays its move (1.34-30), nothing happens. When Flits plays black, it works.

I did some more testing and found out that I can play one game (Maximus being the initiator) and Flits playing white - if I use a setup with one of the 79 ballots. (nice feature by the way)
So it happens only if the position is GAYP and Flits has to play white. So this is not a big problem either.

I agree on Truus and Flits. What hash table settings do you use for Flits?

ABCdam and Maximus are written in Java. For a screenshot of ABCdam see Leo Nagels site http://home.planet.nl/~nagel580/Compdam/hs3180.htm.
The user interface was built using the Netbeans GUI builder (Matisse). I wrote my own Java implementation of DamExchange (and PDN). I posted my perft results before (still waiting for the 64-bit Java compiler).
ABCdam competed in the Leiden 2009 tournament (9th place). It used a simple parallel search algorithm (PVsplit). It also still counted capture moves in the search depth, followed by a quiescence search. Probably due to my past as a chess player and programmer. Two years ago I rediscovered this old hobby making a cat-and-mouse game for my son, then just for fun added a move generator for draughts (which is played on the same bord) and then you know what happens.

Yes, I look forward to playing Kingsrow in the future!

Jan-Jaap
www.maximusdraughts.org

Ed Gilbert
Posts: 859
Joined: Sat Apr 28, 2007 14:53
Real name: Ed Gilbert
Location: Morristown, NJ USA
Contact:

Re: Flits Dxp Server

Post by Ed Gilbert » Sun Aug 08, 2010 23:33

Hi Jan-Jaap,

I think I understand the problem now. I never use the normal start position in my testing, always the 2-move ballots, so no doubt there is some bug in setting the follower color with the GAYP start.
I agree on Truus and Flits. What hash table settings do you use for Flits?
I have been using 64mb which I assume is sufficient for relatively quick games of 5min/75 moves.

Thanks for the info about Maximus. It looks nice, and even a parallel search!

-- Ed

64_bit_checkers_engine
Posts: 62
Joined: Mon Apr 20, 2009 01:10
Contact:

Re: Flits Dxp Server

Post by 64_bit_checkers_engine » Tue Aug 10, 2010 00:32

There a way to watch the games as a spectator?

BertTuyt
Posts: 1592
Joined: Wed Sep 01, 2004 19:42

Re: Flits Dxp Server

Post by BertTuyt » Tue Aug 10, 2010 01:11

No there is not a possibility to watch as a spectator (only possible for the computer(s) involved ).

However I hope (some day) that we are able to play Tournaments via the Internet , where all can watch , and can participate.
Hope that Ed has some spare time to program this in an afternoon :)

Bert

Ed Gilbert
Posts: 859
Joined: Sat Apr 28, 2007 14:53
Real name: Ed Gilbert
Location: Morristown, NJ USA
Contact:

Re: Flits Dxp Server

Post by Ed Gilbert » Tue Aug 10, 2010 12:18

Jan-Jaap, I fixed the 2 bugs you reported. I'll update the files on the web after I've had a chance to run it through all the various combinations of black/white, initiator/follower, client/server, gayp/2-move, etc.

-- Ed

Ed Gilbert
Posts: 859
Joined: Sat Apr 28, 2007 14:53
Real name: Ed Gilbert
Location: Morristown, NJ USA
Contact:

Re: Flits Dxp Server

Post by Ed Gilbert » Tue Aug 10, 2010 12:26

Hi Ed,
There a way to watch the games as a spectator?
Unfortunately no, that would be nice though. If you want to see what an engine match looks like you can run your copy of kingsrow against dam2.2. Dam isn't as strong as flits but it is a free download and it has a nice implementation of DamExchange. Look under DamExchange in the kingsrow help for info on starting a match. A specific example is given of running a match against dam2.2.

-- Ed

Ed Gilbert
Posts: 859
Joined: Sat Apr 28, 2007 14:53
Real name: Ed Gilbert
Location: Morristown, NJ USA
Contact:

Re: Flits Dxp Server

Post by Ed Gilbert » Tue Aug 10, 2010 21:04

I put a new Flits dxp server package at the web site. It fixes the 2 bugs that Jan-Jaap reported, and I also added a "new match" (-n) option that deletes at startup the two files that the server writes.

-- Ed

jj
Posts: 190
Joined: Sun Sep 13, 2009 23:33
Real name: Jan-Jaap van Horssen
Location: Zeist, Netherlands

Re: Flits Dxp Server

Post by jj » Thu Aug 12, 2010 21:49

Ed,

Thanks, everything works fine now.

What hash table settings do you recommend for a match between Truus and Flits @ 75 moves in 9 minutes?
And how many positions do you think they can store in 1 Mb? Java (Maximus) has more memory overhead I guess.

Do you know the effect of changing the Truus 'Partijen Database Ruimte' from 4 M to the maximum of 35 M?

My copy of Flits was damaged (I have to wait for a new CD) so I could only do a partial installation. It seems to run correctly though, after I copied the missing .dat files from Turbo Dambase Flits. Does it have an opening book? This seems empty.

It keeps making these terrible mistakes.

Image
69. 1-34?? 30x39

Four of those in 20 games Flits versus Maximus! (score not public yet ;-)
This is pretty significant. Do you count these as losses or do you correct for glitches?

Jan-Jaap
www.maximusdraughts.org

Ed Gilbert
Posts: 859
Joined: Sat Apr 28, 2007 14:53
Real name: Ed Gilbert
Location: Morristown, NJ USA
Contact:

Re: Flits Dxp Server

Post by Ed Gilbert » Thu Aug 12, 2010 22:52

Hi JJ,
What hash table settings do you recommend for a match between Truus and Flits @ 75 moves in 9 minutes?
And how many positions do you think they can store in 1 Mb? Java (Maximus) has more memory overhead I guess.
I use 8000 16K blocks (~128mb). I have no idea how big a hashtable entry is in Truus. IIRC I just kept increasing this setting until it would not accept a larger number :-). The docs on Truus are very skimpy.
Do you know the effect of changing the Truus 'Partijen Database Ruimte' from 4 M to the maximum of 35 M?
I have no idea, but I set this to 64mb, assuming that this is the egdb cache size and the bigger the better.
It seems to run correctly though, after I copied the missing .dat files from Turbo Dambase Flits. Does it have an opening book? This seems empty.
If you have any question about missing files I can email you my Flits directory listing and also send you any files that might still be missing. I have not been successful in enabling an opening book in either Flits or Truus, although I have certainly tried and also asked for help doing it here on this forum. Truus obviously has a large database of games which it could use as an opening book, and I think it had some commands that looked like they were opening book commands, but I could never get it to play moves from that database.
Four of those in 20 games Flits versus Maximus! (score not public yet
This is pretty significant. Do you count these as losses or do you correct for glitches?
I wonder if the frequency of these errors is related to the hashtable or egdb cache size, as I see them with much lower frequency. Another possibility is that I terminate games much sooner than you because I am usually using a large endgame database, so I might be avoiding these bugs by not playing out the endings. I do not correct for these, I count them as they occur. I typically see only 2 or 3 in a match of 158 games, based on a couple of matches where I actually checked to see how many occured. I don't usually take the trouble to check though, so I may have had matches where there are more.

-- Ed

BertTuyt
Posts: 1592
Joined: Wed Sep 01, 2004 19:42

Re: Flits Dxp Server

Post by BertTuyt » Thu Aug 12, 2010 23:20

I get the impression (but i might be wrong), that these errors occur when (for what ever reason) Flits plays a tempo (so without thinking).
Good you confirm this (difficult when you don't observe directly all games during a match)...

Bert

Ed Gilbert
Posts: 859
Joined: Sat Apr 28, 2007 14:53
Real name: Ed Gilbert
Location: Morristown, NJ USA
Contact:

Re: Flits Dxp Server

Post by Ed Gilbert » Thu Aug 12, 2010 23:31

BertTuyt wrote:I get the impression (but i might be wrong), that these errors occur when (for what ever reason) Flits plays a tempo (so without thinking).
Good you confirm this (difficult when you don't observe directly all games during a match)...
Bert, I think you are right, when I have seen these errors playing games manually it seems that Flits was pondering the move kingsrow made so it was able to move as soon as I entered kingsrow's move. Maybe a pondering bug. A pity that pondering cannot be turned off...

-- Ed

jj
Posts: 190
Joined: Sun Sep 13, 2009 23:33
Real name: Jan-Jaap van Horssen
Location: Zeist, Netherlands

Re: Flits Dxp Server

Post by jj » Thu Aug 12, 2010 23:43

Ed,
I have no idea, but I set this to 64mb, assuming that this is the egdb cache size and the bigger the better.
The documentation says this is for the file trubase.tp, so using the file size of 35,342 K is sufficient.
If you have any question about missing files I can email you my Flits directory listing and also send you any files that might still be missing.
That would be great!
Another possibility is that I terminate games much sooner than you because I am usually using a large endgame database, so I might be avoiding these bugs by not playing out the endings.
I think so too. It mainly happens in/near 6 piece endings. The one in my first post is the exception.

Bert,
I get the impression (but i might be wrong), that these errors occur when (for what ever reason) Flits plays a tempo (so without thinking).
Good you confirm this (difficult when you don't observe directly all games during a match)...
I watched it happen a couple of times when Flits used a lot of time, seeing the right (winning) move/value, then suddenly changed its mind and played a losing move.

Jan-Jaap
www.maximusdraughts.org

jj
Posts: 190
Joined: Sun Sep 13, 2009 23:33
Real name: Jan-Jaap van Horssen
Location: Zeist, Netherlands

Re: Flits Dxp Server

Post by jj » Wed Aug 25, 2010 23:25

Hi all,

Credits to Ed, Bert and Harm, I played a "litte" 158 ballot game DamExchange tournament with Flits, Truus and Dam2.2 (free download). The results I would like to share with you.

The computer I used is a desktop Intel core duo E8400 3.0GHz with 4Gb RAM, running Windows XP pro x64.

Program settings
- Flits : 75 moves in 9 min (and pondering), 6p databases, 128Mb hash table (160 Mb vs. Dam2.2)
- Truus : 75 moves in 9 min (and pondering), 6p databases, 128Mb hash table (160 Mb vs. Dam2.2)
- Dam2.2: 75 moves in 12 min (no pondering), 6p databases, 24Mb hash table

The matches Truus vs. Dam2.2 and Flits vs. Dam2.2 were played with Dam2.2 as initiator, using the file 2move_ballots.pdn. Using setup positions seems to disable the Dam2.2 opening book, so in fact none of the three programs uses an opening book. Dam2.2 stops a game when there are 6 or less pieces on the board, giving reliable game results.

The match Flits vs. Truus was played with the truus_dxp_server -a option. I checked the outcomes and had to correct 7 results from draws into wins/losses.

Here are the results of the tournament.

Round 1. Truus vs. Dam2.2 60 wins, 2 losses, 96 draws
Round 2. Flits vs. Dam2.2 78 wins, 6 losses, 74 draws
Round 3. Flits vs. Truus 13 wins, 10 losses, 135 draws

The games between Flits and Dam2.2 were played "to the end" (6 pieces or less). This gives Flits the opportunity to make more glitches. I found 5, all in/near database positions. All causing a draw position to be lost. I only found one glitch by Flits vs. Truus, again making a losing move in a draw ending (#6 below).

Final standings (Flits glitches not corrected):

1. Flits 391 pts 1.237 avg
2. Truus 371 pts 1.174 avg
3. Dam2.2 186 pts 0.583 avg

To see if having a much larger hash table makes a big difference, I also played a match Truus vs. Dam2.2 with a Truus hash table of 24Mb, equal to Dam2.2. (At the same time raising the 'partijendatabase ruimte' from 4 to 36Mb, effect unknown to me.) The result shows little difference:

Truus/24Mb vs. Dam2.2 57 wins, 0 losses, 101 draws

I noticed a difference with the Flits vs. Truus match played by Ed, more draws on my side. It would be interesting if a number of people could repeat this experiment, so we can see if there is much difference (randomness) in the outcomes.

Maybe we can even make a benchmark out of this: see how many points a program scores on the 474 game FTD benchmark (under some standard conditions) gives a good indication of its playing strength. In addition to internet engine matches, this can help in determining more reliable and up to date estimates for program ratings.

Anyway, it is great that any draughts programmer implementing DamExchange now can run automated matches against these programs!

Jan-Jaap

P.S.
In case somebody is interested in the glitch positions:
1. [FEN "B:W29,32,34:B8,13,31."] 1. ... 31-37
2. [FEN "B:W6,34,38:B12,13,26,28."] 1. ... 28-32 2. 38x27 26-31 3. 27x36
3. [FEN "B:W18,23,36,39:B1,3,6,35."] 1. ... 35-40 2. 39-34 40x29 3. 23x34 6-11
4. [FEN "W:W29,37,47:B17,19,36."] 1. 47-41
5. [FEN "W:W31,39,50:B8,24,45."] 1. 50-44
6. [FEN "B:W14,21,40:B6,11,24."] 1. ... 24-30
www.maximusdraughts.org

Post Reply