Input:
- Cây/Đồ thị G = (V,E) với đỉnh gốc là n0 (trạng thái đầu)
- Tập đích DICH.
Output:
- Một đường đi p từ n0 đến một đỉnh n* Î DICH.
Method:
- Sử dụng hai danh sách hoạt động theo nguyên tắc FIFO (queue) MO và DONG.
Procedure BrFS; (Breadth First Search)
Begin
Append(MO,no)
DONG=null;
While MO <> null do
begin
n:= Take(MO);
if nÎ DICH then exit;
Append(DONG, n);
For mÎ T(n) and mÏDONG+MO do
Append(MO, m);
end;
Write (‘Không có lời giải’);
End;
Chú ý:
Giả sử rằng, mỗi trạng thái khi được xét sẽ sinh ra k trạng thái kế tiếp. Khi đó ta gọi k là nhân tố nhánh. Nếu bài toán tìm được nghiệm theo phương pháp tìm kiếm rộng có độ sâu d, như vậy đỉnh đích sẽ nằm ở mức d+1, do đó số đỉnh cần xét lớn nhất là:
1 + k + k2 + . . . + kd.
Nghĩa là độ phức tạp thời gian của giải thuật là O(kd). Độ phức tạp không gian cũng là O(kd), vì tất cả các đỉnh của cây tìm kiếm ở mức d+1 đều phải lưu vào danh sách.
» Tin mới nhất:
» Các tin khác: