Song song hóa thuật toán tô màu đồ thị

Một phần của tài liệu Xử lý song song áp dụng đối với một số bài toán trong lý thuyết đồ thị (Trang 66 - 69)

Ngoài thuật toán Welch – Powell tuần tự đã đưa ra trong chương 2, để giải quyết nhanh bài toán tô màu, ta có thể tạo ra một tiến trình cho từng cách tô màu và sau đó các tiến trình phải kiểm tra xem cách tô đó có hợp lệ hay không.

Giả sử V = n , hay mô tảV = {v v0, ,...,1 vn-1} và ma trận liền kề A của đồ thị G có cấp n ´ n . Ta sẽ sử dụng n tiến trình trong đó tiến trình P i( )k sẽ thực hiện tô mầu với số hiệu ik cho đỉnh v kk( = 0,1,...,n - 1), với 1£ ik £ c. Như vậy ta có c´ n tiến trình để thực hiện việc tô mầu cho n đỉnh.

Bắt đầu tất cả các tiến trình gán giá trị 1 vào bảng đại diện có c´ n phần tử. Mỗi tiến trình sẽ phải thực hiện nhiều nhất là n´ (n - 1) phép so sánh màu của hai đỉnh kề nhau để kiểm tra xem chúng có cùng màu hay không. Nếu A j k[ , ]= 1 và

j k

i = i thì cách tô màu đó không hợp lệ vì hai đỉnh v vj, k liền kề nhau mà lại bị tô cùng màu. Nếu phát hiện ra cách tô màu không hợp lệ thì đặt bảng đại diện về 0. Sau khi thực hiện xong tất cả các phép đối chiếu mà bảng đại diện vẫn giữ nguyên giá trị 1 thì cách tô màu đó là hợp lệ.

Thuật toán tô màu đồ thị song song trên PRAM được xây dựng như sau:

Procedure Tomau_Pram ; Begin spawn( 0 1 1 ( , ,..., n ) P i i i - ), 0 ik c, 0 k c forall ( 0 1 1 ( , ,..., n ) P i i i - ) do Begin candidate[ 0, ,...,1 n 1 i i i - ] = 1; for (j = 0; j < n; j++) for (k = 0; k < n; k++) if (A[j][k] ==1 &&ij = = ik) candidate[i i0, ,...,1 in-1] = 0;

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

valid = sum(candidate); /* Tính tổng */ if (valid > 0)

printf(“Valid coloring exists!\n”); else

printf(“Valid coloring does notexist!\n”); end

end

Ví dụ: cho trước đồ thị có 3 đỉnh và 2 màu đơn giản

Cách tô màu Giá trị bắt đầu Sau khi kiểm tra

Hình 3.2 Thuật toán tô màu đồ thị song song trên PRAM

Đánh giá độ phức tạp của thuật toán:

Hiển nhiên để tạo ra c´ n , ta cần log(c´ n ) đơn vị thời gian. Mỗi tiến trình phải thực hiện hai vòng lặp, nghĩa là thực hiện 2

n phép so sánh. Như vậy độ phức tạp thời gian của thuật toán là

2 2 ( ) (log( )) ( ) ( ) O T = O c´ n + O n » O n 0, 0, 0 0, 0, 1 0, 1, 0 0, 1, 1 1, 0, 0 1, 0,1 1, 1, 0 1, 1, 1 1 1 1 1 1 1 1 1 0 0 1 0 0 1 0 0 2 +

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

PHẦN KẾT LUẬN

Nội dung chính của luận văn đặt vấn đề tìm hiểu một số thuật toán xử lý song song giải quyết một số bài toán tối ưu trên mô hình đồ thị. Các kết quả chính của luận văn bao gồm:

1. Trình bày tổng quan về một số vấn đề trong lý thuyết xử lý song song, các

mô hình xử lý, khái niệm về thuật toán và độ phức tạp của thuật toán song song, các ngôn ngữ lập trình song song.

2. Trình bày các khái niệm cơ bản về mô hình đồ thị, một số bài toán tối ưu

trên mô hình đồ thị và một số thuật toán dạng tuần tự giải quyết các bài toán tối ưu như thuật toán Kruskal, Prim giải bài toán tìm cây khung ngắn nhất, thuật toán Dijkstra, Floyd giải quyết bài toán tìm đường đi ngắn nhất. Lý thuyết về bài toán tô mầu đồ thị cùng thuật toán tuần tự.

3. Trên cơ sở các thuật toán tuần tự đã có. Luận văn đưa ra một số phương án

song song hóa các thuật toán tuần tự để giải quyết các bài toán trên chậy trên máy tính có nhiều bộ xử lý. Đối với mỗi thuật toán đều đưa ra đầy đủ việc đánh giá độ

phức tạp của thuật toán song song để thấy rõ tính hiệu quả của vấn đề xử lý song song.

Hướng phát triển tiếp theo của luận văn là tiếp tục nghiên cứu và đề xuất các thuật toán song song đối với các lớp bài toán khác trong toán học và tin học. Tiến hành thử nghiệm các thuật toán trên các hệ thống tính toán song song.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

TÀI LIỆU THAM KHẢO

[1] Nguyễn Đức Nghĩa, Nguyễn Tô Thành, Toán rời rạc, Nhà xuất bản Giáo dục, 1999.

[2] Rosen K.H. Discrete Mathematíc and its Applications, McGraw-Hill Book Copany, 1999.

[3] Joseph JaJa, An Introduction to Parallel Algorithms, Addison - Wesley, 1992. [4] K. Mani Changdy, J. Misra, Parallel Program Design, Addison-Wesley, 1989. [5] Michael J. Quinn, Parallel Computing Theory and Practice, MaGraw-Hill,

1994.

[6] C. A. R. Hoare, Communicating Sequencatial Processes, Prentice Hall, 1985. [7] Barry Wilkingson, Michael Allen, Parallel Programming, Technigues and

Applications Using Networked Workstations and Parallel Computers, Prentice Hall New Jersey, 1999.

[8] M. Sasikumar, Dinesh Shikhare, P. Ravi Prakash, Introduction to Parallel Processing, Prentice - Hall, 2000.

[9] Seyed H. Roosta, Parallel Processing and Parallel Algorithms, Theory and Computation, Springer 1999.

[10] Shaharuddin Salleh, Albert Y. Zomaya, Scheduling in Parallel Computing Systems, Kluwer Academic Publisher, 1999.

Một phần của tài liệu Xử lý song song áp dụng đối với một số bài toán trong lý thuyết đồ thị (Trang 66 - 69)

Tải bản đầy đủ (PDF)

(69 trang)