I've spent some time on the problem and it seems that a good bound might be 2*b^(n/2) where b is the branching factor and n is the number of moves in the mate but I have no proof for it.

Regards,
Forrest
Moderator: Ras
To prove that the side-to-go has mate in at most n, it suffices to give one move for the side-to-go, and then for each reply by the opposing side, it suffices to prove that the side-to-go has mate in at most n-1. Assuming that there are at most b moves in any position, this leads to the recursive formula V[n] = 1 + b + b * V[n-1] = 1 + b * (1 + V[n-1]). Here V[n] denotes the number of nodes in a mate-in-at-most-n proof tree, with V[1] = 1.Zenmastur wrote:Can anyone point me to a paper that deals with proof-tree sizes. I'm looking for an upper bound for the number of nodes in proof-trees. The tighter the better.
I've spent some time on the problem and it seems that a good bound might be 2*b^(n/2) where b is the branching factor and n is the number of moves in the mate but I have no proof for it.![]()
Regards,
Forrest
Code: Select all
V[1] = 1
V[2] = 1 + 2b
V[3] = 1 + 2b + 2b^2
V[4] = 1 + 2b + 2b^2 + 2b^3
so
V[n] = 1 + 2b + 2b^2 + 2b^3 + ... + 2b^(n-1).
Code: Select all
V[n] = 1 + 2*b + 2*b^2 + ... + 2*b^(n-1) =
= -1 + 2 * (1 + b + b^2 + ... + b^(n-1))
= -1 + 2 * (b^n - 1) / (b - 1)
Yes---geometric series. Thanks for the closed form.AlvaroBegue wrote:To give a more closed form to the formula Louis posted:
Code: Select all
V[n] = 1 + 2*b + 2*b^2 + ... + 2*b^(n-1) = = -1 + 2 * (1 + b + b^2 + ... + b^(n-1)) = -1 + 2 * (b^n - 1) / (b - 1)
That's what I originally thought as well. But it turns out to be a very bad estimate/ bound because it assumes (incorrectly I might add) that all the mates are "n" moves long. I'm not sure this is even possible if the mate is very long. e.g. 15-25 moves or more. In the mates that I have looked at about half the moves at each ply lead to very short mates (1-2 moves) due to being inferior replies. So while the side to move may have "b" replies few of them actually lead to a mate of full length. If we count the nodes at each ply over all possible lines of play the count goes up as we get deeper into the lines then at some point (around the middle) it begins to decline. This lead me to conclude that 2*b^(n/2) might be close.zullil wrote:To prove that the side-to-go has mate in at most n, it suffices to give one move for the side-to-go, and then for each reply by the opposing side, it suffices to prove that the side-to-go has mate in at most n-1. Assuming that there are at most b moves in any position, this leads to the recursive formula V[n] = 1 + b + b * V[n-1] = 1 + b * (1 + V[n-1]). Here V[n] denotes the number of nodes in a mate-in-at-most-n proof tree, with V[1] = 1.Zenmastur wrote:Can anyone point me to a paper that deals with proof-tree sizes. I'm looking for an upper bound for the number of nodes in proof-trees. The tighter the better.
I've spent some time on the problem and it seems that a good bound might be 2*b^(n/2) where b is the branching factor and n is the number of moves in the mate but I have no proof for it.![]()
Regards,
Forrest
From the recursion:
(Take this with a grain of salt, sinceCode: Select all
V[1] = 1 V[2] = 1 + 2b V[3] = 1 + 2b + 2b^2 V[4] = 1 + 2b + 2b^2 + 2b^3 so V[n] = 1 + 2b + 2b^2 + 2b^3 + ... + 2b^(n-1).
(a) I'm not sure this is what you're asking about, and
(b) I thought about this for only five minutes or so.)
Code: Select all
V[n] = 2 * ( 1 + 2*b + 2*b^2 + ... + 2*b^(n/2)) =
= 2 + 4 * (1 + b + b^2 + ... + b^(n/2))
You're not going to get anything better as a general formula.Zenmastur wrote:What I'm looking for is a "good" upper bound.
Just pick a somewhat flexible data structure. You're not going to have a constant b, either.By "good" I mean something that is accurate enough to give order of magnitude estimates of the trees size for storage purposes. To be used in a program to generate proof trees for long mates. e.g. in the 15 to 40+ move range.
Right.syzygy wrote:You're not going to get anything better as a general formula.Zenmastur wrote:What I'm looking for is a "good" upper bound.
Yes, it's very bad. But unless you add additional assumptions ...Zenmastur wrote:That's what I originally thought as well. But it turns out to be a very bad estimate/ boundzullil wrote:To prove that the side-to-go has mate in at most n, it suffices to give one move for the side-to-go, and then for each reply by the opposing side, it suffices to prove that the side-to-go has mate in at most n-1. Assuming that there are at most b moves in any position, this leads to the recursive formula V[n] = 1 + b + b * V[n-1] = 1 + b * (1 + V[n-1]). Here V[n] denotes the number of nodes in a mate-in-at-most-n proof tree, with V[1] = 1.Zenmastur wrote:Can anyone point me to a paper that deals with proof-tree sizes. I'm looking for an upper bound for the number of nodes in proof-trees. The tighter the better.
I've spent some time on the problem and it seems that a good bound might be 2*b^(n/2) where b is the branching factor and n is the number of moves in the mate but I have no proof for it.![]()
Regards,
Forrest
From the recursion:
(Take this with a grain of salt, sinceCode: Select all
V[1] = 1 V[2] = 1 + 2b V[3] = 1 + 2b + 2b^2 V[4] = 1 + 2b + 2b^2 + 2b^3 so V[n] = 1 + 2b + 2b^2 + 2b^3 + ... + 2b^(n-1).
(a) I'm not sure this is what you're asking about, and
(b) I thought about this for only five minutes or so.)
Zen
The minimum number of nodes in any proof tree is 2b(n-1)+1 nodes where "n" is the number of moves in the mate and "b" is the branching factor. This is trivial.AlvaroBegue wrote:For any position P that is mate in N, define M[P] as the minimum number of nodes in any proof tree for that fact. I think what you meant to ask is what is the maximum value of M[P] among all positions P that are mate in N.