Câu trả lời ngắn gọn là có, có những tình huống trong đó A * không phải là thuật toán tốt nhất để giải quyết một vấn đề. Tuy nhiên, có một số cách để đánh giá những gì cấu thành thuật toán tốt nhất để tìm giải pháp.
Nếu bạn đang cân nhắc tốt nhất về hiệu suất của nhiều tìm kiếm từ một nguồn duy nhất để nhiều điểm đến, sau đó bạn nên xem xét sử dụng một cách tiếp cận phù hợp hơn (Dijkstra's algorithm).
Nếu bạn đang cân nhắc tốt nhất về hiệu suất, sau đó trong một số trường hợp đặc biệt DFS và BFS sẽ tốt hơn đáng kể A *. Từ kinh nghiệm quá khứ, điều này xảy ra đối với các đồ thị rất nhỏ, gần như tầm thường, nhưng sẽ yêu cầu kiểm tra cẩn thận và lược tả để đưa ra một tuyên bố mạnh mẽ hơn.
Nếu bạn đang cân nhắc tốt nhất về con đường dài, đó là bao lâu con đường cuối cùng được tạo bởi các thuật toán, sau đó A * tương đương với bất kỳ thuật toán tìm kiếm tối ưu khác.
Nếu bạn đang cân nhắc tốt nhất về đầy đủ, có nghĩa là, sẽ thuật toán luôn tìm thấy một con đường đến mục tiêu nếu một con đường như vậy tồn tại. Nếu vậy, thì A * tương đương với bất kỳ thuật toán hoàn chỉnh nào khác (ví dụ, tìm kiếm theo chiều rộng).
Nếu bạn đang cân nhắc tốt nhất trong trường hợp một số các trọng trong đồ thị dưới là âm, sau đó bạn sẽ cần phải sử dụng một thuật toán đặc biệt để giải quyết những vấn đề (ví dụ bellman-ford)
Nếu bạn đang xem xét tốt nhất trong trường hợp không có heuristic có sẵn thì bạn phải quay lại h(x,y)=0 forall states x and y
. Trong trường hợp này A * tương đương với tìm kiếm đầu tiên tốt nhất.
Nếu bạn đang cân nhắc tốt nhất trong các trường hợp liên quan đến kế hoạch chuyển động trong không gian cấu hình liên tục, sau đó A * có thể làm việc đầy đủ trong kích thước thấp, nhưng lưu trữ của đồ thị tìm kiếm bắt đầu trở nên không thực tế ở kích thước cao, và cần phải sử dụng các thuật toán xác suất hoàn thành tăng (ví dụ RRT, Bi-RRT, RDT)
Nếu bạn đang cân nhắc tốt nhất trong trường hợp đồ thị là một phần quan sát được, bạn chỉ biết một tập hợp con của tất cả các đỉnh có thể và các cạnh trong biểu đồ tại ny thời gian, và bạn cần phải thay đổi trạng thái để quan sát nhiều hơn của đồ thị, sau đó bạn cần một thuật toán thay thế được thiết kế cho điều này (ví dụ, Keonig 's Lifelong Planning A *, LPA *, thực hiện chính xác điều này).
Nếu bạn đang cân nhắc tốt nhất trong trường hợp đồ thị thay đổi theo thời gian, mà xảy ra thường xuyên trong robot khi bạn kết hợp di chuyển trở ngại, sau đó bạn cần một thuật toán được thiết kế cho việc này (ví dụ Stentz của D* hoặc Koenig & Likhachev's D * -Lite).
Điều đáng lưu ý là mẹo nhân nhân số phát triển theo hằng số sẽ khiến cho giả thuyết không thể chấp nhận được, và kết quả như vậy trong tìm kiếm không còn là tối ưu. –
Có, nhưng như đã nói ở trên, có những giới hạn khả thi về loại kết quả gần đúng của kết quả tối ưu mà nó sẽ tạo ra. Đặc biệt, đối với một hằng số, c, đường dẫn kết quả của bạn sẽ không nhiều hơn c lần miễn là đường dẫn tối ưu. – sjdlgjsljg