Tải bản đầy đủ (.pdf) (2 trang)

Thuật toán Tham lam [Khoa CNTT ĐH SP KT Hưng Yên]

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (91.53 KB, 2 trang )

Hoc lieu Mo Vietnam - Vietnam Open Educational Resources module: m12935 1
Thuật toán Tham Lam

Khoa CNTT ĐHSP KT Hưng Yên
This work is produced by Hoc lieu Mo Vietnam - Vietnam Open Educational Resources and licensed under the
Creative Commons Attribution License

Đặc trưng của chiến lược tham lam
Sơ đồ thuật toán
1 Đặc trưng của chiến lược tham lam
Phương pháp tham lam là kỹ thuật thiết kế thường được dùng để giải các bài toán tối ưu. Phương pháp
được tiến hành trong nhiều bước. Tại mỗi bước, theo một chọn lựa nào đó ( xác định bằng một hàm chọn),
sẽ tìm một lời giải tối uư cho bài toán nhỏ tương ứng. Lời giải của bài toán được bổ sung dần từng bước từ
lời giải của các bài toán con. Lời giải được xây dựng như thế có chắc là lời giải tối ưu của bài toán ?
Các lời giải theo phương pháp tham lam thường chỉ là chấp nhận được theo điều kiện nào đó, chưa chắc
là tối ưu.
Cho trước một tập A gồm n đối tượng, ta cần phải chọn một tập con S của A. Với một tập con S được
chọn ra thỏa mãn các yêu cầu của bài toán, ta gọi là một nghiệm chấp nhận được . Một hàm mục tiêu gắn
mỗi nghiệm chấp nhận được với một giá trị. Nghiệm tối ưu là nghiệm chấp nhận được mà tại đó hàm mục
tiêu đạt giá trị nhỏ nhất ( lớn nhất).
Đặc trưng tham lam của phương pháp thể hiện bởi : trong mỗi bước việc xử lí sẽ tuân theo một sự chọn
lựa trước, không kể đến tình trạng không tốt có thể xảy ra khi thực hiện lựa chọn lúc đầu.
2 Sơ đồ chung của thuật toán
. Đặc điểm chung của thuật toán tham lam
- Mục đích xây dựng bài toán giải nhiều lớp bài toán khác nhau, đưa ra quyết định dựa ngay vào thuật
toán đang có, và trong tương lai sẽ không xem xét lại quyết định trong quá khứ. - > thuật toán dễ đề xuất,
thời gian tính nhanh nhưng thường không cho kết quả đúng.
- Lời giải cần tìm có thể mô tả như là bộ gồm hữu hạn các thành phần thoả mãn điều kiện nhất định,
ta phải giải quyết bài toán một cách tối ưu -> hàm mục tiêu
- Để xây dựng lời giải ta có một tập các ứng cử viên
- Xuất phát từ lời giải rỗng, thực hiện việc xây dựng lời giải từng bước, mỗi bước sẽ lựa chọn trong tập


ứng cử viên để bổ xung vào lời giải hiện có.
- Xây dựng được một hàm nhận biết được tính chấp nhận được của lời giải hiện có -> Hàm Solution(S)
-> Kiểm tra thoả mãn điều kiện .
- Một hàm quan trọng nữa : Select(C) cho phép tại mỗi bước của thuật toán lựa chọn ứng cử viên có
triển vọng nhất để bổ xung vào lời giải hiện có -> dựa trên căn cứ vào ảnh hơởng của nó vào hàm mục tiêu,
thực tế là ứng cử viên đó phải giúp chúng ta phát triển tiếp tục bài toán.

Version 1.1: Jul 23, 2010 3:32 pm GMT+7

/> />Hoc lieu Mo Vietnam - Vietnam Open Educational Resources module: m12935 2
- Xây dựng hàm nhận biết tính chấp nhận được của ứng cử viên được lựa chọn, để có thể quyết định bổ
xung ứng cử viên được lựa chọn bởi hàm Select vào lời giải -> Feasible(S ẩ x).
Sơ đồ thuật toán
* input A[1 n]
* output S //lời giải;
greedy (A,n)
S = 0;
while ( A <> 0)
{
x= Chọn(A); A = A-{x}
if( S U {x} chấp nhận được )
S = S U {x};
Return S;
}
/>

×