Thuật toán tìm kiếm theo chiều rộng

Một phần của tài liệu (LUẬN văn THẠC sĩ) sinh câu miêu tả cho hình ảnh sử dụng mô hình ngôn ngữ (Trang 27 - 29)

Chương 2 PHƯƠNG PHÁP

2.3. Thuật toán tìm kiếm

2.3.1. Thuật toán tìm kiếm theo chiều rộng

Giải thuật tìm kiếm lời giải theo chiều rộng là cài đặt cụ thể của giải thuật chung tìm kiếm lời giải, trong đó có sử dụng cấu trúc dữ liệu kiểu hàng đợi (Queue) để lưu giữ các trạng thái nút lá của cây tìm kiếm. Các nút lá sinh ra trong quá trình thực thi giải thuật sẽ được cập nhật vào một hàng đợi theo nguyên tắc nút nào được đưa vào hàng đợi trước sẽđược lấy ra trước trong quá trình mở rộng cây

Thuật toán này thực ra là sự cải biến về thứ tự duyệt đỉnh trên đồ thị của tìm kiếm theo chiều sâu bằng cách thay vì dùng một STACK thì ta lại dùng một hàng

đợi QUEUE để kết nạp đỉnh được thăm. Như vậy, đỉnh được thăm càng sớm sẽ

càng sớm trở thành duyệt xong (cơ chế First In First Out - vào trước ra trước). Thủ tục được miêu tả dưới đây:

Procedure BFS(u); Begin Queue:=Empty Kết nạp u vào Queue; Daxet[u]:=True; While Queue<>Empty do Begin

Lấy v từ Queue; Visit(v);

For w∈ Kề(v) do If not Daxet[w] then Begin Kết nạp w vào Queue; Daxet[w]:=True; End; End; End; Ta có thủ tục tìm kiếm theo chiều rộng là: Procedure Find; Begin Fillchar(Daxet,SizeOf(Daxet),False); For u ∈ V do

If not Daxet[u] then BFS(u);

End;

Ở thuật toán này mỗi lần gọi thủ tục BFS(u) thì mọi đỉnh cùng thành phần liên thông với u sẽ được thăm. Thủ tục Visit(u) như đã nói ở trên.

Chúng ta có một số nhận xét sau đây về thuật toán tìm kiếm theo bề rộng: • Trong tìm kiếm theo bề rộng, trạng thái nào được sinh ra trước sẽ được

phát triển trước, do đó danh sách L được xử lý như hàng đợi. Trong bước 2.3, ta cần kiểm tra xem u có là trạng thái kết thúc hay không. Nói chung các trạng thái kết thúc được xác định bởi một số điều kiện nào đó, khi đó ta cần kiểm tra xem u có thỏa mãn các điều kiện đó hay không.

• Nếu bài toán có nghiệm (tồn tại đường đi từ trạng thái ban đầu tới trạng thái đích), thì thuật toán tìm kiếm theo bề rộng sẽ tìm ra nghiệm, đồng thời đường đi tìm được sẽ là ngắn nhất. Trong trường hợp bài toán vô nghiệm và không gian trạng thái hữu hạn, thuật toán sẽ dừng và cho thông báo vô nghiệm.

Một phần của tài liệu (LUẬN văn THẠC sĩ) sinh câu miêu tả cho hình ảnh sử dụng mô hình ngôn ngữ (Trang 27 - 29)

Tải bản đầy đủ (PDF)

(64 trang)