Using TRUUS to analyze BoomstraDam games

Discussion about development of draughts in the time of computer and Internet.
User avatar
FeikeBoomstra
Posts: 306
Joined: Mon Dec 19, 2005 16:48
Location: Emmen

Using TRUUS to analyze BoomstraDam games

Post by FeikeBoomstra » Thu Dec 18, 2008 17:57

Did anybody figure out the format of the text file TRUUS uses to load a game?
You can only load a text file, not save it, so for me it is guessing for the format.
And I don't see any error messages, so I don't know what is wrong.

Rein Halbersma
Posts: 1722
Joined: Wed Apr 14, 2004 16:04
Contact:

Re: Using TRUUS to analyze BoomstraDam games

Post by Rein Halbersma » Thu Dec 18, 2008 17:59

FeikeBoomstra wrote:Did anybody figure out the format of the text file TRUUS uses to load a game?
You can only load a text file, not save it, so for me it is guessing for the format.
And I don't see any error messages, so I don't know what is wrong.
Feike, I have no idea. But if you have TurboDambase, it's much easier as you can use Flits to analyse and export the analysis + game to PDN.

Rein

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

Post by BertTuyt » Thu Dec 18, 2008 19:56

Feike, if you sent me the games I can also ask Damage to take a look at it , during the 2 weeks holiday i have [img]images/smilies/icon_smile.gif[/img]

Bert

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

Post by Ed Gilbert » Fri Dec 19, 2008 14:24

Hi Feike,

I took a look at the game lost to Sjende Blyn.

[White "Boomstradam"]
[Black "Sjende Blyn"]
[Result "0-1"]
1.33-29 17-21 2.39-33 21-26 3.44-39 20-24 4.29x20 15x24 5.32-28 16-21 6.37-32 26x37 7.42x31 10-15 8.31-27 21-26 9.41-37 11-17 10.47-42 24-29 11.33x24 19x30 12.34x25 18-22 13.27x18 13x44 14.50x39 17-22 15.39-33 12-18 16.35-30 22-27 17.32x21 26x17 18.37-32 06-11 19.46-41 08-13 20.40-34 07-12 21.42-37 18-22 22.34-29 22-27 23.32x21 17x26 24.45-40 02-08 25.37-32 11-17 26.49-44 01-07 27.41-37 13-18 28.43-39 18-22 29.36-31 17-21 30.30-24 08-13 31.40-34 12-17 32.24-20 15x24 33.29x20 07-11 34.20-15 03-08 35.48-42 13-18 36.34-30 08-12 37.33-28 22x33 38.39x28 18-22 39.30-24 22x33 40.38x29 17-22 41.32-28 22x33 42.29x38 12-18 43.38-32 18-22 44.15-10 04x15 45.44-39 11-16 46.31-27 22x31 47.32-28 09-13 48.28-23 21-27 49.25-20 14x25 50.23-19 13-18 51.19-14 18-23 52.39-34 31-36 53.42-38 27-31 54.34-30 31x33 55.14-09 25x34 56.09-03 33-39 57.03x12 15-20 58.12x40 20x29 59.40x18 36-41 60.18-12

Before move 32. 24-20, kingsrow thinks Boomstradam has a slight positional advantage. After 24-20 x x it sees a 1/2 man advantage for black, and that advantage continues to increase in all the remaining moves. At move 49 after 25-20 it sees a database win.

-- Ed

User avatar
FeikeBoomstra
Posts: 306
Joined: Mon Dec 19, 2005 16:48
Location: Emmen

Post by FeikeBoomstra » Fri Dec 19, 2008 15:18

I missed the one for two threat in my evaluation function. On the edge (16, 21) was a special case that I forgot to implement.

But now I've done it, and the bad thing is, the evaluation goes down, but the moves are still the same. On 32 there are two reasonable moves according to my program:

24-20 and 48-42 both valued 0.08

Can you please share the pv after 24-20 showing the loss of half a piece.

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

Post by Ed Gilbert » Fri Dec 19, 2008 17:47

