Finding narrow admissible tuples

From Polymath Wiki
Jump to navigationJump to search

For any natural number [math]\displaystyle{ k_0 }[/math], an admissible [math]\displaystyle{ k_0 }[/math]-tuple is a finite set [math]\displaystyle{ {\mathcal H} }[/math] of integers of cardinality [math]\displaystyle{ k_0 }[/math] which avoids at least one residue class modulo [math]\displaystyle{ p }[/math] for each prime [math]\displaystyle{ p }[/math]. (Note that one only needs to check those primes [math]\displaystyle{ p }[/math] of size at most [math]\displaystyle{ k_0 }[/math], so this is a finitely checkable condition.) Let [math]\displaystyle{ H(k_0) }[/math] denote the minimal diameter [math]\displaystyle{ \max {\mathcal H} - \min {\mathcal H} }[/math] of an admissible [math]\displaystyle{ k_0 }[/math]-tuple. As part of the Polymath8 project, we would like to find as good an upper bound on [math]\displaystyle{ H(k_0) }[/math] as possible for given values of [math]\displaystyle{ k_0 }[/math]. To a lesser extent, we would also be interested in lower bounds on this quantity. There is some scattered numerical evidence that the optimal value of H is roughly of size [math]\displaystyle{ k_0 \log k_0 + k_0 }[/math] for [math]\displaystyle{ k_0 }[/math] in the range of interest.

Upper bounds

Upper bounds are primarily constructed through various "sieves" that delete one residue class modulo [math]\displaystyle{ p }[/math] from an interval for a lot of primes [math]\displaystyle{ p }[/math]. Examples of sieves, in roughly increasing order of efficiency, are listed below.

Zhang sieve

The Zhang sieve uses the tuple

[math]\displaystyle{ {\mathcal H} = \{p_{m+1}, \ldots, p_{m+k_0}\} }[/math]

where [math]\displaystyle{ m }[/math] is minimized subject to staying admissible. Any [math]\displaystyle{ m }[/math] with [math]\displaystyle{ p_{m+1} \gt k_0 }[/math] yields an admissible tuple; in particular, one can just take [math]\displaystyle{ {\mathcal H} }[/math] to be the first [math]\displaystyle{ k_0 }[/math] primes past [math]\displaystyle{ k_0 }[/math], but this is not optimal. Applying the prime number theorem then gives the upper bound [math]\displaystyle{ H \leq (1+o(1)) k_0\log k_0 }[/math].

Hensley-Richards sieve

The Hensley-Richards sieve [HR1973], [HR1973b], [R1974] uses the tuple

[math]\displaystyle{ {\mathcal H} = \{-p_{m+\lfloor k_0/2\rfloor - 1}, \ldots, -p_{m+1}, -1, +1, p_{m+1},\ldots, p_{m+\lfloor k_0/2+1/2\rfloor-1}\} }[/math]

where m is optimised to minimize the diameter while staying admissible.

Asymmetric Hensley-Richards sieve

The asymmetric Hensley-Richard sieve uses the tuple

[math]\displaystyle{ {\mathcal H} = \{-p_{m+\lfloor k_0/2\rfloor - 1-i}, \ldots, -p_{m+1}, -1, +1, p_{m+1},\ldots, p_{m+\lfloor k_0/2+1/2\rfloor-1+i}\} }[/math]

where [math]\displaystyle{ i }[/math] is an integer and [math]\displaystyle{ i,m }[/math] are optimised to minimize the diameter while staying admissible.

Schinzel sieve

Given [math]\displaystyle{ 0\lt y\lt z\lt x }[/math], the Schinzel sieve (discussed in [S1961], [HR1973], [GR1998], [CJ2001]) sieves the interval [math]\displaystyle{ [1,x] }[/math] by [math]\displaystyle{ 1 \bmod p }[/math] for primes [math]\displaystyle{ p \le y }[/math] and by [math]\displaystyle{ 0\bmod p }[/math] for primes [math]\displaystyle{ y \lt p \le z }[/math]. Provided that [math]\displaystyle{ z }[/math] is large enough ([math]\displaystyle{ z=k_0 }[/math] clearly suffices), the first [math]\displaystyle{ k_0 }[/math] survivors form an admissible [math]\displaystyle{ k_0 }[/math]-tuple (but not necessarily the narrowest one in the interval). The case [math]\displaystyle{ y=1 }[/math] corresponds to a sieve of Eratosthenes; if one minimizes [math]\displaystyle{ z }[/math] and takes the first [math]\displaystyle{ k_0 }[/math] survivors greater than 1, this yields the same admissible [math]\displaystyle{ k_0 }[/math] tuple as Zhang, with the minimal possible value of [math]\displaystyle{ m }[/math].

