Computers, Chess and Long-Range Planning, by Michail M. Botvinnik

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Mike Sherwin
Posts: 860
Joined: Fri Aug 21, 2020 1:25 am
Location: Planet Earth, Sol system
Full name: Michael J Sherwin

Computers, Chess and Long-Range Planning, by Michail M. Botvinnik

Post by Mike Sherwin »

In 1984 the library at YSU had a copy of this book. It is a very complicated book written in mathematical language that I cannot comprehend. But there was enough in English that I could understand the basic idea. Even the basic idea was not given in algorithmic fashion that could easily be coded. It was not even presented in an alpha-beta context. You can still purchase this book for 67,40E. Or in paperback for 81,15E. Anyway I spent some time boiling down his basic idea into something that would work in alpha-beta.

STEPS:
1. make a list of moves
2. play each move
3. do a null move
4. put each move that threatens to win in the final list
5. for each of the move that do not threaten to win play one
6. do a null move
7. play another move from the no threats list
8. do another null move
9. place those moves that in combination threaten to win in the final list
10. discard or reduce the depth on the rest
jdart
Posts: 4366
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Computers, Chess and Long-Range Planning, by Michail M. Botvinnik

Post by jdart »

That book caused something of a stir when it first came out. It was basically advocating a kind of "Shannon Type B" strategy IIRC (https://www.chessprogramming.org/Type_B_Strategy). Botvinnik was involved in the development of a chess program called Pioneer that incorporated his ideas, but it was never even functional enough to play complete games. You could argue though that today's programs with super-selective search are Type B at least in principle, but with the ability in addition to search huge game trees, to an extent scarcely imaginable in the early days of computer chess.
Mike Sherwin
Posts: 860
Joined: Fri Aug 21, 2020 1:25 am
Location: Planet Earth, Sol system
Full name: Michael J Sherwin

Re: Computers, Chess and Long-Range Planning, by Michail M. Botvinnik

Post by Mike Sherwin »

jdart wrote: Sat Mar 27, 2021 7:20 pm That book caused something of a stir when it first came out. It was basically advocating a kind of "Shannon Type B" strategy IIRC (https://www.chessprogramming.org/Type_B_Strategy). Botvinnik was involved in the development of a chess program called Pioneer that incorporated his ideas, but it was never even functional enough to play complete games. You could argue though that today's programs with super-selective search are Type B at least in principle, but with the ability in addition to search huge game trees, to an extent scarcely imaginable in the early days of computer chess.
Yes, it was a selective search. Basically it was mathematical formulas in mathematical language that determined threats to a square or from a square and then extending or cutting off moves to that square. If anyone wanted to try to implement Botvinnik's idea in an alpha-beta searcher I believe the template I gave in the OP captures the essence of his idea.
Gerd Isenberg
Posts: 2250
Joined: Wed Mar 08, 2006 8:47 pm
Location: Hattingen, Germany

Re: Computers, Chess and Long-Range Planning, by Michail M. Botvinnik

Post by Gerd Isenberg »

In the null-move context, to determine attack/defense targets and trajectories see also Botvinnik-Markoff Extension. Botvinnik already proposed Vector Attacks aka 15x15 boards with superimposed lookup as used in Pioneer.
Mike Sherwin
Posts: 860
Joined: Fri Aug 21, 2020 1:25 am
Location: Planet Earth, Sol system
Full name: Michael J Sherwin

Re: Computers, Chess and Long-Range Planning, by Michail M. Botvinnik

Post by Mike Sherwin »

Gerd Isenberg wrote: Sun Mar 28, 2021 9:51 am In the null-move context, to determine attack/defense targets and trajectories see also Botvinnik-Markoff Extension. Botvinnik already proposed Vector Attacks aka 15x15 boards with superimposed lookup as used in Pioneer.
That does not in my opinion capture the essence of what Botvinnik's book proposes. The essence of Botvinnik's book seemed to me to be non threat move + another non threat move that together make a threat is worth searching deeper. It is basically giving the side to move upto 3 moves in a row to show the potential for a win.
Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: Computers, Chess and Long-Range Planning, by Michail M. Botvinnik

Post by Ferdy »

Mike Sherwin wrote: Fri Mar 26, 2021 6:45 pm In 1984 the library at YSU had a copy of this book. It is a very complicated book written in mathematical language that I cannot comprehend. But there was enough in English that I could understand the basic idea. Even the basic idea was not given in algorithmic fashion that could easily be coded. It was not even presented in an alpha-beta context. You can still purchase this book for 67,40E. Or in paperback for 81,15E. Anyway I spent some time boiling down his basic idea into something that would work in alpha-beta.

STEPS:
1. make a list of moves
2. play each move
3. do a null move
4. put each move that threatens to win in the final list
5. for each of the move that do not threaten to win play one
6. do a null move
7. play another move from the no threats list
8. do another null move
9. place those moves that in combination threaten to win in the final list
10. discard or reduce the depth on the rest
I get lost starting at step 5 or I have not understand the idea from the beginning.

Sample position.
[d]3r2k1/8/8/4p3/4P3/4KP2/5P2/4B3 w - - 0 1

1. list of moves:
Ba5, Bb4, Bc3, Bd2, Ke2, f4


2. play each move and 3. do nullmove

(1)
1. Ba5 nullmove(black plays nullmove)
2. Bxd8 -> white threatens to win

(2)
1. Bb4 nullmove
Bb4 does not threaten to win

(3)
1. Bc3 nullmove
2. Bxe5 -> white threatens to win

(4)
1. Bd2 nullmove
Bd2 does not threaten to win

(5)
1. Ke2 nullmove
Ke2 does not threaten to win

(6)
1. f4 nullmove
2. fxe5 -> white threatens to win


4. put each move that threatens to win in the final list
final_list: Ba5, Bc3, f4

moves that do not threaten to win
Bb4, Bd2, Ke2,


5. for each of the move that do not threaten to win play one

These are the moves that do not threaten to win:
Bb4, Bd2, Ke2,

(1)
1. Bb4

6. do a null move ?

I don't know know how to proceed. Can you explain more?
Mike Sherwin
Posts: 860
Joined: Fri Aug 21, 2020 1:25 am
Location: Planet Earth, Sol system
Full name: Michael J Sherwin

Re: Computers, Chess and Long-Range Planning, by Michail M. Botvinnik

Post by Mike Sherwin »

Ferdy wrote: Mon Mar 29, 2021 8:35 am
Mike Sherwin wrote: Fri Mar 26, 2021 6:45 pm In 1984 the library at YSU had a copy of this book. It is a very complicated book written in mathematical language that I cannot comprehend. But there was enough in English that I could understand the basic idea. Even the basic idea was not given in algorithmic fashion that could easily be coded. It was not even presented in an alpha-beta context. You can still purchase this book for 67,40E. Or in paperback for 81,15E. Anyway I spent some time boiling down his basic idea into something that would work in alpha-beta.

STEPS:
1. make a list of moves
2. play each move
3. do a null move
4. put each move that threatens to win in the final list
5. for each of the move that do not threaten to win play one
6. do a null move
7. play another move from the no threats list
8. do another null move
9. place those moves that in combination threaten to win in the final list
10. discard or reduce the depth on the rest
I get lost starting at step 5 or I have not understand the idea from the beginning.

Sample position.
[d]3r2k1/8/8/4p3/4P3/4KP2/5P2/4B3 w - - 0 1

1. list of moves:
Ba5, Bb4, Bc3, Bd2, Ke2, f4


2. play each move and 3. do nullmove

(1)
1. Ba5 nullmove(black plays nullmove)
2. Bxd8 -> white threatens to win

(2)
1. Bb4 nullmove
Bb4 does not threaten to win

(3)
1. Bc3 nullmove
2. Bxe5 -> white threatens to win

(4)
1. Bd2 nullmove
Bd2 does not threaten to win

(5)
1. Ke2 nullmove
Ke2 does not threaten to win

(6)
1. f4 nullmove
2. fxe5 -> white threatens to win


4. put each move that threatens to win in the final list
final_list: Ba5, Bc3, f4

moves that do not threaten to win
Bb4, Bd2, Ke2,


5. for each of the move that do not threaten to win play one

These are the moves that do not threaten to win:
Bb4, Bd2, Ke2,

(1)
1. Bb4

6. do a null move ?

I don't know know how to proceed. Can you explain more?
After 6. do a null move

7. play Ke2

So the combinations that would be tested are:

Ke2, null, Bb4, null, reduced search = does not threaten to win
Ke2, null, Be2, null, reduced search = does not threaten to win

Ke2 does not make final list

There is nothing left for Bb4 and Bd2 to be paired with so they do not make the final list
Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: Computers, Chess and Long-Range Planning, by Michail M. Botvinnik

Post by Ferdy »

Mike Sherwin wrote: Mon Mar 29, 2021 3:39 pm
Ferdy wrote: Mon Mar 29, 2021 8:35 am
Mike Sherwin wrote: Fri Mar 26, 2021 6:45 pm In 1984 the library at YSU had a copy of this book. It is a very complicated book written in mathematical language that I cannot comprehend. But there was enough in English that I could understand the basic idea. Even the basic idea was not given in algorithmic fashion that could easily be coded. It was not even presented in an alpha-beta context. You can still purchase this book for 67,40E. Or in paperback for 81,15E. Anyway I spent some time boiling down his basic idea into something that would work in alpha-beta.

STEPS:
1. make a list of moves
2. play each move
3. do a null move
4. put each move that threatens to win in the final list
5. for each of the move that do not threaten to win play one
6. do a null move
7. play another move from the no threats list
8. do another null move
9. place those moves that in combination threaten to win in the final list
10. discard or reduce the depth on the rest
I get lost starting at step 5 or I have not understand the idea from the beginning.

Sample position.
[d]3r2k1/8/8/4p3/4P3/4KP2/5P2/4B3 w - - 0 1

1. list of moves:
Ba5, Bb4, Bc3, Bd2, Ke2, f4


2. play each move and 3. do nullmove

(1)
1. Ba5 nullmove(black plays nullmove)
2. Bxd8 -> white threatens to win

(2)
1. Bb4 nullmove
Bb4 does not threaten to win

(3)
1. Bc3 nullmove
2. Bxe5 -> white threatens to win

(4)
1. Bd2 nullmove
Bd2 does not threaten to win

(5)
1. Ke2 nullmove
Ke2 does not threaten to win

(6)
1. f4 nullmove
2. fxe5 -> white threatens to win


4. put each move that threatens to win in the final list
final_list: Ba5, Bc3, f4

moves that do not threaten to win
Bb4, Bd2, Ke2,


5. for each of the move that do not threaten to win play one

These are the moves that do not threaten to win:
Bb4, Bd2, Ke2,

(1)
1. Bb4

6. do a null move ?

I don't know know how to proceed. Can you explain more?
After 6. do a null move

7. play Ke2

So the combinations that would be tested are:

Ke2, null, Bb4, null, reduced search = does not threaten to win
Ke2, null, Be2, null, reduced search = does not threaten to win

Ke2 does not make final list

There is nothing left for Bb4 and Bd2 to be paired with so they do not make the final list
Thanks.