Hi Feike,

I do not have a good way to find the pv. I use an mtd-f search so everything in the hashtable is a fail high or fail low, no exact values. I extract a quasi-pv from the hashtable, but it is often unreliable after a certain depth so I only display it to 8 or 10 ply.
FeikeBoomstra wrote:I missed the one for two threat in my evaluation function. On the edge (16, 21) was a special case that I forgot to implement.
You detect shots in the evaluation function? That sounds very ambitious! I have no explicit detection for shot patterns. I let the search find them. Do you do this via search extensions as described by Keetman's paper?

-- Ed

User avatar
FeikeBoomstra
Posts: 306
Joined: Mon Dec 19, 2005 16:48
Location: Emmen

Post by FeikeBoomstra » Fri Dec 19, 2008 18:35

About the pv:
Ok, so you are facing the same problem, you have to reconstruct the pv from the hash. I am doing the same. I also use Aske v.d.Plaats algorithm, but I have both bounderies in the hash. For the pv both boundaries are the same, this makes things a little bit more easy.
I am thinking about a reconstruction function, using this feature.

About the 1 to 2 implementation:
Actually it is not in the evaluation function itself, it is indeed a one ply search extension for a some potential 1 to 2's.

About the paper:
Can you give me a reference to the paper you mentioned?

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

Post by Ed Gilbert » Fri Dec 19, 2008 19:17

The paper is titled "Learning Tactical Patterns in Draughts" by S. Keetman and L. V. Allis. I learned about it from Rein, and he sent me the document in pdf format. If you're interested I'll email it to you. It describes the method of doing tactical search extensions that are used in Truus. It detects several hundred patterns, and they are learned automatically through self-play, then converted to a tree-like template for detection during the search. The paper is interesting, but I am skeptical of the usefulness of the technique. Keetman reports the results of a couple of engine matches between a baseline version of Truus and a version using the tables, but unfortunately the number of games in these matches is too small to be significant.

-- Ed

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

Post by BertTuyt » Sat Dec 20, 2008 00:34

Ed, im also interested in the paper. So if you could sent it to me , it would be great. My holiday started, so also time to finally implement the parallel search.

