Giao diện tìm kiếm theo chiều sâu (DFS)

Một phần của tài liệu Cài đặt thuật toán tìm kiếm theo chiều sâu, chiều rộng bằng ngôn ngữ Cshaps (Trang 44 - 51)

Kết quả tìm kiếm sẽ được hiển thị trong khung Thông tin các đỉnh và lời giải Chú ý: Tại giao diện chính của cả bài toán tìm kiếm theo chiều sâu và chiều

3.2.3 Giao diện tìm kiếm theo chiều sâu (DFS)

Kết quả quá trình tìm kiếm theo chiều sâu được tô màu đỏ. Ta thấy kết quả đường đi là: 0 -> 2 -> 6

3.2 Ứng dụng

Áp dụng thuật toán tìm kiếm theo chiều sâu và chiều rộng tìm đường đi từ đường tròn Đồng quang (0) lên Bảo tàng các dân tộc Việt Nam (5). Trong bài toán này bạn được cho biết điểm xuất phát và đích đến. Hãy tìm đường đi đến đích trong số tất cả các đường có thể đi được. Giả sử có cây đồ thị đường đi như hình 3.2

Hình 3.2: Cây đồ thị đường đi

Kỹ thuật tìm kiếm rông là tìm kiếm trên tất cả các nút của một mức trong không gian bài toán trước khi chuyển sang các nút của mức tiếp theo.

Kỹ thuật tìm kiếm rộng bắt đầu từ mức thứ nhất của không gian bài toán, theo hướng dẫn của luật trọng tài, chẳng hạn “đi từ trái sang phải”. Nếu không thấy lời giải tại mức này, nó chuyển xuống mức sau để tiếp tục … đến khi định vị được lời giải nếu có. Hướng giải: Áp dụng thuật toán tìm kiếm theo chiều rộng ta xét lần lượt các đường kề gần nhất với đường đang đứng. Nếu không tìm thấy thì tiếp tục xét các đường xa hơn.

Giả sử đang đi ở Đồng quang (0), khi đó có các đường rẽ kề gần nhất có các trường hợp: + Nếu tồn tại đường Hoàng văn thụ (3), đường Lương ngọc quyến (2), Ngã tư (1) đều kề với đường Đồng quang (0) chưa được xét thì xét lần lượt ba đường này (nó trở thành đường đã xét) và bắt đầu từ đó tiếp tục quá trình tìm kiếm với đường này..

+ Nếu với mọi đường kề với (0) đều đã được xét thì (1) (2) (3) coi như duyệt xong và tiếp tục tìm kiếm từ đường mà chưa đi đến ở xa hơn

Bảng các bước chi tiết thực hiện giải thuật

Lần lặp L=Ø Tập đỉnh

(u) U €T Danh sáchOpen(v) Danh sáchclose (L)

0 0 1 FASLE 0 FASLE 1 2 3 1 2 3 2 FASLE 1 FASLE 4 5 2 3 4 5 3 FASLE 2 FASLE 6 7 3 4 5 6 7 4 FASLE 3 FASLE 8 4 5 6 7 8 5 FASLE 4 FASLE - 5 6 7 8 6 FASLE 5 TRUE - 6 7 8

Hình mô phỏng quá trình tìm kiếm

Quá trình tìm kiếm là: 0 1 2 3 4 5 6

Vậy ta nên đi như sau: Đường tròn Đông quang (0) -> Ngã tư (1) -> Bảo tàng DTVN (5) b) Áp dụng thuật toán tìm kiếm theo chiều sâu

Dùng thuật toán tìm kiếm theoc chiều SÂU tìm đường đi từ đường tròn Đồng quang (0) lên Bảo tàng các dân tộc Việt Nam (5) sử dụng đề bài ở hình 1.

Hướng giải: Tìm kiếm sâu trong không gian bài toán được bắt đầu từ một nút rồi tiếp tục cho đến khi hoặc đến ngõ cụt hoặc đến đích. Tại mỗi nút có luật trong tài, chẳng hạn, “đi

