On a graph coloring problem arising from discrete tomography
Résumé
Discrete tomography deals with the reconstruction of discrete homogenous objects from their projections. The reader is referred to the book of Hermann and Kuba [2] for an overview on discrete tomography. The image reconstruction problem is important since its solution is required for developing efficient procedures in image processing, data bases, crystallography, statistics, data compressing,... It can be formulated as follows: given a rectangular array where entries represent the pixels of a digitalized image coloured with k different colors, we consider the problem of reconstructing an image from the number of occurrences of each colour in every column and in every row. The problem is known to be polynomial for k=1, NP-complete for k=3 [1] and its complexity is still open for k=2. Here, we shall consider a graph colouring problem which generalizes both the well known basic graph colouring problem and the above image reconstruction problem. We are given a graph G=(V,E) and a collection P of p subsets Pi of vertices of G. We are also given a set of colours 1, 2, ..,k as well as a collection of p vectors h(Pi) of integers. The problem is to find a k-partition, i.e. a k-colouring, of V such that the number of vertices of Pi coloured with colour j is equal to the jth entry of the vector h(Pi), for all j=1,..,k and all i=1,..,p. The basic graph colouring problem deals with different colour assigned to adjacent vertices: we will call this a "proper" k-colouring otherwise we will call this simply a k-colouring. In this talk, we will consider colouring as well as proper colouring. Let us consider the special case where the graph G is a grid graph, the vertices, denoted by Xrs, are located on row r and column s, r=1,..,m and s=1,..,n, and P is the collection of the m+n chains corresponding to the rows and columns: the problem of finding a k-colouring of G corresponds exactly to the image reconstruction problem. In this talk we will consider some extensions by taking more general classes of graphs such as trees or bipartite graphs. We will restrict our attention to the case where each Pi is a chain in G. We call "cover index" of P, c(P), the maximum number of members of P which may cover a single element of V, i.e. which have a non empty intersection. We call "nested" a family P such that, for any pair of subsets, either one subset is included in the other or they are disjoint; then, the "nesticity" of P, nest(P), is the smallest number of nested families in a partition of P into nested families. First we will give several basic conditions for a solution to exist. Then, we will classify the problems according to the number of colours, the values of c(P) and nest(P), the class of the graph, the diameter of the graph, and so on. For each problem, either we will propose a polynomial time algorithm or we will give complexity results. For instance, we will prove that when G is a tree, the 2-colouring problem and the proper 3-colouring problems are NP-complete even if the maximum degree of G is bounded by 3; but we will propose a polynomial time algorithm solving the k-colouring problem when G is a tree and when any two Pi intersect in at most one vertex. All our results will be summarized in a table.