Shifted Schinzel sieve

As a generalization of the Schinzel sieve, one may instead sieve shifted intervals [math]\displaystyle{ [s,s+x] }[/math]. This is effectively equivalent to sieving the interval [math]\displaystyle{ [0,x] }[/math] of the residue classes [math]\displaystyle{ -s\ \bmod\ p }[/math] for primes [math]\displaystyle{ p\le y }[/math] and [math]\displaystyle{ 1-s\ \bmod\ p }[/math] for primes [math]\displaystyle{ y\lt p\le z }[/math].

Greedy sieve

Within a given interval, one sieves a single residue class [math]\displaystyle{ a \bmod p }[/math] for increasing primes [math]\displaystyle{ p=2,3,5,\ldots }[/math], with [math]\displaystyle{ a }[/math] chosen to maximize the number of survivors. Ties can be broken in a number of ways: minimize [math]\displaystyle{ a\in[0,p-1] }[/math], maximize [math]\displaystyle{ a\in [0,p-1] }[/math], minimize [math]\displaystyle{ |a-\lfloor p/2\rfloor| }[/math], or randomly. If not all residue classes modulo [math]\displaystyle{ p }[/math] are occupied by survivors, then [math]\displaystyle{ a }[/math] will be chosen so that no survivors are sieved. This necessarily occurs once [math]\displaystyle{ p }[/math] exceeds the number of survivors but typically happens much sooner. One then chooses the narrowest [math]\displaystyle{ k_0 }[/math]-tuple [math]\displaystyle{ {\mathcal H} }[/math] among the survivors (if there are fewer than [math]\displaystyle{ k_0 }[/math] survivors, retry with a wider interval).

Greedy-greedy sieve

