Chess Tools

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

jpqy
Posts: 550
Joined: Thu Apr 24, 2008 9:31 am
Location: Belgium

Re: Chess Tools

Post by jpqy »

That works :!:

But of course Cutechess takes time when he write some games to pgn file?
It's keeping long time on 0KB ..so nothing to read ,and no real time TF..

Only way is to integrade it into Cutechess source i think ,together with real time results!

Gone ask again on Cutechess Github..

Okay..now after 20games he shows : Games: 20, TF 0
and then he follow it up nicely..after 39 games TF shows Games: 38, TF 0
It stays 1 game behind..now 5games behind real 46games ,TF shows 41..

At game 50 it's for both same!

JP.
Frank Quisinsky
Posts: 6808
Joined: Wed Nov 18, 2009 7:16 pm
Location: Gutweiler, Germany
Full name: Frank Quisinsky

Re: Chess Tools

Post by Frank Quisinsky »

Hi Ferdinand,

Ordo ist most interesting, make sense.

For a longer time I asked Miguel. Miguel added different ideas I had but unfortunatley, not this one.

The overall / total Elo for all playing phases is very, very boring. We can see nothing, only total Elo.

Such an Elo calculation (in 6 phases) is for computer chess much more interesting and I am sure better as the split databases with number of moves I do in FCP Rating List times. Better is quantity of pieces, more exactly the calculation as final result.

Best
Frank

A good idea can be to release a new version of your chess engine. I would like it to have for my test-tourneys.

FEOBOS works fine, you do really a great work for us.
Your tools are for FEOBOS very important.
Thanks again!
Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: Chess Tools

Post by Ferdy »

Frank Quisinsky wrote:Hi Ferdinand,

I wish me a tool I can split a *.pgn database with quantity "pieces on board".

Step 1:
Tool created 6 databases

2-6 pieces on board
7-12
13-18
19-24
25-32
Try this program, it will split pgn based on above number of pieces, see sample batch file.
https://drive.google.com/open?id=1AgRV9 ... L5Kvj7LGl2

You can run rating calculator manually from the 5 output pgn files.
User avatar
Ovyron
Posts: 4556
Joined: Tue Jul 03, 2007 4:30 am

Re: Chess Tools

Post by Ovyron »

Ferdy wrote:You may describe here the chess tools/utilities that you need.
Hey Ferdy! I have always dreamed of an adapter that is able to play chess games by taking into account suggestions from other engines, very similar to ProDeo's MASTER.ENG concept.

An initial implementation would work as follows:

User tells the adapter about 3 engines that exist, giving them paths in some configuration file, setting them as "Slave 1", "Slave 2", and "Master", say:

[ENGINE SLAVE 1]Filename=C:\Chess\Stockfish\stockfish_9_l_x64.exe
[SLAVE 1 OPTIONS]Threads=4
[ENGINE SLAVE 2]Filename=C:\Chess\Houdini\H6_Std_x64.exe
[SLAVE 2 OPTIONS]Tactical Mode=1
[ENGINE MASTER]Filename=C:\Chess\Komodo\komodo-11.3.1-64bit.exe
[MASTER OPTIONS]Threads=4;Contempt=-10

Now, when playing the game, the adapter divides the remaining game time by 4 (to tell the engines they have this time to think for the entire game), then follows the next procedure:

Ask Slave 1 to make a move.
Ask Slave 2 to make a move.
If both moves match, make the move on the board.
If the moves are different, make Slave 1's move against Master, and receive an evaluation. Now make Slave 2's move against Master, and receive an evaluation.
If both moves have the same evaluation, make Slave 1's move on the board.
Else, make the move that was most disfavorable to Master on the board.

Example:

Opening position.
Slave 1 plays 1.e4
Slave 2 plays 1.d4
1.e4 is played against Master, Master moves 1.e5 with a score of 0.30
1.d4 is played against Master, Master moves 1.Nf6 with a score of 0.25
Master is black, so 0.30 is most disfavorable for it. 1.e4 is made on the board

