chu trình hamilton tổng quát trong đồ thị vô hướng

66 854 0
chu trình hamilton tổng quát trong đồ thị vô hướng

Đ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

i Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG NGUYỄN VĂN THÁI CHU TRÌNH HAMILTON TỔNG QUÁT TRONG ĐỒ THỊ VÔ HƢỚNG Chuyên ngành: Khoa học máy tính Mã số: 60.48.01 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH NGƯỜI HƯỚNG DẪN KHOA HỌC: GS.TS: ĐẶNG QUANG Á Thái Nguyên – 2014 ii Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ MỤC LỤC MỤC LỤC i LỜI CAM ĐOAN iv LỜI CẢM ƠN v DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT vi DANH MỤC HÌNH vii MỞ ĐẦU 1 Chƣơng I: MỘT SỐ KHÁI NIỆM CƠ BẢN TRONG LÝ THUYẾT ĐỒ THỊ VÀ LÝ THUYẾT CÁC BÀI TOÁN NP-C 4 1.1. Lý thuyết đồ thị 4 1.1.1. Các thuật ngữ cơ bản 4 1.1.2. Đường đi, chu trình, đồ thị liên thông 10 1.1.3. Biểu diễn đồ thị trên máy tính 13 1.2. Lý thuyết lớp các bài toán P và NP 17 1.2.1. Khái niệm các loại thời gian tính 17 1.2.2. Khái niệm phép quy dẫn đa thức 18 1.2.3. Lớp bài toán P 18 1.2.3. Lớp bài toán NP. 19 1.2.4. Lớp bài toán NP-đầy đủ (NP-Complete). 19 1.3. Kết luận 20 Chƣơng II: CHU TRÌNH HAMILTON 21 2.1. Chu trình Hamilton: Định nghĩa, tính chất và các điều kiện đủ 21 2.1.1. Một số khái niệm 21 2.1.2. Một số tính chất của đồ thị Hamilton 22 2.2. Thuật toán tìm chu trình Hamilton 26 2.3. Đồ thị Hamilton tối đại 29 2.3.1. Khái niệm 30 2.3.2. Thuật toán xây dựng đồ thị Hamilton tối đại n ≥ 4 đỉnh [1] 30 2.3. Kết luận 31 Chƣơng III: CHU TRÌNH TRỘI 32 3.1. Khái niệm chu trình trội và các điều kiện đủ 32 3.1.1. Khái niệm: 32 3.1.2. Một số điều kiện đủ của chu trình trội 33 3.1.3. Chu trình trội trong lớp đồ thị 2-liên thông thỏa mãn  (G) . 36 iii Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 3.2. Thuật toán xác định chu trình trội 40 3.2.1. Thuật toán: (Xác định đồ thị G có chu trình trội hay không?) 41 3.2.2. Thuật toán 2.1: (kiểm tra đồ thị liên thông) 42 3.2.3. Thuật toán 2.2: (kiểm tra đồ thị 2-liên thông) 42 3.2.4. Thuật toán 3.1: Kiểm tra đồ thị G có thuộc lớp K 1 hay không? 43 3.2.5. Thuật toán 3.2: Kiểm tra đồ thị G có thuộc lớp K 2 hay không? 43 3.2.6. Thuật toán 3.3: Kiểm tra đồ thị có thuộc K 3 hay không? 44 3.2.7. Thuật toán 3.4: Kiểm tra đồ thị G có thuộc lớp K 4 hay không? 45 3.2.8. Thuật toán 3.5: Kiểm tra đồ thị G có thuộc lớp K 5 hay không? 45 3.3. Cài đặt thử nghiệm: 47 3.3.1. Phát biểu bài toán 47 3.3.2. Công cụ lựa chọn 47 3.3.3. Xây dựng, phát triển chương trình 47 3.3.4. Giao diện chương trình 51 3.3.5. Thử nghiệm và đánh giá 55 3.4. Kết luận: 55 PHẦN KẾT LUẬN 56 TÀI LIỆU THAM KHẢO 57 iv Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ LỜI CAM ĐOAN Tôi xin cam đoan những kết quả nêu trong luận văn là những kết quả tìm hiểu, nghiên cứu của tôi dưới sự hướng dẫn của GS.TS: Đặng Quang Á. Mọi trích dẫn sử dụng trong báo cáo này đều được ghi rõ nguồn tài liệu tham khảo theo đúng quy định. Tác giả Nguyễn Văn Thái v Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ LỜI CẢM ƠN Trước tiên, tôi xin được gửi lời cảm ơn đến tất cả quý thầy cô đã giảng dạy trong chương trình đào tạo Cao học chuyên ngành Khoa học máy tính K11 do trường Đại học Công nghệ thông tin và truyền thông – Đại học Thái Nguyên tổ chức đào tạo, những người đã truyền đạt cho tôi những kiến thức hữu ích làm cơ sở cho tôi thực hiện tốt luận văn này. Tác giả xin chân thành cảm ơn các thầy cô, những người đã tận tình hướng dẫn và truyền đạt những kinh nghiệm quý báu trong học tập và nghiên cứu và tận tình giúp đỡ tôi. Đặc biệt tôi xin bày tỏ lòng cảm ơn xâu sắc tới GS.TS. Đặng Quang Á, người đã tận tình hướng dẫn, quan tâm, đóng góp ý kiến cho tôi trong xuất thời gian thực hiện luận văn. Mặc dù trong quá trình thực hiện luận văn có giai đoạn không được thuận lợi nhưng những gì Thầy đã hướng dẫn, chỉ bảo đã cho tôi nhiều kinh nghiệm trong thời gian thực hiện luận văn. Sau cùng tôi xin gửi lời biết ơn sâu sắc đến gia đình đã luôn tạo điều kiện tốt nhất cho tôi trong suốt quá trình học cũng như thực hiện luận văn. Do thời gian có hạn và kinh nghiệm nghiên cứu khoa học chưa nhiều nên luận văn còn nhiều thiếu sót, rất mong nhận được ý kiến góp ý của Thầy/Cô và các anh chị học viên. Thái Nguyên, tháng 9 năm 2014 Nguyễn Văn Thái vi Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT Ký hiêu Từ viết tắt Diễn giải V Tập đỉnh của đồ thị E Tập cạnh của đồ thị G=(V,E) Đồ thị G với tập đỉnh V, tập cạnh E |V|, |V(G)| Số đỉnh của đồ thị |E|, |E(G)| Số đỉnh của đồ thị deg(v), degG(v) Bậc của đỉnh v của đồ thị G , (G) Bậc nhỏ nhất của các đỉnh trong G K n Đồ thị đầy đủ n đỉnh C n Đồ thị vòng n đỉnh W n Đồ thị bánh xe n đỉnh W(G) Số thành phần liên thông của G k-liên thông Đồ thị có chỉ số liên thông bằng k k(G) Chỉ số liên thông của đồ thị G P Deterministic Polynomial NP Nondeterministic Polynomial NP-C NP-Complete HC Hamilton cycle DC Dominating cycle NTM Nondeterministic Turing Machine DTM Deterministic Turing Machines  Phép quy dẫn đa thức K Lớp đồ thị đặc biệt K K 1 , K 2 , K 3 , K 4 , K 5 Các đồ thị đặc biệt K 1 , K 2 , K 3 , K 4 , K 5 Hợp của s đồ thị đầy đủ lạ nhau Hợp của s đồ thị đầy đủ lạ nhau K n vii Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ DANH MỤC HÌNH Trang Hình 1.1. Đồ thị vô hướng 5 Hình 1.2. Đồ thị vô hướng và các bậc của đỉnh 5 Hình 1.3. Một số đồ thị đầy đủ 6 Hình 1.4. Đồ thị vòng 7 Hình 1.5. Đồ thị bánh xe 7 Hình 1.6. Đồ thị hai phía 8 Hình 1.7. Đồ thị G 1 đẳng cấu với G 2 8 Hình 1.8. Đồ thị G và đồ thị con G’ 9 Hình 1.9. Đơn đồ thị G 1 , G 2 và đồ thị G = G 1  G 2 9 Hình 1.10. Đường đi trên đồ thị có độ dài 4 10 Hình 1.11. Đồ thị G liên thông, đồ thị G’ không liên thông 11 Hình 1.12. Đồ thị liên thông G và đồ thị H gồm 3 thành phần liên thông H 1 , H 2 , H 3 11 Hình 1.13. Đồ thị 4-liên thông 12 Hình 1.14. Đồ thị có k(G) = 2 và k(H) = 3 13 Hình 1.15. Đồ thị và ma trận kề 14 Hình 1.16. Đồ thị và ma trận trọng số 15 Hình 1.17. Đồ thị và danh sách cạnh 16 Hình 1.18. Đồ thị và danh sách kề tương ứng 17 Hình 2.1. Đồ thị có đường đi Hamilton, không có chu trình Hamilton 21 Hình 2.2. Đồ thị Hamilton 22 Hình 2.3 Đồ thị K 5 có chu trình Hamilton (a→b→c→d→e→a) 23 Hình 2.4. Đồ thị có 8 đỉnh, mỗi đỉnh có bậc ≥ n/2 24 viii Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ Hình 2.5. Đồ thị G gồm 5 đỉnh, 6 cạnh 28 Hình 2.6. Cây liệt kê chu trình Hamilton theo thuật toán quay lui 28 Hình 2.7. Đồ thị và cây liệt kê chu trình Hamilton của nó theo thuật toán quay lui. 29 Hình 2.8. Đồ thị thị hamilton tối đại G 3 30 Hình 3.1. Đồ thị có duy nhất một chu trình Hamilton, nhưng có nhiều chu trình Dominating 32 Hình 3.2. Đồ thị không có chu trình Hamilton, có duy nhất mội chu trình Dominating 32 Hình 3.3. Đồ thị 2-liên thông với chu trình Dominating dài nhất độ dài 4 33 Hình 3.4. Đồ thị G có chu trình dài nhất (độ dài 6) là chu trình Dominating 34 Hình 3.5. Đồ thị G và G’ được xây dựng từ đồ thị G 35 Hình 3.6. Đồ thị K 1 37 Hình 3.7. Đồ thị K 2 38 Hình 3.8. Đồ thị K 3 38 Hình 3.9. Đồ thị K 4 39 Hình 3.10. Đồ thị K 5 40 Hình 3.11. Giao diện khi bắt đầu chạy chương trình 51 Hình 3.12. Form nạp và lưu đồ thị từ tập tin có sẵn chứa ma trận kề của đồ thị 52 Hình 3.13. Form kết quả kiểm tra đồ thị 52 Hình 3.14. Đồ thị không thỏa mãn điều kiện kiểm tra 53 Hình 3.15. Form kiểm tra tính liên thông của đồ thị 53 Hình 3.16. Form kiểm tra đồ thị với số đỉnh lớn. 54 Hình 3.17. Form thông tin về chương trình. 54 1 Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ MỞ ĐẦU 1. Đặt vấn đề: Lý thuyết đồ thị là một lĩnh vực đã được nghiên cứu từ những năm đầu của thế kỷ 18 bởi nhà toán học Leonhard Euler người Thụy sĩ. Đồ thị được sử dụng để giải nhiều bài toán trong nhiều lĩnh vực khác nhau, trong tin học là một trường hợp cụ thể. Trong những năm 70 của thế kỷ 20, thế giới được chứng kiến sự phát triển hết sức nhanh chóng và rộng lớn của lý thuyết đồ thị, trong số đó có một số lượng đáng kể các công trình nghiên cứu cấu trúc của các chu trình trong đồ thị, đặc biệt là chu trình Hamilton và còn nhiều vấn đề mở. Nghiên cứu về cấu trúc chu trình trong đồ thị giúp chúng ta giải quyết tốt các bài toán tối ưu trong đời sống. Chẳng hạn, trong lĩnh vực chế tạo robot thám hiểm, chuyển gửi tín hiệu hình ảnh qua vệ tinh, bài toán phân tích hệ thống tương tác và tiện ích các website, Trong số các cấu trúc đồ thị thì chu trình Hamilton đóng vai trò đặc biệt quan trọng. Đó là chu trình đi qua tất cả các đỉnh của đồ thị, mỗi đỉnh đúng một lần. Bài toán về chu trình Hamilton là bài toán xác định xem liệu đồ thị có chứa chu trình Hamilton không và tìm ra các chu trình đó. Bài toán này đã được chứng minh là NP-C (NP- đầy đủ). Chính vì thế không tồn tại các thuật toán đa thức giải nó, và để giải quyết bài toán này nhiều thuật toán gần đúng đã được nghiên cứu. Một sự mở rộng của chu trình Hamilton là chu trình trội (Dominating cycle). Bài toán này cũng đã được chứng minh là NP-C. 2 Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ Việc tìm hiểu về các chu trình Hamilton và chu trình trội, các dấu hiệu nhận biết chúng cùng thuật toán xác định, cải tiến và phát triển chúng là việc làm có ý nghĩa khoa học và thực tiễn. Đây chính là mục đích của luận văn này. 2. Mục tiêu của luận văn: Đối tượng nghiên cứu của luận văn là các vấn đề về cấu trúc chu trình liên quan đến chu trình Hamilton và chu trình trội trong đồ thị. 3. Phạm vi nghiên cứu Luận văn tập trung nghiên cứu các kiến thức có liên quan, các cơ sở lý thuyết như: Lý thuyết về đồ thị và lý thuyết các bài toán NP-C, chu trình Hamilton và chu trình trội. 4. Nhiệm vụ nghiên cứu - Tìm hiểu những kiến thức tổng quan về đồ thị và lý thuyết các bài toán NP-C. - Tìm hiểu về đồ thị Hamilton và các mở rộng - Tìm hiểu các thuật toán tìm chu trình Hamilton - Xây dựng thuật toán đa thức xác định sự tồn tại của chu trình trội trên đồ thị cho trước. - Cài đặt thuật toán. 3. Tổ chức luận văn: Luận văn bao gồm phần mở đầu, 3 chương nội dung, phần kết luận, phần phụ lục và tài liệu tham khảo. Chương I: Một số kiến thức cơ bản trong lý thuyết đồ thị và lý thuyết các bài toán NP-C Chương II: Chu trình Hamilton [...]... Phần đầu tìm hiểu về chu trình Hamilton, một số thuật toán xác định chu trình Hamilton Phần cuối tìm hiểu về chu trình Hamilton tối đại, cách xây dựng đồ thị Hamilton tối đại n đỉnh Chương III: Chu trình trội Phần đầu trình bày những hiểu biết về chu trình trội trong đồ thị vô hướng, chứng minh bài toán xác định có tồn tại chu trình trội trong đồ thị G cho trước là NP-C Phần sau trình trình bày thuật toán... lớp đồ thị đặc biệt, đó là đồ thị Hamilton 2.1 Chu trình Hamilton: Định nghĩa, tính chất và các điều kiện đủ 2.1.1 Một số khái niệm Định nghĩa 2.1 Trong đồ thị G = (V,E) đường đi qua tất cả các đỉnh của đồ thị mỗi đỉnh đúng một lần được gọi là đường đi Hamilton Ví dụ: Đồ thị có đường đi Hamilton là a  b  c  d a b d c Hình 2.1 Đồ thị có đường đi Hamilton, không có chu trình Hamilton Định nghĩa 2.2 Chu. .. một chu trình Hamilton của G c) Nếu một đỉnh có bậc lớn hơn 2 và hai cạnh liền kề của nó nằm trên một chu trình Hamilton thì các cạnh còn lại của nó không nằm trên chu trình Hamilton đó Một số điều kiện đủ về sự tồn tại đƣờng đi Hamilton và chu trình Hamilton Định lý 2.2 (Định lý Rédei) [2] Đồ thị đầy đủ vô hướng Kn với n ≥ 3 là đồ thị Hamilton Chứng minh: Chúng ta có thể xây dựng chu trình Hamilton trong. .. hai đồ thị G1 và G2 là đẳng cấu với nhau 1.1.1.4 Các đồ thị mới từ đồ thị cũ Định nghĩa 1.12 Đồ thị con của đồ thị G = (V,E) là đồ thị G’ = (V’,E’) trong đó V’  V và E’  E Ký hiệu G’  G a a e e b d d c c Hình 1.8 Đồ thị G và đồ thị con G’ Định nghĩa 1.13 Hợp của hai đồ thị G1 = (V1,E1) và G2 = (V2,E2) là một đơn đồ thị có tập các đỉnh là V1  V2 và tập các cạnh E1  E2 Ta ký hiệu hợp của các đồ thị. .. thuyết đồ thị như: Khái niệm đồ thị, đồ thị đầy đủ, đồ thị liên thông, cách biểu diễn đồ thị trên máy tính Mặt khác chúng ta cũng đã tìm hiểu các kiến thức cơ bản về thời gian tính, phép quy dẫn đa thức, lớp các bài toán P, NP và NP-C Trong chương tiếp theo chúng ta sẽ tập chung tìm hiểu về chu trình Hamilton, thuật toán xác định chu trình Hamilton và đồ thị Hamilton tối đại cùng thuật toán xây dựng đồ thị. .. Định nghĩa 2.2 Chu trình bắt đầu từ một đỉnh v nào đó qua tất cả các đỉnh còn lại mỗi đỉnh đúng một lần rồi quay trở về v được gọi là chu trình Hamilton Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 22 Định nghĩa 2.3 Đồ thị G được gọi là đồ thị Hamilton nếu nó chứa chu trình Hamilton và gọi là đồ thị nửa Hamilton nếu nó có đường đi Hamilton Rõ ràng đồ thị Hamilton là nửa Hamilton, nhưng điều... không còn đúng Ví dụ về đồ thị Hamilton: Hình 2.2 Đồ thị Hamilton Bài toán chu trình Hamilton (HC) được phát biểu như sau: Instance: Một đồ thị G = (V,E) Question: G có chu trình Hamilton hay không? Bài toán HC đã được Karp (1972, [15]) chứng minh là bài toán NP-C (NP-đầy đủ), chính vì thế mà không tồn tại thuật toán đa thức xác định sự tồn tại của chu trình Hamilton trong đồ thị cho trước Cho đến nay... thông Định nghĩa 1.20 (Đồ thị liên thông) Một đồ thị vô hướng được gọi là liên thông nếu có đường đi giữa mọi cặp đỉnh phân biệt của đồ thị - Đồ thị vô hướng G = (V,E) được gọi là liên thông nếu với bất kỳ hai đỉnh u,v E luôn tìm được đường đi từ đỉnh u tới đỉnh v G G’ Hình 1.11 Đồ thị G liên thông, đồ thị G’ không liên thông Định lý 1.2 Giữa mọi cặp đỉnh phân biệt của một đồ thị vô hướng liên thông luôn... G là đồ thị k-liên thông nếu G là đồ thị liên thông và nếu như bỏ đi một số t < k đỉnh tùy ý và các cạnh liên thuộc với các đỉnh đó ta vẫn thu được đồ thị liên thông Nhận xét: - Mọi đồ thị liên thông đều là 1-liên thông - Đồ thị đầy đủ Kn là (n-1)-liên thông - Một đồ thị là k-liên thông thì cũng là h-liên thông với mọi 0 < h < k Hình 1.13 Đồ thị 4-liên thông Ví dụ: Đồ thị trong hình 1.12 là đồ thị 4-liên... 1.10 Đường đi trên đồ thị có độ dài 4 1.1.2.2 Chu trình Định nghĩa 1.17 Chu trình là một đường đi có đỉnh đầu và đỉnh cuối trùng nhau Định nghĩa 1.18 Chu trình đơn: là một chu trình mà đường đi của nó không có cạnh nào lặp lại Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 11 Định nghĩa 1.19 Trong một đồ thị G, chu trình có độ dài lớn nhất gọi là chu trình dài nhất 1.1.2.3 Đồ thị liên thông – . Hình 1.1. Đồ thị vô hướng 5 Hình 1.2. Đồ thị vô hướng và các bậc của đỉnh 5 Hình 1.3. Một số đồ thị đầy đủ 6 Hình 1.4. Đồ thị vòng 7 Hình 1.5. Đồ thị bánh xe 7 Hình 1.6. Đồ thị hai phía. 17 Hình 2.1. Đồ thị có đường đi Hamilton, không có chu trình Hamilton 21 Hình 2.2. Đồ thị Hamilton 22 Hình 2.3 Đồ thị K 5 có chu trình Hamilton (a→b→c→d→e→a) 23 Hình 2.4. Đồ thị có 8 đỉnh,. 29 Hình 2.8. Đồ thị thị hamilton tối đại G 3 30 Hình 3.1. Đồ thị có duy nhất một chu trình Hamilton, nhưng có nhiều chu trình Dominating 32 Hình 3.2. Đồ thị không có chu trình Hamilton, có

Ngày đăng: 27/12/2014, 18:26

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan