GUI question: Asymmetric time control

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

Moderators: hgm, Rebel, chrisw

rainhaus
Posts: 185
Joined: Sun Feb 01, 2009 7:26 pm
Location: Germany
Full name: Rainer Neuhäusler

Re: GUI question: Asymmetric time control

Post by rainhaus »

hgm wrote: Mon May 21, 2018 7:33 pm WinBoard / XBoard allows you to specify time odds per engine, so that they get different times. I never saw any use for allowing the engines to play with different TC mode, though (e.g. sudden death vs. classical). Is there any use case for that?
Nice that someone also asks the question of sense:)
The triggers are no less than Google/DeepMind and above all Tord Romstad. It's about the legendary Stockfish/Alpha Zero match. You probably know the well-known " orangutan apple " statement from the Stockfish co-author in which he is very critical about the match. Here is the essential quotation that this is about:
The match results by themselves are not particularly meaningful because of the rather strange choice of time controls and Stockfish parameter settings: The games were played at a fixed time of 1 minute/move, which means that Stockfish has no use of its time management heuristics (lot of effort has been put into making Stockfish identify critical points in the game and decide when to spend some extra time on a move; at a fixed time per move, the strength will suffer significantly).
Now I ask:
What could this quote have to do with someone looking for a GUI with which a match is possible, for example Stockfish playing 1mov/1min against Stockfisch 40/40?
Generalized, I would like to test to what extent different time management has an effect on playing strength, because time controls have not only a quantitative aspect but also a qualitative one.

However, unfortunately, the latest state of play is that this GUI does not yet exist. Fritz, Arena, Aquarium etc. are out of the game, simply because with two engines only tournament mode or fixed time can be adjusted differently.
I'm on Cutechess right now, studying the Cli-Commands. Oh dear, it says, "st=N set the time limit for each move to N seconds". This option can't be used in combination with "tc". So exactly the same as in all GUIs.

Maybe only works with two computers, connected by cable or in a network. Or is there still a software solution?
User avatar
Nordlandia
Posts: 2821
Joined: Fri Sep 25, 2015 9:38 pm
Location: Sortland, Norway

Re: GUI question: Asymmetric time control

Post by Nordlandia »

How about permanent brain handicap for one side

Engine A think during opponents turn whereas engine B does not ponder.

More time in combination with ponder handicap is more than adequate for time odds matches.
User avatar
Guenther
Posts: 4605
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: GUI question: Asymmetric time control

Post by Guenther »

rainhaus wrote: Tue May 22, 2018 5:53 pm I'm on Cutechess right now, studying the Cli-Commands. Oh dear, it says, "st=N set the time limit for each move to N seconds". This option can't be used in combination with "tc". So exactly the same as in all GUIs.