Heuristically, the performance of the greedy sieve is significantly improved by starting with a shifted Schinzel sieve on [math]\displaystyle{ [s,\ s+x] }[/math] using [math]\displaystyle{ y = 2 }[/math] and [math]\displaystyle{ z = \sqrt{x} }[/math] and then continuing in a greedy fashion, as proposed by Sutherland. One first optimizes the shift value [math]\displaystyle{ s }[/math] over some larger interval (e.g. [math]\displaystyle{ [-k_0\log\ k_0,\ k_0\log\ k_0] }[/math]) and then continues the sieving over primes [math]\displaystyle{ p \gt z }[/math] greedily choosing the best residue class for each prime according to a chosen tie-breaking rule (in Sutherland's original implementation, ties are broken downward in [math]\displaystyle{ [0,\ p-1] }[/math]).

Seeded greedy sieve

Given an initial sequence [math]\displaystyle{ {\mathcal S} }[/math] that is known to contain an admissible [math]\displaystyle{ k_0 }[/math]-tuple, one can apply greedy sieving to the minimal interval containing [math]\displaystyle{ {\mathcal S} }[/math] until an admissible sequence of survivors remains, and then choose the narrowest [math]\displaystyle{ k_0 }[/math]=tuple it contains. The sieving methods above can be viewed as the special case where [math]\displaystyle{ {\mathcal S} }[/math] is the set of integers in some interval. The main difference is that the choice of [math]\displaystyle{ {\mathcal S} }[/math] affects when ties occur and how they are broken with greedy sieving. One approach is to take [math]\displaystyle{ {\mathcal S} }[/math] to be the union of two [math]\displaystyle{ k_0 }[/math]-tuples that lie in roughly the same interval (see Iterated merging) below.

Iterated merging

Given an admissible [math]\displaystyle{ k_0 }[/math]-tuple [math]\displaystyle{ \mathcal{H}_1 }[/math], one can attempt to improve it using an iterated merging approach suggested by Castryck. One first uses a greedy (or greedy-Schinzel) sieve to construct an admissible [math]\displaystyle{ k_0 }[/math]-tuple [math]\displaystyle{ \mathcal{H}_2 }[/math] in roughly the same interval as [math]\displaystyle{ \mathcal{H}_1 }[/math], then performs a randomized greedy sieve using the seed set [math]\displaystyle{ \mathcal{S} = \mathcal{H}_1 \cup \mathcal{H}_2 }[/math] to obtain an admissible [math]\displaystyle{ k_0 }[/math]-tuple [math]\displaystyle{ \mathcal{H}_3 }[/math]. If [math]\displaystyle{ \mathcal{H}_3 }[/math] is narrower than [math]\displaystyle{ \mathcal{H}_2 }[/math], replace [math]\displaystyle{ \mathcal{H}_2 }[/math] with [math]\displaystyle{ \mathcal{H}_3 }[/math], otherwise try again with a new [math]\displaystyle{ \mathcal{H}_3 }[/math]. Eventually the diameter of [math]\displaystyle{ \mathcal{H}_2 }[/math] will become less than or equal to that of [math]\displaystyle{ \mathcal{H}_1 }[/math]. As long as [math]\displaystyle{ \mathcal{H}_1\ne \mathcal{H}_2 }[/math], one can continue to attempt to improve [math]\displaystyle{ \mathcal{H}_2 }[/math], but in practice one stops after some number of retries.

As described by Sutherland, one can then replace [math]\displaystyle{ \mathcal{H}_1 }[/math] with [math]\displaystyle{ \mathcal{H}_2 }[/math] and begin the process anew, yielding a randomized algorithm that can be run indefinitely. Key parameters to this algorithm are the choice of the interval used when constructing [math]\displaystyle{ \mathcal{H}_2 }[/math], which is typically made wider than the minimal interval containing [math]\displaystyle{ \mathcal{H}_1 }[/math] by a small factor [math]\displaystyle{ \delta }[/math] on each side (Sutherland suggests [math]\displaystyle{ \delta = 0.0025 }[/math]), and the number of failed attempts allowed while attempting to impove [math]\displaystyle{ \mathcal{H}_2 }[/math].

Eventually this process will tend to converge to particular [math]\displaystyle{ \mathcal{H}_1 }[/math] that it cannot improve (or more generally, a set of similar [math]\displaystyle{ \mathcal{H}_1 }[/math]'s with the same diameter). Interleaving iterated merging with the local optimizations described below often allows the algorithm to make further progress.


Iterated merging can be viewed as a form of simulated annealing. The set [math]\displaystyle{ \mathcal{S} }[/math] initially contains at least two admissible [math]\displaystyle{ k_0 }[/math]-tuples (typically many more), and as the algorithm proceeds the set [math]\displaystyle{ \mathcal{S} }[/math] converges toward [math]\displaystyle{ \mathcal{H}_1 }[/math] and the number of admissible [math]\displaystyle{ k_0 }[/math]-tuples it contains declines. One can regard the cardinality of the difference between [math]\displaystyle{ \mathcal{S} }[/math] and [math]\displaystyle{ \mathcal{H}_1 }[/math] as a measure of the "temperature" of a gradually cooling system, since the number of choices available to the algorithm declines as this cardinality is reduced (more precisely, one may consider the entropy of the possible sequence of tie-breaking choices available for a given [math]\displaystyle{ \mathcal{S} }[/math]).

Local optimizations

Let [math]\displaystyle{ \mathcal H = \{h_1,\ldots, h_{k_0}\} }[/math] be an admissible [math]\displaystyle{ k_0 }[/math]-tuple with endpoints [math]\displaystyle{ h_1 }[/math] and [math]\displaystyle{ h_{k_0} }[/math], and let [math]\displaystyle{ \mathcal I }[/math] be the interval [math]\displaystyle{ [h_1,h_{k_0}] }[/math]. If there exists an integer [math]\displaystyle{ h\in\mathcal I }[/math] such that removing one of [math]\displaystyle{ \mathcal H }[/math]'s endpoints and inserting [math]\displaystyle{ h }[/math] yields an admissible [math]\displaystyle{ k_0 }[/math]-tuple [math]\displaystyle{ \mathcal H' }[/math], then call [math]\displaystyle{ \mathcal H }[/math] contractible, and if not, say that [math]\displaystyle{ \mathcal H }[/math] non-contractible. Note that [math]\displaystyle{ \mathcal H' }[/math] necessarily has smaller diameter than [math]\displaystyle{ \mathcal H }[/math]. Any of the sieving methods described above may produce admissible [math]\displaystyle{ k_0 }[/math]-tuples that are contractible, so it is worth testing for contractibility as a post-processing step after sieving and replacing [math]\displaystyle{ \mathcal H }[/math] by [math]\displaystyle{ \mathcal H' }[/math] if this test succeeds.

We can also shift [math]\displaystyle{ \mathcal H }[/math] to the left by removing its right end point [math]\displaystyle{ h_{k_0} }[/math] and replacing it with the greatest integer [math]\displaystyle{ h_0 \lt h_1 }[/math] that yields an admissible [math]\displaystyle{ k_0 }[/math]-tuple [math]\displaystyle{ \mathcal H' }[/math], and we can similarly shift [math]\displaystyle{ \mathcal H }[/math] to the right. The diameter of [math]\displaystyle{ \mathcal H' }[/math] need not be less than [math]\displaystyle{ \mathcal H }[/math], but if it is, it provides a useful replacement. More generally, by shifting [math]\displaystyle{ \mathcal H }[/math] repeatedly we can produce a sequence of admissible [math]\displaystyle{ k_0 }[/math]-tuples that lie successively further to the left or right. In general the diameter of these tuples may grow as we do so, but it will also occasionally decline, and we may be able to find a shifted [math]\displaystyle{ \mathcal H' }[/math] with smaller diameter than [math]\displaystyle{ \mathcal H }[/math].


A more sophisticated local optimization involves a process of ``adjustment" proposed by Savitt. Let [math]\displaystyle{ \mathcal H }[/math] be an admissible [math]\displaystyle{ k_0 }[/math]-tuple. For a prime [math]\displaystyle{ p }[/math] and an integer [math]\displaystyle{ a }[/math], let [math]\displaystyle{ [a;p] }[/math] denote the residue class [math]\displaystyle{ a\bmod p }[/math], i.e. the set of integers [math]\displaystyle{ \{ x : x = a \bmod p\} }[/math]. Call [math]\displaystyle{ [a;p] }[/math] occupied if it contains an element of [math]\displaystyle{ \mathcal H }[/math].

Suppose that [math]\displaystyle{ [a;p] }[/math] and [math]\displaystyle{ [b;q] }[/math] are occupied residue classes, for some distinct primes [math]\displaystyle{ p }[/math] and [math]\displaystyle{ q }[/math], and that [math]\displaystyle{ [a';p] }[/math] and [math]\displaystyle{ [b';q] }[/math] are unoccupied. Let [math]\displaystyle{ \mathcal U }[/math] be the intersection of [math]\displaystyle{ \mathcal H }[/math] with [math]\displaystyle{ [a;p] \cup [b;q] }[/math], and let [math]\displaystyle{ \mathcal V }[/math] be a subset of the integers that lie in the intersection of the interval [math]\displaystyle{ I }[/math] containing [math]\displaystyle{ H }[/math] and the set [math]\displaystyle{ [a';p] \cup [b';q] }[/math] such that the set [math]\displaystyle{ \mathcal H' }[/math] formed by removing the elements of [math]\displaystyle{ \mathcal U }[/math] from [math]\displaystyle{ \mathcal H }[/math] and adding the elements of [math]\displaystyle{ \mathcal V }[/math] is admissible. A necessary (and often sufficient) condition for and integer [math]\displaystyle{ v }[/math] to lie in [math]\displaystyle{ \mathcal V }[/math] is that [math]\displaystyle{ v }[/math] must not lie in a residue class [math]\displaystyle{ [c;r] }[/math] that is the unique unoccupied residue class modulo [math]\displaystyle{ r }[/math] for any prime [math]\displaystyle{ r }[/math] other than [math]\displaystyle{ p }[/math] or [math]\displaystyle{ q }[/math].

The admissible set [math]\displaystyle{ \mathcal H' }[/math] lies in the interval [math]\displaystyle{ \mathcal I }[/math] containing [math]\displaystyle{ \mathcal H }[/math], so its diameter is no greater than that of [math]\displaystyle{ \mathcal H }[/math], however its cardinality may differ. If it happens that [math]\displaystyle{ \mathcal H' }[/math] contains more elements than [math]\displaystyle{ \mathcal H }[/math], then by eliminating points at either end of [math]\displaystyle{ \mathcal H' }[/math] we obtain an admissible [math]\displaystyle{ k_0 }[/math]-tuple that is narrower than [math]\displaystyle{ \mathcal H }[/math] and may ``adjust" [math]\displaystyle{ \mathcal H }[/math] by replacing it with [math]\displaystyle{ \mathcal H' }[/math]. The process of adjustment can often be applied repeatedly, yielding a sequence of successively narrower admissible [math]\displaystyle{ k_0 }[/math]-tuples.

Further refinements

Lower bounds

There is a substantial amount of literature on bounding the quantity [math]\displaystyle{ \pi(x+y)-\pi(x) }[/math], the number of primes in a shifted interval [math]\displaystyle{ [x+1,x+y] }[/math], where [math]\displaystyle{ x,y }[/math] are natural numbers. As a general rule, whenever a bound of the form

[math]\displaystyle{ \pi(x+y) - \pi(x) \leq F(y) }[/math] (*)

is established for some function [math]\displaystyle{ F(y) }[/math] of [math]\displaystyle{ y }[/math], the method of proof also gives a bound of the form

[math]\displaystyle{ k_0 \leq F( H(k_0)+1 ). }[/math] (**)

Indeed, if one assumes the prime tuples conjecture, any admissible [math]\displaystyle{ k_0 }[/math]-tuple of diameter [math]\displaystyle{ H }[/math] can be translated into an interval of the form [math]\displaystyle{ [x+1,x+H+1] }[/math] for some [math]\displaystyle{ x }[/math]. In the opposite direction, all known bounds of the form (*) proceed by using the fact that for [math]\displaystyle{ x\gt y }[/math], the set of primes between [math]\displaystyle{ x+1 }[/math] and [math]\displaystyle{ x+y }[/math] is admissible, so the method of proof of (*) invariably also gives (**) as well.

Examples of lower bounds are as follows;

Brun-Titchmarsh inequality

The Brun-Titchmarsh theorem gives

[math]\displaystyle{ \pi(x+y) - \pi(x) \leq (1 + o(1)) \frac{2y}{\log y} }[/math]

which then gives the lower bound

[math]\displaystyle{ H(k_0) \geq (\frac{1}{2}-o(1)) k_0 \log k_0 }[/math].

Montgomery and Vaughan deleted the o(1) error from the Brun-Titchmarsh theorem [MV1973, Corollary 2], giving the more precise inequality

[math]\displaystyle{ k_0 \leq 2 \frac{H(k_0)+1}{\log (H(k_0)+1)}. }[/math]

First Montgomery-Vaughan large sieve inequality

The first Montgomery-Vaughan large sieve inequality [MV1973, Theorem 1] gives

[math]\displaystyle{ k_0 (\sum_{q \leq Q} \frac{\mu^2(q)}{\phi(q)}) \leq H(k_0)+1 + Q^2 }[/math]

for any [math]\displaystyle{ Q \gt 1 }[/math], which is a parameter that one can optimise over (the optimal value is comparable to [math]\displaystyle{ H(k_0)^{1/2} }[/math]).

Second Montgomery-Vaughan large sieve inequality

The second Montgomery-Vaughan large sieve inequality [MV1973, Corollary 1] gives

[math]\displaystyle{ k_0 \leq (\sum_{q \leq z} (H(k_0)+1+cqz)^{-1} \mu(q)^2 \prod_{p|q} \frac{1}{p-1})^{-1} }[/math]

for any [math]\displaystyle{ z \gt 1 }[/math], which is a parameter similar to [math]\displaystyle{ Q }[/math] in the previous inequality, and [math]\displaystyle{ c }[/math] is an absolute constant. In the original paper of Montgomery and Vaughan, [math]\displaystyle{ c }[/math] was taken to be [math]\displaystyle{ 3/2 }[/math]; this was then reduced to [math]\displaystyle{ \sqrt{22}/\pi }[/math] [B1995, p.162] and then to [math]\displaystyle{ 3.2/\pi }[/math] [M1978]. It is conjectured that [math]\displaystyle{ c }[/math] can be taken to in fact be [math]\displaystyle{ 1 }[/math].

Benchmarks

Efforts to fill in the blank fields in this table are very welcome.

[math]\displaystyle{ k_0 }[/math] 3,500,000 341,640 181,000 34,429 26,024 23,283 22,949 10,719 7,140 6,329 5,453 5,000
Upper bounds
First [math]\displaystyle{ k_0 }[/math] primes past [math]\displaystyle{ k_0 }[/math] 59,874,594 5,005,362 2,530,338 420,878 310,134 275,082 270,698 117,714 75,222 65,924 55,892 50,840
Zhang sieve 59,093,364 4,923,060 2,486,370 411,946 303,558 268,544 264,460 114,814 73,448 64,182 54,488 49,578
Hensley-Richards sieve 57,554,086 4,802,222 2,422,558 402,790 297,454 262,794 258,780 112,868 72,538 63,708 53,654 48,634
Asymmetric Hensley-Richards 57,480,832 4,788,240 2,418,054 401,700 296,154 262,286 258,302 112,562 72,062 62,900 53,278 48,484
Shifted Schinzel sieve 56,789,070 4,740,846 2,396,594 399,248 294,810 260,714 256,702 112,200 71,930 62,892 53,236 48,472
Greedy-greedy sieve 55,233,744 4,603,276 2,326,458 388,076 286,308 253,968 249,992 108,694 69,564 60,942 51,688 46,968
Best known tuple 55,233,504 4,597,926 2,323,344 386,344 285,102 252,720 248,816 108,440 69,280 60,726 51,526 46,806
Predictions
[math]\displaystyle{ k_0 \log k_0 + k_0 }[/math] 56,238,957 4,694,650 2,372,232 394,096 290,604 257,405 253,381 110,119 70,496 61,727 52,371 47,586
Lower bounds
Inclusion-exclusion ([math]\displaystyle{ p_\text{exh} }[/math]= 19) 87,690 56,726 49,794 42,494 38,710
Inclusion-exclusion ([math]\displaystyle{ p_\text{exh} }[/math]= 17) 301,864 224,100 198,998 195,962 86,940 56,238 49,464 42,114 38,342
Inclusion-exclusion ([math]\displaystyle{ p_\text{exh} }[/math]= 13) 29,508,018 1,703,774 297,726 221,266 196,562 193,578 85,954 55,614 48,858 41,648 37,920
Partitioning 24,208,216 2,364,842 1,252,800 238,232 180,074 161,070 158,784 74,146 49,314 43,682 37,630 34,586
MV with [math]\displaystyle{ c=1 }[/math] (conjectural) 32,503,908 1,395,694 234,872 173,420 153,691 151,298 66,314 37,274 31,644 28,781
MV with [math]\displaystyle{ c=3.2/\pi }[/math] 32,469,985 1,393,869 234,529 173,140 153,447 151,056 66,211 37,207 31,584 28,737
MV with [math]\displaystyle{ c=\sqrt{22}/\pi }[/math] 31,765,216 1,357,096 227,078 167,860 148,719 146,393 63,917 35,903 30,478 27,708
Second Montgomery-Vaughan 31,756,667 1,356,644 226,987 167,793 148,656 146,338 63,886 35,887 30,463 27,696
Brun-Titchmarsh 30,137,225 1,272,083 211,046 155,555 137,756 135,599 58,863 32,916 27,910 25,351
First Montgomery-Vaughan 28,080,007 1,184,954 196,729

196,719

197,096

145,711

145,461

128,971 126,931 55,149

55,178

30,982 26,388 24,012

24,037


[math]\displaystyle{ k_0 }[/math] 4,000 3,405 3,000 2,000 1,783 1,000 672 632 342
Upper bounds
First [math]\displaystyle{ k_0 }[/math] primes past [math]\displaystyle{ k_0 }[/math] 39,660 33,222 28,972 18,386 16,174 8,424 5,406 5,028 2,472
Zhang sieve 38,596 32,296 28,008 17,766 15,620 8,218 5,216 4,860 2,416
Hensley-Richards sieve 38,498 31,820 27,806 17,726 15,756 8,258 5,314 4,918 2,446
Asymmetric Hensley-Richards 37,932 31,762 27,638 17,676 15,470 8,168 5,220 4,876 2,424
Shifted Schinzel sieve 38,006 31,910 27,600 17,554 15,484 8,072 5,196 4,868 2,416
Greedy-greedy sieve 36,756 30,750 26,754 17,054 15,036 7,854 5,030 4,710 2,350
Engelsma data 36,622 30,606 26,622 16,978 14,958 7,802 4,998 4,680 2,328
Best known tuple 36,610 30,600 26,606 16,978 14,950 7,802 4,998 4,680 2,328
Predictions
[math]\displaystyle{ k_0 \log k_0 + k_0 }[/math] 37,176 31,098 27,019 17,202 15,131 7,907 5,046 4,708 2,338
Lower bounds
Inclusion-exclusion ([math]\displaystyle{ p_\text{exh} }[/math]= 23) 22,432 14,410 12,678 6,696 4,374 4,104 2,110
Inclusion-exclusion ([math]\displaystyle{ p_\text{exh} }[/math]= 19) 30,366 25,566 22,284 14,332 12,614 6,672 4,344 4,080 2,096
Inclusion-exclusion ([math]\displaystyle{ p_\text{exh} }[/math]= 17) 30,132 25,328 22,086 14,176 12,522 6,660 4,310 4,020 2,072
Inclusion-exclusion ([math]\displaystyle{ p_\text{exh} }[/math]= 13) 29,824 25,058 21,838 14,046 12,408 6,594 4,278 3,976 2,046
Partitioning 27,554 23,522 20,704 13,722 12,242 6,810 4,574 4,276 2,328
MV with [math]\displaystyle{ c=1 }[/math] (conjectural) 22,564 18,898 16,456 10,500 4,858 3,124 1,454
MV with [math]\displaystyle{ c=3.2/\pi }[/math] 22,523 18,866 16,428 10,480 4,847 3,118 1,450
MV with [math]\displaystyle{ c=\sqrt{22}/\pi }[/math] 21,701 18,153 15,758 10,061 4,648 2,979 1,361
Second Montgomery-Vaughan 21,690 18,143 15,751 10,056 4,645 2,977 1,360
Brun-Titchmarsh 19,785 16,536 14,358 9,118 4,167 2,648 1,214
First Montgomery-Vaughan 18,768

18,859

15,783 13,696 8,448

8,615

3,959 2,558 1,191


The bold number indicates the best currently known result for a twin-prime-like theorem.

For the Zhang tuples the minimal [math]\displaystyle{ m }[/math] that produced an admissible [math]\displaystyle{ k_0 }[/math]-tuple was used. In some cases one can achieve a smaller diameter using an [math]\displaystyle{ m }[/math] that is slightly larger than the minimal admissible value, as noted here.

The shifted Schinzel tuples were generated with [math]\displaystyle{ y=2 }[/math] using an optimally chosen interval contained in [math]\displaystyle{ [-k_0\log k_0, 2k_0\log k_0] }[/math] (the interval is not in every case guaranteed to be optimal, particularly for larger values of [math]\displaystyle{ k_0 }[/math], but it is believed to be so).

The greedy-greedy tuples were generated using Sutherland's original algorithm, breaking ties downward in every case (and the optimal interval in [math]\displaystyle{ [-k_0\log k_0, 2k_0\log k_0] }[/math] was selected on this basis). As noted by Castryck, breaking ties upward may produce better results in some cases.

The lower bounds listed in the partitioning and inclusion-exclusion rows were computed as described by Avishay in Sections 1 resp. 2 of this document (the case [math]\displaystyle{ k_0 }[/math]=342 corresponds to the trivial partition). The partitioning method was strengthened by using [math]\displaystyle{ H(343) \geq 2334 }[/math], [math]\displaystyle{ H(370) \geq 2530 }[/math] and [math]\displaystyle{ H(385) \geq 2656 }[/math] (a complete list of bounds for [math]\displaystyle{ k_0 }[/math] up to 4,000,000 can be found here), and (for [math]\displaystyle{ k_0 \leq }[/math] 341640) by combining the partition method with sieving for primes [math]\displaystyle{ p \le }[/math] 7, as described here. The inclusion-exclusion involved an exhaustive search (along these lines) up to [math]\displaystyle{ p_\text{exh} }[/math], using the inclusion-exclusion set of primes greater than [math]\displaystyle{ p_\text{exh} }[/math] and less than the first prime where the depth-2 inclusion-exclusion bound is no longer positive.