1. Trang chủ
  2. » Luận Văn - Báo Cáo

lý thuyết đồ thị-bài toán tô màu

18 925 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 287 KB

Nội dung

Trong các bài toán của môn lý thuyết đồ thị có rất nhiều bài toán hay nhưng hôm nay chúng em xin giới thiệu về bài toán tô màu là một trong những bài toán rất hay và có nhiều ứng dụng

Trang 1

TRƯỜNG CAO ĐẲNG KỸ THUẬT LÝ TỰ TRỌNG TP HCM

KHOA CÔNG NGHỆ THÔNG TIN

ĐỀ TÀI 5:

Các kênh truyền hình từ số 1 tới số 12 được phân chia cho các đài truyền hình sao cho không

có đài phát nào cách nhau không quá 240 km lại dùng cùng một kênh Có thể chia kênh

truyền hình như thế nào bằng mô hình tô màu đồ thị.

Ta xây dựng đồ thị bằng cách coi mỗi đài phát là một đỉnh Hai đỉnh được nối với nhau bằng một cạnh nếu chúng ở cách nhau không quá 240 km Việc phân chia kênh tương ứng với

việc tô màu đồ thị, trong đó mỗi màu biểu thị một kênh

SV thực hiện : -Đoàn Huy Bình

- Nguyễn Văn Vũ

GV hướng dẫn : Vũ Thị Thái Linh

TP.HCM – Tháng 04/2011

Trang 2

Lời mở đầu

Lời đầu tiên chúng em xin cảm ơn cô Vũ Thị Thái Linh, người đã tận tình hướng dẫn chúng em trong môn học lý thuyết đồ thị, giúp cho chúng em hiểu được tầm quan trọng của môn học và các ứng dụng thực tế của nó có ích như thế nào Bài đề tài môn học này là sự tích góp kiến thức của chúng em trong quá trình học tập và tham khảo tài liệu của khóa trước Tuy sơ sài chưa hoàn chỉnh nhưng mong thầy/cô bỏ qua và thông cảm cho chúng em.

Lý thuyết đồ thị là ngành khoa học được phát triển từ lâu có nhiều ứng dụng trong thực tế Là một môn học không kém phần quan trọng đối với những người học công nghệ thông tin Trong các bài toán của môn lý thuyết đồ thị

có rất nhiều bài toán hay nhưng hôm nay chúng em xin giới thiệu về bài toán

tô màu là một trong những bài toán rất hay và có nhiều ứng dụng

Chương 1: Tổng Quan Về Bài Toán Tô Màu

1 Chi tiết nội dung bài toán:

Cho đồ thị phẳng G hãy tô màu cho các đỉnh của G sao cho 2 đỉnh kề nhau không trùng màu với nhau và số màu sử dụng là thấp nhất

Các ứng dụng của bài toán tô màu: Tô màu cho bản đồ, xếp lịch làm việc , xếp thời khóa biểu , phân chia tần số phát sóng của dài phát thanh truyền hình, bố trí các con vật trong

sở thú,v.v…

Các thuật toán tốt hiện nay: thuật toán lập bảng mà cô Vũ Thị Thái Linh đã hướng dẫn

Trang 3

1.1 - Trước hết các bạn phải biết được đồ thị phẳng là gì và một số định lý liên quan đến chúng:

Để nghiên cứu về đồ thị phẳng, ta bắt đầu bằng việc xét bài toán "Ba nhà ba giếng" như

sau:

Có ba nhà ở gần ba cái giếng, từ mỗi nhà có đường đi thẳng đến từng giếng, nhưng không

có đường nối thẳng các nhà với nhau, cũng như không có đường nối thẳng các giếng với nhau Có lần bất hòa với nhau, họ tìm cách làm các đường khác đến giếng sao cho các đường này đôi một không giao nhau Họ có thực hiện được ý định đó không?

Ta xây dựng đồ thị G = (V, E) mô tả đầy đủ các thông tin của bài toán:

Đỉnh: Lấy các điểm trên mặt phẳng hay trong không gian tương ứng với các gia đình và các giếng nước Đối tượng của bài toán ở đây được chia làm hai loại là gia đình và giếng nước Vậy, mỗi đỉnh vV biểu diễn cho một gia đình hoặc một giếng nước

Cạnh: Trong đồ thị G các đỉnh v iv j được nối với nhau bằng một cạnh nếu có đường nối thẳng (trực tiếp) từ một gia đình đến một giếng nước Vậy, mối quan hệ

giữa 02 đối tượng ở đây là mối quan hệ đường đi Mỗi cạnh eE nối 2 đỉnh v i

(đại diện cho 01 gia đình) và v j (đại diện cho một giếng nước) trong G nếu có đường đi trực tiếp từ gia đình v i đến giếng nước v j Ta có đồ thị G như sau:

N

Hình 1 Khi giải quyết bài toán trên ta cần đến khái niệm đồ thị phẳng như sau:

Trang 4

1.2 - Đồ thị phẳng

1.2.1 - Định nghĩa

Một đồ thị được gọi là phẳng nếu nó có thể vẽ được trên một mặt phẳng mà không có các cạnh nào cắt nhau ở điểm không phải là điểm mút của mỗi cạnh Hình vẽ như vậy được gọi là một biểu diễn phẳng của đồ thị

1.2.2 - Các ví dụ

Ví dụ 1: K4 là đồ thị phẳng vì có thể vẽ lại như sau:

Hình 2

Ví dụ 2: Q3 cũng là đồ thị phẳng vì:

Hình 3

Ví dụ 3: Ta sẽ xét xem đồ thị lưỡng phân K3,3 có là đồ thị phẳng không?

v 4 v 5 v 6

Hình 4

Trang 5

Ta sẽ chứng minh K3,3 là đồ thị không phẳng Thật vậy, ta thấy trong một biểu diễn phẳng bất kỳ của K3,3 thì v1 và v2 đều nối với v4 và v5 Bốn đỉnh này tạo thành một đường khép kín chia mặt phẳng ra làm hai miền R1 và R2 như sau:

v 1

v 2

v 4

v 5

R 2 R 1

Hình 5

R 21

v 3 R 1

R 22

v 5

v 1

Hình 6

Tương tự ta cũng chứng minh được nếu v3 nằm trong R1 thì đồ thị cũng không phẳng Vậy, K3,3 là đồ thị không phẳng

Khi ta kết luận K3,3 là đồ thị không phẳng, ta cũng đã giải quyết được bài toán "ba nhà ba giếng" Không có đường đi nào nối mỗi nhà với 3 giếng mà không cắt nhau Hay nói

cách khác, ba nhà ba giếng nói trên không thể nối với nhau trên một mặt phẳng mà không cắt nhau

2 Tô màu đồ thị

2.1 - Định nghĩa

Tô màu một đơn đồ thị là việc gán màu cho các đỉnh của nó sao cho hai đỉnh liền kề có màu khác nhau Mỗi đồ thị có thể có nhiều cách tô màu khác nhau

Giả sử v3 nằm trong R2 Ta còn lại đỉnh v6 Có 3 trường hợp đối

với v6:

- Nếu v6 nằm trong R1 thì cạnh nối v3 với v6 sẽ cắt ít nhất một

cạnh khác

- Nếu v6 nằm trong R21: cạnh nối v6 với v5 sẽ cắt ít nhất một

cạnh khác

- Nếu v6 nằm trong R22: cạnh nối v6 với v1 sẽ cắt ít nhất một

cạnh khác

⇒ v3 không thể nằm trong R2

Trang 6

Số màu hay sắc số (Chromatic number) của một đồ thị G là số màu tối thiểu cần thiết để

tô màu G Ký hiệu: χ(G)

Ví dụ 10: Xét đồ thị G:

Hình 14

Để tô màu đồ thị G, trước hết ta thấy v1 có bậc cao nhất, deg(v1) = 5 cho nên ta cho v1 có màu a deg(v5) = 4 ⇒ cho v5 có màu b Cho v4 màu c Vì deg(v4) = 4 và v4, v5 kề nhau ⇒