Maybe only works with two computers, connected by cable or in a network. Or is there still a software solution?
Of course it can be used in cutechess-cli. You just set a different tc for each player with the specific engine command.
(Never used time per single move though and most programs probably won't like that tc)
No problems at least with e.g. 40/60 vs. 40/9600 or 60+0.25 vs. 600+2.5 or whatever.

I use very specialized batch files so you have to figure it out yourself from my example snippet.
This means all %value% entries below are variables set elsewhere in the beginning.
(this also uses of course an engines.json file)

Code: Select all

REM // TIME CONTROLS
REM // Increment

set TCI1=10+0.25
set TCI2=20+0.5
set TCI3=45+1
set TCI4=60+1
set TCI5=90+1.5
set TCI6=120+1
set TCI7=150+2
set TCI8=240+4
set TCI9=300+5
set TCI10=480+8
set TCI11=540+9
set TCI12=600+10
set TCI13=720+12
set TCI14=900+15
set TCI15=1800+20
set TCI16=3600+45
set TCI17=4500+60
set TCI18=7200+90
set TCI19=10800+120

REM // MPS (Moves per session)

set TCM1=40/15
set TCM2=40/30
set TCM3=40/45
set TCM4=40/60
set TCM5=40/90
set TCM6=40/120
set TCM7=40/150
set TCM8=40/180
set TCM9=40/240
set TCM10=40/300
set TCM11=40/360
set TCM12=40/480
set TCM13=40/600
set TCM14=40/900
set TCM15=40/1200
set TCM16=40/2400
set TCM17=40/3600
set TCM18=40/4800
set TCM19=40/6000
set TCM20=40/9000
set TCM21=40/12000
set TCM22=40/15000
set TCM23=40/18000
set TCM24=40/24000
set TCM25=40/30000
set TCM26=40/36000
set TCM27=60/15
set TCM28=60/30
set TCM29=60/45
set TCM30=60/60
set TCM31=80/15
set TCM32=80/30
set TCM33=80/45
set TCM34=80/60

cutechess-cli ^
-tournament gauntlet ^
-rounds %R% ^
-openings file=%OP4% format=%P% order=%RND% ^
-repeat ^
-games 2 ^
-draw movenumber=160 movecount=8 score=10 ^
-resign movecount=4 score=1000 ^
-concurrency %CON% ^
-pgnout %pgn% ^
-site RWBC::CAPPUCCINO_Q8200 ^
-event %EV5% ^
-wait 500 ^
-recover ^
-engine conf=%LC10% tc=%TCI9% ^
-engine conf=%ROT1U% option.Hash=256 tc=%TCI6% ^
-engine conf=%JEL1U% option.Hash=256 tc=%TCI6% ^
-engine conf=%CHR1W% tc=%TCI6% ^
-engine conf=%ROD1U% option.Hash=256 tc=%TCI6% ^
-engine conf=%MON1U% tc=%TCI6% ^
-engine conf=%COU1U% option.Hash=256 tc=%TCI6% ^
-engine conf=%HER1W% tc=%TCI6% ^
-engine conf=%DAN1W% tc=%TCI6% ^
-engine conf=%GLA1U% option.Hash=256 option.Threads=1 tc=%TCI6% ^
-engine conf=%TUC1W% whitepov=true tc=%TCI6% ^
-each timemargin=%TMC% ^
-debug >debug.log
WB, which I tried a few times on asymmetric time controls is regrettably buggy in this case.
I believe I have reported this already a few times w/o success.
Essentially the problem is that the tc follows the color not the player as in cc-cli, which makes it
nearly unusable, if you want to have colors reversed games from the same starting position.

The main usage for asymmetric tc is of course the simulation of better hardware, which is
crucial with gpu tests, if you don't want to spend much time now on a new gpu.
https://rwbc-chess.de

trollwatch:
Chessqueen + chessica + AlexChess + Eduard + Sylwy
User avatar
Matthias Gemuh
Posts: 3245
Joined: Thu Mar 09, 2006 9:10 am

Re: GUI question: Asymmetric time control

Post by Matthias Gemuh »

Guenther wrote: Tue May 22, 2018 7:31 pm ...

Of course it can be used in cutechess-cli. You just set a different tc for each player with the specific engine command.
(Never used time per single move though and most programs probably won't like that tc)
No problems at least with e.g. 40/60 vs. 40/9600 or 60+0.25 vs. 600+2.5 or whatever.
...
The guy wants a GUI that supports stuff like 40/60 vs 75+0.5
My engine was quite strong till I added knowledge to it.
http://www.chess.hylogic.de
User avatar
Guenther
Posts: 4605
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: GUI question: Asymmetric time control

Post by Guenther »

Matthias Gemuh wrote: Tue May 22, 2018 9:37 pm
Guenther wrote: Tue May 22, 2018 7:31 pm ...

Of course it can be used in cutechess-cli. You just set a different tc for each player with the specific engine command.
(Never used time per single move though and most programs probably won't like that tc)
No problems at least with e.g. 40/60 vs. 40/9600 or 60+0.25 vs. 600+2.5 or whatever.
...
The guy wants a GUI that supports stuff like 40/60 vs 75+0.5
should be no problem in cc-cli
https://rwbc-chess.de

trollwatch:
Chessqueen + chessica + AlexChess + Eduard + Sylwy
User avatar
Guenther
Posts: 4605
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: GUI question: Asymmetric time control

Post by Guenther »

Guenther wrote: Tue May 22, 2018 9:48 pm
Matthias Gemuh wrote: Tue May 22, 2018 9:37 pm
Guenther wrote: Tue May 22, 2018 7:31 pm ...

Of course it can be used in cutechess-cli. You just set a different tc for each player with the specific engine command.
(Never used time per single move though and most programs probably won't like that tc)
No problems at least with e.g. 40/60 vs. 40/9600 or 60+0.25 vs. 600+2.5 or whatever.
...
The guy wants a GUI that supports stuff like 40/60 vs 75+0.5
should be no problem in cc-cli
Example:

40/240 vs 120+1

Code: Select all

Indexing opening suite...
69 >LCZero_010ID303(0): uci
172 >Rotor_08(1): uci
442 <Rotor_08(1): id name Rotor 0.8
442 <Rotor_08(1): id author Jan Brouwer
443 <Rotor_08(1): option name Hash type spin default 16 min 1 max 1000
445 <Rotor_08(1): uciok
445 >Rotor_08(1): setoption name Hash value 256
446 >Rotor_08(1): isready
817 <Rotor_08(1): readyok
18076 <LCZero_010ID303(0): id name lczero v0.10
18077 <LCZero_010ID303(0): id author The LCZero Authors
18077 <LCZero_010ID303(0): option name Threads type spin default 2 min 1 max 4
18079 <LCZero_010ID303(0): option name Quiet type check default false
18080 <LCZero_010ID303(0): option name SyzygyPath type string default C:\Syzygy_5
18081 <LCZero_010ID303(0): option name FPU Reduction type string default 0.100000
18082 <LCZero_010ID303(0): option name Puct type string default 0.600000
18082 <LCZero_010ID303(0): option name SlowMover type spin default 89 min 1 max 2147483647
18082 <LCZero_010ID303(0): option name GoNodesPlayouts type check default false
18083 <LCZero_010ID303(0): uciok
18083 >LCZero_010ID303(0): isready
18083 <LCZero_010ID303(0): readyok
Started game 1 of 100 (LCZero_010ID303 vs Rotor_08)
18107 >LCZero_010ID303(0): ucinewgame
18107 >LCZero_010ID303(0): position startpos
18107 >Rotor_08(1): ucinewgame
18108 >Rotor_08(1): position startpos
18108 >LCZero_010ID303(0): position startpos moves d2d4
18108 >Rotor_08(1): position startpos moves d2d4
18109 >Rotor_08(1): position startpos moves d2d4 d7d5
18109 >LCZero_010ID303(0): position startpos moves d2d4 d7d5
18109 >LCZero_010ID303(0): position startpos moves d2d4 d7d5 c2c4
18110 >Rotor_08(1): position startpos moves d2d4 d7d5 c2c4
18110 >Rotor_08(1): position startpos moves d2d4 d7d5 c2c4 c7c5
18110 >LCZero_010ID303(0): position startpos moves d2d4 d7d5 c2c4 c7c5
18111 >LCZero_010ID303(0): position startpos moves d2d4 d7d5 c2c4 c7c5 g1f3
18111 >Rotor_08(1): position startpos moves d2d4 d7d5 c2c4 c7c5 g1f3
18112 >Rotor_08(1): position startpos moves d2d4 d7d5 c2c4 c7c5 g1f3 d5c4
18112 >LCZero_010ID303(0): position startpos moves d2d4 d7d5 c2c4 c7c5 g1f3 d5c4
18113 >LCZero_010ID303(0): isready
18113 <LCZero_010ID303(0): readyok
18113 >LCZero_010ID303(0): go wtime 240000 btime 120000 binc 1000 movestogo 37
18532 <LCZero_010ID303(0): info depth 7 nodes 2 nps 2 tbhits 0 score cp 28 time 424 pv e2e4 c5d4
18567 <LCZero_010ID303(0): info depth 7 nodes 3 nps 4 tbhits 0 score cp 26 time 459 pv e2e3 e7e6
18591 <LCZero_010ID303(0): info depth 8 nodes 5 nps 8 tbhits 0 score cp 19 time 478 pv e2e3 e7e6 f1c4
18609 <LCZero_010ID303(0): info depth 9 nodes 7 nps 12 tbhits 0 score cp 23 time 500 pv e2e4 c5d4 d1d4 d8d4
18636 <LCZero_010ID303(0): info depth 9 nodes 9 nps 15 tbhits 0 score cp 22 time 528 pv e2e4 c5d4 d1d4 d8d4 f3d4
18662 <LCZero_010ID303(0): info depth 10 nodes 11 nps 18 tbhits 0 score cp 24 time 553 pv e2e4 c5d4 d1d4 d8d4 f3d4 g8f6
18688 <LCZero_010ID303(0): info depth 10 nodes 13 nps 21 tbhits 0 score cp 23 time 579 pv e2e4 c5d4 d1d4 d8d4 f3d4 g8f6 e4e5
18714 <LCZero_010ID303(0): info depth 10 nodes 15 nps 23 tbhits 0 score cp 20 time 604 pv e2e4 c5d4 d1d4 d8d4 f3d4 g8f6 e4e5 f6d5
18743 <LCZero_010ID303(0): info depth 10 nodes 17 nps 25 tbhits 0 score cp 19 time 632 pv e2e4 c5d4 d1d4 d8d4 f3d4 g8f6 e4e5 f6d5 f1c4
18817 <LCZero_010ID303(0): info depth 11 nodes 23 nps 31 tbhits 0 score cp 16 time 708 pv e2e4 c5d4 d1d4 d8d4 f3d4 g8f6 e4e5 f6d7 f2f4 d7b6
18924 <LCZero_010ID303(0): info depth 11 nodes 31 nps 37 tbhits 0 score cp 21 time 815 pv e2e4 c5d4 d1d4 d8d4 f3d4 g8f6 e4e5 f6d7 f2f4 d7b6 b1a3
19027 <LCZero_010ID303(0): info depth 12 nodes 39 nps 41 tbhits 0 score cp 22 time 918 pv e2e4 c5d4 d1d4 d8d4 f3d4 g8f6 e4e5 f6d7 f2f4 d7b6 b1a3 e7e6
19052 <LCZero_010ID303(0): info depth 12 nodes 41 nps 42 tbhits 0 score cp 22 time 943 pv e2e4 c5d4 d1d4 d8d4 f3d4 g8f6 e4e5 f6d7 f2f4 d7b6 b1a3 e7e6
19213 <LCZero_010ID303(0): info depth 12 nodes 53 nps 47 tbhits 0 score cp 24 time 1104 pv e2e4 c5d4 d1d4 d8d4 f3d4 g8f6 e4e5 f6d7 f2f4 d7b6 b1a3 e7e6
19265 <LCZero_010ID303(0): info depth 12 nodes 57 nps 48 tbhits 0 score cp 24 time 1157 pv e2e4 c5d4 d1d4 d8d4 f3d4 g8f6 e4e5 f6d5 f1c4 b8c6 d4c6 b7c6 b1c3 e7e6 c1d2 d5b6
19749 <LCZero_010ID303(0): info depth 13 nodes 93 nps 56 tbhits 0 score cp 26 time 1640 pv e2e4 c5d4 d1d4 d8d4 f3d4 g8f6 e4e5 f6d5 f1c4 b8c6 d4c6 b7c6 b1c3 e7e6 c1d2 d5b6
20293 <LCZero_010ID303(0): info depth 14 nodes 135 nps 61 tbhits 0 score cp 25 time 2184 pv e2e4 c5d4 d1d4 d8d4 f3d4 g8f6 e4e5 f6d5 f1c4 b8c6 d4c6 b7c6 b1c3 e7e6 c3e4 f7f6 f2f4 f6f5
21338 <LCZero_010ID303(0): info string  Nfd2 ->       0   (V: 52.07%) (N:  0.04%) PV: Nfd2 
21338 <LCZero_010ID303(0): info string   Nh4 ->       0   (V: 52.07%) (N:  0.05%) PV: Nh4 
21339 <LCZero_010ID303(0): info string   Kd2 ->       0   (V: 52.07%) (N:  0.05%) PV: Kd2 
21339 <LCZero_010ID303(0): info string   Bh6 ->       0   (V: 52.07%) (N:  0.05%) PV: Bh6 
21339 <LCZero_010ID303(0): info string   Ng1 ->       0   (V: 52.07%) (N:  0.05%) PV: Ng1 
21340 <LCZero_010ID303(0): info string   Qb3 ->       0   (V: 52.07%) (N:  0.06%) PV: Qb3 
21340 <LCZero_010ID303(0): info string   Ng5 ->       0   (V: 52.07%) (N:  0.07%) PV: Ng5 
21341 <LCZero_010ID303(0): info string    b4 ->       0   (V: 52.07%) (N:  0.07%) PV: b4 
21341 <LCZero_010ID303(0): info string   Rg1 ->       0   (V: 52.07%) (N:  0.09%) PV: Rg1 
21341 <LCZero_010ID303(0): info string   Qd3 ->       0   (V: 52.07%) (N:  0.10%) PV: Qd3 
21342 <LCZero_010ID303(0): info string    b3 ->       0   (V: 52.07%) (N:  0.10%) PV: b3 
21342 <LCZero_010ID303(0): info string    g4 ->       0   (V: 52.07%) (N:  0.10%) PV: g4 
21342 <LCZero_010ID303(0): info string   Ne5 ->       0   (V: 52.07%) (N:  0.11%) PV: Ne5 
21343 <LCZero_010ID303(0): info string   Bd2 ->       0   (V: 52.07%) (N:  0.12%) PV: Bd2 
21344 <LCZero_010ID303(0): info string   Na3 ->       0   (V: 52.07%) (N:  0.14%) PV: Na3 
21344 <LCZero_010ID303(0): info string   Bg5 ->       0   (V: 52.07%) (N:  0.14%) PV: Bg5 
21344 <LCZero_010ID303(0): info string   Qd2 ->       0   (V: 52.07%) (N:  0.14%) PV: Qd2 
21345 <LCZero_010ID303(0): info string    a4 ->       0   (V: 52.07%) (N:  0.14%) PV: a4 
21345 <LCZero_010ID303(0): info string    a3 ->       0   (V: 52.07%) (N:  0.14%) PV: a3 
21346 <LCZero_010ID303(0): info string    h4 ->       0   (V: 52.07%) (N:  0.14%) PV: h4 
21346 <LCZero_010ID303(0): info string   Qc2 ->       0   (V: 52.07%) (N:  0.15%) PV: Qc2 
21346 <LCZero_010ID303(0): info string   Be3 ->       0   (V: 52.07%) (N:  0.17%) PV: Be3 
21347 <LCZero_010ID303(0): info string  Nbd2 ->       0   (V: 52.07%) (N:  0.20%) PV: Nbd2 
21347 <LCZero_010ID303(0): info string   Bf4 ->       0   (V: 52.07%) (N:  0.21%) PV: Bf4 
21348 <LCZero_010ID303(0): info string    h3 ->       0   (V: 52.07%) (N:  0.24%) PV: h3 
21348 <LCZero_010ID303(0): info string    g3 ->       0   (V: 52.07%) (N:  0.24%) PV: g3 
21348 <LCZero_010ID303(0): info string  dxc5 ->       0   (V: 52.07%) (N:  0.25%) PV: dxc5 
21349 <LCZero_010ID303(0): info string  Qa4+ ->       0   (V: 52.07%) (N:  0.36%) PV: Qa4+ 
21349 <LCZero_010ID303(0): info string   Nc3 ->       0   (V: 52.07%) (N:  0.84%) PV: Nc3 
21349 <LCZero_010ID303(0): info string    d5 ->       4   (V: 51.22%) (N:  2.26%) PV: d5 Nf6 Nc3 e6
21350 <LCZero_010ID303(0): info string    e3 ->       5   (V: 51.28%) (N:  3.09%) PV: e3 e6 Bxc4 Nf6 O-O
21350 <LCZero_010ID303(0): info string    e4 ->     206   (V: 53.42%) (N: 90.13%) PV: e4 cxd4 Qxd4 Qxd4 Nxd4 Nf6 e5 Nd5 Bxc4 Nc6 Nxc6 bxc6 Nc3 e6 Ne4 f6 f4 f5
21351 <LCZero_010ID303(0): info string stm White winrate 53.32%
21351 <LCZero_010ID303(0): info depth 15 nodes 216 nps 66 tbhits 0 score cp 29 time 3235 pv e2e4 c5d4 d1d4 d8d4 f3d4 g8f6 e4e5 f6d5 f1c4 b8c6 d4c6 b7c6 b1c3 e7e6 c3e4 f7f6 f2f4 f6f5
21352 <LCZero_010ID303(0): bestmove e2e4
21352 >Rotor_08(1): position startpos moves d2d4 d7d5 c2c4 c7c5 g1f3 d5c4 e2e4
21353 >Rotor_08(1): isready
21353 <Rotor_08(1): readyok
21353 >Rotor_08(1): go wtime 236765 btime 120000 binc 1000
[Event "LCZeroTest_2018"]
[Site "RWBC::CAPPUCCINO_Q8200"]
[Date "2018.05.22"]
[Round "1"]
[White "LCZero_010ID303"]
[Black "Rotor_08"]
[Result "0-1"]
[BlackTimeControl "120+1"]
[ECO "D06"]
[Opening "QGD"]
[PlyCount "61"]
[Termination "adjudication"]
[Variation "Symmetrical (Austrian) defense"]
[WhiteTimeControl "40/240"]

1. d4 {book} d5 {book} 2. c4 {book} c5 {book} 3. Nf3 {book} dxc4 {book}
4. e4 {+0.29/15 3.2s} cxd4 {-0.03/11 2.8s} 5. Qxd4 {+0.32/15 2.4s}
Qxd4 {-0.31/14 7.6s} 6. Nxd4 {+0.30/15 1.4s} e5 {-0.32/13 2.3s}
7. Nb5 {+0.45/15 3.4s} Na6 {-0.41/13 4.7s} 8. Bxc4 {+0.48/15 2.7s}
Bd7 {-0.44/13 6.1s} 9. N1c3 {+0.44/16 6.7s} Rc8 {+0.22/13 3.0s}
10. Bd5 {+0.09/16 4.7s} Nb4 {+0.17/13 2.9s} 11. Nxa7 {+0.42/16 2.9s}
Rxc3 {+0.77/13 2.2s} 12. bxc3 {-0.23/15 3.6s} Nc2+ {+0.49/14 2.1s}
13. Ke2 {-0.46/16 4.4s} Nxa1 {+0.71/14 4.1s} 14. Bxb7 {-0.41/16 2.8s}
Nc2 {+0.68/13 1.9s} 15. Rd1 {0.00/16 6.4s} Na3 {+0.66/12 2.7s}
16. Bc6 {+0.10/15 4.7s} Nf6 {+0.52/14 3.5s} 17. Bg5 {-0.17/16 4.1s}
Bxc6 {+0.60/15 3.1s} 18. Nxc6 {-0.22/16 1.8s} Be7 {+0.60/14 1.7s}
19. Bh4 {-0.56/17 7.3s} Nxe4 {+1.84/14 1.7s} 20. Bxe7 {-3.91/15 4.4s}
Nxc3+ {+1.97/15 2.2s} 21. Ke1 {-4.36/16 3.2s} Nc2+ {+2.23/17 2.1s}
22. Kd2 {-8.10/15 5.1s} Nxd1 {+2.26/17 4.3s} 23. Kxd1 {-8.62/16 8.4s}
Nd4 {+2.40/14 1.9s} 24. Nxd4 {-10.19/16 3.3s} Kxe7 {+2.42/13 2.1s}
25. Nf5+ {-9.72/16 7.3s} Kf6 {+2.50/12 3.8s} 26. Ne3 {-9.51/15 4.0s}
Rc8 {+2.51/11 1.7s} 27. a4 {-9.54/16 9.7s} Ke6 {+3.37/12 3.9s}
28. a5 {-10.86/16 10s} Rc5 {+3.44/12 2.7s} 29. a6 {-12.66/15 6.1s}
Ra5 {+3.54/12 3.4s} 30. Ke2 {-12.85/17 11s} Rxa6 {+3.57/11 2.3s}
31. Kf3 {-12.60/16 11s, Black wins by adjudication} 0-1
https://rwbc-chess.de

trollwatch:
Chessqueen + chessica + AlexChess + Eduard + Sylwy
jp
Posts: 1470
Joined: Mon Apr 23, 2018 7:54 am

Re: GUI question: Asymmetric time control

Post by jp »

rainhaus wrote: Tue May 22, 2018 5:53 pm I'm on Cutechess right now, studying the Cli-Commands. Oh dear, it says, "st=N set the time limit for each move to N seconds". This option can't be used in combination with "tc". So exactly the same as in all GUIs.
rainhaus, can you just try it anyway and see what happens? It could just mean "this option can't be used in combination with "tc" for the same engine". It could be that you can use "st=N" for one engine and "tc" for its opponent, which is what you wanted.
rainhaus
Posts: 185
Joined: Sun Feb 01, 2009 7:26 pm
Location: Germany
Full name: Rainer Neuhäusler

Re: GUI question: Asymmetric time control

Post by rainhaus »

Guenther wrote: Tue May 22, 2018 7:31 pm
rainhaus wrote: Tue May 22, 2018 5:53 pm I'm on Cutechess right now, studying the Cli-Commands. Oh dear, it says, "st=N set the time limit for each move to N seconds". This option can't be used in combination with "tc". So exactly the same as in all GUIs.
Maybe only works with two computers, connected by cable or in a network. Or is there still a software solution?
Of course it can be used in cutechess-cli.
This is not from me, but from the original site https://github.com/cutechess/cutechess/ ... c/help.txt
I cite:
tc=TIMECONTROL
Set the time control to TIMECONTROL. The format is moves/time+increment, where 'moves' is the number of moves per tc. 'time' is time per tc (either seconds or minutes:seconds). and 'increment' is time increment per move in seconds.
st=N Set the time limit for each move to N seconds.
This option can't be used in combination with "tc".

Guenther wrote:You just set a different tc for each player with the specific engine command.
I knew how this kind of time-asymmetric matches works, but it miss the subject, without time/single move mode. But you're a nerd in cutechess-cli! Now I know who I can ask in case of need:)
Guenthe wrote:(Never used time per single move though and most programs probably won't like that tc)
Ho ho, that's one way to do it: whistle, look away and put in brackets :shock: But it's only this time mode that matters, because that's exactly what was used in the Stockfish-AlphaZero match.It is dramatically different from all the others no matter if Tournament, Blitz, Rapid, with or without increment. These TCs have in common that the engine determines on which moves it takes more or less time. The more intelligent this selection, the deeper the engine calculates for the relevant moves and the stronger it is. With fixed move time, the engine can only use the time-heuristics to a very limited extent, because the cut comes much earlier in the case of moves, that would be calculated deeper in Tournament or Rapid mode. This justifies the hypothesis that the modus "time per single move" is significantly weaker. A match 1min/move vs. 40/40 should be significantly in favor of tournament mode. Replace single move mode with another mode? Okay, with what? I see no alternative to it. You can forget all that mentioned handicap acrobatics.
Guenther wrote:No problems at least with e.g. 40/60 vs. 40/9600 or 60+0.25 vs. 600+2.5 or whatever.
Like I just said, these time controls are all more intelligent than the castrating time/single move.
As long as that's not cracked, we're talking at cross purposes.

Summary:It would have been too good to be true. Unfortunately, Cutechess can't do it either. Simulation of Stockfish-Alpha Zero Match only works if one Stockfish entity is set with time/single move and the second Stockfish or other engines play in another mode, Tournament, Blitz, Rapid doesn't matter.
Forget the whole handicap proposals, this is no substitute for the time/single move mode. Don't just test until you understand exactly what Tord Romstad means. Who agrees with me at least partially, should give here noise;)
It would also be nice if a programmer could explain the matter of time management in the different modes of time control. All the better if he knows Stockfish. Personal appearances are always better than links!
User avatar
hgm
Posts: 27789
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: GUI question: Asymmetric time control

Post by hgm »

rainhaus wrote: Tue May 22, 2018 5:53 pmGeneralized, I would like to test to what extent different time management has an effect on playing strength, because time controls have not only a quantitative aspect but also a qualitative one.
It is clear that some types of time control are more difficult than others. That doesn't mean that when both players are facing a harder TC it changes their relative strength,

BTW, if you want to play fixed time per move against other types of TC, there might be a trick to do that in WinBoard. You would have to install the engine that should play fixed time/move with the extra WinBoard option /firstComputerString="st 10\n". The computer string is something that WinBoard sens to the engine at the start of the game, after it has sent all other setup commands,(if the opponent is a computer), and st 10 would set the engine to 10 sec/move, overruling the TC parameters WinBoard has sent it before. So you can the set WinBoard for 40 moves/7 min, say, and that is what all other engines woul play, then.
User avatar
Guenther
Posts: 4605
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: GUI question: Asymmetric time control

Post by Guenther »

rainhaus wrote: Wed May 23, 2018 5:29 pm
...snipped lengthy 'Tueschenesque' paragraphs...
I didn't know that you just have an agenda vs. AlphaZero instead of searching for a solution to a problem.
Your first post in this thread asked for sth different:
I am looking for a GUI where you can set individual time controls for each engine (UCI) in a match or tournament. So Shredder plays for example 40/20' and Stockfish with 5' Blitz. As far as I can see, it's not possible...
Exactly this is possible in cc-cli no matter what you think.

Even the later changed proposal, where you finally revealed your real agenda with the tc of the AZ match, is still
possible in cc-cli, even if you won't believe it. (I just mentioned that I never used it before)
Yet the result again is not what you probably like, because even with 1/x mps tc SF decides sometimes to
play faster and saves time for a later move, if the PV move does not change for all iterations.
As long as we don't have logs from the AZ match we don't even know what tc they exactly used...
even when they say one move per minute this could mean two different ways of setting up.

Here is an example of SF 8 with 1/6 vs. SF9 40/240 just to show it works as mps tc.
(note that I was too lazy to remove the 6 plies start position - those moves are obviously counted - therefore it moved the first move in around 24s.)
[Event "LCZeroTest_2018"]
[Site "RWBC::CAPPUCCINO_Q8200"]
[Date "2018.05.23"]
[Round "1"]
[White "Stockfish_8-64"]
[Black "Stockfish_9-64"]
[Result "0-1"]
[BlackTimeControl "40/240"]
[ECO "A09"]
[Opening "Reti"]
[PlyCount "119"]
[Termination "adjudication"]
[Variation "Advance Variation"]
[WhiteTimeControl "1/6"]

1. Nf3 {book} d5 {book} 2. c4 {book} d4 {book} 3. g3 {book} Nc6 {book}
4. Bg2 {+0.09/25 24s} Nf6 {+0.14/22 8.2s} 5. O-O {+0.02/19 1.9s}
e5 {+0.10/22 6.6s} 6. d3 {+0.17/19 4.0s} Bd6 {+0.07/21 2.6s}
7. e3 {+0.02/24 11s} O-O {+0.08/21 2.5s} 8. exd4 {-0.15/24 6.9s}
Nxd4 {+0.15/21 2.6s} 9. Nxd4 {-0.08/21 0.92s} exd4 {+0.12/22 5.4s}
10. Bg5 {-0.02/23 6.2s} h6 {+0.22/22 4.5s} 11. Bxf6 {0.00/25 11s}
Qxf6 {+0.25/23 7.9s} 12. Nd2 {0.00/24 5.2s} c6 {+0.07/25 21s}
13. Ne4 {-0.01/24 4.7s} Qg6 {+0.11/22 1.8s} 14. Nxd6 {0.00/22 1.5s}
Qxd6 {+0.17/23 3.1s} 15. Re1 {0.00/24 11s} Bf5 {+0.08/23 7.3s}
16. Qf3 {0.00/25 5.7s} g6 {+0.26/23 6.8s} 17. Qe2 {0.00/24 7.8s}
Rfe8 {+0.20/23 8.0s} 18. Qd2 {0.00/22 4.9s} a5 {+0.23/23 3.6s}
19. a3 {-0.09/25 7.1s} Kg7 {+0.29/22 3.6s} 20. Rad1 {-0.15/21 6.0s}
b6 {+0.37/19 2.2s} 21. Bf3 {-0.20/21 6.0s} Qf6 {+0.45/22 4.6s}
22. Rc1 {-0.13/22 6.0s} a4 {+0.50/23 5.9s} 23. Bg2 {-0.30/23 6.0s}
Rac8 {+0.62/22 1.7s} 24. Rcd1 {-0.35/23 6.0s} c5 {+0.68/26 31s}
25. Bd5 {-0.22/24 5.2s} h5 {+0.71/22 7.8s} 26. Kg2 {-0.40/22 6.8s}
h4 {+0.78/19 2.1s} 27. Rc1 {-0.51/20 6.0s} h3+ {+0.82/22 7.6s}
28. Kf1 {-0.39/22 4.3s} Bg4 {+0.95/24 1.5s} 29. f4 {-0.29/22 3.0s}
Qd6 {+1.37/20 4.4s} 30. Rxe8 {-1.05/23 11s} Rxe8 {+1.53/23 2.2s}
31. Re1 {-1.37/24 6.0s} Rb8 {+1.87/22 2.0s} 32. Kg1 {-1.50/23 6.0s}
b5 {+2.01/23 3.0s} 33. Re5 {-1.73/24 6.0s} bxc4 {+2.38/23 4.4s}
34. Bxc4 {-1.26/23 2.3s} Qc7 {+2.52/23 3.8s} 35. Bd5 {-1.41/24 9.7s}
f6 {+2.43/26 7.5s} 36. Re1 {-1.11/20 2.7s} Qd6 {+2.58/27 7.7s}
37. Ba2 {-1.94/24 9.4s} Qd7 {+2.75/27 5.5s} 38. Qf2 {-2.00/25 6.0s}
Qb7 {+2.98/24 5.5s} 39. Qd2 {-2.09/22 6.0s} Qxb2 {+4.01/27 22s}
40. Re7+ {-2.39/22 6.0s} Kh6 {+4.07/23 2.8s} 41. Qxb2 {-3.09/20 1.0s}
Rxb2 {+4.02/24 7.3s} 42. Bg8 {-3.47/23 11s} g5 {+4.10/24 5.2s}
43. fxg5+ {-3.79/23 6.0s} Kg6 {+4.42/23 4.3s} 44. gxf6 {-3.87/23 6.0s}
Kxf6 {+4.42/25 5.3s} 45. Rf7+ {-4.10/23 6.0s} Ke5 {+4.62/24 5.5s}
46. Re7+ {-4.39/24 6.0s} Kd6 {+4.91/23 3.5s} 47. Rf7 {-4.50/25 6.0s}
Rg2+ {+5.09/24 3.5s} 48. Kh1 {-4.52/22 3.3s} Rd2 {+5.28/25 7.6s}
49. Kg1 {-5.12/24 8.7s} Rxd3 {+5.78/27 20s} 50. Rf6+ {-5.00/21 4.6s}
Ke5 {+5.82/27 3.2s} 51. Rg6 {-5.10/22 7.4s} Bd7 {+5.87/27 3.9s}
52. Rg7 {-5.36/23 6.0s} Kd6 {+5.97/26 2.6s} 53. Rg6+ {-5.56/22 6.0s}
Kc7 {+5.97/26 7.4s} 54. Rg7 {-5.66/23 6.0s} Kc6 {+6.11/24 4.4s}
55. g4 {-5.89/21 6.0s} Rxa3 {+6.20/20 3.6s} 56. g5 {-6.24/20 6.0s}
d3 {+8.89/23 3.1s} 57. Bc4 {-10.36/24 6.0s} d2 {+10.00/25 4.1s}
58. Be2 {-12.81/26 6.0s} Ra1+ {+10.49/23 3.1s} 59. Kf2 {-14.05/26 6.0s}
d1=Q {+12.05/25 7.7s} 60. Bxd1 {-16.81/23 6.0s, Black wins by adjudication} 0-1
https://rwbc-chess.de

trollwatch:
Chessqueen + chessica + AlexChess + Eduard + Sylwy