Tô màu đồ thị

Hình:Petersen graph 3-coloring.svg|nhỏ|phải|Đồ thị Petersen có sắc số bằng 3.
Trong Lý thuyết đồ thị, tô màu đồ thị (tiếng Anh: graph coloring) là trường hợp đặc biệt của gán nhãn đồ thị, mà trong đó mỗi đỉnh hay mỗi cạnh hay mỗi miền của đồ thị có thể được gán bởi một màu hay một tập hợp các màu nào đó. Tô màu đồ thị có thể là:- tô màu đỉnh (tiếng Anh: vertex coloring) là gán cho mỗi đỉnh của đồ thị một màu nào đó sao cho không có hai đỉnh nào liền kề lại trùng màu nhau;- tô màu cạnh (tiếng Anh: edge coloring) là gán cho mỗi cạnh của đồ thị một màu nào đó sao cho sao cho không có 2 cạnh nào trùng màu;- tô màu miền (tiếng Anh: face coloring) là gán cho mỗi miền của đồ thị phẳng một màu sao cho không có 2 miền có chung đường biên lại cùng màu.
Sắc số (tiếng Anh: chromatic number) của một đồ thị là số màu ít nhất để tô các đỉnh.
Sắc số của đồ thị G được ký hiệu là χ(G).
Số màu cạnh (tiếng Anh: chromatic index) của một đồ thị là số màu ít nhất dùng để tô các cạnh. Số màu cạnh của đồ thị G được ký hiệu là χ'(G).
Số màu cạnh của đồ thị G bất kì bằng sắc số của đồ thị đường L((G)) của đồ thị đó:
χ'(G) = χ(L(G)),
do đó việc nghiên cứu tô màu cạnh của G tương đương với nghiên cứu tô màu đỉnh của L(G).

**Các định lý và tính chất**

**Các giá trị giới hạn của sắc số**
Rõ ràng sắc số của một đồ thị sẽ không vượt quá số đỉnh của nó (bậc của đồ thị):
 .
Nếu G có clique kích thước k thì cần ít nhất k màu để tô màu đỉnh cho clique này (xem thêm bài về đồ thị đầy đủ), như vậy sắc số của một đồ thị sẽ không nhỏ hơn chỉ số clique của đồ thị đó:
 
Nếu đồ thị đơn G có bậc cực đại bằng  Δ(G) thì sắc số của nó không vượt quá  Δ(G)+1.
Gọi số đỉnh của G là n.
Ta dùng Δ(G)+1 màu để tô n đỉnh của G như sau: xuất phát từ đỉnh thứ nhất đến đỉnh thứ n, tô màu đỉnh đầu tiên bằng 1 màu tùy ý trong Δ(G)+1 màu. Tô màu đỉnh kế tiếp bằng một màu khác với các màu đã tô cho các láng giềng của đỉnh đó. Việc tô màu này luôn thực hiện được, đến lượt 1 đỉnh bất kì, ta luôn có màu để tô cho nó, vì số màu Δ(G)+1 lớn hơn bậc của đỉnh bất kì.
Tổng quát hơn là định lý Brook, định lý khẳng định rằng:
Tất cả mọi đồ thị đơn và liên thông G, ngoại trừ đồ thị đầy đủ  và đồ thị chu trình bậc lẻ , đều có sắc số nhỏ hơn hoặc bằng bậc cực đại:
: Δ(G).
Nếu đồ thị G có m cạnh thì sắc số của nó thỏa mãn:
 
Chứng minh quy nạp theo m (m là số tự nhiên) mệnh đề (*) sau:
:nếu đồ thị G có không quá m cạnh thì sắc số của nó thỏa mãn:
:: 
Với m=0,1, mệnh đề (*) đúng.
Giả sử mệnh đề (*) đúng đến m-1. Xét m.
Gọi  là số tự nhiên lớn nhất thỏa mãn:
:
Nếu bậc cực đại của G nhỏ hơn  thì như ta đã biết, sắc số của G không vượt quá bậc cực đại của nó cộng với một, nên sẽ không vượt quá  , suy ra luôn điều phải chứng minh.
Nếu bậc cực đại của G lớn hơn hoặc bằng , suy ra trong G tồn tại đỉnh a có deg(a) lớn hơn hoặc bằng .
Xóa đỉnh a và các cạnh liên thuộc của nó khỏi G ta nhận được đồ thị mới là G', đồ thị này có số cạnh thỏa mãn:
:
Theo giả thiết quy nạp, mệnh đề (*) đúng cho m' nên:
:,
Suy ra:
:.
Tức là sắc số của G' không thể vượt quá , từ đó suy ra sắc số của G không vượt quá . Như vậy mệnh đề cũng đúng với m.
Suy ra mệnh đề (*) đúng với mọi m là số tự nhiên.

**Một số định lý liên quan của sắc số**

