Computer based Opening theory

Discussion of chess software programming and technical issues.

Moderator: Ras

lucasart
Posts: 3242
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: Computer based Opening theory

Post by lucasart »

lucasart wrote:
mvk wrote: Ah, I should express my question more clearly: you intend to use these positions for testing. For that you need divergence: line A and line B should not naturally flow into the same continuation after one or a few moves out of 'book'. If you have a 'dense' opening selection, that effect might spoil a lot of your effort (getting duplicate games nonetheless).
I see. Yes, that is something I thought about, but unfortunately I don't see any simple way to find out. This is a problem every book potentially has. As you say, the denser it gets (high branching factor) the more likely it will happen. My branching factor is not so high now, with the more restrictive conditions (45cp threashold and prune quiet moves that do not improve the static eval). Hopefully the eval improving condition limits that kind of thing as moves tend to go "forward".
On second thoughts, perhaps it's too dense. And I don't need 141k positions anyway. So I extraced a random sample of the 5-ply file

Code: Select all

shuf ./book5.epd|head -64000>./book5_sample.epd
Now I'm submitting these 64000 positions to filtering by Critter.
Theory and practice sometimes clash. And when that happens, theory loses. Every single time.
lucasart
Posts: 3242
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: Computer based Opening theory

Post by lucasart »

lucasart wrote: On second thoughts, perhaps it's too dense. And I don't need 141k positions anyway. So I extraced a random sample of the 5-ply file

Code: Select all

shuf ./book5.epd|head -64000>./book5_sample.epd
Now I'm submitting these 64000 positions to filtering by Critter.
OK, I'm done with this. 57910 unique positions left after Critter filter. Grab it while it's hot!
http://open-chess.org/viewtopic.php?f=7&t=2552
Theory and practice sometimes clash. And when that happens, theory loses. Every single time.
Joerg Oster
Posts: 983
Joined: Fri Mar 10, 2006 4:29 pm
Location: Germany
Full name: Jörg Oster

Re: Computer based Opening theory

Post by Joerg Oster »

Thanks for sharing, Lucas!
Jörg Oster
xmas79
Posts: 286
Joined: Mon Jun 03, 2013 7:05 pm
Location: Italy

Re: Computer based Opening theory

Post by xmas79 »

Uri Blass wrote: Why do you think that engines will never play a gambit?

I think that you are wrong about it and engines can sacrifice for positional reasons.

For example many engines play after 1.e4 d5 2.exd5 not Qxd5 but Nf6
Because engines don't "feel" positions, and openings neither.
IMHO, they will (very) rarely play a King's gambit, or some "unclear" gambit as there are more safe lines. So Lucas idea is good because will force the engine to move in positions it would never go otherwise.
lucasart
Posts: 3242
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: Computer based Opening theory

Post by lucasart »

I just played a few games between DiscoCheck and TogaII 3.0 (approx equal strength). I abort the games after 10 moves, because I'm only interested in how engines play the opening.

Looking at these games, I would say that Toga's play looks better in pure opening play. This is perhaps not measured properly by rating lists, because they force engines to play long mainlines, and leave them out of book already castled and developped. What a shame!