theo nút cực trái”, hướng dẫn việc tìm. Nếu không đi tiếp được, gọi là đến ngõ cụt, hệ thống quay lại một mức trên đồ thị và tìm theo hướng khác, chẳng hạn, đến nút “sát nút cực trái”. Hành động này gọi là quay lui.

Thuật toán tìm kiếm theo chiều sâu được hình dung như việc khảo sát một cây bắt đầu từ gốc đi theo mọi cành có thể được, khi gặp cành cụt thì quay lại xét cành chưa đi qua. - Ở bước tổng quát, giả sử đang đi ở đường Lương ngọc quyến(1), khi đó có các đường rẽ có các trường hợp:

+ Nếu tồn tại đường Bắc cạn (4) kề với đường Lương ngọc quyến (1) chưa được xét thì xét đường này (nó trở thành đường đã xét) và bắt đầu từ đó tiếp tục quá trình tìm kiếm với đường này..

+ Nếu với mọi đường kề với (1) đều đã được xét thì (1) coi như duyệt xong và quay trở lại tìm kiếm từ đường mà từ đó ta đi đến được (1). ( quay lại (0))

Bảng các bước chi tiết thực hiện giải thuật

Lần

lặp L=Ø Tập đỉnh(u) U € T Danh sáchOpen(v) Danh sáchclose (L)

0 0 1 FASLE 0 FASLE 1 2 3 3 2 1 2 FASLE 1 FASLE 4 5 5 4 3 2 3 FASLE 2 FASLE 6 7 7 6 5 4 3 4 FASLE 3 FASLE 8 8 7 6 5 4 5 FASLE 4 FASLE - 8 7 6 5 6 FASLE 5 TRUE - 8 7 6

Hình mô phỏng quá trình tìm kiếm theo theo chiều sâu

Quá trình tìm kiếm là: 0 3 8 1 4 5

KẾT LUẬN

Thông qua việc tìm hiểu và nghiên cứu đề tài này giúp em có cái nhìn toàn diện hơn trong việc ứng dụng trí tuệ nhân tạo vào giải quyết vấn đề thực tế, em đã nắm bắt được cơ bản kiến thức về lập trình, các thuật toán để giải quyết các vấn đề về tìm kiếm theo chiều sâu và chiều rộng. Nghiêm cứu về nguyên lý và cách mà thuật toán thực hiện, em hiểu thêm về tầm quan trọng của thuật toán tìm kiếm mù, tìm kiếm tối ưu đến việc áp dụng giải quyết các vấn đề thực tiễn. Do hạn chế về thời gian nên kiến thức mà em tìm hiểu được còn thiết sót, cần được bổ sung. Và em mới tìm hiểu về đồ họa trong ngôn ngữ C# nên chưa thể thành thạo, chưa có kiến thức chuyên sâu được. Em rất mong nhận được sự góp ý, hướng dẫn của Thầy Cô để em có kiến thức hoàn thiện hơn. Một lần nữa em xin chân thành cảm ơn thầy Trần Mạnh Tuấn đã tận tình chỉ bảo em để em hoàn thành đề tài này.

Em xin chân thành cảm ơn!

Sinh viên Lý Thị Việt Chung

TÀI LIỆU THAM KHẢO

[1]. Trí tuệnhân tạo. Đinh Mạnh Tường. Nhà xuất bản Khoa học kỹthuật, 2002.

[2]. Giáo trình “Ngôn ngữ Lập trình C#” [3]. http://blogthuthuat.com/

[4].http://tailieu.vn/doc/giao-trinh-c-va-net-framework-1245249.html [5]. https://www.youtube.com/watch?v=siiTCoPyF60

Một phần của tài liệu Cài đặt thuật toán tìm kiếm theo chiều sâu, chiều rộng bằng ngôn ngữ Cshaps (Trang 44 - 51)

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

(51 trang)
w