Phương pháp: xem xét mở rộng nút có giá thành đường đi tới đích nhỏ nhất trước.
Trong phương pháp này, để đánh giá độ tốt của một nút, ta sử dụng hàm đo giá thành
đường đi từ nút đó tới đích. Tuy nhiên, do không biết được chính xác giá thành đường đi từ một nút tới đích, ta chỉ có thểước lượng giá trị này. Hàm ước lượng độ tốt, hay giá thành đường đi từ
một nút n tới địch gọi là hàm heuristic và ký hiệu h(n). Như vậy, đối với thuật toán tham lam, ta có f(n) = h(n).
Do hàm h(n) chỉ là hàm ước lượng giá thành đường đi tới đích nên có thể nói rằng tìm kiếm tham lam mở rộng nút trông có vẻ gần đích nhất trước các nút khác. Thuật toán được gọi là “tham lam” do thuật toán chỉ quan tâm tới việc lựa chọn nút trông có vẻ tốt nhất ở mỗi bước mà không quan tâm tới việc trong tương lai việc dùng nút đó có thể không phải là tối ưu.
Điều kiện của hàm h(n): h(n) ≥0
Nhận xét: tìm kiếm heuristic tương tự DFS nhưng cho phép quay lui khi gặp bế tắc
Ví dụ hàm heuristic h(n). Khi tìm đường trên bản đồ, hàm heuristic cho một thành phố có thể tính bằng khoảng cách theo đường chim bay giữa thành phốđó với thành phốđích cần đến.
Đặc điểm:
• Không có tính đầy đủ do có khả năng tạo thành vòng lặp ở một số nút.
• Độ phức tạp về thời gian: O( m
b ) (thuật toán nhanh hơn BFS, và có thể cũng nhanh hơn DFS nếu tồn tại heuristic tốt). Tuy nhiên trong trường hợp heuristic không tốt thì thuật toán sẽđi sai hướng và do vậy gần giống với tìm sâu.
• Độ phức tạp về không gian lưu trữ: O( m
b ) (lưu tất cả các nút trong bộ nhớ)
• Thuật toán không tối ưu