Tiểu luận môn Thuật Toán và Phương Pháp Giải Quyết Vấn Đề PHƯƠNG PHÁP HUERISTIC VÀ BÀI TOÁN NGƯỜI ĐƯA THƯ TRUNG HOA

40 926 5
Tiểu luận môn Thuật Toán và Phương Pháp Giải Quyết Vấn Đề PHƯƠNG PHÁP HUERISTIC VÀ BÀI TOÁN NGƯỜI ĐƯA THƯ TRUNG HOA

Đ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 HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN PHÒNG ĐT SĐH-KHCN&QHĐN TIỂU LUẬN MÔN THUẬT TOÁN VÀ PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ PHƯƠNG PHÁP HUERISTIC VÀ BÀI TOÁN NGƯỜI ĐƯA THƯ TRUNG HOA Giảng viên: PGS.TS. ĐỖ VĂN NHƠN Học viên thực hiện: ĐẶNG BẢO ÂN Khóa: CAO HỌC KHÓA 08 Mã số học viên: CH1301077 TP. Hồ Chí Minh, tháng 10 năm 2014 GVHD: PGS.TS. Đỗ Văn Nhơn HVTH: Đặng Bảo Ân LỜI CẢM ƠN Em xin gửi lời cảm ơn chân thành đến PGS.TS. Đỗ Văn Nhơn, Thầy đã tâm quyết truyền đạt những kiến thức quý báu không chỉ là lý thuyết mà còn hướng dẫn cách thức tìm hiểu, phân tích và vận dụng lý thuyết cụ thể. Em xin chân thành cảm ơn Thầy vì sự hướng dẫn của Thầy trong quá trình thực hiện tiểu luận này. Em xin chân thành cảm ơn Phòng Đào tạo sau Đại học đã tạo mọi điều kiện để em hoàn thành tiểu luận này. Xin chân thành cảm ơn sự giúp đỡ của các anh chị, bạn bè và những người đã thường xuyên trao đổi, thảo luận và đóng góp ý kiến cho tôi về các vấn đề liên quan trong thời gian qua. Một lần nữa xin chân thành cảm ơn đến tất cả những người đã quan tâm đến tiểu luận của em. Tuy nhiên, trong quá trình làm việc không thể tránh khỏi những sai sót, rất mong sự đóng góp ý kiến nhiệt tình của Thầy và các bạn. Học viên thực hiện Đặng Bảo Ân 22 GVHD: PGS.TS. Đỗ Văn Nhơn HVTH: Đặng Bảo Ân MỤC LỤC DANH MỤC HÌNH 33 GVHD: PGS.TS. Đỗ Văn Nhơn HVTH: Đặng Bảo Ân LỜI NÓI ĐẦU Heuristic là các kỹ thuật dựa trên kinh nghiệm để giải quyết vấn đề, học hỏi hay khám phá nhằm đưa ra một giải pháp mà không được đảm bảo là tối ưu. Với việc nghiên cứu khảo sát không có tính thực tế, các phương pháp heuristic được dùng nhằm tăng nhanh quá trình tìm kiếm với các giải pháp hợp lý thông qua các suy nghĩ rút gọn để giảm bớt việc nhận thức vấn đề khi đưa ra quyết định. Với nghĩa chính xác hơn, heuristic là các chiến lược sử dụng thông tin với cách tiếp cận dễ dàng mặc dù được áp dụng lỏng lẻo để kiểm soát việc giải quyết vấn đề giữa con người và máy móc. Với mục đích tìm hiểu sâu hơn những kiến thức được truyền đạt trên lớp, học viên quyết định thực hiện tiểu luận trình bày kết quả tìm hiểu về một thuật giải heuristic để giải quyết một vấn đề trong thực tế đó là “Bài toán Người Đưa Thư Trung Hoa”. Tiểu luận được trình bày gồm bốn phần chính: - Bài toán “Người đưa thư Trung Hoa”: phát biểu bài toán. - Cơ sở lý thuyết: trình bày cơ sở lý thuyết vận dụng. - Ứng dụng Heuristic giải quyết bài toán “Người đưa thư Trung Hoa”. - Thực nghiệm: cài đặt và mô phỏng thuật giải. Cuối cùng, em xin chân thành cảm ơn Thầy Đỗ Văn Nhơn đã tận tình giảng dạy và hướng dẫn để em hoàn tất bài tiểu luận này. Chúc Thầy được nhiều sức khỏe. Học viên thực hiện 44 GVHD: PGS.TS. Đỗ Văn Nhơn HVTH: Đặng Bảo Ân Đặng Bảo Ân 55 GVHD: PGS.TS. Đỗ Văn Nhơn HVTH: Đặng Bảo Ân I. BÀI TOÁN NGƯỜI ĐƯA THƯ TRUNG HOA 1.1 Phát biểu bài toán Bài toán người đưa thư Trung Hoa (tiếng Anh: Chinese postman problem) phát biểu rằng: “Một người đưa thư xuất phát từ bưu điện phải đến một số con đường để phát thư rồi quay trở về điểm xuất phát, hỏi người đó phải đi như thế nào để số đường đi là ít nhất”. Tên gọi "bài toán người đưa thư Trung Hoa" được Alan Goldman của Cục Tiêu chuẩn quốc gia Hoa Kỳ (U.S. National Bureau of Standards) đặt, vì nó được nhà toán học Trung Hoa Quản Mai Cốc nêu ra đầu tiên vào năm 1962. Bài toán có thể phát biểu lại như sau: Cho một đồ thị đầy đủ, có trọng số dương, tìm đường đi ngắn nhất qua tất cả các đỉnh của đồ thị rồi trở về đỉnh ban đầu (mỗi đỉnh đi qua đúng một lần). 1.2 Ý nghĩa bài toán Bài toán tìm đường đi ngắn nhất là bài toán quan trọng trong Lý thuyết đồ thị, nó được áp dụng để giải quyết rất nhiều bài toán trong thực tế như điều khiển tối ưu, giao thông vận tải, mạng viễn thông , đặc biệt "bài toán người đưa thư Trung Hoa" là một đề tài khá hay, nó bắt nguồn từ nhu cầu thực tiễn trong ngành bưu chính viễn thông – cần tìm một lộ trình ngắn nhất có thể của người đưa thư cần đi qua một số con đường ít nhất một lần bắt đầu ở Sở bưu điện và trở về đó. Ứng dụng của bài toán là vô cùng thiết thực đối với ngành bưu chính, và còn được mở rộng để giải quyết nhiều vấn đề phức tạp trong đời sống chẳng hạn: “Xây dựng ứng dụng tìm kiếm lộ trình thu gom rác tối ưu trên địa bàn Thành phố Hồ Chí Minh”. Do vậy, việc nghiên cứu "bài toán người đưa thư Trung Hoa" là rất cần thiết. 66 GVHD: PGS.TS. Đỗ Văn Nhơn HVTH: Đặng Bảo Ân II. CƠ SỞ LÝ THUYẾT Trong thực tiễn có nhiều trường hợp người ta chấp nhận các cách giải thường cho kết quả tốt (nhưng không phải lúc nào cũng tốt) mà ít phức tạp và hiệu quả. Chẳng hạn nếu giải một bài toán bằng thuật toán tối ưu đòi hỏi máy tính thực hiện nhiều năm thì chúng ta có thể sẵn lòng chấp nhận một giải pháp gần tối ưu mà chỉ cần máy tính chạy trong vài ngày hoặc vài giờ. Các cách giải chấp nhận được nhưng không hoàn toàn đáp ứng đầy đủ các tiêu chuẩn của thuật toán thường được gọi là thuật giải. Khái niệm mở rộng này của thuật toán đã mở của cho chúng ta trong việc tìm kiếm phương pháp để giải quyết các bài toán được đặt ra. Một trong những thuật giải thường được đề cập đến và sử dụng là giải thuật Heuristic. Trong phần này sẽ đi sâu vào tìm hiểu về giải thuật Heuristic và sử dụng giải thuật để giải quyết vấn đề NP. 2.1 Khái niệm về lớp bài toán P và NP 2.1.1 Khái niệm các loại thời gian tính • Thời gian tính tốt nhất: là thời gian tính tối thiểu cần thiết để thực hiện thuật toán với mọi bộ dữ liệu đầu vào kích thước n. • Thời gian tính tồi nhất: là thời gian tính tối đa cần thiết để thực hiện thuật toán với mọi bộ dữ liệu đầu vào có kích thước n • Thời gian tính trung bình: là thời gian tính cần thiết để thực hiện thuật toán trên một tập hữu hạn các bộ dữ liệu đầu vào có kích thước n. Thời gian tính trung bình được tính theo công thức sau: 77 GVHD: PGS.TS. Đỗ Văn Nhơn HVTH: Đặng Bảo Ân • Thời gian tính trung bình=(Tổng thời gian tính tất cả các bộ dữ liệu có thể)/ Số bộ dữ liệu. Định nghĩa: Bài toán quyết định là bài toán mà đầu ra chỉ có thể là ‘yes’ hoặc ‘no’(đúng/sai, 0/1). Đối với một bài toán quyết định, có những bộ dữ liệu vào cho ra câu trả lời(đầu ra) là ‘yes’, chúng ta gọi đây là bộ dữ liệu ‘yes’, nhưng cũng có những bộ dữ liệu vào cho ra câu trả lời là ‘no’, chúng ta gọi những bộ dữ liệu này là bộ dữ liệu ‘no’. 2.1.2 Bằng chứng ngắn gọn dễ kiểm tra Rất nhiều các bài toán quyết định có một đặc điểm chung, đó là để xác nhận câu trả lời ‘yes’ đối với bộ dữ liệu vào ‘yes’ của chúng, chúng ta có thể đưa ra bằng chứng ngắn gọn dễ kiểm tra xác nhận câu trả lời ‘yes’ cho bộ dữ liệu vào ‘yes’ đó. Tính ngắn gọn dễ kiểm tra ám chỉ việc thời gian kiểm tra để đưa ra kết quả chỉ mất thời gian đa thức. Ví dụ về những bài toán quyết định kiểu này rất nhiều, sau đây là một số ví dụ: • Bài toán kiểm tra tính hợp số: “Có phải số n là hợp số?”, để xác nhận câu trả lời ‘yes’ cho đầu vào n, chúng ta có thể đưa ra một ước số b (1<b<n) của n. Để kiểm tra xem b có phải là ước số của n chúng ta có thể thực hiện phép chia n cho b sau thời gian đa thức. Trong ví dụ này , b là bằng chứng ngắn gọn (vì b<n) và dễ kiểm tra (có thuật toán đa thức để kiểm tra b đúng là ước số của n không). • Đối với bài toán Hamilton, để xác nhận câu trả lời là ‘yes’ cho đồ thị đã cho G, chúng ta có thể đưa ra một chu trình Hamilton của đồ thị: v1, v2, v3 vn, v1 88 GVHD: PGS.TS. Đỗ Văn Nhơn HVTH: Đặng Bảo Ân • Việc kiểm tra dãy đỉnh nói trên có là chu trình Hamilton của đồ thị đã cho hay không có thể thực hiện sau thời gian đa thức. Khi đó chúng ta nói dãy đỉnh nói trên là bằng chứng ngắn gọn dễ kiểm tra để xác nhận câu trả lời ‘yes’ của bài toán Hamilton. Một cách tương tự, có thể đưa ra khái niệm bằng chứng ngắn gọn dễ kiểm tra để xác nhận câu trả lời ‘no’. Đối với một số bài toán, việc đưa ra bằng chứng ngắn gọn dễ kiểm tra để xác nhận câu trả lời ‘no’ là dễ hơn so với việc đưa ra bằng chứng ngắn gọn xác định câu trả lời là ‘yes’. 2.1.3 Khái niệm quy dẫn Định nghĩa . Giả sử chúng ta có hai bài toán quyết định A và B. Chúng ta nói A có thể quy dẫn về B nếu như sau một thời gian tính đa thức nếu tồn tại một thuật toán thời gian đa thức R cho phép biến đổi bộ dữ liệu x của A thành bộ dữ liệu vào R(x) của B sao cho x là bộ dữ liệu yes của A khi và chỉ khi R(x) là dữ liệu vào yes của B. Nếu A quy dẫn về được B sau thời gian đa thức và B có thể giải được sau thời gian đa thức thì A cũng có thể giải được sau thời gian đa thức. 2.1.4 Lớp bài toán P Định nghĩa. Chúng ta gọi P là lớp các bài toán có thể giải được trong thời gian đa thức. Ví dụ: Bài toán cây khung nhỏ nhất giải được nhờ thuật toán Prim với thời gian 0(n2) thuộc lớp bài toán P. 2.1.5 Lớp bài toán NP 99 GVHD: PGS.TS. Đỗ Văn Nhơn HVTH: Đặng Bảo Ân Định nghĩa. Ta gọi NP là lớp các bài toán quyết định mà để xác nhận câu trả lời ‘yes’ của nó ta có thể đưa ra bằng chứng ngắn gọn dễ kiểm tra. Ví dụ: Bài toán kiểm tra tính hợp số: “Có phải n là hợp số không?”, để xác nhận câu trả lời ‘yes’ cho đầu vào n ta có thể đưa ra một ước số b (1< b < n) của n. Để kiểm tra xem b có phải là ước số của n hay không ta có thể thực hiện phép chia n cho b sau thời gian đa thức. Trong ví dụ này dễ thấy b là bằng chứng ngắn gọn (b<n) và dễ kiểm tra (có thuật toán thời gian tính đa thức để kiểm tra xem b có là ước số của n). 2.1.6 Lớp bài toán Co- NP Định nghĩa. Ta gọi Co-NP là lớp các bài toán quyết định mà để xác nhận câu trả lời ‘no’ của nó ta có thể đưa ra bằng chứng ngắn gọn dễ kiểm tra. Ví dụ: Bài toán kiểm tra tính nguyên tố: “Có phải n là số nguyên tố không?”, để đưa ra bằng chứng ngắn gọn dễ kiểm tra xác nhận câu trả lời ‘no’ cho đầu vào n ta có thể đưa ra một ước số b của n. 2.1.7 Lớp bài toán NP- đầy đủ (NP- complete) Định nghĩa. Một bài toán quyết định A được gọi là NP-đầy đủ (NP- Complete) nếu như: • A là một bài toán trong NP. • Mọi bài toán trong NP đều có thể quy dẫn về A. Bổ đề. Giả sử bài toán A là NP-đầy đủ, bài toán B thuộc NP, và bài toán A qui dẫn được về bài toán B. Khi đó bài toán B cũng là NP-đầy đủ. 2.1.8 Lớp bài toán NP-khó (NP- Hard) 1010 [...]... thuật giải Trong quá trình nghiên cứu giải quyết các vấn đề - bài toán, người ta đã đưa ra những nhận xét như sau : 13 GVHD: PGS.TS Đỗ Văn Nhơn • HVTH: Đặng Bảo Ân Có nhiều bài toán cho đến nay vẫn chưa tìm ra một cách giải theo kiểu thuật toán và cũng không biết là có tồn tại thuật toán hay không • Có nhiều bài toán đã có thuật toán để giải nhưng không chấp nhận được vì thời gian giải theo thuật toán. .. Bảo Ân Hình 4: Sơ đồ thuật toán đàn kiến III ỨNG DỤNG HEURISTIC GIẢI QUYẾT BÀI TOÁN NGƯỜI ĐƯA THƯ TRUNG HOA Mục đích của bài toán tối ưu tổ hợp là tìm lời giải tốt nhất trong các lời giải có thể và không gian tìm kiếm lời giải của bài toán là rời rạc Nhiều bài toán tối ưu tổ hợp có độ phức tạp tính toán cao và được phân lọai thuộc lớp NP khó Việc tìm ra lời giải tối ưu cho các bài toán này cho các hệ... hiểu bài toán NP-khó là bài toán mà không có thuật toán thời gian tính đa thức để giải nó trừ khi P = NP, mà chỉ có các thuật toán giải trong thời gian hàm mũ Sau đây là định nghĩa chính thức của bài toán NP-khó Định nghĩa Một bài toán A được gọi là NP- khó (NP-hard) nếu như sự tồn tại thuật toán đa thức để giải nó kéo theo sự tồn tại thuật toán đa thức để giải mọi bài toán trong NP Một số bài toán. .. lời giải tốt nhất) 15 GVHD: PGS.TS Đỗ Văn Nhơn • HVTH: Đặng Bảo Ân Giải bài toán theo thuật giải Heuristic thư ng dễ dàng và nhanh chóng đưa ra kết quả hơn so với giải thuật tối ưu, vì vậy chi phí thấp hơn • Thuật giải Heuristic thư ng thể hiện khá tự nhiên, gần gũi với cách suy nghĩ và hành động của con người Có nhiều phương pháp để xây dựng một thuật giải Heuristic, trong đó người ta thư ng dựa vào... nhiên các lời giải có thể (thư ng là các lời giải thỏa mãn ràng buộc của bài toán nhưng chưa biết là đại lượng cần tối ưu đã là tối ưu hay chưa) Tuỳ vào từng bài toán cụ thể mà ta có các phương pháp khởi tạo khác nhau Chất lượng của quần thể ban đầu càng cao thì lời giải mà giải thuật di truyền đưa ra càng tốt Trong nhiều giải thuật di truyền, thư ng sử dụng các giải thuật đã có để giải bài toán mà cho... một giải pháp gần tối ưu mà chỉ cần máy tính chạy trong vài ngày hoặc vài giờ Các cách giải chấp nhận được nhưng không hoàn toàn đáp ứng đầy đủ các tiêu chuẩn của thuật toán thư ng được gọi là các thuật giải Khái niệm mở rộng này của thuật toán đã mở rộng cửa cho chúng ta trong việc tìm kiếm phương pháp để giải quyết các bài toán được đặt ra Một trong những thuật giải thư ng được đề cập đến và sử dụng... một bài toán đã biết là NPkhó về nó Sau đây là mô hình phân lớp các bài toán đã nêu trên Hình 1: Mô hình phân lớp các bài toán Từ phần trình bày trên, ta thấy có rất nhiều bài toán ứng dụng quan trọng thuộc vào lớp NP-khó, và vì thế khó hy vọng xây dựng được thuật toán đúng hiệu quả để giải chúng Do đó, một trong những hướng phát triển thuật toán giải các bài toán như vậy là xây dựng các thuật toán. .. kiện cho thuật toán khó đáp ứng • Có những bài toán được giải theo những cách giải vi phạm thuật toán nhưng vẫn chấp nhận được Từ những nhận định trên, người ta thấy rằng cần phải có những đổi mới cho khái niệm thuật toán Người ta đã mở rộng hai tiêu chuẩn của thuật toán : tính xác định và tính đúng đắn Việc mở rộng tính xác định đối với thuật toán đã được thể hiện qua các giải thuật đệ quy và ngẫu... Đặng Bảo Ân các kỹ thuật heuristic cho việc giải các bài toán tổ hợp theo hướng xấp xỉ đã được phát triển để tìm ra các lời giải gần tối ưu (hay xấp xỉ) trong giới hạn thời gian cho phép Bài toán người đưa thư là một bài toán cổ điển thuộc lớp NP được nghiên cứu sâu trong lĩnh vực tối ưu tổ hợp 3.1 Phát biểu bài toán Để tiết kiệm thời gian đi đưa thư trong một địa phương, người đưa thư phải đi qua tất... Cách giải quyết Trong trường hợp ta sử dụng thuật toán tối ưu cho bài toán này, chẳng hạn như thuật toán vét cạn : thực hiện lựa chọn một phương án trong tập hợp tất cả các phương án của bài toán để tìm ra phương án tối ưu Khi số lượng các điểm giao thư khá lớn  không gian các phương án quá lớn Do vậy, khi áp dụng thuật toán vét cạn không đảm bảo về thời gian cũng như kĩ thuật (độ phức tạp thuật toán . NGHỆ THÔNG TIN PHÒNG ĐT SĐH-KHCN&QHĐN TIỂU LUẬN MÔN THUẬT TOÁN VÀ PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ PHƯƠNG PHÁP HUERISTIC VÀ BÀI TOÁN NGƯỜI ĐƯA THƯ TRUNG HOA Giảng viên: PGS.TS. ĐỖ VĂN NHƠN . về một thuật giải heuristic để giải quyết một vấn đề trong thực tế đó là Bài toán Người Đưa Thư Trung Hoa . Tiểu luận được trình bày gồm bốn phần chính: - Bài toán Người đưa thư Trung Hoa :. HVTH: Đặng Bảo Ân I. BÀI TOÁN NGƯỜI ĐƯA THƯ TRUNG HOA 1.1 Phát biểu bài toán Bài toán người đưa thư Trung Hoa (tiếng Anh: Chinese postman problem) phát biểu rằng: “Một người đưa thư xuất phát từ

Ngày đăng: 24/05/2015, 09:20

Từ khóa liên quan

Mục lục

  • I. BÀI TOÁN NGƯỜI ĐƯA THƯ TRUNG HOA

    • 1.1 Phát biểu bài toán

    • 1.2 Ý nghĩa bài toán

    • II. CƠ SỞ LÝ THUYẾT

      • 2.1 Khái niệm về lớp bài toán P và NP

        • 2.1.1 Khái niệm các loại thời gian tính

        • 2.1.2 Bằng chứng ngắn gọn dễ kiểm tra

        • 2.1.3 Khái niệm quy dẫn

        • 2.1.4 Lớp bài toán P

        • 2.1.5 Lớp bài toán NP

        • 2.1.6 Lớp bài toán Co- NP

        • 2.1.7 Lớp bài toán NP- đầy đủ (NP- complete)

        • 2.1.8 Lớp bài toán NP-khó (NP- Hard)

        • 2.2 Mở rộng khái niệm thuật giải

        • 2.3 Khái niệm Heuristic và MetaHeuristic

          • 2.3.1 Hueristic

          • 2.3.2 MetaHeuristic

          • 2.4 Thuật giải Heuristic

          • 2.5 Thuật giải di truyền

            • 2.5.1 Giới thiệu

            • 2.5.2 Các khái niệm

            • 2.5.3 Mô hình giải thuật

            • 2.5.4 Các tham số

            • 2.5.5 Các cách mã hóa NST

            • 2.5.6 Khởi tạo quần thể

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

Tài liệu liên quan