Tải bản đầy đủ (.doc) (3 trang)

Tài liệu MỘT SỐ THUẬT GIẢI TTNT ppt

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 (39.13 KB, 3 trang )

MỘT SỐ THUẬT GIẢI TTNT
Thuật giải tô màu
Bài toán
Cho đồ thị đơn vô hướng G = (V,E). Hãy tô mỗi đỉnh của G bằng một màu sao cho: (1) hai đỉnh kề nhau có
màu khác nhau và (2) tổng số lượng màu cần sử dụng là ít nhất.
Lưu ý: đồ thị thường được cho dưới dạng hình vẽ hay ma trận kề.
Ứng dụng
Bài toán tô màu đồ thị được ứng dụng đề biểu diễn cho các bài toán thoả mãn ràng buộc (CSP) như lập lịch,
lập thời khoá biểu… (xem các bài tập đi kèm).
Để giải các bài toán trên, trước tiên ta cần xác định các định các yếu tố trong bài toán tương ứng với các yếu
tố của bài toán tô màu đồ thị bằng cách trả lời cách câu hỏi:
• Màu của đồ thị – Cần làm việc gì?: việc cần làm trong bài toán (vd xếp lịch) chính là hành động tô màu, do
đó màu của đồ thị chính là yếu tố cần xác định (được nêu trong đề bài).
• Đỉnh của đồ thị – Hành động cần làm tác động lên cái gì?: là thành phần được tác động lên
• Cung (cạnh) của đồ thị – Các đỉnh ràng buộc với nhau như thế nào?
Thuật giải: có hai thuật giải chính thường được áp dụng cho bài toán tô màu là thuật giải tô màu theo bậc và
tô màu tham lam (greedy).
Thuật toán tô màu trên đồ thị dựa vào số bậc
Lặp lại các bước sau cho đến khi bậc của tất cả các đỉnh bằng 0 và các đỉnh đã được tô màu:
Bước 1: Tô màu i cho đỉnh có bậc lớn nhất
Bước 2: Hạ bậc.
+ Bậc của đỉnh được tô màu i thì: Bậc = 0
+ Bậc của đỉnh có liên hệ với đỉnh được tô màu i thì: Bậc= Bậc -1
Bước 3: Cấm tô màu i cho các đỉnh vừa bị hạ bậc.
Ví dụ: Tô màu cho bản đồ các nước khu vực láng giềng với Việt Nam
Ma trận kề: ma trận vuông An (11 x 11) trong đó:
A[i,j] = 1 khi hai đỉnh i, j có cạnh nối và = 0 trong trường hợp ngược lại (A[i,i]=0)
Cách trình bày thuật giải:
Xác định bậc của các đỉnh
Đỉnh TQ VN LAO MIA THAI CAM PHI MAL BRU SING INDO
Bậc 3 3 5 3 4 3 0 4 1 1 1


Tô màu
Dòng 1: Bậc và màu bị cấm (số nhỏ ở dưới), đỉnh được họn được tô
Đỉnh TQ VN LAO MIA THAI CAM PHI MAL BRU SING INDO
Bậc
Màu 21 21 0 21 31 21 0 4 1 1 1
1
Bậc
Màu 21 21 0 21 21 21 0 0 01 01 01
1 1
Bậc
Màu 0 112 0 112 21 21 0 0 01 01 01
2 1 1
Bậc
Màu 0 112 0 012 0 112 0 0 01 01 01
2 1 2 1
Bậc
Màu 0 0 0 012 0 0123 0 0 01 01 01
2 3 1 3 2 4 1 1 2 2 2
Thuật giải tô màu greedy
Dùng màu thứ nhất tô cho một đỉnh bất kỳ và tất cả các đỉnh khác có thể tô được. Sau đó dùng màu thứ hai
tiếp tục tô cho các đỉnh còn lại theo cùng nguyên tắc … cho đến khi tất cả các đỉnh của đồ thị đã được tô
màu.
Đỉnh TQ VN LAO MIA THAI CAM PHI MAL BRU SING INDO
i=1 1 x x x 1 x 1 x 1 1 1
i=2 1 2 x 2 1 x 1 2 1 1 1
i=3 1 2 3 2 1 x 1 2 1 1 1
i=4 1 2 3 2 1 4 1 2 1 1 1
Bài tập 1: Bài toán giao thông
Hãy xác định quy tắc bật các đèn giao thông tại một bồn binh với 5 tuyến đường như hình
Bài tập 3: Bài toán hội thảo

