Thiết kế thuật toán dựa trên ý tưởng của phương pháp tham lam

27 392 0
Thiết kế thuật toán dựa trên ý tưởng của phương pháp tham lam

Đ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 THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG CÀ THỊ THÙY LINH THIẾT KẾ THUẬT TOÁN DỰA TRÊN Ý TƯỞNG CỦA PHƯƠNG PHÁP THAM LAM LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Thái Nguyên- 2012 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên 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 CÀ THỊ THÙY LINH THIẾT KẾ THUẬT TOÁN DỰA TRÊN Ý TƯỞNG CỦA PHƯƠNG PHÁP THAM LAM 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 PGS TSKH NGUYỄN XUÂN HUY Thái Nguyên – 2012 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn MỤC LỤC Trang Trang phụ bìa ……………………………………………………………………… Lời cảm ơn………………………………………………………………………… i Lời cam đoan ………………………………………………………………………ii Mục lục …………………………………………………………………………….iii MỞ ĐẦU ………………………………………………………………………….1 Chƣơng TỔNG QUAN VỀ PHƢƠNG PHÁP THAM LAM 1.1 Phƣơng pháp tham lam……………………………………………………….4 1.1.1 Ý tưởng phương pháp tham lam………………………………………………4 1.1.2 Đặc trưng phương pháp tham lam……………………………………….6 1.1.3 Thiết kế thuật toán dựa ý tưởng phương pháp tham lam….……………7 1.1.3.1 Các thành phần định tham lam………………………………………7 1.1.3.2 Sơ đồ chung để giải toán giải thuật tham lam….….…………9 1.1.3.3 Lược đồ giải thuật tham lam ……………………………………………….9 1.1.3.4 Thiết kế thuật toán dựa ý tưởng tham lam….….……………… 11 1.1.3.5 Tiến trình thực phương pháp tham lam………………………… … 11 1.2 Ví dụ………………………………………………………………………… 14 1.2.1 Bài toán lựa chọn công việc.……………………………………………… 14 1.2.2 Xác định toán……………………………………………………………14 1.2.3 Tính chất lời giải ……………………………………………………….14 1.2.4 Các bước thuật giải tham lam………………………………………… 15 Chƣơng THIẾT KẾ THUẬT TOÁN DỰA TRÊN Ý TƢỞNG CỦA PHƢƠNG PHÁP THAM LAM 2.1 Bài toán ngƣời du lịch ……………………………………………………….18 2.1.1 Phát biểu toán ………………………………………………………… 18 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 2.1.2 Phân tích thiết kế thuật toán ……………………………………………….18 2.1.3 Xác định độ phức tạp thuật toán ………………………………………20 2.2 Bài toán bao trùm ngắn ………………………………………… 21 2.2.1 Phát biểu toán ………………………………………………………… 21 2.2.2 Phân tích thiết kế thuật toán ……………………………………………… 21 2.2.3 Xác định độ phức tạp thuật toán ……………………………………….27 2.3 Thuật toán Dijkstra -Tìm đƣờng ngắn đồ thị có trọng số…28 2.3.1 Phát biểu toán ………………………………………………………… 28 2.3.2 Phân tích thiết kế thuật toán ……………………………………………… 28 2.3.3 Xác định độ phức tạp thuật toán ……………………………………….33 2.4 Bài toán ba lô …………………………………………………………….33 2.4.1 Phát biểu toán ………………………………………………………… 33 2.4.2 Phân tích thiết kế thuật toán ……………………………………………… 33 2.4.3 Xác định độ phức tạp thuật toán ……………………………………….35 2.5 Bài toán băng nhạc ……………………………………… …………………35 2.5.1 Phát biểu toán ………………………………………………………… 35 2.5.2 Phân tích thiết kế thuật toán ……………………………………………… 36 2.5.3 Xác định độ phức tạp thuật toán ……………………………………….38 2.6 Bài toán lập lịch …………………………………………………………… 38 2.6.1 Phát biểu toán ………………………………………………………….38 2.6.2 Phân tích thiết kế thuật toán ……………………………………………… 38 2.6.3 Xác định độ phức tạp thuật toán ……………………………………….42 2.7 Bài toán mã hóa Huffman ………………………………………………… 43 2.7.1 Phát biểu toán ………………………………………………………… 49 2.7.2 Phân tích thiết kế thuật toán ……………………………………………… 49 2.8 Phƣơng pháp tham lam tƣơng quan với phƣơng pháp khác …… 50 - Phƣơng pháp quy hoạch động 2.8.1 Phương pháp quy hoạch động …………………………………………… 50 2.8.2 Phương pháp tham lam tương quan vớiv PP quy hoạch động …… 51 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ÀI ĐẶT CHƢƠNG TRÌNH CHO MỘT SỐ BÀI TOÁN 3.1 Bài toán ngƣời du lịch ………………………………………………………53 3.2 Bài toán bao trùm ngắn Kruskal…………………………………56 3.3 Thuật toán Dijkstra -Tìm đƣờng ngắn đồ thị có trọng số…………………………………………………………………… ……………62 3.4 Bài toán mã hóa huffman……………………………………………………65 KẾT LUẬN …………………………………………………………………… 69 TÀI LIỆU THAM KHẢO …………………………………………………… 70 PHỤ LỤC………………………………………………………………………… Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn MỞ ĐẦU Đặt vấn đề Có nhiều phƣơng pháp đƣợc dùng để thiết kế thuật toán nhƣ: chia để trị, vét cạn, quy hoạch động đó, phƣơng pháp áp dụng cho lớp toán phù hợp Phƣơng pháp tham lam số phƣơng pháp phổ biến thƣờng đƣợc vận dụng thiết kế thuật toán Phƣơng pháp tham lam gợi ý tìm trật tự hợp lí để duyệt liệu nhằm đạt đƣợc mục tiêu cách chắn nhanh chóng Thông thƣờng liệu đƣợc duyệt theo hai trật tự tăng hay giảm theo tiêu chí Phƣơng pháp tham lam xây dựng thuật toán để giải toán tối ƣu dựa tƣ tƣởng tối ƣu cục theo chiến lƣợc tƣ kiểu ngƣời, nhằm nhanh chóng đạt đến lời giải "tốt" Nếu chứng minh thuật toán dựa phƣơng pháp tham lam cho kết tối ƣu toàn cục lớp toán đó, thuật toán thƣờng đƣợc lựa chọn, chạy nhanh phƣơng pháp tối ƣu hóa khác nhƣ quy hoạch động Một số thuật toán dựa tƣ tƣởng phƣơng pháp tham lam thực tìm đƣợc phƣơng án tối ƣu nhƣ: thuật toán Kruscal tìm khung cực tiểu, thuật toán Prim dành cho toán bao trùm nhỏ nhất, thuật toán Dijkstra dành cho toán đƣờng ngắn thuật toán tìm Huffman tối ƣu Là giáo viên giảng dạy môn Tin học trƣờng PT, nhận thấy việc ứng dụng phƣơng pháp tham lam thiết kế thuật toán mảng kiến thức cần thiết học sinh, đặc biệt học sinh nhóm chuyên Tin đội tuyển Vì vậy, mong muốn tìm hiểu phƣơng pháp tham lam ứng dụng phƣơng pháp tham lam thiết kế thuật toán cho nhóm toán, nhằm tạo nguồn tƣ liệu quan trọng cho giáo viên, học sinh ngƣời quan tâm đến phƣơng pháp Từ lí trên, định lựa chọn đề tài luận văn tốt nghiệp “Thiết kế thuật toán dựa ý tƣởng phƣơng pháp tham lam ” Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 2 Đối tƣợng phạm vi nghiên cứu - Phƣơng pháp tham lam thiết kế thuật toán - Một số toán đặc trƣng, Hƣớng nghiên cứu đề tài - Tổng quan phƣơng pháp tham lam - Thiết kế thuật toán cho số toán dựa ý tƣởng tham lam từ tìm ra: + Các kĩ thuật sử dụng phƣơng pháp tham lam + Đối sánh phƣơng pháp tham lam với Phƣơng pháp khác + Hạn chế phƣơng pháp tham lam - Cài đặt chƣơng trình cho số toán kinh điển Những nội dung nghiên cứu Chƣơng TỔNG QUAN VỀ PHƢƠNG PHÁP THAM LAM (Trong chương này, học viên tìm hiểu trình bày phương pháp tham lam: Ý tưởng, phát biểu phương pháp, nêu ví dụ phân tích làm rõ phương pháp này) Chƣơng THIẾT KẾ THUẬT TOÁN DỰA TRÊN Ý TƢỞNG CỦA PHƢƠNG PHÁP THAM LAM (Dựa vào sở lí thuyết trình bày chương I, chương này, học viên phân tích thiết kế thuật toán phương pháp tham lam cho toán cụ thể (mục 2.1 đến 2.7); Thông qua tập học viên rút kỹ thuật sử dụng phương pháp tham lam; Đối sánh phương pháp tham lam với phương pháp khác ; Chỉ hạn chế phương pháp tham lam) Các toán cụ thể: - Bài toán ngƣời du lịch - Bài toán tìm khung cực tiểu - Bài toán bao trùm ngắn - Bài toán ba lô - Bài toán băng nhạc - Bài toán xếp lịch - Bài toán mã hóa Huffman 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ÀI ĐẶT CHƢƠNG TRÌNH CHO MỘT SỐ BÀI TOÁN (Trong chương này, dựa vào chương II, học viên xây dựng chương trình cài đặt chương trình cho số toán ngôn ngữ C++, Free Pascal) Phƣơng pháp nghiên cứu: phân tích, liệt kê, so sánh, đối chiếu, trực quan, thực nghiệm,… Ý nghĩa khoa học đề tài - Đƣa nội dung phƣơng pháp tham lam - Ứng dụng phƣơng pháp tham lam thiết kế thuật toán cho nhóm toán, nhằm tạo nguồn tƣ liệu quan trọng cho giáo viên, học sinh ngƣời quan tâm đến phƣơng pháp Kết cấu đề tài Ngoài phần mở đầu, kết luận, tài liệu tham khảo đề tài gồm chƣơng: Chƣơng TỔNG QUAN VỀ PHƢƠNG PHÁP THAM LAM Chƣơng THIẾT KẾ THUẬT TOÁN DỰA TRÊN Ý TƢỞNG CỦA PHƢƠNG PHÁP THAM LAM Chƣơng CÀI ĐẶT CHƢƠNG TRÌNH CHO MỘT SỐ BÀI TOÁ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 TỔNG QUAN VỀ PHƢƠNG PHÁP THAM LAM Các toán thực có muôn hình muôn vẻ, đƣa cách thức chung để tìm giải thuật cho toán Các phƣơng pháp vét cạn (exhaustivesearch), chia để trị (divide and conquer), quy hoạch động (dynamic programming) tham lam (greedy) “chiến lƣợc” kinh điển để tìm giải thuật cho toán Tham lam (greedy) phƣơng pháp giải toán tối ƣu Các thuật toán tham lam dựa vào đánh giá tối ƣu cục địa phƣơng để đƣa định tức bƣớc lựa chọn, với hy vọng cuối tìm đƣợc phƣơng án tối ƣu tổng thể Chƣơng I trình bày phƣơng pháp tham lam: Ý tưởng phương pháp tham lam, nêu ví dụ phân tích làm rõ phương pháp 1.1 Phƣơng pháp tham lam 1.1.1 Ý tưởng phương pháp tham lam Các toán tối ƣu thƣờng có số lớn nghiệm, việc tìm nghiệm tối ƣu (nghiệm có giá thấp nhất) đòi hỏi nhiều thời gian Một cách tiếp cận để giải toán tối ƣu chiến lƣợc tham lam Trong hầu hết toán tối ƣu, để nhận đƣợc nghiệm tối ƣu đƣa thực dãy định Ý tƣởng chiến lƣợc tham lam là, bƣớc ta lựa chọn định để thực định đƣợc xem tốt ngữ cảnh đƣợc xác định toán Tức là, định đƣợc lựa chọn bƣớc định tối ƣu địa phƣơng Tùy theo toán mà ta đƣa tiêu chuẩn lựa chọn định cho thích hợp Các thuật toán tham lam nói chung đơn giản hiệu (vì tính toán để tìm định tối ƣu địa phƣơng thƣờng đơn giản) Tuy nhiên, thuật toán tham lam không tìm đƣợc nghiệm tối ƣu, nói chung cho Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn nghiệm gần tối ƣu, nghiệm tƣơng đối tốt Nhƣng có nhiều thuật toán đƣợc thiết kế theo kỹ thuật tham lam cho ta nghiệm tối ƣu, chẳng hạn thuật toán Dijkstra tìm đƣờng ngắn từ đỉnh tới đỉnh lại đồ thị định hƣớng, thuật toán Prim Kruskal tìm bao chùm ngắn đồ thị vô hƣớng Ví dụ - Bài toán trả tiền máy rút tiền tự động ATM: Trong máy ATM, có sẵn loại tiền có mệnh giá 100.000 đồng, 50.000 đồng, 20.000 đồng 10.000 đồng Giả sử loại tiền có số lƣợng không hạn chế Khi có khách hàng cần rút số tiền n đồng (tính chẵn đến 10.000 đồng, tức n chia hết cho 10.000) Hãy tìm phƣơng án trả tiền cho trả đủ n đồng số tờ giấy bạc phải trả Ý tưởng phương pháp tham lam để giải toán trả tiền máy rút tiền tự động ATM: Gọi X = (X1, X2, X3, X4) phƣơng án trả tiền X1 số tờ giấy bạc 100.000 đồng, X2 số tờ giấy bạc 50.000 đồng, X3 số tờ giấy bạc 20.000 đồng, X4 số tờ giấy bạc 10.000 đồng Theo yêu cầu ta phải có X1 + X2 + X3 + X4 nhỏ X1*100.000+X2*50.000+X3*20.000+X4*10.000 = n Để có số lƣợng tờ tiền nhỏ tờ giấy bạc mệnh giá lớn phải đƣợc chọn nhiều Trƣớc hết ta chọn tối đa tờ giấy bạc 100.000 đồng, nghĩa X1 số nguyên lớn cho X1 * 100.000  n Tức X1 = n DIV 100.000 Xác định số tiền cần rút lại hiệu n – X1 * 100000 Chuyển sang chọn loại giấy bạc 50.000 đồng, tiếp tục nhƣ cho loại mệnh giá khác Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn data error !!! can't not read data error !!! can't not read data error !!! can't not read data error !!! can't not read data error !!! can't not read data error !!! can't not read data error !!! can't not read data error !!! can't not read data error !!! can't not read data error !!! can't not read data error !!! can't not read data error !!! can't not read data error !!! can't not read data error !!! can't not read data error !!! can't not read data error !!! can't not read ... hiểu trình bày phương pháp tham lam: Ý tưởng, phát biểu phương pháp, nêu ví dụ phân tích làm rõ phương pháp này) Chƣơng THIẾT KẾ THUẬT TOÁN DỰA TRÊN Ý TƢỞNG CỦA PHƢƠNG PHÁP THAM LAM (Dựa vào sở lí... Chƣơng I trình bày phƣơng pháp tham lam: Ý tưởng phương pháp tham lam, nêu ví dụ phân tích làm rõ phương pháp 1.1 Phƣơng pháp tham lam 1.1.1 Ý tưởng phương pháp tham lam Các toán tối ƣu thƣờng có... tích thiết kế thuật toán phương pháp tham lam cho toán cụ thể (mục 2.1 đến 2.7); Thông qua tập học viên rút kỹ thuật sử dụng phương pháp tham lam; Đối sánh phương pháp tham lam với phương pháp

Ngày đăng: 21/04/2017, 13:58

Từ khóa liên quan

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

Tài liệu liên quan