v6 có màu c Còn v3 có màu d Còn lại 2 đỉnh v2 và v7 Ta thấy v2 kề với v1 và v5⇒ cho v2 màu c; v7 không kề với v1 nên ta cho v7 màu a

Vậy ta có đỉnh: v1 v2 v3 v4 v5 v6 v7

⇒ ta sử dụng 4 màu để tô màu G

Ta thấy G có 4 đỉnh v1, v3, v4, v6 đôi một kề nhau ⇒ χ(G) ≥ 4 Theo trên ta chỉ dùng 4 màu ⇒χ(G) = 4

2.2 - Định lý:

Mọi đơn đồ thị đầy đủ K nđều có: χ(Kn) = n

- Chứng minh:

Khẳng định được chứng minh bằng quy nạp theo số đỉnh của đồ thị

Trường hợp cơ sở : Với n = 1, K1 có 1 đỉnh nên phải dùng 1 màu để tô

Trang 7

• Giả thiết quy nạp: Giả sử khẳng định đúng với n = k Nghĩa là mội đơn đồ thị đủ

có k đỉnh đều có χ(Kk) = k Ta cần khẳng định tính đúng đắn của định lý đối với

n = k + 1 Nghĩa là χ(Kk+1) = k + 1

Giả sử Kk+1 là một đơn đồ thị đầy đủ với tập đỉnh:

} { 1, 2, , , +1

= v v v k v k

Ta loại khỏi Kk+1 một đỉnh tuỳ ý (chẳng hạn đỉnh vk+1) cùng các cạnh liên thuộc với đỉnh này Đồ thị con nhận được là một đơn đồ thị đầy đủ có k đỉnh Theo giả thuyết quy nạp chúng ta có χ(Kk) = k

Bây giờ ta “khôi phục” lại đỉnh vk+1 cùng với các cạnh liên thuộc với nó, tức là “trở lại”

đồ thị Kk+1 Vì đỉnh vk+1 kề với tất cả các đỉnh còn lại nên để tô màu cho vk+1 ta phải sử dụng một màu mới Do đó: χ(Kk+1) = k + 1

3 - Một số định lý về tô màu đồ thị:

3.1 - Định lý 1:

Mọi chu trình độ dài lẻ đều có sắc số là 3

- Chứng minh:

Giả sử α là một chu trình độ dài lẻ tuỳ ý Khi đó, tồn tại một số tự nhiên n để α =2n+1 Giả sử dãy các đỉnh của α là: V ={v1,v2,,v2n,v2n+1} Ta sẽ chứng minh khẳng định trên

bằng quy nạp theo n

Trường hợp cơ sở : Với n = 1 Chu trình α gồm 3 đỉnh v1,v2,v3 Do mỗi đỉnh

(1≤i≤3)

v i đều kề với 2 đỉnh còn lại, nên ta phải dùng đúng 3 màu khác nhau để

tô cho α vì 2 đỉnh kề nhau tuỳ ý đều phải có màu khác nhau.

Giả thiết quy nạp: Giả sử khẳng định đã đúng với nk, nghĩa là với một chu trình

1

α tuỳ ý với độ dài 2n + 1 (1≤nk) đều có sắc số bằng 3 Ta chỉ cần chỉ ra rằng với n = k + 1 khẳng định vẫn đúng Nghĩa là chu trình α có độ dài 2(k + 1) + 1 cũng có sắc số bằng 3

Trang 8

Giả sử α là chu trình có độ dài lẻ tùy ý có độ dài bằng 2(k + 1) + 1 và có tập đỉnh:

} { 1, 2, , 2 , 2 +1, 2 +2, 2 +3

= v v v k v k v k v k

V ta mô tả chu trình α như hình vẽ sau:

Hình 15

Nối đỉnh v1 với đỉnh v2k + 1 ta được chu trình α1 với độ dài lẻ là 2k + 1 Theo giả thuyết

quy nạp thì α1 có sắc số là 3 và 02 đỉnh v1 và v2k + 1 phải có màu khác nhau Chẳng hạn v1

được tô bằng màu M1 và đỉnh v2k + 1 được tô bằng màu M2 Khi đó, để tô đỉnh v2k+2 ta có thể dùng lại màu M1 và tô đỉnh v2k+3 ta có thể dùng lại màu M2 Nghĩa là không cần dùng thêm màu mới Vậy sắc số của α là 3 và định lý đã được chứng minh

3.2 - Định lý 2:

Nếu G có chứa một đồ thị con đẳng cấu với Kn thì χ(G) ≥ n

Ví dụ 11: Tìm sắc số của đồ thị G:

A

B

C D

Hình 16

Ta có: G chứa K3 nên χ(G) ≥ 3

v1

v2

v5

v6

v2k

v2k+1

v2k+2

v2k+3

Trang 9

Ta lại có F có bậc lớn nhất nên ta tô F màu 1, A màu 2, B màu 3 Khi đó C phải tô màu 2

và D tô màu 3 Còn lại đỉnh E kề với A, F, D đã có đủ 3 màu 1, 2, 3 Do đó, E phải có màu 4

Ta tìm sắc số của G: Do G có chứa chu trình lẻ (ABCDEA) nên ta có các đỉnh A, B, C,

D, E phải được tô bằng 3 màu Mặt khác, đỉnh F kề với tất cả các đỉnh A, B, C, D, E nên

ta phải dùng màu thứ 4 để tô cho F Vậy: χ(G) = 4

Chú ý:

• Nếu G' là một đồ thị con của G thì χ(G) ≥χ(G')

