Can somebody do simply this? By far the strongest engine!

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

Moderators: hgm, Rebel, chrisw

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

Re: Can somebody do simply this? By far the strongest engine!

Post by Laskos »

Ferdy wrote: Wed May 20, 2020 4:12 pm
Laskos wrote: Wed May 20, 2020 12:20 pm
Ferdy wrote: Mon May 18, 2020 3:43 pm My batch file to run the match is like this.

Code: Select all

set CCC=D:\Chess\CuteChess-CLI\cutechess-cli.exe

%CCC% --help >help.txt
%CCC% --version

set CON=3
set E1="HeadsUp2"
set E2="Stockfish 11"

set STARTOPENING=docs\Noomen_3move.pgn
set OPEFORMAT=pgn

set SAVE=games_tc15s100ms.pgn

%CCC% ^
-tournament round-robin ^
-rounds 500 ^
-games 2 ^
-repeat ^
-openings file=%STARTOPENING% format=%OPEFORMAT% order=random plies=1000 start=1 policy=round ^
-concurrency %CON% ^
-pgnout %SAVE% fi ^
-wait 100 ^
-maxmoves 500 ^
-ratinginterval 4 ^
-engine conf=%E1% tc=0/15+0.1 stderr=err1.txt name="Lc0 v0.25.1/Stockfish 11" ^
-engine conf=%E2% tc=0/15+0.1 stderr=err2.txt
"HeadsUp2" and "Stockfish 11" are registered in engine json file.

I would like you to add the stderr option like in the following:

Code: Select all

-engine conf=%E1% tc=0/15+0.1 stderr=err1.txt name="Lc0 v0.25.1/Stockfish 11"
-engine conf=%E2% tc=0/15+0.1 stderr=err2.txt
Then let's see what are in err1.txt and err2.txt files.

Ferdy, sorry for the delay, I seem to not get anything in the "err" files (empty). Cutechess-CLI indexes the opening suite (2moves_v1.pgn) starts the first game then "disconnects" and ends. The PGN file reads as:

Code: Select all

[Event "?"]
[Site "?"]
[Date "2020.05.20"]
[Round "1"]
[White "Lc0 v0.25.1/Stockfish 11"]
[Black "SF_11"]
[Result "0-1"]
[FEN "r1bqkbnr/pppppp1p/n7/6p1/6P1/7P/PPPPPP2/RNBQKBNR w KQkq - 0 1"]
[GameDuration "00:00:00"]
[GameEndTime "2020-05-20T13:13:21.268 GTB Daylight Time"]
[PlyCount "0"]
[SetUp "1"]
[Termination "abandoned"]
[TimeControl "15+0.1"]

{White disconnects} 0-1

"headsup" engine seems to run and after typing "UCI" it shows:

Code: Select all

uci
id name HeadsUp 0.1
id author Ferdy
info string engine1 is Lc0 v0.25.1+git.69105b4
info string engine2 is Stockfish 11 64 BMI2
uciok
Lets see some more logs.
To see the logs of engine itself, add the following options to each engine in the cfg file.
For Lc0

Code: Select all

LogFile = log_lc0.txt
For Stockfish

Code: Select all

Debug Log File = log_sf.txt
or something like this.

Code: Select all

[ENGINE1]
# First enginefile must be defined. Do not add quotes even if there is space in the path
enginefile = D:/Chess/Engines/Lc0/lc0-v0.25.1-windows-cpu-openblas/lc0.exe

# Set engine options
WeightsFile = D:/Chess/Engines/Lc0/id/591226.pb.gz
# Threads = 2
MinibatchSize = 8
MaxPrefetch = 0
NNCacheSize = 20000000
LogFile = log_lc0.txt



[ENGINE2]
# Second enginefile must be defined. Do not add quotes even if there is space in the path
enginefile = D:/Chess/Engines/Stockfish/stockfish_11.exe

# Set engine options
Hash = 128
# Threads = 1
# SyzygyPath = D:/Chess/syzygy
# SyzygyProbeLimit = 5
Debug Log File = log_sf.txt



[HEADSUP OPTION]
# Use engine1 if piece_value_switch and move_number_switch are both satisfied.

# Q=9, R=5, B=3, N=3
# Total piece value excluding kings and pawns = 2 x 9 + 4 x 5 + 4 x 3 + 4 x 3 = 62