That's the initial concept.
After it, features could be added like, giving the slaves 80% of the time and Master 10% to check each choice, or having Slave 1 and 2 playing their choices simultaneously (the user would need to adjust their threads), etc. And extra Slaves for specific situations (say, Slave 3 plays the rest of the game if the score goes >1.00, because we're already winning and don't want to risk blowing it up; or Slave 4 plays the rest of the game if score goes <-1.00, because the concept is failing for this game, we abort and play normally.)

The idea would be that some combination of this could play stronger than the strongest engine, as the master engine would agree to its choices most of the time, but when the engine is about to blunder, slave 2 could avoid the mistake and save the game.

Or it could be used to produce amazing games by having Master be some engine of amazing style, since the Slaves are only going to suggest sound moves, this Master would just choose the most stylistic choice.
Your beliefs create your reality, so be careful what you wish for.
Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: Chess Tools

Post by Ferdy »

Ovyron wrote:Example:

Opening position.
Slave 1 plays 1.e4
Slave 2 plays 1.d4
1.e4 is played against Master, Master moves 1.e5 with a score of 0.30
1.d4 is played against Master, Master moves 1.Nf6 with a score of 0.25
Master is black, so 0.30 is most disfavorable for it. 1.e4 is made on the board
Is the score 0.30 from WPOV (White Point Of View)?

If the scores 0.30 and 0.25 are SPOV (Side Point Of View) then the disfavorable for master would be the line d4 Nf6 line with a score of 0.25 for master.
Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: Chess Tools

Post by Ferdy »

Frank Quisinsky wrote: A good idea can be to release a new version of your chess engine. I would like it to have for my test-tourneys.
Maybe this year :)
User avatar
Graham Banks
Posts: 41415
Joined: Sun Feb 26, 2006 10:52 am
Location: Auckland, NZ

Re: Chess Tools

Post by Graham Banks »

Ferdy wrote:
Frank Quisinsky wrote: A good idea can be to release a new version of your chess engine. I would like it to have for my test-tourneys.
Maybe this year :)
Excellent! :)
gbanksnz at gmail.com
Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: Chess Tools

Post by Ferdy »

Laskos wrote:
Ferdy wrote:You may describe here the chess tools/utilities that you need. If I have time and knowledge, I may create it. Or other programmers may also do it.
It can be FEN, EPD, and PGN processing, engine use, website scraping, data analysis and others.
Ferdi, can you write something which takes a Cutechess-Cli PGN file, and computes average time per move used by move number, after exiting the book, for each engine?

Say:
Engine: Houdini 6.03

Code: Select all

Move   Time per move
   1          1.237s
   2          1.156s
  ...           ....

  40          0.371s
  ...           ....

  90          0.121s
Maybe up to move 120 or 150 or so. The output format I would like would be:
{{1, 1.237},{2,1.156},...,{40,0.371},...{90,0.121}...}

It's easy to use it in Mathematica.
Try this, python source, exe, batch and sample pgn files are included. Try to check it first on small games, I just checked the values randomly.

https://drive.google.com/open?id=14jI67 ... QdjHO7HHC5

Code: Select all

mte.exe --help
usage&#58; mte.exe &#91;-h&#93; &#91;-i PGN&#93; &#91;-o OUTPUT&#93; -p PLAYER &#91;-m MINMOVE&#93;

Read games from cutechess pgn output and calculate move time average by engine

optional arguments&#58;
  -h, --help            show this help message and exit
  -i PGN, --pgn PGN     input pgn file
  -o OUTPUT, --output OUTPUT
                        csv output filename, default=out.txt
  -p PLAYER, --player PLAYER
                        player name
  -m MINMOVE, --minmove MINMOVE
                        minimum move number, default=300

MTE &#40;Move Time Evaluator&#41; v0.1

Code: Select all