Giả sử có một hội thảo khoa học với 9 chủ đề khác nhau ký hiệu là a, b, c, d, e, f, g, h, i. Mỗi chủ đề sẽ diễn
ra trong 1 buổi và các chủ đề sau không được diễn ra đồng thời: ae, bc, cd, ed, abd, ahi, bhi, dfi, dhi, fgh.
Hãy bố trí các chủ đề trên vào các buổi sao cho số buổi diễn ra là ít nhất.
Các tìm kiếm heuristic theo nguyên lý “tham lam”
Heuristic tham lam là heuristic thường được dùng để giải các bài toán “khó” (các bài toán không thể vét cạn),
ví dụ như bài toán sau:
Bài toán người du lịch (Traveling Saleman Problem - TSP):
Cho n thành phố trong đó hai thành phố bất kỳ đều có đường nối với nhau. Hãy xác định lộ trình cho người
du lịch, xuất phát từ thành phố thứ nhất, đi qua tất cả các thành phố còn lại, trở về thành phố xuất phát với
tổng đoạn đường là nhỏ nhất.
Thuật giải GTS1
Bước 1 [Khởi đầu]: TOUR = {}, COST = 0; v = 1.
Bước 2 [Thăm tất cả các thành phố]: Với k = 1 đến n, thực hiện bước 3.
Bước 3 [Chọn cạnh kế]:
o Chọn (v,w) là cạnh có chi phí nhỏ nhất tính từ v đến các đỉnh chưa sử dụng w.
o Gán TOUR = TOUR + {(v,w)}, COST = COST + C(v,w).
o Sử dụng đỉnh w cho bước kế tiếp: v = w.
Bước 4 [Chuyến đi hoàn thành]: Gán TOUR = TOUR + {(v,1)}
Bài tập 3: Giải bài toán người du lịch với 5 thành phố như hình 3, sử dụng thuật giải GTS1. Chu trình tìm được
có tốt nhất hay không?
Thuật giải GTS2
Nếu không bị ràng buộc bởi thành phố xuất phát, bài toán này có thể được giải tốt hơn bằng thuật giải GTS2:
xuất phát từ P (1<P<N) thành phố ban đầu, sử dụng GTS1 để tìm ra P chu trình cho người đưa thư và
chọn chu trình có tổng chi phí nhỏ nhất.
Bài tập 5 : Giải bài tập 4 với GTS2, xuất phát từ 3 thành phố tùy chọn.
Bài toán phân công công việc
Giả sử ta có:
o N máy: M1, M2, …, MN giống nhau.
o M công việc: V1, V2, …, VM độc lập với nhau. Công việc Vi cần thực hiện trong Ti giờ mới có thể hoàn
thành.

Hãy lập kế hoạch phân phối các công việc vào từng máy sao cho thời gian cần để hoàn tất M công việc là nhỏ
nhất.
Nguyên lý sắp thứ tự: Sắp xếp các công việc theo thứ tự giảm dần về thời gian.
Bài tập 5: Cho 3 máy M1, M2, M3 và 6 công việc với thời gian thực hiện tương ứng: T1 = 2, T2 = 5, T3 = 8,
T4 = 1, T5 = 5, T6 = 1.
Bài tập 6: Cho 2 máy M1, M2 và 5 công việc với thời gian thực hiện: T1 = 3, T2 = 3, T3 = 2, T4 = 2, T5 = 2.
Thuật giải Vương Hạo
Thuật giải Vương Hạo là một thuật giải khác đề chứng minh việc suy dẫn mệnh đề (có cùng mục đích với
Robinson):
Bước 1: Đưa bài toán cần chứng minh về dạng chuẩn:
KL1 , KL2⇒GT1 ,GT2 ,...,GTn ,..., KLm
Trong đó các GTi và j KL là các câu chỉ gồm các phép , , , . Lưu ý: dấu phẩy (,) ở vế trái tương đương ∧ ∨
với , ở vế∧ ⇔ hay ⇒không chứa phép phải tương đương với .∨
Bước 2: Nếu tồn tại một câu có phép ở đầu thì chuyển vế câu và loại bỏ phép
Bước 3: Thay các dấu ở vế trái và các dấu ở vế phải bằng dấu phẩy (,). Khi đó vế trái chỉ còn dấu và , ∧ ∨ ∨
về phải chỉ còn dấu và .∧
Bước 4:
Nếu dòng hiện hành có dạng:
thì thay bằng hai dòng:

Nếu dòng hiện hành có dạng:
thì thay bằng hai dòng:

Bước 5: Một dòng được chứng minh nếu tồn tại một mệnh đề ở cả hai vế.
Bước 6: Một dòng không thể tách cũng không thể chuyển vế dấu mà không có biến mệnh đề chung ở cả hai
vế thì không được chứng minh.
Lặp lại bước 2 đến 6 cho tới khi mọi dòng được chứng minh hay tồn tại một dòng không được chứng minh.
Bài toán ban đầu được chứng minh nếu mọi dòng tách ra từ nó được chứng minh.
Ví dụ: Cho các mệnh đề:
(A) Trời mưa

(B) Trời mưa cảm lạnh.∧ ⇒mắc mưa
(C) Mắc mưa
Ta sẽ chứng minh (D) “cảm lạnh” là mệnh đề đúng.
Bài toán được chuyển sang dạng chuẩn thành:
⇒ D, C ∨C ¬ ∨A ¬A, D
Chứng minh:
Tách dòng
A, C =¬1. A, > D
C, C =¬2. A,> D
3. A, D, C => D (được cm)
Chuyển vế:
1. A, C => D, A (được cm)
3. A, C => D, C

×