tailieunhanh - Bài giảng cơ sở lập trình nâng cao - Chương 7
Định nghĩa [Tham lam – Greedy]: Tham lam là một phương pháp thiết kế thuật toán để tìm nghiệm của bài toán tối ưu bằng cách xây dựng nghiệm dần dần từng bước. Tại mỗi bước: Chúng ta luôn luôn chọn giá trị tốt nhất tại thời điểm đó mà không quan tâm đến tương lai (tối ưu cục bộ) | PHƯƠNG PHÁP THIẾT KẾ THUẬT TOÁN – THAM LAM – Chương 7 1 Nội dung Giới thiệu Phương pháp Sơ đồ cài đặt Các ví dụ Ưu điểm và khuyết điểm 2 Hình ảnh 1 2 3 4 5 Giới thiệu Định nghĩa [Tham lam – Greedy]: Tham lam là một phương pháp thiết kế thuật toán để tìm nghiệm của bài toán tối ưu bằng cách xây dựng nghiệm dần dần từng bước. Tại mỗi bước: Chúng ta luôn luôn chọn giá trị tốt nhất tại thời điểm đó mà không quan tâm đến tương lai (tối ưu cục bộ) Chúng ta hy vọng việc chọn các tối ưu cục bộ tại mỗi bước sẽ cho tối ưu toàn cục 4 Phương pháp Phát biểu bài toán: Giả sử bài toán yêu cầu tìm phương án X=(x1, x2, , xn), trong đó xi được chọn ra từ tập Di. f(X) là hàm đánh giá sự tốt nhất của phương án X (f là hàm mục tiêu hay hàm chi phí) Phương pháp Phương pháp Tham lam Phương pháp Tham lam xây dựng dần nghiệm X của bài toán: Ban đầu X=( ) Giả sử đã xây dựng được (k-1) thành phần của nghiệm (x1, x2, , xk-1) Bây giờ ta mở rộng nghiệm thành (x1, x2, , xk-1, xk) bằng cách chọn xk là giá trị tốt nhất trong tập Dk Phương pháp Phương pháp Tham lam Thông thường tập D được sắp theo một trật tự tăng dần hay giảm dần theo tiêu chí nào đó từ đó giúp việc chọn giá trị tốt nhất cho xi sẽ dễ dàng hơn Bước 1 [Sắp xếp]: Sắp xếp dữ liệu D tăng dần hay giảm dần theo tiêu chí nào đó Bước 2 [Chọn giá trị tốt nhất]: Với mỗi thành phần xi. Ta tìm giá trị tốt nhất trong dữ liệu đã được sắp xếp trong bước 1 và thỏa điều kiện của bài toán để gán cho xi Sơ đồ cài đặt void Greedy1() { X=(); for (i=1; i<=n; i++) { Xác định Di; xi = SelectBest(Di); } } Sơ đồ 1: Sơ đồ cài đặt void Greedy2() { Sort(D); for (i=1; i<=n; i++) { - Chọn v là giá trị tốt nhất trong D và thỏa điều kiện bài toán - xi = v; - Bỏ v khỏi D } } Sơ đồ 2: Chú ý Một ý tưởng đối nghịch với phương pháp “tham lam” là ý tưởng “trông rộng”: Gom nhỏ thành to Năng nhặt chặt bị 10 Chú ý Để giải bài toán bằng phương pháp tham lam, chúng ta cần: Xác định các tập giá trị Di Hàm mục tiêu f Hàm chọn SelectBest để chọn giá trị cho xi | PHƯƠNG PHÁP THIẾT KẾ THUẬT TOÁN – THAM LAM – Chương 7 1 Nội dung Giới thiệu Phương pháp Sơ đồ cài đặt Các ví dụ Ưu điểm và khuyết điểm 2 Hình ảnh 1 2 3 4 5 Giới thiệu Định nghĩa [Tham lam – Greedy]: Tham lam là một phương pháp thiết kế thuật toán để tìm nghiệm của bài toán tối ưu bằng cách xây dựng nghiệm dần dần từng bước. Tại mỗi bước: Chúng ta luôn luôn chọn giá trị tốt nhất tại thời điểm đó mà không quan tâm đến tương lai (tối ưu cục bộ) Chúng ta hy vọng việc chọn các tối ưu cục bộ tại mỗi bước sẽ cho tối ưu toàn cục 4 Phương pháp Phát biểu bài toán: Giả sử bài toán yêu cầu tìm phương án X=(x1, x2, , xn), trong đó xi được chọn ra từ tập Di. f(X) là hàm đánh giá sự tốt nhất của phương án X (f là hàm mục tiêu hay hàm chi phí) Phương pháp Phương pháp Tham lam Phương pháp Tham lam xây dựng dần nghiệm X của bài toán: Ban đầu X=( ) Giả sử đã xây dựng được (k-1) thành phần của nghiệm (x1, x2, , xk-1) Bây giờ ta mở rộng nghiệm thành (x1, x2, , xk-1, xk) bằng cách chọn xk là giá trị .
đang nạp các trang xem trước