Tải bản đầy đủ (.docx) (11 trang)

Trí Tuệ Nhân tạo- Bài toán tô màu bản đồ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (229.9 KB, 11 trang )

MỤC LỤC

CHƯƠNG I . GIỚI THIỆU BÀI TOÁN
1. Tổng quan về đồ thị
Đồ thị là gì
Một cách khơng chính thức, đồ thị là một tập các đối tượng được gọi là các đỉnh (hoặc
nút) nối với nhau bởi các cạnh (hoặc cung). Cạnh có thể có hướng hoặc vơ hướng. Đồ thị
thường được vẽ dưới dạng một tập các điểm (các đỉnh nối với nhau bằng các đoạn thẳng
(các cạnh).
Đồ thị biểu diễn được rất nhiều cấu trúc, nhiều bài tốn thực tế có thể được biểu diễn
bằng đồ thị. Ví dụ, cấu trúc liên kết của một website có thể được biểu diễn bằng một đồ
thị có hướng như sau: các đỉnh là các trang web hiện có tại website, tồn tại một cạnh có
hướng nối từ trang A tới trang B khi và chỉ khi A có chứa 1 liên kết tới B.
Cấu trúc đồ thị có thể được mở rộng bằng cách gán trọng số cho mỗi cạnh. Có thể sử
dụng đồ thị có trọng số để biểu diễn nhiều khái niệm khác nhau. Ví dụ, nếu đồ thị biểu
diễn một mạng đường giao thông, các trọng số có thể là độ dài của mỗi con đường. Một
1


cách khác để mở rộng đồ thị cơ bản là qui định hướng cho các cạnh của đồ thị (như đối
với các trang web, A liên kết tới B, nhưng B không nhất thiết cũng liên kết tới A). Loại đồ
thị này được gọi là đồ thị có hướng. Một đồ thị có hướng với các cạnh có trọng số được
gọi là một lưới.

Hình 01: Đồ thị vơ hướng

Các cách biểu diễn đồ thị
-

Ma trận kề (Adjaceny matrix) - một ma trận N × N, trong đó N là số đỉnh của đồ
thị. Nếu có một cạnh nào đó nối đỉnh vivới đỉnh vj thì phần tử Mi,j bằng 1, nếu


khơng, nó có giá trị 0. Cấu trúc này tạo thuận lợi cho việc tìm các đồ thị con và để
đảo các đồ thị.

Adjacency matrix

2


-

Danh sách kề (Adjacency list) - Mỗi đỉnh của đồ thị có một danh sách các đỉnh kề
nó (nghĩa là có một cạnh nối từ đỉnh này đến mỗi đỉnh đó). Trong đồ thị vơ hướng,
cấu trúc này có thể gây trùng lặp. Chẳng hạn nếu đỉnh 3 nằm trong danh sách của
đỉnh 2 thì đỉnh 2 cũng phải có trong danh sách của đỉnh 3. Lập trình viên có thể
chọn cách sử dụng phần khơng gian thừa, hoặc có thể liệt kê các quan hệ kề cạnh
chỉ một lần. Biểu diễn dữ liệu này thuận lợi cho việc từ một đỉnh duy nhất tìm mọi
đỉnh được nối với nó, do các đỉnh này đã được liệt kê tường minh.

The graph pictured above has this
adjacency list representation:
a

adjacent to

b,c

b

adjacent to


a,c

c

adjacent to

a,b

2. Bài tốn tơ mầu đồ thị
Tơ màu đồ thị và sự tổng qt của nó là cơng cụ hữu dụng trong việc mơ hình hóa rất
nhiều bài tốn khác nhau trong vấn đề xếp lịch, xây dựng chương trình và vấn đề phân
cơng cơng việc. Bài tốn tơ màu đồ thị bao gồm nhiều loại: tô màu đỉnh đồ thị (vertex
graph coloring) , tô màu cạnh đồ thị (edge graph coloring) ...
2.1. Bài tốn tơ mầu cạnh
Bài tốn
Cho G=(V,E) là đơn đồ thị vô hướng ( G không là đồ thị khun) , hãy tìm cách gán (tơ
màu) cho mỗi cạnh của đồ thị một màu sao cho hai cạnh có cùng chung 1 đỉnh khơng bị
tơ bởi cùng một màu. Một phép gán màu cho các cạnh như vậy gọi là một phép tô màu
3


cạnh đồ thị. Nói cách khác, phép tơ cạnh đồ thị bởi k màu nói trên có thể được hiểu là
một phân hoạch của tập cạnh E của G thành k tập con (tương ứng với k màu) sao cho mỗi
tập con ứng với một màu i nhất định. Bài tốn đặt ra là tìm cách tơ màu nào sử dụng số
màu ít nhất có thể.
Ví dụ

Đồ thị trong hình trên có thể tơ bởi 4 màu. Đồ thị G gọi là tơ được bởi k màu-cạnh nếu G
có một phép tô k màu-cạnh phù hợp.Thông thường hầu hết các đồ thị không là đồ thị
khuyên đều tô được.Và nếu G có tính chất như vậy thì G cũng có thể tơ bởi l màu với

l>k.
2.2. Bài tốn tơ mầu đỉnh
Tô màu (đỉnh) đồ thị là việc thực hiện gán màu cho mỗi đỉnh của đồ thị, sao cho hai đỉnh
kề nhau không cùng một màu, và số màu được sử dụng là ít nhất. Số màu ít nhất có thể
sử dụng để tô màu đồ thị được gọi là sắc số của đồ thị đó.
Một phép tơ mầu sử dụng nhiều nhất k mầu gọi là một phép tô k mầu. Số lượng mầu nhỏ
nhất cần để tô các đỉnh của đồ thị G gọi là sắc số đỉnh của đồ thị G, sao cho khơng có hai
đỉnh kề nhau nào được tơ cùng mầu.
Một đồ thị có thể tơ được bằng k mầu, trong đó mỗi một tập các đỉnh cùng mầu gọi là
một lớp mầu.
Một đồ thị có thể được tơ bằng k mầu nghĩa là có có k tập độc lập trong đồ thị
4


3. Hướng làm bài
Việc tô màu bản đồ, ta phải tô màu các miền sao cho: mỗi miền được tô một màu, hai
miền có liền kề (có chung biên giới) không được tô cùng một màu.
Ta thiết lập một đồ thị G, có tập các đỉnh là tập tất cả các miền trên bản đồ. Hai nước liền
kề nhau
thì có cạnh nối hai đỉnh tương ứng với nhau. Ta tiến hành tìm sắc số của đồ thị này.
Đây là trường hợp riêng của bài tốn tơ màu đồ thị. Khi đồ thị chỉ là đồ thị phẳng. Người
ta đã chứng minh được rằng: chỉ cần nhiều nhất là 4 màu để tô đồ thị này. Từ lâu người ta
đã chứng minh bài tốn tơ màu đồ thị thuộc lớp NP - đầy đủ.

CHƯƠNG II . GIỚI THIỆU GIẢI THUẬT VÀ PHÂN TÍCH GIẢI THUẬT
THEO BÀI TỐN
1. Phát biểu bài tốn
Tơ màu (đỉnh) đồ thị là việc thực hiện gán màu cho mỗi đỉnh của đồ thị, sao cho hai đỉnh
kề nhau không cùng một màu, và số màu được sử dụng là ít nhất. Số màu ít nhất có thể
sử dụng để tô màu đồ thị được gọi là sắc số của đồ thị đó.

Thuật tốn tơ màu đồ thị được đề cập đến trong các tài liệu về Toán rời rạc hoặc Cấu trúc
dữ liệu & Giải thuật. Chúng ta có thể trình bày các bước thuật tốn dễ hiểu như sau:
Input:

đồ thị G = (V, E).

Output:

đồ thị G = (V, E) có các đỉnh đã được gán màu.

2. Giải thuật (Thuật toán tham lam)
Các bước của thuật toán:
Bước 1: Tính giá trị bậc của các đỉnh trong V. Lập danh sách V’:=[v1,v2, ...,vn] là
các đỉnh của đồ thị được sắp xếp theo thứ tự bậc giảm dần: d(v1) > d(v2) > ... > d(vn).
Ban đầu tất cả các đỉnh trong V (V’) đều chưa được tô màu.
Gán i := 1;
Bước 2: Tô màu i cho đỉnh đầu tiên trong danh sách V’. Duyệt lần lượt các đỉnh
khác trong V’(nếu có) và chỉ tơ màu i cho các đỉnh khơng kề đỉnh đã có màu i.
Bước 3: Kiểm tra nếu tất cả các đỉnh trong V đã được tô màu thì thuật tốn kết thúc,
đồ thị đã sử dụng i màu để tơ. Ngược lại, nếu vẫn cịn đỉnh chưa được tơ thì chuyển sang
bước 4.
5


Bước 4: Loại khỏi danh sách V’ các đỉnh đã tô màu. Sắp xếp lại các đỉnh trong V’
theo thứ tự bậc giảm dần. Gán i := i + 1 và quay lại bước 2.

3. Phân tích giải thuật và vận dụng
Để dễ hiểu hơn, các bạn xem sự thể hiện các bước của thuật tốn trong ví dụ sau: Cho đồ
thị như hình vẽ, sử dụng thuật tốn tơ màu đồ thị ở trên, tô màu cho các đỉnh của đồ thị.


Bước 1: Ta có đồ thị có 5 đỉnh được đánh số 1, 2, 3, 4, 5 với các bậc tương ứng với
từng đỉnh theo thứ tự là 3, 1, 2, 1, 3. Do đó V’ ban đầu có thứ tự là [1, 5, 3, 2, 4]. Gán i
=1.
Bước 2: Tô màu 1 (red) cho đỉnh 1. Lần lượt duyệt các đỉnh cịn lại trong V’:
Ta có: Đỉnh 5 kề đỉnh 1 (đỉnh 1 đã tô màu 1 - red) nên chưa tô màu cho đỉnh 5. Tương tự
các đỉnh 3, 2 đều kề với đỉnh 1 nên đỉnh 3, 2 cũng chưa được tô màu.
Đỉnh 4 không kề với đỉnh 1, do đó thực hiện tơ màu 1 cho đỉnh 4. Đỉnh 4 có màu 1 red.
Bước 3: Kiểm tra thấy vẫn còn các đỉnh trong V chưa được tô màu nên chuyển sang
bước 4.
Bước 4: Loại bỏ các đỉnh 1, 4 đã được tô màu ra khỏi V’, sắp xếp lại V’ theo thứ tự
bậc giảm dần, ta thu được V’= [5, 3, 2]. Ta có i = 2. Thực hiện lặp lại bước 2:
Bước 2(1): Tô màu 2 (blue) cho đỉnh 5. Lần lượt duyệt các đỉnh cịn lại trong V’. Ta
có: Đỉnh 3 kề đỉnh 5 (đã tô màu 2 - blue) nên chưa tô màu cho đỉnh 3.
Đỉnh 2 không kề với đỉnh 5, do đó thực hiện tơ màu 2 cho đỉnh 2. Đỉnh 2 có màu 2 blue.
Bước 3(1): Kiểm tra thấy vẫn cịn đỉnh 3 chưa được tơ màu nên chuyển sang bước
6


4.
Bước 4(1): Loại bỏ các đỉnh 5, 2 đã được tơ màu ra khỏi V’, V’=[3]. Ta có i = 3.
Thực hiện lặp lại bước 2:
Bước 2(2): Tô màu 3 (Green) cho đỉnh 3.
Bước 3(2): Kiểm tra thấy tất cả các đỉnh trong V đã được tơ màu, thuật tốn dừng
lại. Kết luận: Đỉnh 1 và 4 được tô màu 1-red, đỉnh 5 và đỉnh 2 được tô màu 2-blue, đỉnh 3
được tô màu 3-Green. Số màu cần thiết phải sử dụng là i =3 màu.

CHƯƠNG III. CÀI ĐẶT, DEMO CHƯƠNG TRÌNH
1. Cài đặt
Tạo 1 file dothi.txt, dịng đầu tiên là số đỉnh, các dòng tiếp theo là những đỉnh được nối

với nhau.

Source code:

7


8


2. Kết quả

9


KẾT LUẬN

Báo cáo này có mục đích tìm hiểu và trình bày các khái niệm cơ bản về đồ thị và các
dạng đồ thị thường gặp, về bài tốn tơ màu trên đỉnh của đồ thị và ứng dụng tô màu bản
đồ. Trình bày các kết quả lý thuyết, các định lý về tô màu trên các loại đồ thị khác nhau
và các thuật tốn tơ màu đỉnh và cạnh, dựa trên các kết quả lý thuyết đã có.
Hy vọng nội dung của báo cáo sẽ giúp các thầy, cô giáo cùng với các bạn sinh viên đang
giảng dạy và học tập có thêm nguồn tài liệu hữu ích, bổ sung thêm phương pháp để tiếp
cận vấn đề, nhằm nâng cao chất lượng bài giảng, giúp các em sinh viên hiểu sâu sắc được
vấn đề hướng tới đạt thành tích cao trong các kì thi.

10


TÀI LIỆU THAM KHẢO


Website:
[1] Website: />[2] Website: />[3] Website: />[4] Website: />
11



×