Câu hỏi:

Mô tả thuật toán A*


Thuật toán A (A-star) là một thuật toán tìm kiếm đường đi tối ưu trên đồ thị, dựa trên thuật toán tìm kiếm theo chiều rộng (BFS) và đặc biệt phù hợp cho các bài toán tìm kiếm đường đi ngắn nhất và tối ưu. Thuật toán A sử dụng hàm đánh giá f(n), quyết định thứ tự duyệt các nút trong đồ thị, với n là một nút của đồ thị. Hàm f(n) được tính như sau:

f(n) = g(n) + h(n)

Trong đó:

Thuật toán A* tiến hành duyệt đồ thị theo các bước sau:

  1. Khởi tạo: đặt nút nguồn vào một danh sách mở (một cấu trúc dữ liệu ưu tiên hàng đợi) và đánh dấu nút nguồn như đã xem xét.
  2. Lặp lại đến khi danh sách mở trống hoặc tìm được đường đi: a. Lấy nút n có f(n) nhỏ nhất ra khỏi danh sách mở và đặt là nút hiện tại. b. Nếu nút hiện tại là nút đích, thuật toán kết thúc và đường đi được xây dựng từ nút nguồn đến nút đích thông qua việc theo dõi những nút đã xét. c. Ngược lại, đối với mỗi nút kề của nút hiện tại, kiểm tra xem nếu chưa xét hoặc đã xét nhưng g(n) nhỏ hơn giá trị đã xét trước đó, cập nhật lại g(n), h(n) và f(n), và đưa nút này vào danh sách mở nếu chưa từng xét.
  3. Nếu không tìm được đường đi từ nút nguồn đến nút đích, đưa ra kết luận là không tồn tại đường đi.

Thuật toán A đảm bảo tìm được đường đi tối ưu nếu hàm heuristic h(n) không surestimate (dự đoán quá cao) khoảng cách đến nút đích. A cũng có hiệu suất tốt hơn so với thuật toán BFS và UCS khi sử dụng hàm heuristic phù hợp.


Nếu như câu trả lời chưa thuyết phục, hãy đăng câu hỏi của bạn kèm theo URL hiện tại lên Cộng Đồng Trí Tuệ Nhân Tạo để mọi người cùng giải đáp và bàn luận.
Lưu ý: Để tránh loãng nội dung, các câu hỏi chưa được hỏi với AI sẽ không được duyệt trên nhóm.
Trang chủ | Hỏi tiếp | Xem lịch sử