# Use engine1 if total piece value remaining is above piece_value_switch.
# Default = 62
piece_value_switch = 24

# Use engine1 if move number is below move_number_switch.
# Default = 0
move_number_switch = 0

# Default = false
Log = true
Note that the settings,

Code: Select all

piece_value_switch = 24
move_number_switch = 0
only activates the 2nd engine or Stockfish in that case.

So lets look the contents of log_sf.txt. This file can be found where the HeadsUp.exe is located.

To see the logging of cutechess-cli itself modify the command line to have -debug option

Code: Select all

cutechess-cli ... -debug >log_cutechess.txt ...
I did try the file 2moves_v1.pgn and HeadsUp has no problem with it.

Note I am using cutechess-cli and cutechess-gui from here.
With the new cutechess-cli I am getting this in the CLI window:

Code: Select all

Warning: Could not initialize player Lc0 v0.25.1/Stockfish 11:
and this in log_cutechess (where the last lines are of interest):

Code: Select all

Indexing opening suite...
58 >Lc0 v0.25.1/Stockfish 11(0): uci
60 >SF_11(1): uci
78 <SF_11(1): Stockfish 11 64 BMI2 by T. Romstad, M. Costalba, J. Kiiski, G. Linscott
111 <SF_11(1): id name Stockfish 11 64 BMI2
111 <SF_11(1): id author T. Romstad, M. Costalba, J. Kiiski, G. Linscott
111 <SF_11(1): option name Debug Log File type string default 
111 <SF_11(1): option name Contempt type spin default 24 min -100 max 100
112 <SF_11(1): option name Analysis Contempt type combo default Both var Off var White var Black var Both
112 <SF_11(1): option name Threads type spin default 1 min 1 max 512
112 <SF_11(1): option name Hash type spin default 16 min 1 max 131072
112 <SF_11(1): option name Clear Hash type button
113 <SF_11(1): option name Ponder type check default false
113 <SF_11(1): option name MultiPV type spin default 1 min 1 max 500
113 <SF_11(1): option name Skill Level type spin default 20 min 0 max 20
113 <SF_11(1): option name Move Overhead type spin default 30 min 0 max 5000
113 <SF_11(1): option name Minimum Thinking Time type spin default 20 min 0 max 5000
114 <SF_11(1): option name Slow Mover type spin default 84 min 10 max 1000
114 <SF_11(1): option name nodestime type spin default 0 min 0 max 10000
114 <SF_11(1): option name UCI_Chess960 type check default false
114 <SF_11(1): option name UCI_AnalyseMode type check default false
115 <SF_11(1): option name UCI_LimitStrength type check default false
115 <SF_11(1): option name UCI_Elo type spin default 1350 min 1350 max 2850
115 <SF_11(1): option name SyzygyPath type string default <empty>
115 <SF_11(1): option name SyzygyProbeDepth type spin default 1 min 1 max 100
115 <SF_11(1): option name Syzygy50MoveRule type check default true
116 <SF_11(1): option name SyzygyProbeLimit type spin default 7 min 0 max 7
116 <SF_11(1): uciok
116 >SF_11(1): setoption name Contempt value 0
116 >SF_11(1): setoption name Hash value 512
116 >SF_11(1): setoption name Move Overhead value 0
116 >SF_11(1): setoption name SyzygyPath value C:/syzygy9
116 >SF_11(1): setoption name Threads value 4
116 >SF_11(1): isready
311 <SF_11(1): info string Found 0 tablebases
462 <SF_11(1): readyok
3322 <Lc0 v0.25.1/Stockfish 11(0): headsup.cfg file is required to run HeadsUp! Exiting ...
Terminating process of engine Lc0 v0.25.1/Stockfish 11(0)
3421 >SF_11(1): isready
Finished match
3424 <SF_11(1): readyok


This I have in the json file, is it enough?

Code: Select all

  { 
    "command" : "headsup", 
    "name" : "headsup", 
    "protocol": "uci"
  },  
Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: Can somebody do simply this? By far the strongest engine!

Post by Ferdy »

Laskos wrote: Wed May 20, 2020 6:43 pm With the new cutechess-cli I am getting this in the CLI window:

Code: Select all

Warning: Could not initialize player Lc0 v0.25.1/Stockfish 11:
and this in log_cutechess (where the last lines are of interest):