• Nếu dùng k màu để tô màu G thì không cần quan tâm đến những đỉnh có bậc nhỏ hơn k

3.3 - Định lý 3:

Một đơn đồ thị G = (V, E) có thể tô bằng 2 màu khi và chỉ khi nó không có chu trình độ dài lẻ

- Chứng minh:

Điều kiện cần: Giả sử G là đồ thị 2 sắc (có thể tô tất cả các đỉnh của G bằng 2

màu) ngưng trong G lại có một chu trình lẻ α Khi đó theo định lý 1, sắc số của

α phải là 3 Mặt khác theo định lý 2 ta có χ( ) ( )G ≥χ α =3 Do đó, sắc số của G ít nhất phải là 3 Ta suy ra điều mâu thuẫn với giả thuyết, nên G không có chu trình độ dài lẻ

Điều kiện đủ: Giả sử đồ thị G không có chu trình độ dài lẻ Ta cần chứng minh

rằng G là đồ thị 2 sắc Ta bắt đầu tô dần các đỉnh của G theo quy tắc sau:

- Tô M1 cho đỉnh wV bất kỳ

- Nếu một đỉnh uV nào đó đã được tô bằng M1, ta sẽ dùng màu M2 để tô cho tất cả các đỉnh kề với u và ngược lại nếu đỉnh uV nào đó đã được tô bằng M2, ta sẽ dùng màu M1 để tô cho tất cả các đỉnh kề với u

Vì G là đồ thị hữu hạn nên đến một lúc nào đó tất cả các đỉnh của G sẽ phải được tô màu

và mỗi đỉnh của G không thể cùng lúc vừa được tô bằng M1 vừa được tô bằng M2 Thật

Trang 10

vậy, giả sử trong G tồn tại đỉnh v mà theo nguyên tắc nó vừa được tô bằng M1 đồng thời cũng được tô bằng M2 Khi đó v phải kề với đỉnh s được tô bằng M1 và đỉnh t được tô bằng M2, nên khi đó các đỉnh v, s, t phải nằm trên một chu trình độ dài lẻ Như vậy mâu thuẫn với giả thuyết nên đỉnh v không tồn tại

Ví dụ 12: Xét đồ thị vòng Cn (n ≥ 3)

• Khi n chẵn, chẳng hạn n = 6 Ta có:

Hình 17

• Dễ thấy khi đó χ(C6) = 2 vì ta có thể tô màu như trên Rõ ràng C6 không có chu trình lẻ