mte.exe --pgn sf9.pgn --player "Stockfish 9" --minmove 80 --output sf9_output.txt

Code: Select all

&#123;&#123;1,0.00&#125;,&#123;2,0.00&#125;,&#123;3,0.00&#125;,&#123;4,0.55&#125;,&#123;5,0.32&#125;,&#123;6,1.57&#125;,&#123;7,1.00&#125;,&#123;8,1.85&#125;,&#123;9,0.28&#125;, ...
Just notice, that

Code: Select all

--minmoves 80
is actually maxmoves.
So move 81 will not be included. I will correct that option name later, after your check.
User avatar
Ovyron
Posts: 4556
Joined: Tue Jul 03, 2007 4:30 am

Re: Chess Tools

Post by Ovyron »

Ferdy wrote:If the scores 0.30 and 0.25 are SPOV (Side Point Of View) then the disfavorable for master would be the line d4 Nf6 line with a score of 0.25 for master.
Master is black, which wants to get the scores in black's favor (negative scores) as much as possible, so the higher the scores, the most disfavorable it gets for black, and 0.01 is more disfavorable for black than 0.00. A score of 0.25 is more favorable for to black than 0.30.
Your beliefs create your reality, so be careful what you wish for.
User avatar
Laskos
Posts: 10948
Joined: Wed Jul 26, 2006 10:21 pm
Full name: Kai Laskos

Re: Chess Tools

Post by Laskos »

Ferdy wrote:
Laskos wrote:
Ferdy wrote:You may describe here the chess tools/utilities that you need. If I have time and knowledge, I may create it. Or other programmers may also do it.
It can be FEN, EPD, and PGN processing, engine use, website scraping, data analysis and others.
Ferdi, can you write something which takes a Cutechess-Cli PGN file, and computes average time per move used by move number, after exiting the book, for each engine?

Say:
Engine: Houdini 6.03

Code: Select all

Move   Time per move
   1          1.237s
   2          1.156s
  ...           ....

  40          0.371s
  ...           ....

  90          0.121s
Maybe up to move 120 or 150 or so. The output format I would like would be:
{{1, 1.237},{2,1.156},...,{40,0.371},...{90,0.121}...}

It's easy to use it in Mathematica.
Try this, python source, exe, batch and sample pgn files are included. Try to check it first on small games, I just checked the values randomly.

https://drive.google.com/open?id=14jI67 ... QdjHO7HHC5

Code: Select all

mte.exe --help
usage&#58; mte.exe &#91;-h&#93; &#91;-i PGN&#93; &#91;-o OUTPUT&#93; -p PLAYER &#91;-m MINMOVE&#93;

Read games from cutechess pgn output and calculate move time average by engine

optional arguments&#58;
  -h, --help            show this help message and exit
  -i PGN, --pgn PGN     input pgn file
  -o OUTPUT, --output OUTPUT
                        csv output filename, default=out.txt
  -p PLAYER, --player PLAYER
                        player name
  -m MINMOVE, --minmove MINMOVE
                        minimum move number, default=300

MTE &#40;Move Time Evaluator&#41; v0.1

Code: Select all

mte.exe --pgn sf9.pgn --player "Stockfish 9" --minmove 80 --output sf9_output.txt

Code: Select all

&#123;&#123;1,0.00&#125;,&#123;2,0.00&#125;,&#123;3,0.00&#125;,&#123;4,0.55&#125;,&#123;5,0.32&#125;,&#123;6,1.57&#125;,&#123;7,1.00&#125;,&#123;8,1.85&#125;,&#123;9,0.28&#125;, ...
Just notice, that

Code: Select all

--minmoves 80
is actually maxmoves.
So move 81 will not be included. I will correct that option name later, after your check.
Thanks, the "exe" works. Opening the result as "txt" in Notepad has some encoding problems, I open it in another editor. The averages are fine (I used 2 games :) ). The python file doesn't run, it asks for "chess module", which I don't have. Thank you very much!