Let us briefly remind that we show that it is not possible to color a lattice 15x9 by 11 colors.
The process of checking all the colorings has been split into two steps. The first step is just dividing the problem into many smaller. Then these smaller can be processed in parallel.
The whole procedure is quite straight forward. The description is in the corresponding manuscript which is also available online at arXiv. Let us remark that we have independently written two sets of programs implementing the second step of the procedure. The program available at this web-page was written by Bernard Lidicky in C++; the other program was written by Jan Ekstein in Pascal.
The programs write their output to standard output. We describe the format of inputs and outputs of our programs in detail on this web-page.
All source files, shell script for generating the colorings of a lattice can be downloaded as a tar.gz archive. Outputs and generated inputs have a separate download archive. Program in Pascal can also be downloaded.
1 11 15 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
This input could be put directly to the main coloring procedure but contemporary (year 2009) computers are not able to check all the possibilities in a reasonable time. On the other hand this task is very easy to compute in parallel. Hence first we generate many inputs whose processing does the same job. Note that the following inputs are equivalent to the previous input. We only give first line of the matrix for processing which is full of zeros originally.
Here is an example of a the inputs - there are 10 inputs generated, they differ by the first entry. Together, they cover all possibilities. From second entry on we show only the first line of the input. In the inputs used by the program we actually generate 6498 input files which can be downloaded together with the output files.
1 11 15 9 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 0 0 0 0 ... 2 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 11 0 0 0 0 0 0 0 0
You may notice that we did not include matrix with 9 in left top corner. It is because of conflict with 9 already placed on [5,5]. Generating of inputs does the same thing but subdivides the task further into 6498 tasks. It turned out that a good condition for stopping dividing the task is usage of first 6 entries or usage of two numbers greater that 3, not counting the 9 on [5,5]. So in total at most 7 vertices are precolored. Output of the generating procedure has the same format as its input. It creates several different files. The files are named according to the sequence of numbers in the first row. Example of input - file 4.2.3.1.2.4.in
1 11 15 9 4 2 3 1 2 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
This is not the time consuming part.