• Khi n lẻ, chẳng hạn n = 5 Ta có:

a

b

c d

e C 5

Hình 18

C5 có chứa chu trình lẻ ⇒χ(C5) ≥ 3 Dễ thấy χ(C5) = 3

(xanh) b c ( Đỏ )

d (xanh)

e ( Đỏ ) (xanh) f

( Đỏ ) a

Trang 11

Tổng quát: χ(Cn) = 2 nếu n chẵn (n ≥ 3)

χ(Cn) = 3 nếu n lẻ (n ≥ 3)

3.4 - Định lý 4 (Định lý bốn màu) (định lý Appel-Haken, 1976)

Mọi đồ thị phẳng đều có sắc số không lớn hơn 4 Định lý này là định lý đầu tiên được chứng minh với sự hỗ trợ của máy vi tính

Số màu của 1 đồ thị phẳng không lớn hơn 4.

Giả thuyết 4 màu được đề ra từ những năm 1850 Nó cuối cùng đã được chứng minh bởi

2 nhà toán học Mĩ là Kenneth Appel và Wolfgang Haken năm 1976 Trước đó, nhiều người đã đề ra các cách chứng minh khác nhau của bài toán, nhưng tất cả đều sai và thường mắc phải những lỗi khó phát hiện Bên cạnh đó là những cố gắng vô ích trong việc phủ định giả thuyết bằng cách chỉ ra những bản đồ đòi hỏi nhiều hơn 4 màu

Có lẽ, sai lầm nổi tiếng nhất là chứng minh được xuất bản năm 1879 bởi một luật sư ở Luân Đôn và một nhà toán học nghiệp dư , Afred Kempe Các nhà toán học công nhận chứng minh này là đúng cho đến năm 1890, khi Percy Heawood tìm ra lỗi Tuy nhiên, hướng lí luận của Kempe lại trở thành cơ sở cho thành công của Appel và Haken sau này Chứng minh của họ dựa trên phân tích cẩn thận từng trường hợp trên máy tính Họ chỉ ra rằng nếu giả thuyết 4 màu sai, họ phải tìm ra được phản ví dụ của 1 trong khoảng 2000 trường hợp khác nhau Họ đã sử dụng máy tính chạy trong 1000 tiếng để thực hiện chứng minh của mình Chứng minh này đã gây ra nhiều tranh cãi khi sử dụng máy tính để thực hiện các thao tác chính Ví dụ, chương trình máy tính có thể mắc lỗi dẫn đến kết quả sai Liệu lí lẽ của họ có thật sự là 1 chứng minh khi phụ thuộc vào những kết quả không đáng tin cậy của máy tính?

Ví dụ 13: Tìm số màu của đồ thị G và H trong hình 3.

Trang 12

G H

Hình 19: H3: Hai đồ thị đơn G và H

Lời giải:

- Số màu của đồ thị G tối thiểu là 3 do 3 đỉnh a, b, c phải đôi một khác màu nhau Giả sử

G có thể tô bằng 3 màu Giả sử ta tô a màu đỏ, b màu xanh và c màu vàng Tiếp theo, d phải tô màu đỏ vì nó kề các đỉnh b, c; e phải tô màu vàng vì nó chỉ kề các đỉnh màu màu

đỏ và xanh; f phải tô màu xanh vì nó chỉ kề các đỉnh màu đỏ và vàng Cuối cùng g phải

tô màu đỏ vì nó chỉ kề các đỉnh màu vàng và xanh Như vậy, ta có thể tô màu G bằng 3 màu -> c(G)=3

- Đồ thị H biến đổi từ đồ thị G thông qua việc nối 2 đỉnh a và g Lí luận tương tự như

trên, ta thấy H phải tô tối thiểu bằng 3 màu Khi cố gắng tô H bằng 3 màu ta phải thông

qua các lí luận tương tự như G khi tô màu tất cả các đỉnh trừ g Cuối cùng, g sẽ liền kề