**Định lý 1 ==== 
Bất cứ chu trình độ dài lẻ nào cũng đều có sắc số bằng 3
Chứng minh:
Giả sử chu trình có độ dài là  ta chứng minh theo số -  chu trình gồm 3 đỉnh mà 2 đỉnh bất kì đều kề nhau  dùng đúng 3 màu để tô-  Giả sử  là một chu trình có độ dài  với các dãy đỉnh là , ,...,,,.
Nối  với  ta được một chu trình 'có độ dài .
Theo giả thuyết quy nạp chu trình ' có sắc số bằng 3.
Lấy màu của  tô cho  còn màu của  tô cho .
Chu trình  được tô màu mà không thêm màu mới vào.
Vậy chu trình  có sắc số bằng 3

**Định lý 2**
Đồ thị đầy đủ n đỉnh Kn có sắc số bằng n
Một số tiêu chuẩn đơn giản để kiểm tra xem 1 đồ thị có hai sắc số hay không:- Ta có định lý: Giả sử đồ thị G có ít nhất một cạnh. Đồ thị G có hai sắc số khi và chỉ khi G không có chu trình đơn vô hướng độ dài lẻ.
Chứng minh:- Giả sử G là đồ thị có hai sắc số. Theo Định lý 1 thì G không thể có chu trình đơn vô hướng độ dài lẻ.- Ngược lại giả sử G không có chu trình đơn vô hướng độ dài lẻ. Không mất tính tổng quát có thể xem G liên thông.
Chọn 1 đỉnh a nào đó bất kì trong đồ thị
Đặt  (m: số màu)
Với     Ta ký hiệu là độ dài đường đi vô hướng ngắn nhất nối  với
Đặt  mod 2
Ta sẽ chứng minh m là hàm màu của G
Giả sử  kề nhau
Lấy  là đường đi vô hướng ngắn nhất nối a với x có độ dài 
 là đường đi vô hướng ngắn nhất nối  với  có độ dài 
Chu trình đơn  có độ dài phải là một số chẵn
Vậy thì  là một số lẻ   khác nhau tính chẵn lẻ

Hàm tô màu m có hai giá trị, vậy sắc số ≤ 2. G có ít nhất một cạnh nên sắc số của nó bằng 2
Từ định lý trên ta có hệ quả sau: Tất cả các chu trình độ dài chẵn đều có sắc số bằng 2.

**Định lý 3**
Ví dụ định lý 3: Tìm sắc số đồ thị
Phát biểu: Nếu G có chứa 1 đồ thị con đẳng cấu với Kn thì .
Chứng minh: Hiển nhiên

**Các giá trị giới hạn của số màu cạnh**

**Định lý 1**
Số màu cạnh của đồ thị đơn G bất kì không vượt quá số đỉnh của nó.
Xét đồ thị  có hai đỉnh bất kì liền kề và   có các khuyên. n là số đỉnh của .
Đánh số các đỉnh của  là .
Chỉ cần chứng minh  có thể tô màu các cạnh bởi n màu thì suy ra đồ thị đơn G bất kì có số đỉnh không vượt quá n đều có thể tô các cạnh bởi n màu.
Ký hiệu các màu là .
Khi đó ta có cách tô màu cho  như sau.
Ma trận dưới đây biểu thị cách tô màu, trong đó:
*giá trị ở hàng thứ i cột j chính là màu được gán cho cạnh ;

Định lý König khẳng định rằng đối với đồ thị hai phía G, số màu cạnh của nó bằng bậc cực đại của nó: .
Định lý Vizing khẳng định rằng, nếu đồ thị đơn G có bậc cực đại bằng  thì số màu cạnh của nó bằng  hoặc .

**Đa thức màu**
Xem bài đa thức màu.

**Sắc số và số màu cạnh của một số đồ thị cơ bản**
Khái niệm sắc số liên quan đến bài toán tô màu như sau: 
Hãy tô màu các đỉnh của đồ thị đã cho, sao cho 2 đỉnh kề phải được tô bằng hai màu khác nhau

**Đồ thị hai phía**
Hình: GraphK 3,3 Chromatic number.PNG|Các đỉnh của đồ thị  được tô bằng hai màu xanh và đỏ.
Đồ thị hai phía đầy đủ  có sắc số bằng 2: χ()=2. Mở rộng: một đồ thị hai phía bất kì có sắc số không vượt quá 2.
Ví dụ minh họa là các đỉnh của đồ thị  có thể được tô bởi hai màu xanh và đỏ.

**Đồ thị chu trình**
Hình: Graph C5 ChromaticNumber.PNG|Các đỉnh của đồ thị  tô được bởi ít nhất 3 màu.
Hình: Graph C6 ChromaticNumber.PNG|Các đỉnh của đồ thị  tô được bởi ít nhất 2 màu.
Hình: CircleGraph 5 ChromaticIndex.PNG|Các cạnh của đồ thị  tô được bởi ít nhất 3 màu. 
Hình: CircleGraph 6 ChromaticIndex.PNG|Các cạnh của đồ thị  tô được bởi ít nhất 2 màu. 
Đồ thị chu trình  có sắc số bằng:- χ()= 3, nếu n lẻ.- χ()= 2, nếu n chẵn.
Số màu cạnh:- χ'()= 3, nếu n lẻ.- χ'()= 2, nếu n chẵn.