Regarding the 1 to 2 shot (don't know if this is the "official" naming), I use in my evaluation function Hardwired patterns to detect them, basically i also use this info during the QSearch.

Bert

User avatar
FeikeBoomstra
Posts: 306
Joined: Mon Dec 19, 2005 16:48
Location: Emmen

Post by FeikeBoomstra » Sun Dec 21, 2008 00:36

Solved it, dos end of line is \015\012 where unix is satisfied with \012.
The old story.

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

Post by Ed Gilbert » Tue Dec 23, 2008 01:26

FeikeBoomstra wrote:Solved it, dos end of line is \015\012 where unix is satisfied with \012.
The old story.
Feike, what Truus commands did you give to make this work? I tried File, Laad Partij, and then loaded a file that had a pdn formatted game. Truus played a bunch of moves very quickly which led to a blocked position which had nothing to do with the game I loaded.

-- Ed

User avatar
FeikeBoomstra
Posts: 306
Joined: Mon Dec 19, 2005 16:48
Location: Emmen

Post by FeikeBoomstra » Tue Dec 23, 2008 10:05

I don't know whether TRUUS has also an English interface, so I will give the commands both in Dutch and English.

You can find the format to load a game by looking at the output of "Print Partij". PrintPartij doesn't print anything, but it generates a file. The program asks the number of columns and for simplicity I used just 1.

So you have to convert the pdn file to this format. My problem was, what I generated looked exactly the same as TRUUS's output, but it didn't work. Until I looked into it with a hex-editor and found the different CRLF and LF end of line markers.

How to analyse:

Start with "Laad Tekst Partij", (Load Text Game), the save the game(s) in TRUUS format by "Bewaar Partij" (Save Game). Now you can start analyzing: Analyze game or analyze games (one or more games in the file). The program asks for a file with .tru extension. During the analyze it appends its output in the .ana file (with the same name).

How to set the parameters for analyzing I don't know yet. I used the default setting. For the steps I took 2.

Hope this helps you.
Kind regards,
Feike.

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

Post by BertTuyt » Tue Dec 23, 2008 15:17

Feike,Ed

what is the plydepth you reach at move 32 (in how many seconds , 20?) ?

Ed, at move 49 you see a databasewin, which database did you use for that ( 6, 7, 8, 9 ?)

Bert

User avatar
FeikeBoomstra
Posts: 306
Joined: Mon Dec 19, 2005 16:48
Location: Emmen

Post by FeikeBoomstra » Tue Dec 23, 2008 16:25

Gorredijk, BoomstraDam Sjende Blyn
move 32. white:

Code: Select all


   dur:   0.002, k= 4 avg= 5.4 max=10 s= 994 34-30  kN:      1 (120)
   dur:   0.006, k= 6 avg= 7.4 max=14 s=1438 34-30  kN:      7 (120)
   dur:   0.016, k= 8 avg=10.1 max=22 s=2128 24-20  kN:     34 (120)
   dur:   0.053, k=10 avg=13.0 max=26 s=2733 24-20  kN:    142 (140)
   dur:   0.491, k=12 avg=16.1 max=33 s=3872 24-20  kN:   1897 (100)
   dur:   1.868, k=14 avg=18.5 max=37 s=3255 24-20  kN:   6078 (60)
   dur:   4.542, k=16 avg=20.5 max=39 s=2695 24-20  kN:  12240 (80)
   dur:  35.794, k=18 avg=23.2 max=43 s=4271 24-20  kN: 152904 (80)

leaf node:
    .   .   x   x   x
  .   .   .   .   .
    .   .   x   x   o
  .   x   x   .   .
    x   .   .   .   o
  x   .   o   .   o
    o   o   .   .   o
  .   o   .   .   .
    .   .   o   .   .
  .   .   .   .   .

k = feed
avg = average distance from root
max = max distance from root
s = kNodes/sec
move
total kNodes
(value) man = 1000


Rein Halbersma
Posts: 1722
Joined: Wed Apr 14, 2004 16:04
Contact:

Post by Rein Halbersma » Tue Dec 23, 2008 18:56

FeikeBoomstra wrote:Gorredijk, BoomstraDam Sjende Blyn
move 32. white:

Code: Select all


   dur:   0.002, k= 4 avg= 5.4 max=10 s= 994 34-30  kN:      1 (120)
   dur:   0.006, k= 6 avg= 7.4 max=14 s=1438 34-30  kN:      7 (120)
   dur:   0.016, k= 8 avg=10.1 max=22 s=2128 24-20  kN:     34 (120)
   dur:   0.053, k=10 avg=13.0 max=26 s=2733 24-20  kN:    142 (140)
   dur:   0.491, k=12 avg=16.1 max=33 s=3872 24-20  kN:   1897 (100)
   dur:   1.868, k=14 avg=18.5 max=37 s=3255 24-20  kN:   6078 (60)
   dur:   4.542, k=16 avg=20.5 max=39 s=2695 24-20  kN:  12240 (80)
   dur:  35.794, k=18 avg=23.2 max=43 s=4271 24-20  kN: 152904 (80)

leaf node:
    .   .   x   x   x
  .   .   .   .   .
    .   .   x   x   o
  .   x   x   .   .
    x   .   .   .   o
  x   .   o   .   o
    o   o   .   .   o
  .   o   .   .   .
    .   .   o   .   .
  .   .   .   .   .

k = feed
avg = average distance from root
max = max distance from root
s = kNodes/sec
move
total kNodes
(value) man = 1000

Feike,

I see that you deepen your iterations in steps of 2 plies, unlike Truus and Flits. It's similar to Kingsrow and Chinook, but these programs iterate over the odd number of plies whereas you do the even numbers. Did you experiment with both methods? Ed, did you?

Rein

Post Reply