Using TRUUS to analyze BoomstraDam games
- FeikeBoomstra
- Posts: 306
- Joined: Mon Dec 19, 2005 16:48
- Location: Emmen
Using TRUUS to analyze BoomstraDam games
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.
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.
-
- Posts: 1722
- Joined: Wed Apr 14, 2004 16:04
- Contact:
Re: Using TRUUS to analyze BoomstraDam games
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.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.
Rein
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
Bert
-
- Posts: 859
- Joined: Sat Apr 28, 2007 14:53
- Real name: Ed Gilbert
- Location: Morristown, NJ USA
- Contact:
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
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
- FeikeBoomstra
- Posts: 306
- Joined: Mon Dec 19, 2005 16:48
- Location: Emmen
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.
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.
-
- Posts: 859
- Joined: Sat Apr 28, 2007 14:53
- Real name: Ed Gilbert
- Location: Morristown, NJ USA
- Contact:
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.
-- Ed
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.
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?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.
-- Ed
- FeikeBoomstra
- Posts: 306
- Joined: Mon Dec 19, 2005 16:48
- Location: Emmen
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?
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?
-
- Posts: 859
- Joined: Sat Apr 28, 2007 14:53
- Real name: Ed Gilbert
- Location: Morristown, NJ USA
- Contact:
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
-- Ed
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
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
- FeikeBoomstra
- Posts: 306
- Joined: Mon Dec 19, 2005 16:48
- Location: Emmen
-
- Posts: 859
- Joined: Sat Apr 28, 2007 14:53
- Real name: Ed Gilbert
- Location: Morristown, NJ USA
- Contact:
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.FeikeBoomstra wrote:Solved it, dos end of line is \015\012 where unix is satisfied with \012.
The old story.
-- Ed
- FeikeBoomstra
- Posts: 306
- Joined: Mon Dec 19, 2005 16:48
- Location: Emmen
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.
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.
- FeikeBoomstra
- Posts: 306
- Joined: Mon Dec 19, 2005 16:48
- Location: Emmen
Gorredijk, BoomstraDam Sjende Blyn
move 32. white:
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
-
- Posts: 1722
- Joined: Wed Apr 14, 2004 16:04
- Contact:
Feike,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
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