Code: Select all

Indexing opening suite...
58 >Lc0 v0.25.1/Stockfish 11(0): uci
60 >SF_11(1): uci
78 <SF_11(1): Stockfish 11 64 BMI2 by T. Romstad, M. Costalba, J. Kiiski, G. Linscott
111 <SF_11(1): id name Stockfish 11 64 BMI2
111 <SF_11(1): id author T. Romstad, M. Costalba, J. Kiiski, G. Linscott
111 <SF_11(1): option name Debug Log File type string default 
111 <SF_11(1): option name Contempt type spin default 24 min -100 max 100
112 <SF_11(1): option name Analysis Contempt type combo default Both var Off var White var Black var Both
112 <SF_11(1): option name Threads type spin default 1 min 1 max 512
112 <SF_11(1): option name Hash type spin default 16 min 1 max 131072
112 <SF_11(1): option name Clear Hash type button
113 <SF_11(1): option name Ponder type check default false
113 <SF_11(1): option name MultiPV type spin default 1 min 1 max 500
113 <SF_11(1): option name Skill Level type spin default 20 min 0 max 20
113 <SF_11(1): option name Move Overhead type spin default 30 min 0 max 5000
113 <SF_11(1): option name Minimum Thinking Time type spin default 20 min 0 max 5000
114 <SF_11(1): option name Slow Mover type spin default 84 min 10 max 1000
114 <SF_11(1): option name nodestime type spin default 0 min 0 max 10000
114 <SF_11(1): option name UCI_Chess960 type check default false
114 <SF_11(1): option name UCI_AnalyseMode type check default false
115 <SF_11(1): option name UCI_LimitStrength type check default false
115 <SF_11(1): option name UCI_Elo type spin default 1350 min 1350 max 2850
115 <SF_11(1): option name SyzygyPath type string default <empty>
115 <SF_11(1): option name SyzygyProbeDepth type spin default 1 min 1 max 100
115 <SF_11(1): option name Syzygy50MoveRule type check default true
116 <SF_11(1): option name SyzygyProbeLimit type spin default 7 min 0 max 7
116 <SF_11(1): uciok
116 >SF_11(1): setoption name Contempt value 0
116 >SF_11(1): setoption name Hash value 512
116 >SF_11(1): setoption name Move Overhead value 0
116 >SF_11(1): setoption name SyzygyPath value C:/syzygy9
116 >SF_11(1): setoption name Threads value 4
116 >SF_11(1): isready
311 <SF_11(1): info string Found 0 tablebases
462 <SF_11(1): readyok
3322 <Lc0 v0.25.1/Stockfish 11(0): headsup.cfg file is required to run HeadsUp! Exiting ...
Terminating process of engine Lc0 v0.25.1/Stockfish 11(0)
3421 >SF_11(1): isready
Finished match
3424 <SF_11(1): readyok


This I have in the json file, is it enough?

Code: Select all

  { 
    "command" : "headsup", 
    "name" : "headsup", 
    "protocol": "uci"
  },  
With this,

Code: Select all

3322 <Lc0 v0.25.1/Stockfish 11(0): headsup.cfg file is required to run HeadsUp! Exiting ...
headsup.exe did not see the headsup.cfg.

Entry in my json file is something like this.

Code: Select all

	{
		"command" : "headsup.exe",
		"name" : "headsup",
		"protocol" : "uci",
		"stderrFile" : "",
		"workingDirectory" : "D:\\pyenv\\headsup\\dist"
	}
In your case perhaps it should be:
"command" : "headsup.exe",

because there are 2 headsup, the headsup.exe and headsup.cfg.

This one is case sensitive.

Code: Select all

"name" : "headsup",
Command line should use headsup

if

Code: Select all

"name" : "HeadsUp",
Command line should use HeadsUp
User avatar
Laskos
Posts: 10948
Joined: Wed Jul 26, 2006 10:21 pm
Full name: Kai Laskos

Re: Can somebody do simply this? By far the strongest engine!

Post by Laskos »

Ferdy wrote: Thu May 21, 2020 12:22 am
Laskos wrote: Wed May 20, 2020 6:43 pm With the new cutechess-cli I am getting this in the CLI window:

Code: Select all

Warning: Could not initialize player Lc0 v0.25.1/Stockfish 11:
and this in log_cutechess (where the last lines are of interest):