với các đỉnh có cả 3 màu đỏ, vàng, xanh, và ta buộc phải sử dụng thêm màu thứ 4 (màu nâu) để tô màu nó Tóm lại, c(H)=4 (Xem H4)

G

c

a

f

g

c f

d

g

c f

g d

a

X

X

V

V

b e

c f

g d

a

X

X

Đ Đ

V

V

N

Trang 13

H

Đ: đỏ X: xanh V: vàng N: nâu

Hình 20: H4: Tô màu các đồ thị G và H

Ví dụ 14: Tìm số màu của đồ thị đầy đủ Kn?

Lời giải :

Ta có thể tô màu n đỉnh của Kn bằng n màu riêng biệt Liệu có cách tô nào tiết kiệm màu hơn không? Câu trả lời là không

Hình 21: H5 Tô màu K5 Hình 22: H6 Tô màu K3,4

Đ: đỏ X: xanh V: vàng N: nâu H: hồng

Thật vậy, không có 2 đỉnh nào có thể tô cùng màu vì mọi đỉnh đều kề nhau Vậy , ta có c(Kn) = n (Chú ý: Kn không phải đồ thị phẳng khi n ≥ 5, do đó kết quả này không vi phạm định lí 4 màu)

H5 cho ta ví dụ về việc tô màu K5

4 Thuật toán 1: Kẻ bảng - hạ bậc

4.1 - Mã giả:

//tính bậc của các đỉnh ban đầu

for ( int j = 0; j < Dinh; j++)

{

c

d e

Đ

X

V

H

N

g X

Trang 14

Bac[j] = 0;

for ( int k = 0; k < Dinh; k++)

{

Mau[j, k] = 1;

_DinhTo[j] = -1;

if (TrongSo[j, k] != 3200)

{

Bac[j]++;

}

}

}{

// tim dinh co bac lon nhat theo thu tu tu dien

int SoDinhTo = 0;

while (SoDinhTo < Dinh)

{

int DinhXet = 0;

//Tìm Đỉnh Lớn Nhất

int Max = -1;

for ( int j = 0; j < Dinh; j++)

{

if (Max < Bac[j] && _DinhTo[j] == -1)

{

Max = Bac[j];

DinhXet = j;

}

}// tìm màu hợp lệ để tô cho đỉnh vừa tìm được

int MauTo = 0;

while (Mau[DinhXet, MauTo] == 0)

{

MauTo++;

}

dùng màu vùa tìm được tô cho đỉnh tìm dược ở trên,ha bậc dỉnh đó về 0, tăng số đỉnh đã

tô lên 1

DinhTo[DinhXet] = MauTo;

Bac[DinhXet] = 0;

SoDinhTo++;

// ha bac cua cac dinh ke voi dinhxet xuong 1,gán khong duoc phep to cac dinh ke voi dinhxet bằng mauto nua

for ( int j = 0; j < Dinh; j++) {

if (TrongSo[DinhXet, j] != 3200 &&TrongSo[DinhXet,j]>240) {

Bac[j] ;

Mau[j, MauTo] = 0;

}

}

}

Ngày đăng: 22/11/2014, 10:36

HÌNH ẢNH LIÊN QUAN

Hình 1 Khi giải quyết bài toán trên ta cần đến khái niệm đồ thị phẳng như sau: - lý thuyết đồ thị-bài toán tô màu
Hình 1 Khi giải quyết bài toán trên ta cần đến khái niệm đồ thị phẳng như sau: (Trang 3)
Hình 19: H3: Hai đồ thị đơn G và H. - lý thuyết đồ thị-bài toán tô màu
Hình 19 H3: Hai đồ thị đơn G và H (Trang 12)
Hình 20: H4: Tô màu các đồ thị G và H - lý thuyết đồ thị-bài toán tô màu
Hình 20 H4: Tô màu các đồ thị G và H (Trang 13)
Hình 31: Ví dụ về bản đồ bốn màu - lý thuyết đồ thị-bài toán tô màu
Hình 31 Ví dụ về bản đồ bốn màu (Trang 16)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w