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

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

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Thuật toán tìm kiếm theo chiều rộng (Breadth-first search - BFS) là một thuật toá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 toá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

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 thuật toán Click icon to add picture Khái niệm • Thuật tốn tìm kiếm theo chiều rộng (Breadth-first search - BFS) là thuật toán để duyệt tìm kiếm theo  từng lớp  trong cấu trúc liệu dạng đồ thị • Có thể sử dụng thuật tốn với mục đích : + Tìm kiếm đường từ đỉnh gốc cho trước tới đỉnh đích + Tìm kiếm đường từ đỉnh gốc tới tất đỉnh khác • Việc triển khai thuật tón thực chia đỉnh biểu đồ thành hai loại : + Đã duyệt + Không duyệt Nguyên tắc Click icon to add picture • Các trạng thái phát triển theo thứ tự từ trái qua phải, từ xuống dưới, trạng thái sinh trước phát triển trước, trạng thái sinh sau 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 trạng thái • Ứng với trạng thái Tk tập T ta xây dựng Sk bao gồm trạng thái Tk bổ sung Sk vào S • Q trình lặp lại lúc S chứa trạng thái kết thúc S không thay đổi sau bổ sung tất Sk Các bước tìm kiếm Thuật tốn   Bước 1: S ← {u0}, T ←∅, found ← false; Bước 2: Trong (S ≠ ∅) (not found) : • • • Lấy phần tử u S đưa vào T Nếu u ∈G đích 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êm v vào cuối danh sách S u cha v Procedure BFS; Begin Khởi tạo danh sách L chứa trạng thái ban đầu Loop 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 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 trạng thái v kề u {Đặt v vào cuối danh sách L ;father(v) < u}; End; Bài tốn Giới thiệu tốn: • Bài tồn gồm bảng vng kích thước 3x3, có tám ô đánh số từ tới ô trống Trạng thái ban đầu, ô xếp cách ngẫu nhiên, nhiệm vụ người chơi tìm cách đưa chúng thứ tự • Trong q trình giải tồn, bước, ta giả định có trống di chuyển, vậy, tối đa trống có khả di chuyển (lên trên, xuống dưới, sang trái, sang phải) Add Image Here Xác định trạng thái đích • Ta xét từ xuống dười, từ trái sang phải, với ô số xét, ta kiểm tra xem phía sau có ô số có giá trị nhỏ ô Sau ta tính tổng N = n1 + n2 + … + n8 + Nếu N số lẻ có đáp án trạng thái A( bên trên) + Ngược lại N số chẵn ta có trạng thái đích B (bên dưới) Add Image Here Add Image Here Xác định trạng thái đích • Ta có trạng thái đầu • Đầu tiên tính thử có số bé Trạng thái đầu -> sau ô chứa giá trị • Kết nhận (những màu vàng) • Tương tự với có giá trị Dễ thấy ô (4, 5) có giá trị nhỏ 4,5 Add Image Here • Làm từ (2) tới ô cuối (5) cộng dồn giá trị nhận được: • N= 1+6+1+0+2+0+1+0=11 • Vậy với trạng thái N số lẻ ta có trạng thái đích trạng thái A

Ngày đăng: 08/06/2022, 22:04

Tài liệu cùng người dùng

Tài liệu liên quan