Code: Select all

Indexing opening suite...
58 >Lc0 v0.25.1/Stockfish 11(0): uci
60 >SF_11(1): uci
78 <SF_11(1): Stockfish 11 64 BMI2 by T. Romstad, M. Costalba, J. Kiiski, G. Linscott
111 <SF_11(1): id name Stockfish 11 64 BMI2
111 <SF_11(1): id author T. Romstad, M. Costalba, J. Kiiski, G. Linscott
111 <SF_11(1): option name Debug Log File type string default 
111 <SF_11(1): option name Contempt type spin default 24 min -100 max 100
112 <SF_11(1): option name Analysis Contempt type combo default Both var Off var White var Black var Both
112 <SF_11(1): option name Threads type spin default 1 min 1 max 512
112 <SF_11(1): option name Hash type spin default 16 min 1 max 131072
112 <SF_11(1): option name Clear Hash type button
113 <SF_11(1): option name Ponder type check default false
113 <SF_11(1): option name MultiPV type spin default 1 min 1 max 500
113 <SF_11(1): option name Skill Level type spin default 20 min 0 max 20
113 <SF_11(1): option name Move Overhead type spin default 30 min 0 max 5000
113 <SF_11(1): option name Minimum Thinking Time type spin default 20 min 0 max 5000
114 <SF_11(1): option name Slow Mover type spin default 84 min 10 max 1000
114 <SF_11(1): option name nodestime type spin default 0 min 0 max 10000
114 <SF_11(1): option name UCI_Chess960 type check default false
114 <SF_11(1): option name UCI_AnalyseMode type check default false
115 <SF_11(1): option name UCI_LimitStrength type check default false
115 <SF_11(1): option name UCI_Elo type spin default 1350 min 1350 max 2850
115 <SF_11(1): option name SyzygyPath type string default <empty>
115 <SF_11(1): option name SyzygyProbeDepth type spin default 1 min 1 max 100
115 <SF_11(1): option name Syzygy50MoveRule type check default true
116 <SF_11(1): option name SyzygyProbeLimit type spin default 7 min 0 max 7
116 <SF_11(1): uciok
116 >SF_11(1): setoption name Contempt value 0
116 >SF_11(1): setoption name Hash value 512
116 >SF_11(1): setoption name Move Overhead value 0
116 >SF_11(1): setoption name SyzygyPath value C:/syzygy9
116 >SF_11(1): setoption name Threads value 4
116 >SF_11(1): isready
311 <SF_11(1): info string Found 0 tablebases
462 <SF_11(1): readyok
3322 <Lc0 v0.25.1/Stockfish 11(0): headsup.cfg file is required to run HeadsUp! Exiting ...
Terminating process of engine Lc0 v0.25.1/Stockfish 11(0)
3421 >SF_11(1): isready
Finished match
3424 <SF_11(1): readyok


This I have in the json file, is it enough?

Code: Select all

  { 
    "command" : "headsup", 
    "name" : "headsup", 
    "protocol": "uci"
  },  
With this,

Code: Select all

3322 <Lc0 v0.25.1/Stockfish 11(0): headsup.cfg file is required to run HeadsUp! Exiting ...
headsup.exe did not see the headsup.cfg.

Entry in my json file is something like this.

Code: Select all

	{
		"command" : "headsup.exe",
		"name" : "headsup",
		"protocol" : "uci",
		"stderrFile" : "",
		"workingDirectory" : "D:\\pyenv\\headsup\\dist"
	}
In your case perhaps it should be:
"command" : "headsup.exe",

because there are 2 headsup, the headsup.exe and headsup.cfg.

This one is case sensitive.

Code: Select all

"name" : "headsup",
Command line should use headsup

if

Code: Select all

"name" : "HeadsUp",
Command line should use HeadsUp

Ferdy, works now in both your batch file and my old batch file, it was "workingDirectory" in the json issue. Now I have to check that it works as desired with move number and material switches. Thanks a lot.
User avatar
Laskos
Posts: 10948
Joined: Wed Jul 26, 2006 10:21 pm
Full name: Kai Laskos

Re: Can somebody do simply this? By far the strongest engine!

Post by Laskos »

Ferdy wrote: Thu May 21, 2020 12:22 am
Laskos wrote: Wed May 20, 2020 6:43 pm With the new cutechess-cli I am getting this in the CLI window:

