How effective is move ordering from TT?

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Adam Hair
Posts: 3226
Joined: Wed May 06, 2009 10:31 pm
Location: Fuquay-Varina, North Carolina

Re: Off-topic, sorry...

Post by Adam Hair »

Ajedrecista wrote:Hi Adam:
Adam Hair wrote:I will try to replicate your problem when I return home in a few hours. As Kai said, LB has to be directed to InBetween. In your first attempt, LB was starting the engines directly, bypassing InBetween and the depth instructions.

Have you created InBetween logfiles to see the communication between LB and InBetween?
Thanks for your interest, and also thanks to Kai for the help.

I did not create logfiles; if I tick 'Log First Engine (LittleBlitzer.log)' option in LB 2.5 GUI, I obtain this info:

Code: Select all

-->((null)) uci
<--(&#40;null&#41;) InBetween. 1.4 by Odd Gunnar Malin
<--(&#40;null&#41;) Syntax&#58; InBetween &#91;/t filename /p priority /c /d n /l logfile&#93; <command line>
<--(&#40;null&#41;) Where&#58;
<--(&#40;null&#41;)   /t textfile with the translation. Default=InBetween.ini
<--(&#40;null&#41;)   /p Priority flag, low, normal or high. Default is the same as this process.
<--(&#40;null&#41;)   /c Stop ctrl C and ctrl break. Default is passing through.
<--(&#40;null&#41;)   /d Debug where n could be 1=client side, 2=server side, 3=both.
<--(&#40;null&#41;)   /l Logfile.
But the engines do not load. As a side note, I must say that I have changed a little InBetween.ini files. I now write:

Code: Select all

CommandLine &#58;= H&#58;\d1\Quazar_0.4_w32.exe
go movetime 100 &#58;= go depth 1
Log &#58;= logfile.log
I mean, I write the full path in 'CommandLine'; I also add that last line, although I have not seen any logfile.log file created.

A normal LittleBlitzer.log file, loading two copies of Quazar, looks like this:

Code: Select all

-->(&#40;null&#41;) uci
<--(&#40;null&#41;) id name Quazar 0.4 w32
<--&#40;Depth 1&#41; id author Dmitry Morozov
<--&#40;Depth 1&#41; option name Hash type spin default 32 min 4 max 8192
<--&#40;Depth 1&#41; option name Clear Hash type button
<--&#40;Depth 1&#41; option name Ponder type check default true
<--&#40;Depth 1&#41; option name MultiPV type spin default 1 min 1 max 500
<--&#40;Depth 1&#41; uciok
-->&#40;Depth 1&#41; setoption name Hash value 1
-->&#40;Depth 1&#41; setoption name Ponder value false
-->&#40;Depth 1&#41; setoption name OwnBook value false
-->&#40;Depth 1&#41; setoption name Hash value 16
-->&#40;Depth 1&#41; isready
<--&#40;Depth 1&#41; readyok
-->&#40;Depth 1&#41; quit
-->(&#40;null&#41;) uci
<--(&#40;null&#41;) id name Quazar 0.4 w32
<--&#40;Depth 2&#41; id author Dmitry Morozov
<--&#40;Depth 2&#41; option name Hash type spin default 32 min 4 max 8192
<--&#40;Depth 2&#41; option name Clear Hash type button
<--&#40;Depth 2&#41; option name Ponder type check default true
<--&#40;Depth 2&#41; option name MultiPV type spin default 1 min 1 max 500
<--&#40;Depth 2&#41; uciok
-->&#40;Depth 2&#41; setoption name Hash value 1
-->&#40;Depth 2&#41; setoption name Ponder value false
-->&#40;Depth 2&#41; setoption name OwnBook value false
-->&#40;Depth 2&#41; setoption name Hash value 16
-->&#40;Depth 2&#41; isready
<--&#40;Depth 2&#41; readyok
-->&#40;Depth 2&#41; quit
I want to do a small experiment of diminishing returns between Elo gain and search depth, maybe with 2500 games/match, without opening books, EPD files, etc. The idea is let play (depth 1) vs. (depth 2), (depth 2) vs. (depth 3), ..., (depth N) vs. [depth (N - 1)]. I know that there are several attempts:

http://www.talkchess.com/forum/viewtopi ... =0&t=29011

http://www.top-5000.nl/ply.htm

http://rybkaforum.net/cgi-bin/rybkaforu ... ?tid=18656

Just mentioning a few of them; CPW page dedicated to 'depth' can be of interest.

In the case that I finally manage to run fixed depth matches, then probably I will get interesting results and will post them in this subforum; if not (the most probable case), all remains the same and there is no problem for me. I know that the best thing is to compare various engines, but I have not got time and resources to do this, so I only randomly choose Quazar because it is an engine I like.

I think that cutechess-cli can run fixed depth matches, although it is very complicated to me its use (please remember than I am almost a newbie to computers), so I would prefer LB if possible (at least, I more less know how to use LB).

Regards from Spain.

Ajedrecista.
Jesús,

Here is the InBetween.ini for one of the engines (the other is very similar):

Code: Select all

&#91;InBetween&#93;
; You can set program option here if its not possible in the server program
;
; The priority flag is if you want the server app. to run with lower priority.
; This could be when you want use an engine to analyze games/positions and
; you also want to use the computer to other work. If this is not set it will
; try to see what the client wants and set the server to this priority.
; Don't use the high option is you don't know what you do.
;Priority &#58;= low, normal or high
;
CommandLine &#58;= C&#58;\LB_test\depth1\Quazar_0.4_w32.exe
;
; The debug switch is if you want to see the command flow in a window when the
; server and client talks. 1 means viewpoint is on the client interface, 2 means
; viewpoint is on the server interface, and finaly 3 means that the viewpont is
; after the translation &#40;input to client and input to server&#41;.
;Debug &#58;= 0, 1, 2 or 3
;
; A try to pass any control signal.
;Ctrl &#58;= False or True
;
; The logfile is if you want that InBetween log all communications.
Log &#58;= logfile.log

&#91;Client2Server&#93;
; Set the translation of client command to server here.
; Format&#58;
    go movetime 100 &#58;= go depth 1

&#91;Server2Client&#93;
; Set the translation of server response to the client here.
; Format&#58;
;    serverword &#58;= clientword
Here is my Engines.lbe file:

Code: Select all

Engine=C&#58;\LB_test\depth1\Quazar_depth1.exe

Engine=C&#58;\LB_test\depth2\Quazar_depth2.exe
Did you uncomment (removed the semicolons ";") in the relevant lines of the InBetween.ini files? What happens if you double click on one of the InBetween.exe files? It looks like InBetween and Quazar are not communicating. If they were communicating, then clicking on InBetween will bring up the engine in console mode.

By the way (though it does not appear to be relevant in your case), LB does not like spaces in the path. If the engine was in a folder with a name with a space in it, LB will not find the engine.
Adam Hair
Posts: 3226
Joined: Wed May 06, 2009 10:31 pm
Location: Fuquay-Varina, North Carolina

Re: Off-topic, sorry...

Post by Adam Hair »

Ajedrecista wrote: I want to do a small experiment of diminishing returns between Elo gain and search depth, maybe with 2500 games/match, without opening books, EPD files, etc. The idea is let play (depth 1) vs. (depth 2), (depth 2) vs. (depth 3), ..., (depth N) vs. [depth (N - 1)]. I know that there are several attempts:

http://www.talkchess.com/forum/viewtopi ... =0&t=29011

http://www.top-5000.nl/ply.htm

http://rybkaforum.net/cgi-bin/rybkaforu ... ?tid=18656

Just mentioning a few of them; CPW page dedicated to 'depth' can be of interest.

In the case that I finally manage to run fixed depth matches, then probably I will get interesting results and will post them in this subforum; if not (the most probable case), all remains the same and there is no problem for me. I know that the best thing is to compare various engines, but I have not got time and resources to do this, so I only randomly choose Quazar because it is an engine I like.

I think that cutechess-cli can run fixed depth matches, although it is very complicated to me its use (please remember than I am almost a newbie to computers), so I would prefer LB if possible (at least, I more less know how to use LB).

Regards from Spain.

Ajedrecista.
When you complete your depth tests, we can compare results. I have depth tests for multiple engines that I have not shared with the community yet. One difference is that I started at depth 2 for all the engines. For instance, Gaviota will always search at least 2 plies deep, so 1 ply results for it are not possible.
chrisw
Posts: 4319
Joined: Tue Apr 03, 2012 4:28 pm

Re: How effective is move ordering from TT?

Post by chrisw »

bob wrote:
Rebel wrote:
bob wrote:
Rebel wrote:
bob wrote:
chrisw wrote: Yes, I have indeed been on about "heavy eval" for years. Curious now how my "heavy eval" from early 1990s is the basis of Fruit. I think you use it too now.

On GM play, the sad truth is that you have no idea.
Fruit? Heavy Eval?
Chris did not say the Fruit eval is heavy.
How does that jive with the following quote?

Curious now how my "heavy eval" from early 1990s is the basis of Fruit. I think you use it too now.
By the mouth of Dann Corbit a quote from Anthony Cozzie:

Anthony Cozzie quit chess programming because he felt that the winning program was nothing more than the biggest bag of tricks collected from all the existing programs.

How could you miss Chris' point?

Insult snipped.
How can one make a point with an outright false statement? There is nothing "heavy" (heavy is commonly a synonym for complex or computationally expensive in computer chess discussions) in Fruit's eval at all. Does he REALLY want to claim that a very simple bean-counter evaluation was derived from HIS evaluation? :) One never knows what one is going to read here nowadays. But clearly, accuracy is not exactly a description of things like this.

Fruit's eval is NOT "heavy" by any possible measure of the term. Here's the typical "slang" definition of heavy (not particularly computer-science specific, but the last one is on point...

heavy

* good.

Usher is a heavy dancer.

* Cool, Awesome

Wow your website is heavy.

* deep, hard to deal with, burdensome, or hard to understand

BTW where does CSTal come in here? It was never open-source, and I have never heard of anyone reverse-engineering the thing since it was never near the top of any rating list or tournament. How, then, did someone (Fabien) supposedly hijack his eval ideas? So other than being totally unrelated to current state of affairs, how exactly was there a point to be made???
Who said anything about Fabien hijacking? Oh, you made it up. Why that?

CSTal doesn't need to be reverse engineered since the ply one static scores are all displayed and the evaluation function idea can be worked out from that, in particular the king attack function idea. Also I made quite enough noise so those other than your blindedness can quite easily work out what it was doing.

For strong chess players with GM level knowledge, of course heavily used by Tal, it's Q plus 2 units is quite possibly a mate, and if not likely there's a perpetual. One of the units can be a pawn, the more and the stronger units, the greater the mate chances. Defenders are irrelevent. Defending king pawn structure damage is very relevent. R+R can substitute for Q.

For slower ones, software engineers who need source code ....

if queen plus unit
get attacks around the king using suitable mask
use the total attacker type melded with pawn destruction to give a suitable bonus.

for CSTal this was along the lines of
Q plus unit plus pawn worth two pawns or so
Q plus two units worth a bishop
Q plus three units worth a rook, all adjusted for pawn defense destruction.

Apart from the bonus size, looks quite like Fruit Rybka and Crafty some time after Fruit, doesn't it?

Not in Fruit or RYbka as far as I know were side next to move bonuses, if safe checks, especially Q checks available, increase bonus quite a lot. If not on move decrease bonus. Twas much more making it probbaly too heavy but I forget nearly two decades later.

This stuff was in first half of 1990s, I suspect quite unique to CSTal. Also other stuff relating to material imbalances. Why does it look similar in fruit? No idea, probably people with minds open more than Hyatt discussed the ideas and worked them out, they are pretty obvious to a strong chess player programmer, again not Blinded ones with preconceived ideas.

One thing is absolutely for sure, the first programmer who got this new idea with relatively low computation costs into a fast searcher was going to wipe the board with the opposition. But Hyatt never realised that, until he copied the concept from Rybka/Fruit.
chrisw
Posts: 4319
Joined: Tue Apr 03, 2012 4:28 pm

Re: How effective is move ordering from TT?

Post by chrisw »

bob wrote:
Rebel wrote:
bob wrote:
Rebel wrote:
bob wrote:
chrisw wrote: Yes, I have indeed been on about "heavy eval" for years. Curious now how my "heavy eval" from early 1990s is the basis of Fruit. I think you use it too now.

On GM play, the sad truth is that you have no idea.
Fruit? Heavy Eval?
Chris did not say the Fruit eval is heavy.
How does that jive with the following quote?

Curious now how my "heavy eval" from early 1990s is the basis of Fruit. I think you use it too now.
By the mouth of Dann Corbit a quote from Anthony Cozzie:

Anthony Cozzie quit chess programming because he felt that the winning program was nothing more than the biggest bag of tricks collected from all the existing programs.

How could you miss Chris' point?

Insult snipped.
How can one make a point with an outright false statement? There is nothing "heavy" (heavy is commonly a synonym for complex or computationally expensive in computer chess discussions) in Fruit's eval at all. Does he REALLY want to claim that a very simple bean-counter evaluation was derived from HIS evaluation? :) One never knows what one is going to read here nowadays. But clearly, accuracy is not exactly a description of things like this.

Fruit's eval is NOT "heavy" by any possible measure of the term. Here's the typical "slang" definition of heavy (not particularly computer-science specific, but the last one is on point...

heavy

* good.

Usher is a heavy dancer.

* Cool, Awesome

Wow your website is heavy.

* deep, hard to deal with, burdensome, or hard to understand

BTW where does CSTal come in here? It was never open-source, and I have never heard of anyone reverse-engineering the thing since it was never near the top of any rating list or tournament. How, then, did someone (Fabien) supposedly hijack his eval ideas? So other than being totally unrelated to current state of affairs, how exactly was there a point to be made???
Is that where you get your also-ran ideas from? Reverse engineer stuff at the top of rating lists, find the new idea, implement it, if it gives more Elo keep it, else throw it away?

Seems a bit parasitical, doesn't it?
User avatar
Ajedrecista
Posts: 1971
Joined: Wed Jul 13, 2011 9:04 pm
Location: Madrid, Spain.

Re: Off-topic, sorry...

Post by Ajedrecista »

Hi again:

It finally works! Thank you very much for your patiente.

I was doing things very, very bad: my InBetween.ini files that I edited had only two or three lines (when I said that I write all these *.ini short files in my previous posts, they were the complete ones!)... what a fail. It is fine now.

I ran a short 10-game match but it is extremely slow: the average game length was 249 ms (good) but it took no less than 50 seconds in my PC! I guess that finishing games, assigning scores, re-starting engines, etc., take too much time. A better option must be cutechess-cli.

I already know about the space issue with LB because I dealed with it when I started to use LB; I realized about this issue by my own and I have not incurred in this problem again.

In the case I reach some results I will share them. But it will take a long while (I mean, maybe months!), if I do not abandon the idea.

Regards from Spain.

Ajedrecista.
User avatar
Laskos
Posts: 10948
Joined: Wed Jul 26, 2006 10:21 pm
Full name: Kai Laskos

Re: Off-topic, sorry...

Post by Laskos »

Ajedrecista wrote:Hi again:

It finally works! Thank you very much for your patiente.

I was doing things very, very bad: my InBetween.ini files that I edited had only two or three lines (when I said that I write all these *.ini short files in my previous posts, they were the complete ones!)... what a fail. It is fine now.

I ran a short 10-game match but it is extremely slow: the average game length was 249 ms (good) but it took no less than 50 seconds in my PC! I guess that finishing games, assigning scores, re-starting engines, etc., take too much time. A better option must be cutechess-cli.

I already know about the space issue with LB because I dealed with it when I started to use LB; I realized about this issue by my own and I have not incurred in this problem again.

In the case I reach some results I will share them. But it will take a long while (I mean, maybe months!), if I do not abandon the idea.

Regards from Spain.

Ajedrecista.
Unless it's something wrong with Quazar, there should be a game in 1.5 seconds or so. Then you can increase the number of threads even on one core, until you see (i) or (t) losses. I usually manage 3-4 threads on 2 cores for depth=small matches without (i) or (t) losses.

Kai
User avatar
Ajedrecista
Posts: 1971
Joined: Wed Jul 13, 2011 9:04 pm
Location: Madrid, Spain.

Re: Off-topic, sorry...

Post by Ajedrecista »

Hello Adam:
Adam Hair wrote:When you complete your depth tests, we can compare results. I have depth tests for multiple engines that I have not shared with the community yet. One difference is that I started at depth 2 for all the engines. For instance, Gaviota will always search at least 2 plies deep, so 1 ply results for it are not possible.
You can be completely sure that if I run those tests, I will share the results. In fact, I managed to run a match under cutechess-cli 0.5.1 (thank you very much to Ilari: it is exactly what I was looking for), so thank you very much for your help!

I finally used this engines.json file:

Code: Select all

&#91;      
   &#123; 
      "command" &#58; "Quazar_0.4_w32.exe", 
      "name" &#58; "Depth_2", 
      "options" &#58; &#91; 
         &#123; 
            "name" &#58; "Hash", 
            "value" &#58; 16 
         &#125;
      &#93;, 
      "protocol" &#58; "uci", 
      "workingDirectory" &#58; "H&#58;\\d2" 
   &#125;, 
   &#123; 
      "command" &#58; "Quazar_0.4_w32.exe", 
      "name" &#58; "Depth_3", 
      "options" &#58; &#91; 
         &#123; 
            "name" &#58; "Hash", 
            "value" &#58; 16 
         &#125; 
      &#93;, 
      "protocol" &#58; "uci", 
      "workingDirectory" &#58; "H&#58;\\d3" 
   &#125;
&#93;
Viewing some command line examples, I finally wrote this one:

Code: Select all

cutechess-cli -engine conf="Depth_2" depth=2 -engine conf="Depth_3" depth=3 -each tc=40/4 -concurrency 2 -draw 10 5 -resign 5 900 -games 2 -rounds 1250 -pgnin klo_250_eco_a00-e97_variations.pgn -pgnout 02_Vs_03.pgn
It can be improved for sure: I think that the resign factor is good (-resign 5 900), but I also think that I was too conservative with the draw factor (-draw 10 5); I am not sure if openings are played with reverse colours using -games 2 -rounds 1250... I finally used some opening positions from this PGN file. Any suggestions to improve the accuracy of the matches (including the input PGN file) will be welcomed, as usual.

I ran 2500 games of (depth 2) versus (depth 3) in only an hour and I think that results are not accurate due to my extremely conservative draw factor: only 226 ± 11.4 Elo (with 95% confidence) for such low depths. That draw factor must be changed to somewhat better (which values should be better?).

Code: Select all

...

Finished game 2500 &#40;Depth_2 vs Depth_3&#41;&#58; 1/2-1/2 &#123;Draw by adjudication&#125;
Score of Depth_2 vs Depth_3&#58; 90 - 1520 - 890  &#91;0.21&#93; 2500
ELO difference&#58; -226
Finished match

Code: Select all

LOS_and_Elo_uncertainties_calculator, ® 2012.

----------------------------------------------------------------
Calculation of Elo uncertainties in a match between two engines&#58;
----------------------------------------------------------------

&#40;The input and output data is referred to the first engine&#41;.

Please write down non-negative integers.

Maximum number of games supported&#58; 2147483647.

Write down the number of wins &#40;up to 1825361100&#41;&#58;

90

Write down the number of loses &#40;up to 1825361100&#41;&#58;

1520

Write down the number of draws &#40;up to 2147482037&#41;&#58;

890

 Write down the confidence level &#40;in percentage&#41; between 65% and 99.9% &#40;it will be rounded up to 0.01%)&#58;

95

Write down the clock rate of the CPU &#40;in GHz&#41;, only for timing the elapsed time of the calculations&#58;

3

---------------------------------------
Elo interval for 95.00 % confidence&#58;

Elo rating difference&#58;   -226.00 Elo

Lower rating difference&#58; -237.62 Elo
Upper rating difference&#58; -214.82 Elo

Lower bound uncertainty&#58;  -11.62 Elo
Upper bound uncertainty&#58;   11.19 Elo
Average error&#58;        +/-  11.40 Elo

K = &#40;average error&#41;*&#91;sqrt&#40;n&#41;&#93; =  570.08

Elo interval&#58; &#93;-237.62, -214.82&#91;
---------------------------------------

Number of games of the match&#58;      2500
Score&#58; 21.40 %
Elo rating difference&#58; -226.00 Elo
Draw ratio&#58; 35.60 %

*********************************************************
Standard deviation&#58;  1.1032 % of the points of the match.
*********************************************************

 Error bars were calculated with two-sided tests; values are rounded up to 0.01 Elo, or 0.01 in the case of K.

-------------------------------------------------------------------
Calculation of likelihood of superiority &#40;LOS&#41; in a one-sided test&#58;
-------------------------------------------------------------------

LOS &#40;taking into account draws&#41; is always calculated, if possible.

LOS &#40;not taking into account draws&#41; is only calculated if wins + loses < 16001.

LOS &#40;average value&#41; is calculated only when LOS &#40;not taking into account draws&#41; is calculated.
______________________________________________

LOS&#58;   0.00 % &#40;taking into account draws&#41;.
LOS&#58;   0.00 % &#40;not taking into account draws&#41;.
LOS&#58;   0.00 % &#40;average value&#41;.
______________________________________________

These values of LOS are rounded up to 0.01%

End of the calculations. Approximated elapsed time&#58;   88 ms.

Thanks for using LOS_and_Elo_uncertainties_calculator. Press Enter to exit.
Once again, sorry for being extremely off-topic in this thread. Thanks for your patience.

Regards from Spain.

Ajedrecista.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: How effective is move ordering from TT?

Post by bob »

chrisw wrote:
bob wrote:
Rebel wrote:
bob wrote:
Rebel wrote:
bob wrote:
chrisw wrote: Yes, I have indeed been on about "heavy eval" for years. Curious now how my "heavy eval" from early 1990s is the basis of Fruit. I think you use it too now.

On GM play, the sad truth is that you have no idea.
Fruit? Heavy Eval?
Chris did not say the Fruit eval is heavy.
How does that jive with the following quote?

Curious now how my "heavy eval" from early 1990s is the basis of Fruit. I think you use it too now.
By the mouth of Dann Corbit a quote from Anthony Cozzie:

Anthony Cozzie quit chess programming because he felt that the winning program was nothing more than the biggest bag of tricks collected from all the existing programs.

How could you miss Chris' point?

Insult snipped.
How can one make a point with an outright false statement? There is nothing "heavy" (heavy is commonly a synonym for complex or computationally expensive in computer chess discussions) in Fruit's eval at all. Does he REALLY want to claim that a very simple bean-counter evaluation was derived from HIS evaluation? :) One never knows what one is going to read here nowadays. But clearly, accuracy is not exactly a description of things like this.

Fruit's eval is NOT "heavy" by any possible measure of the term. Here's the typical "slang" definition of heavy (not particularly computer-science specific, but the last one is on point...

heavy

* good.

Usher is a heavy dancer.

* Cool, Awesome

Wow your website is heavy.

* deep, hard to deal with, burdensome, or hard to understand

BTW where does CSTal come in here? It was never open-source, and I have never heard of anyone reverse-engineering the thing since it was never near the top of any rating list or tournament. How, then, did someone (Fabien) supposedly hijack his eval ideas? So other than being totally unrelated to current state of affairs, how exactly was there a point to be made???
Who said anything about Fabien hijacking? Oh, you made it up. Why that?

CSTal doesn't need to be reverse engineered since the ply one static scores are all displayed and the evaluation function idea can be worked out from that, in particular the king attack function idea. Also I made quite enough noise so those other than your blindedness can quite easily work out what it was doing.

For strong chess players with GM level knowledge, of course heavily used by Tal, it's Q plus 2 units is quite possibly a mate, and if not likely there's a perpetual. One of the units can be a pawn, the more and the stronger units, the greater the mate chances. Defenders are irrelevent. Defending king pawn structure damage is very relevent. R+R can substitute for Q.

For slower ones, software engineers who need source code ....

if queen plus unit
get attacks around the king using suitable mask
use the total attacker type melded with pawn destruction to give a suitable bonus.

for CSTal this was along the lines of
Q plus unit plus pawn worth two pawns or so
Q plus two units worth a bishop
Q plus three units worth a rook, all adjusted for pawn defense destruction.

Apart from the bonus size, looks quite like Fruit Rybka and Crafty some time after Fruit, doesn't it?

Not in Fruit or RYbka as far as I know were side next to move bonuses, if safe checks, especially Q checks available, increase bonus quite a lot. If not on move decrease bonus. Twas much more making it probbaly too heavy but I forget nearly two decades later.

This stuff was in first half of 1990s, I suspect quite unique to CSTal. Also other stuff relating to material imbalances. Why does it look similar in fruit? No idea, probably people with minds open more than Hyatt discussed the ideas and worked them out, they are pretty obvious to a strong chess player programmer, again not Blinded ones with preconceived ideas.

One thing is absolutely for sure, the first programmer who got this new idea with relatively low computation costs into a fast searcher was going to wipe the board with the opposition. But Hyatt never realised that, until he copied the concept from Rybka/Fruit.
I didn't copy any king safety stuff from Fruit/Rybka. Not one thing. That seems to be the difference between "us". Some of us can actually design and write code without copying the work of others. Some take the easy way out. Feel free to show me ANY king-safety concept in Crafty that is related to Fruit. Anything at all will do just fine for discussion.

What you describe doesn't look like what Crafty does at all, sorry. If you had looked a bit you would already know that.

Crafty computes two distinct values. King shelter (pawns, holes in them, open files, weak squares, and such, all related to the king's position) and king tropism (how close a piece is to the king (or how close it attacks squares to the king in the case of sliders). These two values are used as indices into an array that makes it more important to attack an exposed king (shelter) and less important to attack a safe king position.

What does that have to do with what you were doing? I've been doing scoring like this forever. The 2d array values have been heavily tuned by cluster testing, but the concept is about as simple as it gets.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: How effective is move ordering from TT?

Post by bob »

chrisw wrote:
bob wrote:
Rebel wrote:
bob wrote:
Rebel wrote:
bob wrote:
chrisw wrote: Yes, I have indeed been on about "heavy eval" for years. Curious now how my "heavy eval" from early 1990s is the basis of Fruit. I think you use it too now.

On GM play, the sad truth is that you have no idea.
Fruit? Heavy Eval?
Chris did not say the Fruit eval is heavy.
How does that jive with the following quote?

Curious now how my "heavy eval" from early 1990s is the basis of Fruit. I think you use it too now.
By the mouth of Dann Corbit a quote from Anthony Cozzie:

Anthony Cozzie quit chess programming because he felt that the winning program was nothing more than the biggest bag of tricks collected from all the existing programs.

How could you miss Chris' point?

Insult snipped.
How can one make a point with an outright false statement? There is nothing "heavy" (heavy is commonly a synonym for complex or computationally expensive in computer chess discussions) in Fruit's eval at all. Does he REALLY want to claim that a very simple bean-counter evaluation was derived from HIS evaluation? :) One never knows what one is going to read here nowadays. But clearly, accuracy is not exactly a description of things like this.

Fruit's eval is NOT "heavy" by any possible measure of the term. Here's the typical "slang" definition of heavy (not particularly computer-science specific, but the last one is on point...

heavy

* good.

Usher is a heavy dancer.

* Cool, Awesome

Wow your website is heavy.

* deep, hard to deal with, burdensome, or hard to understand

BTW where does CSTal come in here? It was never open-source, and I have never heard of anyone reverse-engineering the thing since it was never near the top of any rating list or tournament. How, then, did someone (Fabien) supposedly hijack his eval ideas? So other than being totally unrelated to current state of affairs, how exactly was there a point to be made???
Is that where you get your also-ran ideas from? Reverse engineer stuff at the top of rating lists, find the new idea, implement it, if it gives more Elo keep it, else throw it away?

Seems a bit parasitical, doesn't it?
Nope. The FIRST chess engine I have done RE work on was Rybka, in the Rybka/Fruit comparison process. Sorry to burst your bubble, but what I have used in the past has always been my own coding, derived from publicized ideas (such as Beal's paper on null-move, Hsu's paper on singular extensions, Etc. Not EVERYONE copies code.

It would seem that SOME commercial authors don't feel constrained by ethics, however. And some amateurs as well. Witness the current ippolit derivative problem, not to mention past issues with Fruit, Crafty and others that were clearly copied.
Adam Hair
Posts: 3226
Joined: Wed May 06, 2009 10:31 pm
Location: Fuquay-Varina, North Carolina

Re: Off-topic, sorry...

Post by Adam Hair »

Ajedrecista wrote: Viewing some command line examples, I finally wrote this one:

Code: Select all

cutechess-cli -engine conf="Depth_2" depth=2 -engine conf="Depth_3" depth=3 -each tc=40/4 -concurrency 2 -draw 10 5 -resign 5 900 -games 2 -rounds 1250 -pgnin klo_250_eco_a00-e97_variations.pgn -pgnout 02_Vs_03.pgn
It can be improved for sure: I think that the resign factor is good (-resign 5 900), but I also think that I was too conservative with the draw factor (-draw 10 5); I am not sure if openings are played with reverse colours using -games 2 -rounds 1250... I finally used some opening positions from this PGN file. Any suggestions to improve the accuracy of the matches (including the input PGN file) will be welcomed, as usual.
For reversed colors, you have to add the switch '-repeat', and the argument for '-games' has to be even (so '-games 2' is fine).

I think your draw factor may cause some false draws. I have seen plenty of examples where the advantage during a game changes, with intermediate scores near 0 before favoring the other engine. However, I do not know how often that will occur under these circumstances. I would change the number of full moves to something greater than 80, and changes the draw score to 50 centipawns.

I am glad you have cutechess working. I be interested in any tests and results you share with us :wink:

Adam