The first result to look at is whether the program can accurately calculate Ramsey numbers and test guesses. The program indeed accurately calculates Ramsey numbers for small numbers/guesses n. Theoretically, the program is able to calculate any Ramsey number that is inputted, and through our benchmarking, we know that the answer will be accurate. So far, the program has solved Ramsey numbers for small values of r and b. Once we run the code on a supercomputer in the coming weeks, we will be able to generate more results and further benchmark our code. (For a list of stated values from the mathematical community that we used in benchmarking, see Appendix C). The Ramsey numbers that we calculated have all been accurate, indicating that our program is likely accurate.
The second and arguable more important set of results from the program is the improvements in processing time that we have made through the implementation of new algorithms. Processing time has been the primary obstruction for us to calculate Ramsey numbers for larger values of r and b, the primary reason we hope to run our code on a supercomputer. Therefore, after creating a program that worked to calculate Ramsey Numbers, we created algorithms that sped up the program and more quickly gave the results.
Our first speed-up algorithm determined whether there were enough red edges in a given coloring so that a blue monochromatic subgraph with its corresponding number of nodes could even exist, and vice versa with blue edges to red subgraphs. By not testing the colorings that would definitely have monochromatic subgraphs, we reduced the processing time from about 13.25 seconds of dedicated processing power, to about 13 seconds on a test for R(4, 3) with a guess of 7. This therefore produced a small, yet noticeable difference in the amount of time needed to calculate these Ramsey numbers.
Our second performance enhancement algorithm selected one node and did not go through every possible coloring of the edges connected to it. Instead, the program went through and eliminated all the permutations of B blue edges and (N-B-1) red edges and looked at only one of those. We can do this because in the graph, nodes can swap positions with other nodes but still result in the same overall coloring. The positioning of the nodes does not matter as long as the connections are the same. Since we go through all the permutations with the rest of the graph, we will get that “swapped” graph at some point. This short-cut reduced the processing time of the R(4,3) with a trial of 7 from our fast time of 13 seconds of dedicated processing power to an even faster 9 seconds.
An additional set of results of our program are the graphs seen in some of the figures in Appendix B. We created a second program that takes an alphanumeric key outputted from the original program and displays it visually as a graph that does not have the monochromatic subgraphs. This visual output proves that the value must be greater than the guessed number for those inputs of r and b. This is additional output further helped to benchmark the calculations code and for us to see what the graphs that do not contain monochromatic subgraphs look like if there was some sort of pattern among the colorings.