Code: Select all

Warning: Could not initialize player Lc0 v0.25.1/Stockfish 11:
and this in log_cutechess (where the last lines are of interest):

Code: Select all

Indexing opening suite...
58 >Lc0 v0.25.1/Stockfish 11(0): uci
60 >SF_11(1): uci
78 <SF_11(1): Stockfish 11 64 BMI2 by T. Romstad, M. Costalba, J. Kiiski, G. Linscott
111 <SF_11(1): id name Stockfish 11 64 BMI2
111 <SF_11(1): id author T. Romstad, M. Costalba, J. Kiiski, G. Linscott
111 <SF_11(1): option name Debug Log File type string default 
111 <SF_11(1): option name Contempt type spin default 24 min -100 max 100
112 <SF_11(1): option name Analysis Contempt type combo default Both var Off var White var Black var Both
112 <SF_11(1): option name Threads type spin default 1 min 1 max 512
112 <SF_11(1): option name Hash type spin default 16 min 1 max 131072
112 <SF_11(1): option name Clear Hash type button
113 <SF_11(1): option name Ponder type check default false
113 <SF_11(1): option name MultiPV type spin default 1 min 1 max 500
113 <SF_11(1): option name Skill Level type spin default 20 min 0 max 20
113 <SF_11(1): option name Move Overhead type spin default 30 min 0 max 5000
113 <SF_11(1): option name Minimum Thinking Time type spin default 20 min 0 max 5000
114 <SF_11(1): option name Slow Mover type spin default 84 min 10 max 1000
114 <SF_11(1): option name nodestime type spin default 0 min 0 max 10000
114 <SF_11(1): option name UCI_Chess960 type check default false
114 <SF_11(1): option name UCI_AnalyseMode type check default false
115 <SF_11(1): option name UCI_LimitStrength type check default false
115 <SF_11(1): option name UCI_Elo type spin default 1350 min 1350 max 2850
115 <SF_11(1): option name SyzygyPath type string default <empty>
115 <SF_11(1): option name SyzygyProbeDepth type spin default 1 min 1 max 100
115 <SF_11(1): option name Syzygy50MoveRule type check default true
116 <SF_11(1): option name SyzygyProbeLimit type spin default 7 min 0 max 7
116 <SF_11(1): uciok
116 >SF_11(1): setoption name Contempt value 0
116 >SF_11(1): setoption name Hash value 512
116 >SF_11(1): setoption name Move Overhead value 0
116 >SF_11(1): setoption name SyzygyPath value C:/syzygy9
116 >SF_11(1): setoption name Threads value 4
116 >SF_11(1): isready
311 <SF_11(1): info string Found 0 tablebases
462 <SF_11(1): readyok
3322 <Lc0 v0.25.1/Stockfish 11(0): headsup.cfg file is required to run HeadsUp! Exiting ...
Terminating process of engine Lc0 v0.25.1/Stockfish 11(0)
3421 >SF_11(1): isready
Finished match
3424 <SF_11(1): readyok


This I have in the json file, is it enough?

Code: Select all

  { 
    "command" : "headsup", 
    "name" : "headsup", 
    "protocol": "uci"
  },  
With this,

Code: Select all

3322 <Lc0 v0.25.1/Stockfish 11(0): headsup.cfg file is required to run HeadsUp! Exiting ...
headsup.exe did not see the headsup.cfg.

Entry in my json file is something like this.

Code: Select all

	{
		"command" : "headsup.exe",
		"name" : "headsup",
		"protocol" : "uci",
		"stderrFile" : "",
		"workingDirectory" : "D:\\pyenv\\headsup\\dist"
	}
In your case perhaps it should be:
"command" : "headsup.exe",

because there are 2 headsup, the headsup.exe and headsup.cfg.

This one is case sensitive.

Code: Select all

"name" : "headsup",
Command line should use headsup

if

Code: Select all

"name" : "HeadsUp",
Command line should use HeadsUp
It seems to work as intended. It accepts all the EPD and PGN openings I use, so now I can experiment with some values. The overhead seems small and I can use it in ultra-fast games. Thanks a lot!
Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: Can somebody do simply this? By far the strongest engine!

Post by Ferdy »

