Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 65 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
65
Dung lượng
1,32 MB
Nội dung
ĐẠI HỌC THÁI NGUN THƠNG PHÙNG DƢƠNG HỒNG MỘT SỐ THUẬT TOÁN GIẢI BÀI TOÁN PHỦ ĐỈNH L Thái Nguyên - 20 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ i LỜI CAM ĐOAN Tơi xin cam đoan rằng, cơng trình nghiên cứu tơi có giúp đỡ tận tình thầy giáo hướng dẫn thầy Viện CNTT, thầy, cô giáo Trường Đại học Công nghệ Thông tin Truyền thông, hỗ trợ đồng nghi Các nội dung nghiên cứu kết đề tài hoàn toàn trung thực Trong luận văn, tơi có tham khảo đến số tài liệu số tác giả liệt kê phần Tài liệu tham khảo cuối luận văn Thái Nguyên, tháng năm 2014 Tác giả Phùng Dƣơng Hồng Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ ii LỜI CẢM ƠN Để hồn thành chương trình cao học viết luận văn này, nhận hướng dẫn, giúp đỡ góp ý nhiệt tình q thầy cô trường Đại học Công nghệ Thông tin Truyền thông - Đại học Thái Nguyên Trước hết, xin chân thành cảm ơn đến quý thầy cô trường Đại học Công nghệ thông tin truyền thông - Đại học Thái Nguyên, thầy cô Viện CNTT, đặc biệt thầy tận tình dạy bảo cho suốt thời gian học tập trường Tôi xin gửi lời biết ơn sâu sắc đến GS.TS Đặng Quang Á dành nhiều thời gian tâm huyết hướng dẫn nghiên cứu giúp tơi hồn thành luận văn tốt nghiệp Nhân đây, xin chân thành cảm ơn Ban giám hiệu trường Đại học Công nghệ Thông tin Truyền thông - Đại học Thái Nguyên tạo nhiều điều kiện để học tập hồn thành tốt khóa học Mặc dù tơi có nhiều cố gắng hồn thiện luận văn tất nhiệt tình lực mình, nhiên khơng thể tránh khỏi thiếu sót, tơi mong nhận đóng góp q báu q thầy cô bạn Lời cảm ơn sau tơi xin dành cho gia đình người bạn hết lòng quan tâm tạo điều kiện tốt để tơi hồn thành luận văn tốt nghiệp này! Tôi xin chân thành cảm ơn! Thái Nguyên, tháng năm 2014 Học viên thực Phùng Dƣơng Hoàng Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ iii MỤC LỤC Trang Trang bìa phụ Lời cam đoan i Lời cảm ơn ii Mục lục iii Danh mục hình v LỜI NÓI ĐẦU Chƣơng 1: CÁC PHƢƠNG PHÁP HEURISTIC GIẢI CÁC BÀI TOÁN NP-C 1.1 Giới thiệu chung toán NP-C 1.1.1 Lớp toán P 1.1.2 Lớp toán NP 1.1.3 Lớp toán NP-đầy đủ (NP-Complete) 1.2 Một số toán NP-C lý thuyết đồ thị, quy hoạch nguyên 1.3 Khái niệm chung phương pháp Heuristic 1.4 Một số phương pháp Heuristic giải toán NP-C 1.4.1 Thuật toán tham lam 1.4.1.1 Giới thiệu chung 1.4.1.2 Thuật toán cho phương pháp tham lam 10 1.4.1.3 Ví dụ áp dụng 11 1.4.1.4 Đánh giá 14 1.4.2 Giới thiệu mạng nơ-ron 14 1.4.2.1 Lịch sử phát triển 14 1.4.2.2 Mơ hình mạng nơ-ron nhân tạo 15 1.4.2.3 Phạm vi ứng dụng mạng nơ-ron 17 1.4.2.4 Mạng nơ-ron Hopfield 18 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ iv Chƣơng 2: BÀI TOÁN PHỦ ĐỈNH VÀ MỘT SỐ THUẬT TOÁN GIẢI BÀI TOÁN PHỦ ĐỈNH 26 2.1 Giới thiệu toán phủ đỉnh 26 2.2 Một số thuật toán giải toán phủ đỉnh 27 2.2.1 Thuật toán tham 27 2.2.2 Thuật toán Dharwadker 32 Chƣơng 3: MÔ PHỎNG SỐ 39 3.1 Lựa chọn phương pháp sử dụng 39 3.2 Xây dựng chương trình 39 3.3 Phân tích đánh giá kết 46 KẾT LUẬN 58 TÀI LIỆU THAM KHẢO 59 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ v DANH MỤC CÁC HÌNH Trang Hình 1.1: Mối quan hệ lớp P NP Hình 1.2 Hình tốn tập độc lập Hình 1.3: Mơ hình mạng Hopfield 19 Hình 1.4: Lời giải tốt xấu tốn sánh cặp có trọng 24 Hình 2.1: Thí dụ phủ đỉnh 26 Hình 2.2: Thí dụ tốn phủ đỉnh theo phương pháp tham (n=7) 28 Hình 2.3: Thí dụ toán phủ đỉnh theo phương pháp tham (n=13) 30 Hình 2.4: Thí dụ tốn phủ đỉnh theo Dharwadker (n=12) 34 Hình 3.1: Chương trình tìm phủ đỉnh đồ thị n=12 45 Hình 3.2: Phủ đỉnh đồ thị n=4 47 Hình 3.3: Phủ đỉnh đồ thị n=6 49 Hình 3.4: Phủ đỉnh đồ thị n=6 50 Hình 3.5: Phủ đỉnh đồ thị n=7 51 Hình 3.6: Phủ đỉnh đồ thị n=8 53 Hình 3.7: Phủ đỉnh đồ thị n=8 54 Hình 3.8: Phủ đỉnh đồ thị n=10 56 Hình 3.9: Phủ đỉnh đồ thị n=11 57 Số hóa Trung tâm Học liệu – Đại học Thái Ngun http://www.lrc-tnu.edu.vn/ LỜI NĨI ĐẦU Trong thực tế có nhiều toán phức tạp thuộc lớp toán NP- C tốn tối ưu có ràng buộc, có nhiều cơng trình nghiên cứu để giải tốn đó, có nhiều tốn lý thuyết đồ thị như: toán phủ đỉnh, tốn tập độc lập, tốn tơ mầu đồ thị, toán người bán hàng rong, toán phẳng hóa đồ thị, nhiều tốn quy hoạch ngun như: tốn ba lơ, tốn đóng thùng, Vì tốn loại NP-C có độ phức tạp hàm mũ nên liệu đầu vào lớn nên nói chung người ta thu lời giải tốn buộc phải tìm lời giải gần Có nhiều thuật tốn heuristic với thời gian đa thức để tìm nghiệm xấp xỉ tốn NP-C Những năm gần giới đưa số phương pháp thuật giải nhằm giải toán tối ưu thuộc lớp NP-C áp dụng rộng rãi lĩnh vực Công nghệ thông tin Việc nghiên cứu áp dụng thành tựu vào việc phân tích, thiết kế, giải số toán vấn đề nóng quan tâm Nhận thức vấn đề có gợi ý, định hướng GS.TS Đặng Quang Á em mạnh dạn nghiên cứu đề tài: "Một số thuật toán giải toán phủ đỉnh" Nội dung luận văn gồm có ba chương: Chương giới thiệu chung toán NP-C; số toán NP-C lý thuyết đồ thị, quy hoạch nguyên; giới thiệu số phương pháp Heuristic giải toán NP-C Chương hai giới thiệu toán phủ đỉnh số phương pháp giải toán phủ đỉnh Chương ba ứng dụng Qua luận văn em xin chân thành cảm ơn: GS.TS Đặng Quang Á Viện Công nghệ Thông tin tận tình giúp đỡ, động viên, định hướng, Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ hướng dẫn em nghiên cứu hoàn thành luận văn Em xin cảm ơn thầy cô giáo viện Công nghệ thông tin, thầy cô giáo Trường Đại học Công nghệ Thông tin Truyền thông - Đại học Thái Nguyên, giảng dạy giúp đỡ em hai năm học vừa qua, cảm ơn giúp đỡ nhiệt tình bạn đồng nghiệp Xin chân thành cảm ơn! Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ Chƣơng CÁC PHƢƠNG PHÁP HEURISTIC GIẢI CÁC BÀI TOÁN NP-C 1.1 Giới thiệu chung toán NP-C 1.1.1 Lớp toán P Định nghĩa 1.1: Ta gọi lớp P lớp toán định giải máy tính Turing đơn định thời gian đa thức Một ngơn ngữ L thuộc lớp P có hàm đa thức T(n) cho L=L(M) với máy Turing đơn định có độ phức tạp thời gian T(n) Như vậy, lớp P gần tương ứng với lớp toán định giải thời gian đa thức, mặt lý thuyết, xem lớp toán dễ 1.1.2 Lớp toán NP Ta gọi lớp NP lớp toán định giải máy tính Turing không đơn định khoảng thời gian đa thức Một cách khơng hình thức, nói ngơn ngữ L thuộc lớp NP tồn máy tính Turing không đơn định M độ phức tạp thời gian T(n) cho L = L(M) M cho nguyên liệu có độ dài n kiểm nhận sau khơng q T(n) bước chuyển Để nói mối quan hệ lớp P lớp NP ta thấy máy tính Turing đơn định trường hợp đặc biệt máy tính Turing khơng đơn định nên tốn thuộc lớp P thuộc lớp NP Tuy P NP hiển nhiên song ta chưa biết P = NP hay không, hầu hết nhà nghiên cứu tin P NP Từ ta có mơ hình mơ sau: NP P Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ Hình 1.1 Mối quan hệ lớp P NP 1.1.3 Lớp tốn NP-đầy đủ (NP-Complete) Định nghĩa 1.2: Ta nói L toán thuộc loại NP-complete khẳng định sau đúng: 1) L thuộc NP 2) Với ngơn ngữ L' NP có phép thu thời gian đa thức L' L Bài toán NP-complete xét toán thỏa SAT (Boolean satisfiability) Chúng ta chứng tỏ ngôn ngữ máy Turing không đơn định (NTM) thời gian đa thức có phép thu thời gian đa thức SAT Khi có số tốn thuộc NP-complete (NP-C) chứng minh toán thuộc NP-C cách thu tốn biết NP-C tốn nhờ phép thu thời gian đa thức [1] Định lý cho biết phép thu chứng minh tốn đích NP-C Định lý 1.1: Nếu toán P1 NP-C, P2 NP có phép thu thời gian đa thức từ P1 P2 P2 NP-C Chứng minh: Ta cần chứng tỏ ngôn ngữ L thuộc NP thu P2 thời gian đa thức Khi theo định nghĩa P2 thuộc NP-C Thật P1 NP-C nên có phép thu đa thức L P1 Giả sử thời gian phép thu P(n) Vì chuỗi W L có chiều dài n biến đổi thành chuỗi x P1 có chiều dài tối đa P(n) Ta biết có phép thu đa thức từ P1 P2 Giả sử thời gian phép thu q(m) Thế phép thu biến đổi chuỗi x P1 chuỗi y thuộc P2 với thời gian tối đa q(p(n)) Vì phép biến đổi W L y Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ P2 45 } } if(found) toolStripStatusLabel2->Text=L"Tìm thấy phủ đỉnh kích thước tối thiểu = "+k+"."; else toolStripStatusLabel2->Text=L"Khơng thể tìm thấy phủ đỉnh kích thước nhiều = "+k+L".Phủ đỉnh tối thiểu có kích thước tìm thấy là:"+min+"."; } + Hàm trả số đỉnh phủ đỉnh: int cover_size(vector cover){ int count=0; for(int i=0; i