Abstract.
We prove that the Ramsey number is less than or equal to . The proof uses a combination of linear programming and checking a large number of cases by computer. All of the computations were independently replicated.
1. Introduction
The Ramsey number is defined to be the smallest such that every graph of order contains either a clique of vertices or an independent set of vertices. See [7] for a survey on the currently known bounds for small Ramsey numbers.
Theorem 1.1.
The Ramsey number is less than or equal to .
The lower bound of , which was establised by Exoo [4] in 1989, is still the best. The upper bound of was proved by the second author and Radziszowski [6], and this was recently improved by the authors [1] to .
A Ramsey graph of type is a simple graph with no clique of size or independent set of size . Let denote the set of (isomorphism classes of) Ramsey graphs of type , and let denote the subset of those with vertices. Let denote the subset of having edges, and similarly for and . Let , respectively , denote the minimal, respectively maximal, number of edges of such a Ramsey graph.
The improvements in the upper bound for are intimately connected to our understanding of for large. Recall from [5] that . It follows that any vertex of a graph in must have degree .
It follows immediately that , and that any graph in must be regular of degree . This, together with a partial census of the set , allowed the second author and Radziszowski [6] to prove that . Their argument can be summarised as follows. First, they proved that , and found the two graphs in .
Recall the following identity, e.g. from the case of [6, Theorem 2.2]: Given a graph and a vertex , let be the induced subgraph on the vertices adjacent to and let be the induced subgraph on the vertices not adjacent to . Then, if has vertices we have, writing for the number of edges in its argument and for the degree of vertex ,
(1.1) |
Given a hypothetical graph , the above equation forces the neighbourhoods of all the vertices in to be one of those two graphs in and the dual neighbourhoods to be one of the dual graphs. The authors then used further subgraph identities to obtain a contradiction.
![]() |
2. High level description of the method
The method used in both [1] and the present paper can be summarized with the help of Figure 1, which shows a graph in , where in [1] and here. Consider two adjacent vertices . The neighbourhood of is and that of is . Both of these neighbourhoods are in . is the part of the graph adjacent to neither nor .
Using a mixture of theory and computation we compile a collection of pairs such that is isomorphic to and every graph in necessarily contains a pair in our collection overlapped as in the figure with adjacent to . We call a pair like a pointed graph. Next, for each pair of pointed graphs in our collection, we determine all the ways to fill in edges in the places indicated by heavy dashed lines in the figure without creating cliques or independent sets of size 5. We call this gluing along the edge . The choice of is arbitrary so we may choose any that is necessarily present if this structure extends to a graph in .
In the case of [1], our strategy was to start with , so that only edges between and were sought. This produced a large but manageable number of solutions. Then we attempted to extend each solution to a graph in by adding one additional vertex. Since no such extension existed in any of the cases, we concluded that .
With , choosing is impractical as the number of valid ways to add edges between and is extremely large. Instead, we chose a larger and found that the number of solutions became manageable. The method for choosing differed between the approaches of the two authors, and will be described in Sections 6 and 7.
We next outline the method for choosing a collection of pairs of pointed graphs.
The proof that in [1] can be summarised as follows. First we determined the complete catalogue of , which contains a total of graphs. Given a hypothetical graph , either or its dual must have a pair of adjacent vertices of degree whose neighbourhoods intersect in some subgraph for . (The fact that it is possible to choose requires a proof, see [1].) Let and be the neighbourhoods of and in . Then , and a large subgraph of can be reconstructed as . Hence it suffices to consider all ways of gluing for where and , and that is precisely what we did in [1]. There is one gluing operation required for each pair of pointed graphs of type and for each automorphism of , and in total we computed approximately trillion gluing operations. As mentioned above we will call this gluing along an edge. Note that [1] relied on the complete catalogue of but did not use any linear programming.
In the current paper we take the ideas from [6] and [1] much further. For a hypothetical graph every vertex must have degree , and we consider parts of for . From [5] we know that is quite large for . Indeed, in [5] the authors estimated that , and . (See the Appendix for updated estimates.) Hence any approach that relies on the complete catalogue of these Ramsey graphs is impractical.
Instead we use linear programming to reduce the number of graphs we need to consider. The basic idea is to determine for and suitable (which depends on ) and exclude these graphs by gluing along an edge as described above. Then we can use linear programming to finish the proof of Theorem 1.1.
In more detail, we determine the sets , and . We also consider . Then we glue these graphs along an edge. There are some additional challenges:
- (1)
-
(2)
The method used in [1] to glue two graphs along an edge produces far too many output graphs, and even if we could collect them all it would take too long to compute all possible ways to add one vertex while staying within . We get around that by adding extra vertices straight away when gluing along an edge as in [1].
In addition, we show in Section 5 that we do not have to perform all possible gluing operations. In fact, we show that we can leave out some of the more time-consuming gluing operations.
We estimate that completing the census of took approximately years of CPU time while gluing the necessary graph took another years of CPU time. Hence the whole project took about years of CPU time for the first author to complete.
In the interests of confidence, all the computations were repeated by the second author using independent programs and usually with different methods. This replication, which produced identical results, took about years of additional CPU time.
3. Graphs in with many edges
Recall that in [1] the authors completed the census of graphs in that was started in [5], and that . To proceed, we also need to know something about the graphs in for . As mentioned in the introduction there are far too many such graphs, see [5, Table 3].
Fortunately we do not need all of the graphs in but only the ones with a large number of edges. We consider for in turn. Note that different choices for how many graphs of each type to consider are possible. For example, we could consider only at the price of having to consider instead of . It also seems like it would suffice to consider rather than . But if we did that we would have to weaken Proposition 5.3 and perform more of the more difficult gluing operations.
3.1.
3.2.
We have , and for the proof of Theorem 1.1 it suffices to consider . We have
Finding all of these graphs was the second most time consuming part of the project, taking approximately 5 years of CPU time.
To find these graphs, we used the following strategy: As in [5], the idea is to glue to for . Given and , denote the vertices of by . Now consider all tuples so that if we glue to with adjacent to vertices in , the results lie in .
Now we can order the vertices of in a clever way, balancing two objectives: We want a vertex with large near the beginning, and we want a dense subgraph of near the beginning. We can do this for all and all tuples with sufficiently large sum, and organise the set of such pairs into a tree. The advantage of doing this is that after attaching, say, vertices to we produce graphs in , and this produces a bottleneck that we can take advantage of.
3.3.
We have , and for the proof of Theorem 1.1 it suffices to consider . We have
This calculation was significantly faster than the one for .
3.4.
We have , and for the proof of Theorem 1.1 it suffices to consider . We have
(We also have , but we will not need that.) This calculation was faster still.
4. Some linear programming
Define the following sets:
We also define to be the dual of , and so on. So for example, . Let
and define dually.
Now consider the special case of a graph . Then every vertex of has degree in and we can write (1.1) as
On the first line, with , while , and so on. We can rewrite as
Given such an , suppose each and each . Then each vertex contributes at least to , so and hence we cannot have . This suggests a proof strategy: Deal with the relatively small number of graphs in (and ) separately, and then use the above equation for to finish.
Remark 4.1.
As alluded to above, the above argument works with instead of . But we include because otherwise we cannot prove Theorem 5.4 below.
5. Gluing pairs of pointed graphs
The obvious strategy is to consider all pointed graphs constructed from , and glue every pair of pointed graphs of type for each . If we can do this, it will imply that there are at most vertices of with neighbourhoods in and vertices with dual neighbourhoods in , and we get .
There are two problems with this strategy:
Problem 1: If we glue pointed graphs and for along an edge the output is a collection of graphs in . This worked well when and , as this produced graphs in and there are not very many of those. (Well, actually there are lots of such graphs. But there are very few such graphs that also have two vertices of degree .) We solve that by including additional vertices, as indicated in Figure 1.
Problem 2: As we decrease and , and increase , the gluing calculations take a lot longer. This should not be surprising, as we are starting with fewer specified edges. We put a lot of work into optimising the gluing program, but even so the calculation would have taken too long. We solve this by showing that it suffices to glue only some of the pairs of pointed graphs from .
Define the following sets of graphs:
Define to be the dual graphs. Given a graph , let denote the corresponding set of pointed graphs. This set usually consists of pointed graphs, although some pointed graphs might be isomorphic. We pick an ordering of all the possible pointed graphs. Here the most difficult graphs to glue should come first. Let denote the pointed graphs obtained as follows: First, find the pointed graphs for (without removing isomorphic graphs). Then sort them according to difficulty, and throw away the most difficult pointed graphs. At this point we can throw away isomorphic copies of the remaining pointed graphs.
Given , we can consider the induced subgraph of on the vertices with neighbourhood in . Similarly, let denote the induced subgraph of on the vertices with dual neighbourhood in .
In the following, we abuse notation by saying that a vertex is in if its neighbourhood is in , and similarly for . We will also write for the induced subgraph on the vertices in . We will need the following two lemmas:
Lemma 5.1.
Any graph has a vertex of degree at least .
Proof.
This is an explicit calculation. If has at least edges then this is automatic, and we can check this by completing a census of . There are 7147 such graphs, and all of them have at least one vertex of degree greater than or equal to . ∎
Lemma 5.2.
Suppose has two non-adjacent vertices of degree at most . Then either contains a vertex of degree at least or contains a -clique with .
Proof.
This is another explicit calculation. If has a vertex of degree then the result follows from Lemma 5.1 by considering its dual neighbourhood. If has two non-adjacent vertices of degree then the dual neighbourhood of is of type and has a vertex of degree at most . By an explicit calculation there are graphs in with maximum degree at most and a vertex of degree at most . After adding and more vertices we find that there are graphs in with maximum degree at most and two non-adjacent vertices of degree at most . And all of these have a -clique satisfying the condition in the lemma. ∎
Proposition 5.3.
Given , either or the dual must contain one of the following:
-
(1)
A vertex in adjacent to at least other vertex in .
-
(2)
A vertex in adjacent to at least other vertex in .
-
(3)
A vertex in adjacent to at least other vertices in .
-
(4)
A vertex in adjacent to at least other vertices in .
-
(5)
A vertex in adjacent to at least other vertices in .
Proof.
Suppose has vertices with neighbourhood in and vertices with dual neighbourhood in for . Let and . Then , so since we get .
Moreover, let be the number of vertices in of degree in and define similarly using . Then, if we have at least vertices in with dual neighbourhoods in and together with the dual consideration it follows that . (This was the reason for considering rather than .)
If does not satisfy the conclusion of the proposition then the induced subgraph is in . Moreover, the vertices in have degree in , so and the induced subgraph on the remaining vertices is in . The vertices in have degree at most in and are only adjacent to vertices in . Finally, the vertices in have degree at most and the vertices in have degree at most .
First we claim that if then . To prove this, we do a case by case analysis. Suppose this fails for some . If then , and we get an independent -set on the vertices in and one additional vertex in , a contradiction. If and we again get an independent -set. If and then . If all the vertices in are adjacent we get a -clique. Otherwise we get an independent -set.
Second, we claim that if then either , and or and . To prove this, we first consider the case . If we must have and . If then the vertices in form a graph in . Every vertex in such a graph has degree at least , so satisfies (3). If then and the vertices in form a graph in . If then is empty. If then every vertex in such a graph has degree at , so either satisfies (4) or all vertices in are in .
To finish proving the claim it suffices to show that if and then satisfies the conclusion of the proposition. (If and , simply remove vertices from , starting with vertices of degree in .) Suppose not. It suffices to consider and . We do each case in turn.
If , and then either satisfies (1) or (2), or and . The vertices in form a graph in , and either satisfies (3) or the vertices in have degree at most . If then we are done by Lemma 5.1. If then the dual neighbourhood of the first vertex in is in and since every vertex in such a graph has degree at least we conclude that satisfies (3).
If , and then either satisfies (1) or (2), or and . Now we consider each value of separately. If or then we can pick two vertices in in such a way that the intersection of their dual neighbourhoods form a graph in . This follows from an application of the inclusion-exclusion principle. If , let be the vertices in and let for be the vertices in not adjacent to . Since each has degree at most in , each has size at least . Let us write for , and so on. If the conclusion fails, each double intersection has size at most . Now we use that to conclude that
a contradiction since . The case is similar. Since every vertex in such a graph has degree at least , it follows that satisfies (2) or (3).
If then , and (or an induced subgraph) lies in . If does not satisfy the conclusion of the proposition then has two non-adjacent vertices of degree at most , and maximal degree at most . Now there are some such graphs, so further analysis is required. But we can find all of them, starting from . Given such a graph , we can consider all -cliques and use an inclusion-exclusion argument. This gives a contradiction as follows: By Lemma 5.2 there is a -clique in with . Let be the neighbours of in . Since of have degree at least in and the last have degree at least in , we get . Now we use that to conclude that
This yields the desired contradiction, as .
If then and (or an induced subgraph) lies in . If does not satisfy the conclusion of the proposition then has one vertex of degree at most . The dual neighbourhood of this vertex is in , and now we use Lemma 5.1 to conclude.
Finally, if then and (or an induced subgraph) lies in . If does not satisfy the conclusion of the proposition then , and has maximal degree at most . Such a must have a -clique on vertices with each having degree at least in . Then each is adjacent to at least vertices in , and we obtain a contradiction by using the inclusion-exclusion principle in the same way as above, now with
Now we can finish the proof. Without loss of generality we can assume , and we immediately get . If then , which implies , a contradiction. If or we get , which implies , a contradiction. And if we get , so . If or we are done. Otherwise and and again we are done. ∎
Given , it suffices to glue along a single edge in . Hence it follows from Proposition 5.3 that it suffices to do the following gluings:
Theorem 5.4.
To prove Theorem 1.1 it suffices to do the following gluings:
-
(1)
Glue to ;
-
(2)
Glue to ;
-
(3)
Glue to the rest of ;
-
(4)
Glue to .
-
(5)
Glue to .
6. First gluing computation
In this section we describe the method used by the first author. It follows the description in Section 2, with , chosen from the pairs listed in Theorem 5.4. Each gluing problem can be encoded as a SAT problem whose clauses forbid cliques or independent sets of size . We also added symmetry breaking clauses to distinguish the vertices of .
If we chose to be empty, and if we chose so that the output graphs (if any) have exactly 37 vertices.
We are entitled to make some additional assumptions about , and some experimentation suggested the following: Pick a vertex in of maximal degree in , and choose so that it is adjacent to of the vertices in . In other words, we try to choose and so that has degree . We can do that because any vertex of has degree at least .
When running our solver, we then prioritised branching on variables corresponding to edges in the neighbourhood of . If has degree in then the neighbourhood of has to be in , and because is at least somewhat smaller than or (see the appendix) this provided an additional bottleneck in the calculation.
These gluing operations produced a total of 8,485,247 graphs in . None of those extended to .
Our SAT solver was a very simple special purpose solver without advanced features like clause learning and restarts.
7. Second gluing computation
In this section we describe the method used by the second author. It follows the description in Section 2, with chosen from the pairs listed in Theorem 5.4.
Let be a vertex in whose degree is the least so far (i.e. given only its connections to ). Let be a vertex in whose degree is the greatest so far that is less than 21. Possibly doesn’t exist, in which case references to it should be ignored.
The flexibility in choosing allows us to make some assumptions which give the SAT solving a head start and also remove some of the symmetry.
-
: If exists, it is adjacent to so we can take adjacent to .
-
and : If , is adjacent to at least 4 vertices of . Those 4 vertices must include an edge or else they form an independent set of size 5 in conjunction with . We can take to be that edge, with both ends adjacent to . If , we can similarly take to be an edge with at least one end adjacent to .
-
and : Since , contains a triangle which we can take as . If we can also add one edge between and .
-
and : By direct computation we find that every graph in contains an induced subgraph consisting of two triangles sharing an edge. So we can assume contains this graph of five edges and one non-edge.
-
and : By direct computation, every graph in contains either or as an induced subgraph.
If either or has 21 vertices, its complementary neighbourhood belongs to . By direct computation, we find that none of the 413 graphs in without as an induced subgraph extend to . Therefore, we can take to contain all the edges of and the non-edges of . The remaining vertex pair in can be assumed to be an edge if either or has 21 vertices, and is left unspecified otherwise.
The computation now proceeded in phases. Initially, was chosen to be 10, but the program automatically switched to if too many solutions were being found. Each phase consisted of these steps:
-
(1)
The SAT clauses were propagated and a limited amount of backtracking was performed if the propagation was inconclusive. This lead to either elimination, a solution found, or an inconclusive result. No attempt was made to find all solutions.
-
(2)
If satisfiability was still unsettled, the reduced SAT program was handed to the SAT solver Glucose [2] with a time limit of 1 minute. Glucose decided satisfiability in 1 second on average.
-
(3)
If satisfiability was still unsettled (a very rare event), a combination of Glucose and backtracking was applied. All such cases showed infeasibility.
If a configuration produced a solution, it was passed to the next phase with increased by 1. Each phase had many fewer configurations to process than the previous phase. As a sanity check, a number of cases were run as well using Kissat [3] instead of Glucose.
In the first phase, the total number of -overlaps was about 12 million, of which 5.6 million were processed by Glucose. Glucose found 15,248 satisfiable cases, and the remainder were unsatisfiable including 77 which timed out and needed step (3). The 15,248 satisfiable cases went to the second phase, where only 17 cases were found to be satisfiable and were sent to the third phase where they were unsatisfiable.
This proves that none of the initial configurations can be extended to .
8. Conclusions
Given the theory and the two independent computations, Theorem 1.1 has now been firmly established.
Appendix A A census of
While only a small part of was required for our main theorem, we record here an update of [5, Table 3]. Recall that and are, respectively, the minimum and maximum number of edges in . In Table 1, we show
Floating-point numbers in the final column are estimates obtained by random generation. In total, .
| | | | | | ||
---|---|---|---|---|---|---|---|
1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 |
2 | 0 | 1 | 1 | 1 | 1 | 1 | 2 |
3 | 0 | 3 | 1 | 1 | 1 | 1 | 4 |
4 | 0 | 5 | 1 | 1 | 2 | 1 | 10 |
5 | 1 | 8 | 1 | 2 | 3 | 1 | 28 |
6 | 2 | 12 | 1 | 4 | 2 | 1 | 114 |
7 | 3 | 16 | 1 | 3 | 4 | 1 | 627 |
8 | 4 | 21 | 1 | 2 | 4 | 1 | 5 588 |
9 | 6 | 27 | 1 | 4 | 2 | 1 | 81 321 |
10 | 8 | 33 | 1 | 5 | 3 | 1 | 1 915 582 |
11 | 10 | 40 | 1 | 3 | 2 | 1 | 67 445 833 |
12 | 12 | 48 | 1 | 1 | 1 | 1 | 3 215 449 959 |
13 | 17 | 53 | 1 | 6 | 10 | 2 | 184 701 427 544 |
14 | 22 | 60 | 2 | 16 | 4 | 1 | |
15 | 27 | 66 | 1 | 6 | 14 | 1 | |
16 | 32 | 72 | 1 | 2 | 138 | 5 | |
17 | 41 | 79 | 5 | 226 | 86 | 1 | |
18 | 50 | 85 | 326 | 29 160 | 12 374 | 74 | |
19 | 57 | 92 | 1 | 1 | 46 277 | 210 | |
20 | 68 | 100 | 2 016 | 213 961 | 822 | 1 | |
21 | 77 | 107 | 83 | 5 940 | 10 188 | 31 | |
22 | 88 | 114 | 3 | 94 | 30 976 | 133 | |
23 | 101 | 122 | 1 | 76 | 119 | 2 | |
24 | 116 | 132 | 9 | 90 | 3 | 2 | 352 366 |
References
- [1] Vigleik Angeltveit and Brendan D. McKay. . J. Graph Theory, 89(1):5–13, 2018.
- [2] Gilles Audemard and Laurent Simon. On the Glucose SAT solver. Internat. J. Artificial Intelligence Tools, 27, #1840001, 2018.
- [3] Armin Biere, Katalin Fazekas, Mathias Fleury, and Maximillian Heisinger. CaDiCaL, Kissat, Paracooba, Plingeling and Treengeling entering the SAT Competition 2020, in Tomas Balyo, Nils Froleyks, Marijn Heule, Markus Iser, Matti Järvisalo, and Martin Suda, editors, Proc. of SAT Competition 2020 — Solver and Benchmark Descriptions, pages 50–53. University of Helsinki, 2020.
- [4] Geoffrey Exoo. A lower bound for . J. Graph Theory, 13(1):97–98, 1989.
- [5] Brendan D. McKay and Stanisław P. Radziszowski. . J. Graph Theory, 19(3):309–322, 1995.
- [6] Brendan D. McKay and Stanisław P. Radziszowski. Subgraph counting identities and Ramsey numbers. J. Combin. Theory Ser. B, 69(2):193–209, 1997.
- [7] Stanisław P. Radziszowski. Small Ramsey numbers, Electron. J. Combin., Dynamic Survey 1. 1994–2021.