Laskos wrote: Thu May 21, 2020 12:18 pm It seems to work as intended. It accepts all the EPD and PGN openings I use, so now I can experiment with some values. The overhead seems small and I can use it in ultra-fast games. Thanks a lot!
All right. I usually setup engine via cutechess-gui. That engines.json is located deep in the folders at C:\Users\...\AppData\Roaming\cutechess. But command line using cutechess-cli is able to use it even if the command line is in d:\chess folder.
OliverBr
Posts: 725
Joined: Tue Dec 18, 2007 9:38 pm
Location: Munich, Germany
Full name: Dr. Oliver Brausch

Re: Can somebody do simply this? By far the strongest engine!

Post by OliverBr »

mehmet123 wrote: Sat May 16, 2020 12:35 pm In which right move should be Stockfish activated? 35, 50, 60 etc.

Maybe new tests shows the right move. So we can reach the most powerful engine much easier.
The best is, if Stockfish takes over when it sees itself winning, too. Let's say over +2.5
Chess Engine OliThink: http://brausch.org/home/chess
OliThink GitHub:https://github.com/olithink
OliverBr
Posts: 725
Joined: Tue Dec 18, 2007 9:38 pm
Location: Munich, Germany
Full name: Dr. Oliver Brausch

Re: Can somebody do simply this? By far the strongest engine!

Post by OliverBr »

Dann Corbit wrote: Mon May 18, 2020 2:26 am I agree with Milos. You can be twenty some moves into the game with only one or two captures and you can have firecracker exchanges and have half the chessmen gone. It is the endgame phase we are looking for. I am sure that nobody's chess program decides we are in the endgame just based on plies.
OliThink gives 4 points for Queen, 2 points for Rook, 1 point for Bishop/Knight. Falling under 6 points means endgame with King coming out of the corner. This is not a very precise method.

Better should be something like: Leela is starting to troll, so we have an endgame for sure.
Chess Engine OliThink: http://brausch.org/home/chess
OliThink GitHub:https://github.com/olithink
Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: Can somebody do simply this? By far the strongest engine!

Post by Ferdy »

Released HeadsUp v1.0 with infinite analysis mode and ponder on games capability.
https://github.com/fsmosca/HeadsUp/releases/tag/v1.0

Ponder on test at TC 60s+0.1s, looks ok so far.

Code: Select all

...
Started game 25 of 200 (HeadsUp v1.0 vs Eman Chimera 4.0)
Started game 26 of 200 (Eman Chimera 4.0 vs HeadsUp v1.0)
Finished game 25 (HeadsUp v1.0 vs Eman Chimera 4.0): 1/2-1/2 {Draw by insufficient mating material}
Started game 27 of 200 (HeadsUp v1.0 vs Stockfish 11)
Finished game 26 (Eman Chimera 4.0 vs HeadsUp v1.0): 1-0 {White mates}
Started game 28 of 200 (Stockfish 11 vs HeadsUp v1.0)
Finished game 27 (HeadsUp v1.0 vs Stockfish 11): 1-0 {White mates}
Started game 29 of 200 (HeadsUp v1.0 vs Eman Chimera 4.0)
Finished game 28 (Stockfish 11 vs HeadsUp v1.0): 1-0 {White mates}
Rank Name                          Elo     +/-   Games   Score    Draw
   0 HeadsUp v1.0                   25      60      28   53.6%   78.6%
   1 Eman Chimera 4.0                0      70      14   50.0%   85.7%
   2 Stockfish 11                  -50      98      14   42.9%   71.4%

Started game 30 of 200 (Eman Chimera 4.0 vs HeadsUp v1.0)
Finished game 29 (HeadsUp v1.0 vs Eman Chimera 4.0): 1/2-1/2 {Draw by 3-fold repetition}
Started game 31 of 200 (HeadsUp v1.0 vs Stockfish 11)
Finished game 30 (Eman Chimera 4.0 vs HeadsUp v1.0): 0-1 {Black mates}
Started game 32 of 200 (Stockfish 11 vs HeadsUp v1.0)
Finished game 31 (HeadsUp v1.0 vs Stockfish 11): 0-1 {Black mates}
Started game 33 of 200 (HeadsUp v1.0 vs Eman Chimera 4.0)
Finished game 32 (Stockfish 11 vs HeadsUp v1.0): 1/2-1/2 {Draw by insufficient mating material}
Rank Name                          Elo     +/-   Games   Score    Draw
   0 HeadsUp v1.0                   22      60      32   53.1%   75.0%
   1 Stockfish 11                  -22      97      16   46.9%   68.8%
   2 Eman Chimera 4.0              -22      74      16   46.9%   81.3%

