Chiếnlượcthamlam (Greedy algorithms) PhạmVănCường http://newcastle.academia.edu/CuongPham/ Chiếnlượcthamlam • Tìm kiếm lời giải tối ưu cục bộ (local optimization) ở mỗi bước đi, với hy vọng lời giải này sẽ dẫn tới lời giải tối ưu toàn cục. • So với qui hoạch động: duyệt tất cả các lời giải của bài toán con tại mỗi bước số phương án phải duyệt của giải thuật thamlam ít hơn. • Hạn chế: không phải lời giải tối ưu cục bộ nào cũng là lời giải tối ưu toàn cục. Bài toán lựa chọn công việc S={a 1 ,a 2 , ,a n } tập n công việc. Mỗi công việc ai có thời điểm khởi đầu s i và thời điểm kết thúc f i . 0<=s i <f i . Nếu được chọn ai, ai cần khoảng thời gian [s i ,f i ) để thực hiện. Hai công việc a i và a j gọi là tương thích (compatible) nếu [s i ,f i ) và [s j ,f j ) không giao nhau (s i >f j or s j >f i ) Bài toán lựa chọn công việc Bài toán lựa chọn công việc Cấu trúc tối ưu • S ij ={a k : f i <=s k <f k <=s j } là tập công việc con chứa nhiều công việc nhất sau khi a i hoàn thành và trước khi a j bắt đầu • Nếu i>=j thì S ij = • S ij = S ik U{a k } US kj Lời giải đệ qui Thuật toán thamlam đệ qui Thuật toán thamlam lặp Ví dụ . Chiến lược tham lam (Greedy algorithms) Phạm Văn Cường http://newcastle.academia.edu/CuongPham/ Chiến lược tham lam • Tìm kiếm lời giải tối ưu cục bộ (local. lời giải của bài toán con tại mỗi bước số phương án phải duyệt của giải thuật tham lam ít hơn. • Hạn chế: không phải lời giải tối ưu cục bộ nào cũng là lời giải tối ưu toàn cục. Bài toán lựa. Nếu i>=j thì S ij = • S ij = S ik U{a k } US kj Lời giải đệ qui Thuật toán tham lam đệ qui Thuật toán tham lam lặp Ví dụ