**Đồ thị bánh xe**
Hình:WheelGraph 5 ChromaticNumber.PNG|Các đỉnh của đồ thị  tô được bởi ít nhất 4 màu.
Hình:WheelGraph 6 ChromaticNumber.PNG|Các đỉnh của đồ thị  tô được bởi ít nhất 3 màu.
Hình:WheelGraph 6 ChromaticIndex.PNG|Các cạnh của đồ thị  tô được bởi ít nhất 6 màu.
Đồ thị bánh xe  (n≥4) có sắc số bằng:- χ()= 3, nếu n lẻ.- χ()= 4, nếu n chẵn.
Số màu cạnh (n≥3):- χ'()= n-1.

**Đồ thị đầy đủ**
Hình:CompleteGraph 7 ChromaticNumber.PNG|Đồ thị đầy đủ 7 đỉnh có sắc số bằng 7.
Hình:CompleteGraph 5 ChromaticIndex.PNG| có số màu cạnh bằng 5.
Hình:CompleteGraph 4 ChromaticIndex.PNG| có số màu cạnh bằng 3.
Đồ thị đầy đủ  có sắc số bằng:- χ() = n.
Số màu cạnh:- χ'() = n, nếu n lẻ.- χ'() = n-1, nếu n chẵn.
Đánh số các đỉnh của  là .
Do mỗi đỉnh của  có bậc bằng n-1, nên số màu cạnh của nó không nhỏ hơn n-1, do đó  χ'() bằng n hoặc n-1.
Chứng minh χ'()=n-1 với n chẵn:
Ta chỉ cần chỉ ra cách tô n-1 màu cho các cạnh của  là được.
Ký hiệu các màu là .
Ma trận dưới đây biểu thị cách tô màu, trong đó:
*giá trị ở hàng thứ i cột j chính là màu được gán cho cạnh ;
*X nghĩa là không được gán màu.

Ví dụ với n=6, ta có cách tô màu như sau:

Chứng minh χ'()=n với n lẻ:
Trái lại, giả sử tồn tại n lẻ sao cho χ'() = n-1.
Xét màu M bất kì, các cạnh tô màu M ký hiệu là , trong đó  là các đầu mút đôi một phân biệt. Như vậy có 2k đỉnh có cạnh liên thuộc tô bởi màu M, mà n lẻ nên tồn tại ít nhất một đỉnh  nào đó không có cạnh liên thuộc tô bởi màu M. Như vậy các cạnh liên thuộc với đỉnh  chỉ được tô bởi không quá n-2 màu, mà  (vô lý).

**Đồ thị siêu khối**
Đồ thị siêu khối  có sắc số bằng 2, vì bản thân nó là đồ thị phân đôi.

**Ứng dụng**

**Tô màu bản đồ**
Trên các bản đồ, các miền khác nhau (miền ở đây được hiểu là các quốc gia trên bản đồ thế giới hay các tỉnh trong một bản đồ hành chính quốc gia) được tô màu sao cho 2 miền có chung biên giới không trùng màu nhau. Đối với bản đồ có nhiều miền, nếu ta dùng một số lượng lớn màu thì sẽ rất khó phân biệt các miền có màu gần giống nhau, vì thế người ta chỉ dùng một số lượng màu nhất định để tô màu bản đồ. Một bài toán được đặt ra là: có thể dùng ít nhất bao nhiêu màu để tô màu một bản đồ sao cho các miền kề nhau không cùng một màu (tr.593).
Bài toán này dẫn đến định lý bốn màu nổi tiếng và định lý năm màu.
Các dạng bài toán tô màu bản đồ có thể áp dụng Thuật toán tô màu Greedy để tìm ra số màu ít nhất để tô cho các miền trên bản đồ.

**Xem thêm==  
*Định lý bốn màu
*Đa thức màu
*Thuật toán tô màu Greedy

**Chú thích**

**Tham khảo**
  (= Indag. Math. 13)
*.

**Liên kết ngoài**
  Graph Coloring Page date=2008-04-12  by Joseph Culberson (graph coloring programs)-  CoLoRaTiOn by Jim Andrews and Mike Fellows is a graph coloring puzzle-  Links to Graph Coloring source codes date=2008-07-04 -  Code for efficiently computing Tutte, Chromatic and Flow Polynomials date=2008-04-16  by Gary Haggard, David J. Pearce and Gordon Royle-  Graph Coloring Web Application date=2012-06-22 
Thể loại:Tô màu đồ thị
Thể loại:Bài toán NP-đủ
Thể loại:Lý thuyết đồ thị trong các bài toán tính toán
Thể loại:Lý thuyết đồ thị