32 games below. Enjoy!
[pgn]
[White "DiscoCheck"]
[Black "TogaII 3.0"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "rnbqkbnr/pp2pppp/3p4/2p5/8/P2PB3/1PP1PPPP/RN1QKBNR b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... Nf6 2. Nf3 Nc6 3. Bd2 d5 4. e3 e5 5. Nc3 h6 6. Bc1 Bf5 7. Be2 d4 8.
Nb1 Be7 9. e4 Be6 10. O-O c4 11. Nbd2 1/2-1/2

[White "TogaII 3.0"]
[Black "DiscoCheck"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "rnbqkbnr/pp2pppp/3p4/2p5/8/P2PB3/1PP1PPPP/RN1QKBNR b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... Nf6 2. g3 Nc6 3. Nf3 e5 4. c4 d5 5. cxd5 Nxd5 6. Bd2 Be7 7. Nc3 Nxc3
8. Bxc3 f6 9. Bg2 Be6 10. Nd2 Qd7 11. a4 1/2-1/2

[White "DiscoCheck"]
[Black "TogaII 3.0"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "r1bqkbnr/ppppppp1/2n5/1P5p/8/7N/P1PPPPPP/RNBQKB1R b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... Na5 2. e3 d5 3. Nf4 e5 4. Nxh5 Qh4 5. Ng3 Nf6 6. d4 Bd6 7. Ba3 Bxa3 8.
Nxa3 exd4 9. Qxd4 Qxd4 10. exd4 Kd8 11. Be2 1/2-1/2

[White "TogaII 3.0"]
[Black "DiscoCheck"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "r1bqkbnr/ppppppp1/2n5/1P5p/8/7N/P1PPPPPP/RNBQKB1R b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... Ne5 2. d4 Ng6 3. Nf4 Nxf4 4. Bxf4 Nf6 5. c4 a6 6. bxa6 Rxa6 7. c5 b5
8. f3 Nd5 9. Bg5 c6 10. e4 f6 11. Bc1 1/2-1/2

[White "DiscoCheck"]
[Black "TogaII 3.0"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "rnbqkbnr/1ppppppp/8/8/p3PP2/5Q2/PPPP2PP/RNB1KBNR b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... Nc6 2. Nc3 e6 3. Kd1 Nge7 4. Nge2 Ra5 5. a3 d5 6. d3 Ng6 7. Bd2 Be7 8.
g3 d4 9. Na2 Rb5 10. Kc1 Na5 11. Bg2 1/2-1/2

[White "TogaII 3.0"]
[Black "DiscoCheck"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "rnbqkbnr/1ppppppp/8/8/p3PP2/5Q2/PPPP2PP/RNB1KBNR b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... Nc6 2. Nc3 e6 3. Kd1 Be7 4. g4 Bc5 5. Bc4 Nd4 6. Qg2 Ne7 7. Nge2 O-O
8. Nxd4 Bxd4 9. h4 d5 10. Bd3 Bd7 11. h5 1/2-1/2

[White "DiscoCheck"]
[Black "TogaII 3.0"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "rn1qkbnr/ppp1pppp/3p4/5b2/2P5/4PQ2/PP1P1PPP/RNB1KBNR b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... Bd7 2. Qxb7 Nc6 3. Qb3 Nf6 4. Nf3 Rb8 5. Qd1 e5 6. d4 Be7 7. Nc3 O-O
8. Be2 Re8 9. O-O a5 10. b3 Bf8 11. Bb2 1/2-1/2

[White "TogaII 3.0"]
[Black "DiscoCheck"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "rn1qkbnr/ppp1pppp/3p4/5b2/2P5/4PQ2/PP1P1PPP/RNB1KBNR b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... Qc8 2. e4 Bg4 3. Qe3 g6 4. h3 Be6 5. Nf3 c5 6. Be2 Nf6 7. Nc3 Nc6 8.
O-O h5 9. d3 Bh6 10. Ng5 Bd7 11. Bd1 1/2-1/2

[White "DiscoCheck"]
[Black "TogaII 3.0"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "rnb1kbnr/ppqppppp/2p5/8/2P5/2NP4/PP2PPPP/R1BQKBNR b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... Nf6 2. Nf3 e5 3. e4 Be7 4. Be2 O-O 5. O-O d6 6. Be3 Nbd7 7. d4 Ng4 8.
Bg5 Bxg5 9. Nxg5 Ngf6 10. b4 a5 11. b5 1/2-1/2

[White "TogaII 3.0"]
[Black "DiscoCheck"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "rnb1kbnr/ppqppppp/2p5/8/2P5/2NP4/PP2PPPP/R1BQKBNR b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... Nf6 2. e4 e5 3. Nf3 Be7 4. d4 d6 5. Be2 O-O 6. O-O Bg4 7. Be3 Nbd7 8.
h3 Bh5 9. g4 Bg6 10. Nh4 h6 11. Nxg6 1/2-1/2

[White "DiscoCheck"]
[Black "TogaII 3.0"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "rnbqkbnr/ppp1ppp1/3p4/3B3p/8/6P1/PPPPPP1P/RNBQK1NR b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... Nf6 2. Bg2 e5 3. Nf3 Nc6 4. O-O Be7 5. c4 O-O 6. Nc3 Re8 7. d3 Bd7 8.
Bd2 Rb8 9. Rc1 a6 10. Nd5 e4 11. Ne1 1/2-1/2

[White "TogaII 3.0"]
[Black "DiscoCheck"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "rnbqkbnr/ppp1ppp1/3p4/3B3p/8/6P1/PPPPPP1P/RNBQK1NR b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... Nf6 2. Bg2 h4 3. d4 Nc6 4. Bg5 hxg3 5. hxg3 Rxh1 6. Bxh1 Qd7 7. Nc3
Qf5 8. Bxf6 gxf6 9. e3 Bd7 10. Be4 Qa5 11. a3 1/2-1/2

[White "DiscoCheck"]
[Black "TogaII 3.0"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "rnbqkbnr/1pp1pppp/8/p2p4/3P4/2P4P/PP2PPP1/RNBQKBNR b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... e6 2. Nf3 Nf6 3. e3 Bd6 4. Be2 O-O 5. O-O Nc6 6. c4 Ne4 7. Nfd2 Nf6 8.
Nc3 b6 9. b3 Re8 10. Bb2 Ba6 11. a3 1/2-1/2

[White "TogaII 3.0"]
[Black "DiscoCheck"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "rnbqkbnr/1pp1pppp/8/p2p4/3P4/2P4P/PP2PPP1/RNBQKBNR b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... Nf6 2. Nf3 e6 3. Bf4 Bd6 4. Bxd6 cxd6 5. e3 O-O 6. Na3 Nbd7 7. c4 Qb6
8. Qb3 dxc4 9. Bxc4 Qxb3 10. Bxb3 Nb6 11. Nc4 1/2-1/2

[White "DiscoCheck"]
[Black "TogaII 3.0"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "r1bqkbnr/pppp1ppp/n3p3/1B6/4P3/5P2/PPPP2PP/RNBQK1NR b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... Nb4 2. a3 Nc6 3. d4 a6 4. Bxc6 dxc6 5. Ne2 c5 6. Be3 cxd4 7. Qxd4 Qxd4
8. Nxd4 Bd7 9. Nc3 O-O-O 10. O-O-O b6 11. Kb1 1/2-1/2

[White "TogaII 3.0"]
[Black "DiscoCheck"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "r1bqkbnr/pppp1ppp/n3p3/1B6/4P3/5P2/PPPP2PP/RNBQK1NR b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... Qh4+ 2. g3 Qh5 3. Nc3 Bb4 4. Qe2 c6 5. f4 Qc5 6. Bd3 Qb6 7. a3 Be7 8.
b4 d5 9. Bb2 Nf6 10. exd5 cxd5 11. Nb5 1/2-1/2

[White "DiscoCheck"]
[Black "TogaII 3.0"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "rnbqkbnr/p1pppppp/8/8/1p5P/1P3N2/P1PPPPP1/RNBQKB1R b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... Nc6 2. a3 e5 3. Bb2 e4 4. Ne5 Nxe5 5. Bxe5 d6 6. Bb2 bxa3 7. Nxa3 Nf6
8. Bxf6 Qxf6 9. Nb5 Kd8 10. Nc3 e3 11. fxe3 1/2-1/2

[White "TogaII 3.0"]
[Black "DiscoCheck"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "rnbqkbnr/p1pppppp/8/8/1p5P/1P3N2/P1PPPPP1/RNBQKB1R b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... Nf6 2. a3 c5 3. axb4 cxb4 4. e3 e6 5. Be2 Be7 6. c4 bxc3 7. dxc3 O-O
8. O-O d5 9. c4 Nbd7 10. Nbd2 Bb7 11. Bb2 1/2-1/2

[White "DiscoCheck"]
[Black "TogaII 3.0"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "rnbqkb1r/pppppppp/8/5n2/8/3PP3/PPP1NPPP/RNBQKB1R b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... e6 2. e4 Nh4 3. f4 d5 4. g3 Ng6 5. Bg2 dxe4 6. Bxe4 Nc6 7. Be3 Nge7 8.
Qd2 Nd5 9. Nbc3 Nxe3 10. Qxe3 Be7 11. O-O-O 1/2-1/2

[White "TogaII 3.0"]
[Black "DiscoCheck"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "rnbqkb1r/pppppppp/8/5n2/8/3PP3/PPP1NPPP/RNBQKB1R b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... e6 2. e4 Nh4 3. Nec3 Be7 4. d4 O-O 5. g3 Ng6 6. h4 d5 7. h5 Nh8 8. h6
g5 9. Na3 dxe4 10. Nxe4 Nc6 11. c3 1/2-1/2

[White "DiscoCheck"]
[Black "TogaII 3.0"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "r1bqkbnr/pppp1ppp/2n1p3/8/1P6/P6N/2PPPPPP/RNBQKB1R b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... d5 2. b5 Na5 3. e3 Nf6 4. Be2 Bd6 5. d4 e5 6. Ng5 e4 7. Bd2 c6 8. bxc6
bxc6 9. f3 h6 10. fxe4 hxg5 11. e5 1/2-1/2

[White "TogaII 3.0"]
[Black "DiscoCheck"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "r1bqkbnr/pppp1ppp/2n1p3/8/1P6/P6N/2PPPPPP/RNBQKB1R b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... Nf6 2. e3 d5 3. f4 Bd6 4. Bb2 a6 5. Be2 e5 6. fxe5 Bxe5 7. Bxe5 Nxe5
8. Nf2 O-O 9. O-O Re8 10. Nc3 a5 11. Bb5 1/2-1/2

[White "DiscoCheck"]
[Black "TogaII 3.0"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "rnbqkbnr/pp1ppp1p/8/2p3p1/Q1P5/1P6/P2PPPPP/RNB1KBNR b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... Nc6 2. Bb2 e5 3. Nc3 d6 4. h3 Bd7 5. O-O-O a6 6. Ba1 b5 7. cxb5 axb5
8. Qxb5 Nb4 9. Qc4 Rxa2 10. Nxa2 d5 11. Qxb4 1/2-1/2

[White "TogaII 3.0"]
[Black "DiscoCheck"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "rnbqkbnr/pp1ppp1p/8/2p3p1/Q1P5/1P6/P2PPPPP/RNB1KBNR b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... Bg7 2. Nc3 Nc6 3. Bb2 d6 4. e3 Nf6 5. Rc1 O-O 6. h4 g4 7. h5 Bd7 8.
Qa3 a6 9. h6 Bh8 10. Nd5 e5 11. Ne2 1/2-1/2

[White "DiscoCheck"]
[Black "TogaII 3.0"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "rnbqkbnr/pppp1p1p/4p3/1P4p1/8/4P3/P1PP1PPP/RNBQKBNR b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... Nf6 2. Bb2 Rg8 3. Nf3 g4 4. Ne5 d6 5. Nd3 Nbd7 6. Nc3 Nb6 7. Be2 h5 8.
O-O h4 9. f3 g3 10. h3 Nc4 11. Bc1 1/2-1/2

[White "TogaII 3.0"]
[Black "DiscoCheck"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "rnbqkbnr/pppp1p1p/4p3/1P4p1/8/4P3/P1PP1PPP/RNBQKBNR b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... Nf6 2. Nc3 d5 3. h3 Bg7 4. d4 c5 5. bxc6 Nxc6 6. Nf3 O-O 7. Nxg5 e5 8.
dxe5 Nxe5 9. Rb1 Nfd7 10. h4 h6 11. Nh3 1/2-1/2

[White "DiscoCheck"]
[Black "TogaII 3.0"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "rn1qkbnr/pppbpppp/3p4/8/3P4/1P2P3/P1P2PPP/RNBQKBNR b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... e5 2. Nf3 exd4 3. exd4 Nf6 4. Bd3 Be7 5. O-O Nc6 6. a3 O-O 7. h3 Be6
8. c4 d5 9. Re1 Re8 10. Nc3 h6 11. Bf4 1/2-1/2

[White "TogaII 3.0"]
[Black "DiscoCheck"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "rn1qkbnr/pppbpppp/3p4/8/3P4/1P2P3/P1P2PPP/RNBQKBNR b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... Nf6 2. Nf3 Nc6 3. Nc3 e6 4. Bb2 Be7 5. Be2 O-O 6. O-O a6 7. d5 exd5 8.
Nxd5 Nxd5 9. Qxd5 Bf6 10. c3 Qe7 11. Nd4 1/2-1/2

[White "DiscoCheck"]
[Black "TogaII 3.0"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "rnbqkb1r/pppppp1p/6pn/8/8/P3P1P1/1PPP1P1P/RNBQKBNR b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... Bg7 2. Bg2 e5 3. Nc3 Nc6 4. e4 f5 5. d3 d6 6. Nge2 O-O 7. O-O Kh8 8.
f3 fxe4 9. dxe4 Be6 10. Be3 Ng8 11. Qd3 1/2-1/2

[White "TogaII 3.0"]
[Black "DiscoCheck"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "rnbqkb1r/pppppp1p/6pn/8/8/P3P1P1/1PPP1P1P/RNBQKBNR b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... Bg7 2. d4 O-O 3. Nc3 Nf5 4. h4 e5 5. dxe5 Nc6 6. e4 Nfe7 7. Nf3 Nxe5
8. h5 c6 9. h6 Bh8 10. Nxe5 Bxe5 11. Bf4 1/2-1/2

[White "DiscoCheck"]
[Black "TogaII 3.0"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "rnbqkb1r/pppppppp/8/8/6n1/1P1P3P/P1P1PPP1/RNBQKBNR b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... Nf6 2. Nf3 d5 3. e3 Nc6 4. Bb2 e6 5. Be2 Bd6 6. c4 dxc4 7. bxc4 O-O 8.
d4 b6 9. O-O Bb7 10. Nbd2 Qe7 11. Rb1 1/2-1/2

[White "TogaII 3.0"]
[Black "DiscoCheck"]
[Result "1/2-1/2"]
[TimeControl "60+0.5"]
[FEN "rnbqkb1r/pppppppp/8/8/6n1/1P1P3P/P1P1PPP1/RNBQKBNR b KQkq -"]
[Termination "adjudication"]
[PlyCount "20"]

1... Nf6 2. Nf3 d5 3. e3 Nc6 4. Bb2 e6 5. Be2 Bd6 6. O-O O-O 7. c4 a6 8.
Nbd2 Bd7 9. d4 Be7 10. a3 Ne8 11. b4 1/2-1/2
[/pgn]
PS: You can see for yourself that engines do play gambits of their own! The difference to humans is that they do not play unsound gambits, of course.
Theory and practice sometimes clash. And when that happens, theory loses. Every single time.
Macumba

Re: Computer based Opening theory

Post by Macumba »

lucasart wrote:I've generated a 4 ply opening book using nothing more than my engine. Basically I start from the starting position, do a perft(4) and eliminate all nodes (interior and leaves) where a 12-ply search returns a score outside acceptable bounds +/-70cp:
http://open-chess.org/viewtopic.php?f=5&t=2551

This was really a fun experiment, and provided me with a great opening suite for testing my engine. It's as diversified and shallow as it can be, and contains 52967 positions which enough for most engine testing purposes.

But it could be improved and generalized:
* code it in a GUI like XBoard, so it can be engine agnostic.
* make the diversity of the book (branching factor) tunable in a couple of ways: using multi PV feature of the engine (fixed factor) or tweaking the 70cp threshold.
* genrate a proper book in PolyGlot format, rather than an EPD file.
* parallelize the book generation, and do it recursively with a global hash table to eliminate more efficiently transpositions.

Has anyone ever done that ?
Is anyone interested ? HGM ?

It would be really great. The idea would be to create entirely computer based opening theory. Human opening theory is flawed and biaised: very poor diversity and many dubious lines that comp analysis show to be unsound.

PS: I can't attach files on this forum, so I use Open Chess. Ideally please answer on Open Chess instead (but most people are here and Open Chess is a bit dead).
Can you post also a pgn file with the opening lines from which each position was produced?

About this: Human opening theory is flawed and biaised. I prefer not to give my opinion as most of the current thoery are being validated with powerful engines.

Anyways, everyone is free to think what he/she thinks is "right".

Cordially, Arturo Ochoa.
User avatar
hgm
Posts: 28404
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Computer based Opening theory

Post by hgm »

lucasart wrote:But it could be improved and generalized:
* code it in a GUI like XBoard, so it can be engine agnostic.
* make the diversity of the book (branching factor) tunable in a couple of ways: using multi PV feature of the engine (fixed factor) or tweaking the 70cp threshold.
* genrate a proper book in PolyGlot format, rather than an EPD file.
* parallelize the book generation, and do it recursively with a global hash table to eliminate more efficiently transpositions.

Has anyone ever done that ?
Is anyone interested ? HGM ?

It would be really great. The idea would be to create entirely computer based opening theory. Human opening theory is flawed and biaised: very poor diversity and many dubious lines that comp analysis show to be unsound.
I have been working a lot on creating computer-based opening theory the past few months. But the main problem I had to combat was that the engine evaluation in the opening was not very reliable, and it often happened that positions that after a minute analysis still scored as -1.4 would end up at +0.5 after 20 min.

For this reason I did switch to using game-play statistics rather than engine eval to decide on the advantage in each visited position. This is what finally led to XBoard's -mcBookMode.
Uri Blass
Posts: 10927
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: Computer based Opening theory

Post by Uri Blass »

xmas79 wrote:
Uri Blass wrote: Why do you think that engines will never play a gambit?

I think that you are wrong about it and engines can sacrifice for positional reasons.

For example many engines play after 1.e4 d5 2.exd5 not Qxd5 but Nf6
Because engines don't "feel" positions, and openings neither.
IMHO, they will (very) rarely play a King's gambit, or some "unclear" gambit as there are more safe lines. So Lucas idea is good because will force the engine to move in positions it would never go otherwise.
I believe that the king gambit is a bad gambit and chess programs can play correct gambits.
Uri Blass
Posts: 10927
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: Computer based Opening theory

Post by Uri Blass »

hgm wrote:
lucasart wrote:But it could be improved and generalized:
* code it in a GUI like XBoard, so it can be engine agnostic.
* make the diversity of the book (branching factor) tunable in a couple of ways: using multi PV feature of the engine (fixed factor) or tweaking the 70cp threshold.
* genrate a proper book in PolyGlot format, rather than an EPD file.
* parallelize the book generation, and do it recursively with a global hash table to eliminate more efficiently transpositions.

Has anyone ever done that ?
Is anyone interested ? HGM ?

It would be really great. The idea would be to create entirely computer based opening theory. Human opening theory is flawed and biaised: very poor diversity and many dubious lines that comp analysis show to be unsound.
I have been working a lot on creating computer-based opening theory the past few months. But the main problem I had to combat was that the engine evaluation in the opening was not very reliable, and it often happened that positions that after a minute analysis still scored as -1.4 would end up at +0.5 after 20 min.

For this reason I did switch to using game-play statistics rather than engine eval to decide on the advantage in each visited position. This is what finally led to XBoard's -mcBookMode.
I think that with strong chess engines it does not happen often that
positions that after a minute analysis still scored as -1.4 would end up at +0.5 after 20 min.
enhorning
Posts: 342
Joined: Wed Jan 05, 2011 10:05 pm

Re: Computer based Opening theory

Post by enhorning »

I'd like to do my own version of this (using different window and programs for verification).

I think I have tools for all of it except generating the successors. I'd also like to have the opening file be pgn instead of epd (so that one gets complete game scores from the normal starting position).

Does anybody know of a tool that takes a pgn file and then generates all the possible one-move continuation pgns from that? Or would a programmer be willing to help supply me with such a tool?