Tài liệu hướng dẫn thực hành Bài toán tô màu
Số trang: 2
Loại file: pdf
Dung lượng: 242.26 KB
Lượt xem: 20
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Thuật toánBước 1. Tìm đỉnh k có bậc cao nhất và chưa được tô. Bước 2. Nếu không tìm được k thì dừng, ngược lại qua bước 2. Bước 2. Tô màu m cho đỉnh k (m là màu nhỏ nhất chưa bị cấm khi tô đỉnh k). Bước 3. Hạ bậc các đỉnh có cung nối với k. Bước 4. Quay lại bước 1.
Nội dung trích xuất từ tài liệu:
Tài liệu hướng dẫn thực hành Bài toán tô màu Tài liệu hướng dẫn thực hành BÀI TOÁN TÔ MÀU Văn Chí Nam – Nguyễn Đức Hoàng Hạ Lu Boun Vinh – Nguyễn Anh Tuấn Khoa Công nghệ Thông tin, trường ĐH Khoa học Tự nhiên TP.HCM Phiên bản cập nhật ngày 18/10/2004 Thuật toán Bước 1. Tìm đỉnh k có bậc cao nhất và chưa được tô. Bước 2. Nếu không tìm được k thì dừng, ngược lại qua bước 2. Bước 2. Tô màu m cho đỉnh k (m là màu nhỏ nhất chưa bị cấm khi tô đỉnh k). Bước 3. Hạ bậc các đỉnh có cung nối với k. Bước 4. Quay lại bước 1. Cấu trúc dữ liệu đề nghị1 typedef struct { int Bac; int MauTo; int MauCam[MAXMAU]; }DINH; DINH D[MAX]; int n; int A[MAX][MAX]; Ý nghĩa: Bac: bậc của đỉnh MauTo: nếu MauTo = -1 thì đỉnh chưa được tô. Ngược lại đỉnh được tô bằngMauTo. MauCam[]: - MauCam[i] = 0: đỉnh không bị cấm tô màu i. - MauCam[i] = 1: đỉnh bị bị cấm tô màu i. D[]: Mảng các đỉnh. n: số đỉnh. A[][]: Ma trận kề biểu diễn quan hệ giữa các đỉnh. 1 Cấu trúc dữ liệu nêu trong bài viết này chỉ là cấu trúc dữ liệu đơn giản để cài đặt cơ bản thuật toán. Cóthể tự đề nghị cấu trúc dữ liệu thích hợp để giải quyết bài toán. 1 Tài liệu hướng dẫn thực hành Các hàm thực hiện chính Hàm khởi tạo các biến void KhoiTao(DINH D[MAX], int n) { Khởi tạo cho mỗi đỉnh i: Tính D[i].Bac D[i].MauTo = -1 D[i].MauCam[j] = 0 , j = 0 .. MAXMAU } Hàm tìm đỉnh bậc lớn nhất chưa tô int DinhBacMax(DINH D[MAX], int n) { Trả về đỉnh có bậc lớn nhất chưa tô. } Hàm tô màu 1 đỉnh void ToMau1Dinh(DINH D[MAX], int n, int i, intA[MAX][MAX]) { m là màu nhỏ nhất mà D[i].MauCam[m]=0 Tô màu đỉnh i: D[i].MauTo = m Hạ bậc và cấm tô màu m các đỉnh có quan hệ với i. } Hàm tô màu các đỉnh void ToMau(DINH D[MAX], int n, int A[MAX][MAX]) { KhoiTao(...) while (còn đỉnh chưa tô) { k = đỉnh chưa tô có bậc lớn nhất. Tô màu đỉnh k. } } Mở rộng- Áp dụng kết hợp với phương pháp Greedy.- Cải tiến cài đặt cho trường hợp đồ thị lớn (n>200).- Cài đặt giao diện cho ứng dụng. 2
Nội dung trích xuất từ tài liệu:
Tài liệu hướng dẫn thực hành Bài toán tô màu Tài liệu hướng dẫn thực hành BÀI TOÁN TÔ MÀU Văn Chí Nam – Nguyễn Đức Hoàng Hạ Lu Boun Vinh – Nguyễn Anh Tuấn Khoa Công nghệ Thông tin, trường ĐH Khoa học Tự nhiên TP.HCM Phiên bản cập nhật ngày 18/10/2004 Thuật toán Bước 1. Tìm đỉnh k có bậc cao nhất và chưa được tô. Bước 2. Nếu không tìm được k thì dừng, ngược lại qua bước 2. Bước 2. Tô màu m cho đỉnh k (m là màu nhỏ nhất chưa bị cấm khi tô đỉnh k). Bước 3. Hạ bậc các đỉnh có cung nối với k. Bước 4. Quay lại bước 1. Cấu trúc dữ liệu đề nghị1 typedef struct { int Bac; int MauTo; int MauCam[MAXMAU]; }DINH; DINH D[MAX]; int n; int A[MAX][MAX]; Ý nghĩa: Bac: bậc của đỉnh MauTo: nếu MauTo = -1 thì đỉnh chưa được tô. Ngược lại đỉnh được tô bằngMauTo. MauCam[]: - MauCam[i] = 0: đỉnh không bị cấm tô màu i. - MauCam[i] = 1: đỉnh bị bị cấm tô màu i. D[]: Mảng các đỉnh. n: số đỉnh. A[][]: Ma trận kề biểu diễn quan hệ giữa các đỉnh. 1 Cấu trúc dữ liệu nêu trong bài viết này chỉ là cấu trúc dữ liệu đơn giản để cài đặt cơ bản thuật toán. Cóthể tự đề nghị cấu trúc dữ liệu thích hợp để giải quyết bài toán. 1 Tài liệu hướng dẫn thực hành Các hàm thực hiện chính Hàm khởi tạo các biến void KhoiTao(DINH D[MAX], int n) { Khởi tạo cho mỗi đỉnh i: Tính D[i].Bac D[i].MauTo = -1 D[i].MauCam[j] = 0 , j = 0 .. MAXMAU } Hàm tìm đỉnh bậc lớn nhất chưa tô int DinhBacMax(DINH D[MAX], int n) { Trả về đỉnh có bậc lớn nhất chưa tô. } Hàm tô màu 1 đỉnh void ToMau1Dinh(DINH D[MAX], int n, int i, intA[MAX][MAX]) { m là màu nhỏ nhất mà D[i].MauCam[m]=0 Tô màu đỉnh i: D[i].MauTo = m Hạ bậc và cấm tô màu m các đỉnh có quan hệ với i. } Hàm tô màu các đỉnh void ToMau(DINH D[MAX], int n, int A[MAX][MAX]) { KhoiTao(...) while (còn đỉnh chưa tô) { k = đỉnh chưa tô có bậc lớn nhất. Tô màu đỉnh k. } } Mở rộng- Áp dụng kết hợp với phương pháp Greedy.- Cải tiến cài đặt cho trường hợp đồ thị lớn (n>200).- Cài đặt giao diện cho ứng dụng. 2
Tìm kiếm theo từ khóa liên quan:
phương thức xử lý thủ thuật máy tính hệ thống dữ liệu dữ liệu máy tính quản trị dữ liệuGợi ý tài liệu liên quan:
-
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 301 0 0 -
Đáp án đề thi học kỳ 2 môn cơ sở dữ liệu
3 trang 298 1 0 -
Làm việc với Read Only Domain Controllers
20 trang 287 0 0 -
PHÂN TÍCH THIẾT KẾ HỆ THỐNG XÂY DỰNG HỆ THỐNG ĐẶT VÉ TÀU ONLINE
43 trang 280 2 0 -
UltraISO chương trình ghi đĩa, tạo ổ đĩa ảo nhỏ gọn
10 trang 202 0 0 -
Sửa lỗi các chức năng quan trọng của Win với ReEnable 2.0 Portable Edition
5 trang 201 0 0 -
Giáo Trình tin học căn bản - ĐH Marketing
166 trang 196 0 0 -
Hướng dẫn cách khắc phục lỗi màn hình xanh trong windows
7 trang 195 0 0 -
Giáo trình Bảo trì hệ thống và cài đặt phần mềm
68 trang 193 0 0 -
Tải video YouTube chất lượng gốc
4 trang 192 0 0