Giả sử bạn phải tìm con đường ngắn nhất xuyên qua ngục tối, nơi một số lối đi nhất định chỉ được mở cho bạn sau khi một số vật phẩm nhất định được thu thập, chẳng hạn như cửa bị khóa và chìa khóa.
Phản ứng ruột bình thường đối với các từ "con đường ngắn nhất" rõ ràng sẽ là A *. Nhưng A * sẽ thất bại trong một môi trường như vậy, vì tôi thấy nhiều vấn đề khi xác định một heuristic đáng tin cậy và, ngoài ra, rất có thể, một nút phải được truy cập nhiều lần, điều này cũng không thể xảy ra trong A * thông thường và cũng sẽ không thể làm cho heuristic khó hơn.
Những gì tôi nghĩ chỉ đơn giản là tìm kiếm một con đường từ đầu ngục tối đến cuối, bỏ qua bất kỳ cánh cửa bị chặn. Sau khi tìm thấy đường dẫn này, đối với mỗi cánh cửa chặn đường chúng ta, một con đường bổ sung tìm chìa khóa thích hợp và quay lại cánh cửa sẽ được tìm kiếm và đi qua trước khi cánh cửa thậm chí chạm tới. Hệ thống tương tự sẽ được sử dụng để xử lý một tình huống, trong đó đường dẫn đến chìa khóa cần thiết để mở một cánh cửa lại bị chặn bởi một cánh cửa khác, cần phải được mở trước.
Một vấn đề lớn mà tôi thấy với giải pháp của mình là sau khi tìm thấy tất cả các con đường bao gồm cả những con đường để mua vật phẩm, tổng quãng đường mà đại lý đi được có thể không phải là nhỏ nhất có thể, vì có thể có những cánh cửa bị chặn khác nằm xa mục tiêu hơn nhưng có chìa khóa thích hợp của họ dễ dàng hơn nhiều có sẵn. A * sẽ bỏ qua những cánh cửa này trên đường đèo đầu tiên, nơi những cánh cửa bị chặn đơn giản bị bỏ qua.
Tôi chắc chắn tôi không phải là người đầu tiên cố gắng giải quyết vấn đề này và tôi sẽ đánh giá cao một số ý kiến đóng góp cho vấn đề này.