Tải bản đầy đủ (.pptx) (12 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (995.44 KB, 12 trang )

Click icon to add picture

Thuật tốn tìm kiếm theo
chiều rộng
Nhóm 2:
Nguyễn Thị Tươi
Trần Thị Thu Thảo
Đào Duy An

Đỗ Thị Hoàng Anh
Phan Ngọc Trung


I.Tổng quan về thuật toán
Click icon to add picture

1. Khái niệm



Thuật tốn tìm kiếm theo chiều rộng (Breadth-first search - BFS) là một thuật
tốn để duyệt hoặc tìm kiếm theo  từng lớp  trong cấu trúc dữ liệu dạng cây
hoặc đồ thị.



Có thể sử dụng thuật tốn với mục đích :
+ Tìm kiếm đường đi từ một đỉnh gốc cho trước tới một đỉnh đích.
+ Tìm kiếm đường đi từ đỉnh gốc tới tất cả các đỉnh khác.




Việc triển khai thuật tón sẽ thực hiện chia mỗi đỉnh của biểu đồ thành một
trong hai loại :
+ Đã được duyệt
+ Không được duyệt

2


Nguyên tắc
Click icon to add picture



Các trạng thái được phát triển theo
thứ tự từ trái qua phải, từ trên xuống
dưới, trạng thái nào sinh ra trước sẽ
được phát triển trước, trạng thái nào
sinh ra sau sẽ được phát triển sau .



Từ trạng thái ban đầu S xây dựng tập hợp T
bao gồm các trạng thái kế tiếp



Ứng với trạng thái Tk trong tập T ta xây dựng
Sk bao gồm trạng thái kế tiếp của Tk rồi lần
lượt bổ sung Sk vào S.




Q trình này lặp lại cho đến lúc S chứa
trạng thái kết thúc hoặc S không thay đổi sau
khi bổ sung tất cả Sk .

3


Các bước tìm kiếm
Thuật tốn




Bước 1: S ← {u0}, T ←∅, found ← false;
Bước 2: Trong khi (S ≠ ∅) và (not found) thì :





Lấy một phần tử u đầu tiên trong S và đưa vào T
Nếu u ∈G thì đích được tìm thấy => giải thuật kết thúc
Ngược lại: Nếu có luật u →v (v kề u) mà v∉S thì thêm v vào cuối
danh sách S và u là cha của v.

Procedure BFS;
Begin

Khởi tạo danh sách L chỉ chứa trạng thái ban đầu.
Loop do
2.1 If L rỗng then
{Thông báo tìm kiếm thất bại;stop};
2.2 Loại trạng thái u ở đầu danh sách L;
2.3 If u là trạng thái kết thúc then
{Thơng báo tìm kiếm thành cơng ;stop};
2.4 for mỗi trạng thái v kề u do
{Đặt v vào cuối danh sách L ;father(v) <-- u};
End;

4


Bài tốn 8 ơ
Giới thiệu bài tốn:

• Bài tồn gồm một bảng ơ vng kích thước 3x3,

có tám ơ được đánh số từ 1 tới 8 và một ô trống.
Trạng thái ban đầu, các ô được sắp xếp một cách
ngẫu nhiên, nhiệm vụ của người chơi là tìm cách
đưa chúng về đúng thứ tự .

• Trong q trình giải bài tồn, tại mỗi bước, ta giả

định chỉ có ơ trống là di chuyển, như vậy, tối đa ơ
trống có thể có 4 khả năng di chuyển (lên trên,
xuống dưới, sang trái, sang phải).


5


Add Image Here

Xác định trạng thái đích

• Ta xét lần lượt từ trên xuống dười, từ trái sang

phải, với mỗi ơ số đang xét, ta kiểm tra xem phía
sau có bao nhiêu ơ số có giá trị nhỏ hơn ơ đó.
Sau đó ta tính tổng N = n1 + n2 + … + n8.
+ Nếu N là số lẻ thì chúng ta chỉ có thể có đáp án là
trạng thái A( bên trên).
+ Ngược lại nếu N là số chẵn ta sẽ có trạng thái đích
B (bên dưới)

Add Image Here

6


Add Image Here

Xác định trạng thái đích

• Ta có trạng thái đầu
• Đầu tiên hãy tính thử có bao nhiêu số bé hơn 8 ở

Trạng thái đầu ->


sau ô chứa giá trị 8.

• Kết quả nhận được là 6 (những ơ màu vàng)
• Tương tự với ơ có giá trị 6. Dễ thấy trong 3 ơ (4,
7 5) có 2 giá trị nhỏ hơn 6 là 4,5.

Add Image Here

• Làm như trên từ ô đầu tiên (2) tới ô cuối cùng (5)
và cộng dồn các giá trị nhận được:

• N= 1+6+1+0+2+0+1+0=11
• Vậy với trạng thái trên N là số lẻ ta chỉ có thể có
trạng thái đích là trạng thái A

<= Trạng thái đích

7


Click icon to add picture

Phân tích
bước đi bài
tốn

8



Chương trình minh họa
Click icon to add picture

9


Ưu và nhược điểm của phương pháp tìm kiếm rộng
Click icon to add picture

Click icon to add picture

Nhược điểm

Ưu điểm


Kỹ thuật tìm kiếm rộng là kỹ thuật vét cạn khơng gian trạng thái bài tốn vì vậy sẽ tìm được lời giải nếu có.
Đường đi tìm được đi qua ít đỉnh nhất.

Tìm kiếm lời giải theo thuật tốn đã định trước, do vậy tìm kiếm một cách máy móc; khi khơng có thơng tin hổ trợ
cho q trình tìm kiếm, khơng nhận ra ngay lời giải.



Khơng phù hợp với khơng gian bài ốn kích thước lớn. Đối với loại bài tốn này, phương pháp tìm rộng đối mặt với
các nhu cầu:
+ Cần nhiều bộ nhớ theo số nút cần lưu trữ.
+ Cần nhiều công sức xử lý các nút, nhất là khi các nhánh cây dài, số nút tăng.
+ Dễ thực hiện các thao tác khơng thích hợp, thừa, đưa đến việc tăng đáng kể số nút phải xử lý.




Khơng hiệu qủa nếu lời giải ở sâu. Phương pháp này khơng phù hợp cho trường hợp có nhiều đường dẫn đến kết
quả nhưng đều sâu.



Giao tiếp với người dùng khơng thân thiện. Do duyệt qua tất cả các nút, việc tìm kiếm khơng tập trung vào một chủ
đề.

10


Ứng dụng của thuật toán
Click icon to add picture

Click icon to add picture
Trình thu thập thơng tin của Cơng cụ Tìm
Hệ thống định vị GPS:  BFS được sử

kiếm: Ý tưởng chính đằng sau trình thu thập

dụng để tìm các vị trí lân cận từ một vị

thông tin là bắt đầu từ trang nguồn và đi theo

trí nguồn nhất định.

tất cả các liên kết từ nguồn đó đến các trang
khác và tiếp tục lặp lại như vậy.


Click icon to add picture
Đường đi ngắn nhất:  Trong đồ thị khơng có
trọng số, đường đi ngắn nhất là đường có số
cạnh ít nhất. Với BFS, chúng ta  ln  tiếp cận
một nút từ nguồn đã cho theo con đường ngắn

Click icon to add picture
Các trang web mạng xã hội:  Chúng ta
có thể tìm thấy số lượng người trong
một khoảng cách nhất định 'k' từ một
người sử dụng .

nhất có thể. Ví dụ: Thuật tốn Dijkstra.

11


Click icon to add picture

Cảm ơn cô
và các bạn đã lắng nghe

12



×