Thuật toán A*: Cấu trúc dữ liệu: - P: tập các trạng thái chờ quyết định và được tổ chức ở dạng stack - Q: tập hợp các trạng thái đã phát triển - Biến found - Hàm father Thuật toán: Input data: Đồ thị ẩn G(u 0 , R), hàm giá k(u,v): U x U R + Hàm h: U R + 1. P {u 0 }; Q Ø; found false; 2. While (P ≠ Ø) and (not found) do 2.1. Loại trạng thái u ở đỉnh khỏi stack P và lưu nó vào Q: Pop(P,u); Add(u,Q); 2.2. If u ϵ T then found true else if S(u) ≠ Ø then for v ϵ S(u) do if v P Q ∉ ⋃ or (g(u) + k(u,v) < g(v)) then 2.2.1. g(v) g(u) + k(u,v); 2.2.2. f(v) g(v) + h(v); 2.2.3. father(v) u; 2.2.4. đưa v vào P theo trật tự tăng của hàm f rồi giảm của hàm g . Thuật toán A* : Cấu trúc dữ liệu: - P: tập các trạng thái chờ quyết định và được tổ chức ở dạng stack - Q: tập hợp các trạng thái đã phát triển - Biến found - Hàm father Thuật toán: Input data:. U R + 1. P {u 0 }; Q Ø; found false; 2. While (P ≠ Ø) and (not found) do 2.1. Loại trạng thái u ở đỉnh khỏi stack P và lưu nó vào Q: Pop(P,u); Add(u,Q); 2.2. If u ϵ T then found true. then 2.2.1. g(v) g(u) + k(u,v); 2.2.2. f(v) g(v) + h(v); 2.2.3. father(v) u; 2.2.4. đ a v vào P theo trật tự tăng c a hàm f rồi giảm c a hàm g