Started game 34 of 200 (Eman Chimera 4.0 vs HeadsUp v1.0)
Finished game 33 (HeadsUp v1.0 vs Eman Chimera 4.0): 1/2-1/2 {Draw by insufficient mating material}
Started game 35 of 200 (HeadsUp v1.0 vs Stockfish 11)
Finished game 34 (Eman Chimera 4.0 vs HeadsUp v1.0): 1/2-1/2 {Draw by 3-fold repetition}
Started game 36 of 200 (Stockfish 11 vs HeadsUp v1.0)
Finished game 35 (HeadsUp v1.0 vs Stockfish 11): 1-0 {White mates}
Started game 37 of 200 (HeadsUp v1.0 vs Eman Chimera 4.0)
Finished game 36 (Stockfish 11 vs HeadsUp v1.0): 1/2-1/2 {Draw by 3-fold repetition}
Rank Name                          Elo     +/-   Games   Score    Draw
   0 HeadsUp v1.0                   29      57      36   54.2%   75.0%
   1 Eman Chimera 4.0              -19      66      18   47.2%   83.3%
   2 Stockfish 11                  -39      94      18   44.4%   66.7%
...
User avatar
Laskos
Posts: 10948
Joined: Wed Jul 26, 2006 10:21 pm
Full name: Kai Laskos

Re: Can somebody do simply this? By far the strongest engine!

Post by Laskos »

Ferdy wrote: Thu May 21, 2020 3:09 pm
Laskos wrote: Thu May 21, 2020 12:18 pm It seems to work as intended. It accepts all the EPD and PGN openings I use, so now I can experiment with some values. The overhead seems small and I can use it in ultra-fast games. Thanks a lot!
All right. I usually setup engine via cutechess-gui. That engines.json is located deep in the folders at C:\Users\...\AppData\Roaming\cutechess. But command line using cutechess-cli is able to use it even if the command line is in d:\chess folder.
Ferdy, thanks a lot, works like a charm. After some tuning, I found the following at 60s+1s time control. Using 5 men Syzygy both in game and as adjudication, but not using longish opening books, only 3-mover FIDE 2200+ unbalanced human openings to reduce error margins. Engine competitions like Playchess Engine Room rely on longish book lines, so my results might not be applicable to them.

Good settings in headsup.cfg are:


# Use engine1 if total piece value remaining is above piece_value_switch.
# Default = 62
piece_value_switch = 30

# Use engine1 if move number is below move_number_switch.
# Default = 0
move_number_switch = 42

or

# Use engine1 if total piece value remaining is above piece_value_switch.
# Default = 62
piece_value_switch = 26

# Use engine1 if move number is below move_number_switch.
# Default = 0
move_number_switch = 500

or

# Use engine1 if total piece value remaining is above piece_value_switch.
# Default = 62
piece_value_switch = 1

# Use engine1 if move number is below move_number_switch.
# Default = 0
move_number_switch = 35


With the first one (30 42), I get the Headsup using Lc0_SV_3010 with Stockfish_dev as by far the strongest chess entity on my PC:

Code: Select all

   # PLAYER            : RATING  ERROR    POINTS  PLAYED     (%)   CFS(next)
   1 Headsup_3010_SF   : 114.45  26.72     116.0     200    58.0      97    
   2 SV_384x30_3010    :  71.94  25.43     103.0     200    51.5     100    
   3 SF_dev            :   0.00  26.56      81.0     200    40.5     ---    

White advantage = 208.57 +/- 16.07
Draw rate (equal opponents) = 62.34 % +/- 4.50
The real pentanomial error margins are some 30% smaller than those shown by Ordo. Headsup seems to improve more against Stockfish (some 60 Elo points) than against Lc0 itself, the base engine (some 20 Elo points).
Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: Can somebody do simply this? By far the strongest engine!

Post by Ferdy »

Glad it works too on GPU.
This program has the potential to run lc0 on gpu and sf on cpu at the same time. But what to do with their best moves :)

One idea is to send the bestmove of lc0 to sf at some point in time and let sf try to reply on it (checking tactics or so). If sf likes it, that move is probably good.