Với vốn kiếnthức học được trong môn “Nhập môn trí tuệ nhân tạo” và sự giúp đỡ của thầyPhạm Đức Hồng, em đã chọn đề tài:”Bài toán và phương pháp tìm kiếm điểmmùtìm kiếm theo chiều rộng, c
Trang 1TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN NHẬP MÔN TRÍ TUỆ NHÂN TẠO
ĐỀ T!I:
B!I TOÁN V! PHƯƠNG PHÁP TÌM KIẾM ĐIỂM MÙ
Sinh viên thực hiện : NGUYỄN XUÂN MẠNH
ĐỖ TUẤN MINH TRẦN TUẤN ANH Giảng viên hướng dẫn : PHẠM ĐỨC HỒNG
Trang 3MỤC LỤC
Trang LỜI MỞ ĐẦU
CHƯƠNG I.CƠ SỞ LÝ THUYẾT:……….……….1
1.Tìm hiểu về trí tuệ nhân tạo AI:……….1
1.1.Khái niệm Artificial Intelligence (AI):……… ……….1
1.2.Lịch sử AI:……… …….………1
1.3.Mục tiêu AI:……….………2
2.Giải thuật tìm kiếm điểm mù:……… …… 2
2.1.Tìm kiếm theo chiều rộng:………… ………….……… ……… 2
2.2.Tìm kiếm theo chiều sâu:……… ……… … ……… 4
2.3.BFS và DFS:……….………….… ……5
CHƯƠNG 2.ÁP DỤNG GIẢI QUYẾT BÀI TOÁN:……… ….………8
2.1 Phát biểu bài toán: :……… ……… … ……… 8
2.2.Mô hình hoá bài toán: :……… ……….… …… … ……… 8
2.3.Các bước giải bài toán: :……… ……… … ……… 9
2.3.1.Thuật toán tìm kiếm chiều rộng….……… … ……… 9
2.3.2.Thuật toán tìm kiếm chiều sâu….……… … …… ….10
2.4.Kết quả giải toán: :……… ……… ……….12
2.4.1.Thuật toán tìm kiếm chiều rộng….……… … ……….12
2.4.2.Thuật toán tìm kiếm chiều sâu….……… … …… ….12
CHƯƠNG 3.DEMO:……… ……… ….…… 13
KẾT LUẬN:……… ….……… 16
Trang 4TÀI LIỆU THAM KHẢO:……… ……….… ………… … 17
Ở nước ta hiện nay, việc xây dựng các ứng dụng để phục vụ cho các nhu cầuriêng của các tổ chức, công ty thậm chí các cá nhân, ngày nay, không lấy gì làm xa
lạ Thông qua những ứng dụng này, thông tin các mặt hàng sản phẩm, dịch vụ củacông ty sẽ đến với những với khách hàng của họ một cách nhanh chóng, tránhnhững phiền phức mà phương thức giao tiếp truyền thống thường gặp phải Trí tuệ nhân tạo là một phần của ”công nghệ thông tin” giúp con người thiết
kế, xây dựng những chương trình một cách quy củ và dễ dàng hơn Với vốn kiếnthức học được trong môn “Nhập môn trí tuệ nhân tạo” và sự giúp đỡ của thầyPhạm Đức Hồng, em đã chọn đề tài:”Bài toán và phương pháp tìm kiếm điểmmù(tìm kiếm theo chiều rộng, chiều sâu)” để tìm hiểu và thực hành về môn này
Do trình độ chuyên môn chưa có, kinh nghiệm và kiến thức của bản thân cònhạn chế, chúng em rất mong nếu có sự thiếu xót mong thầy cô góp ý và bỏ qua chochúng em
Chúng em xin chân thành cảm ơn!
Trang 5CHƯƠNG I.CƠ SỞ LÝ THUYẾT:
1.Tìm hiểu về trí tuệ nhân tạo AI:
1.1.Khái niệm Artificial Intelligence (AI):
Trong khoa học máy tính, trí tuệ nhân tạo hay AI (Artificial Intelligence) làtrí thông minh nhân tạo được thể hiện bằng máy móc, khác với trí thông minh tựnhiên được con người hay các loài sinh vật khác thể hiện
Thông thường, thuật ngữ "trí tuệ nhân tạo" thường được sử dụng để mô tảcác máy móc (hoặc máy tính) bắt chước các chức năng "nhận thức" mà con ngườiliên kết với tâm trí con người, như "học tập" và "giải quyết vấn đề"
Cách hoạt động của AI: ban đầu agent (đối tượng) sẽ tác động lênenvironment (môi trường) thông qua actions (các hành động), sau đó environment
sẽ trả về cho agents là percepts/observations (các quan sát) Với mỗi action với môitrường, agent sẽ thu về percepts/observations thông qua sensors, các percepts tậphợp lại thành 1 chuỗi gọi là percepts sequence
1.2.Lịch sử AI:
Năm 1956, 1 workshop được tổ chức tại trường đại học Dartmouth bởi 1nhóm các nhà khoa học Tại đây, họ đã nói về tầm nhìn phát triển của ngành AIrằng mong muốn tạo ra được những cái máy có thể sử dụng ngôn ngữ làm việc vớicác khái niệm trừu tượng và từ đó AI được coi là 1 ngành độc lập
Những năm 1980, do sự phát triển của nhiều công trình nghiên cứu, ngành
Trang 61.3.Mục tiêu AI:
Các nhà nghiên cứu đầu tiên đã phát triển các thuật toán bắt chước theo lýluận từng bước mà con người sử dụng khi giải quyết các câu đố hoặc đưa ra cácphương pháp loại trừ logic Vào cuối những năm 1980 và 1990, nghiên cứu về AI
đã phát triển các phương pháp xử lý thông tin không chắc chắn hoặc không đầy đủ,
sử dụng các khái niệm từ xác suất và kinh tế
Đối với những vấn đề khó, các thuật toán bắt buộc phải có phần cứng đủmạnh để thực hiện phép tính toán khổng lồ - để trải qua "vụ nổ tổ hợp": lượng bộnhớ và thời gian tính toán có thể trở nên vô tận nếu giải quyết một vấn đề khó.Mức độ ưu tiên cao nhất là tìm kiếm các thuật toán giải quyết vấn đề
Con người thường sử dụng các phán đoán nhanh và trực quan chứ khôngphải là phép khấu trừ từng bước mà các nghiên cứu AI ban đầu có thể môphỏng AI đã tiến triển bằng cách sử dụng cách giải quyết vấn đề "biểu tượng phụ":cách tiếp cận tác nhân được thể hiện nhấn mạnh tầm quan trọng của các kỹ năngcảm biến động đến lý luận cao hơn; nghiên cứu mạng thần kinh cố gắng để môphỏng các cấu trúc bên trong não làm phát sinh kỹ năng này Các phương pháp tiếpcận thống kê đối với AI bắt chước khả năng của con người
2.Giải thuật tìm kiếm điểm mù:
2.1.Tìm kiếm theo chiều rộng:
Tìm kiếm theo chiều rộng (BFS) là một thuật toán tìm kiếm trong đồ thịtrong đó việc tìm kiếm chỉ bao gồm 2 thao tác: (a) cho trước một đỉnh của đồ thị;(b) thêm các đỉnh kề với đỉnh vừa cho vào danh sách có thể hướng tới tiếp theo Cóthể sử dụng thuật toán tìm kiếm theo chiều rộng cho hai mục đích: tìm kiếm đường
đi từ một đỉnh gốc cho trước tới một đỉnh đích, và tìm kiếm đường đi từ đỉnh gốctới tất cả các đỉnh khác Trong đồ thị không có trọng số, thuật toán tìm kiếm theochiều rộng luôn tìm ra đường đi ngắn nhất có thể Thuật toán BFS bắt đầu từ đỉnhgốc và lần lượt nhìn các đỉnh kề với đỉnh gốc Sau đó, với mỗi đỉnh trong số đó,
Trang 7thuật toán lại lần lượt nhìn trước các đỉnh kề với nó mà chưa được quan sát trước
đó và lặp lại Xem thêm thuật toán tìm kiếm theo chiều sâu, trong đó cũng sử dụng
2 thao tác trên nhưng có trình tự quan sát các đỉnh khác với thuật toán tìm kiếmtheo chiều rộng
Giải thuật tìm kiếm theo chiều rộng duyệt từ A tới B tới E tới F sau đó tới C,tới G và cuối cùng tới D Giải thuật này tuân theo qui tắc:
1 Duyệt tiếp tới đỉnh liền kề mà chưa được duyệt Đánh dấu đỉnh mà đã được
duyệt Hiển thị đỉnh đó và đẩy vào trong một hàng đợi (queue)
2 Nếu không tìm thấy đỉnh liền kề, thì xóa đỉnh đầu tiên trong hàng đợi.
3 Lặp lại Qui tắc 1 và 2 cho tới khi hàng đợi là trống.
*Ứng dụng:
Thuật toán tìm kiếm theo chiều rộng được dùng để giải nhiều bài toán trong lýthuyết đồ thị, chẳng hạn như:
Tìm tất cả các đỉnh trong một thành phần liên thông
Tìm đường đi ngắn nhất giữa hai đỉnh u và v (với chiều dài đường đi tínhbằng số cung)
Trang 8 Kiểm tra xem một đồ thị có là đồ thị hai phía Tìm các thành phần liênthông.
*Ưu điểm:
- Xét duyệt tất cả các đỉnh để trả về kết quả
- Nếu số đỉnh là hữu hạn, thuật toán chắc chắn tìm ra kết quả
*Nhược điểm:
- Mang tính chất vét cạn, không nên áp dụng nếu duyệt số đỉnh quá lớn
- Mang tính chất mù quáng, duyệt tất cả đỉnh, không chú ý đến thông tin trongcác đỉnh để duyệt hiệu quả, dẫn đến duyệt qua các đỉnh không cần thiết
2.2.Tìm kiếm theo chiều sâu:
Giải thuật tìm kiếm theo chiều sâu (Depth First Search – viết tắt là DFS),còn được gọi là giải thuật tìm kiếm ưu tiên chiều sâu, là giải thuật duyệt hoặc tìmkiếm trên một cây hoặc một đồ thị và sử dụng stack (ngăn xếp) để ghi nhớđỉnh liền kề để bắt đầu việc tìm kiếm khi không gặp được đỉnh liền kề trong bất
kỳ vòng lặp nào Giải thuật tiếp tục cho tới khi gặp được đỉnh cần tìm hoặc tới mộtnút không có con Khi đó giải thuật quay lui về đỉnh vừa mới tìm kiếm ở bướctrước
Trang 9Trong hình minh họa trên, giải thuật tìm kiếm theo chiều sâu đầu tiên duyệt từcác đỉnh A tới tới B C tới D sau đó tới , sau đó tới và cuối cùng tới GiảiE F G
thuật này tuân theo qui tắc sau:
1 Duyệt tiếp tới đỉnh liền kề mà chưa được duyệt Đánh dấu đỉnh mà đã được
duyệt Hiển thị đỉnh đó và đẩy vào trong một ngăn xếp (stack)
2 Nếu không tìm thấy đỉnh liền kề, thì lấy một đỉnh từ trong ngăn xếp (thao
tác pop up) (Giải thuật sẽ lấy tất cả các đỉnh từ trong ngăn xếp mà không cócác đỉnh liền kề nào)
3 Lặp lại các qui tắc 1 và qui tắc 2 cho tới khi ngăn xếp là trống.
Trang 10Mang tính chất mù quáng, duyệt tất cả đỉnh, không chú ý đến thông tin trong cácđỉnh để duyệt hiệu quả, dẫn đến duyệt qua các đỉnh không cần thiết.
2.3.BFS và DFS:
Sự khác nhau cơ bản giữa các giải thuật tìm kiếm theo chiều rộng vàtìm kiếm theo chiều sau :
- Đi theo chiều rộng: Nguyên tắc của tìm
kiếm theo chiều rộng là trong số những
nút biên lựa chọn nút nông nhất (gần nút
gốc nhất) để mở rộng
- Đi theo chiều sâu: Nguyên tắc của tìm kiếm theo chiều sâu là trong số những nút biên lựa chọn nút sâu nhất (xa nút gốc nhất) để mở rộng Nếu hết đường thì quay lui lại chọn nút sâu tiếp theo
*Các hạn chế của chiến lược tiềm kiếm mù là :
- Chúng đều vét cạn không gian để tìm ra lời giải theo thủ tục xác định trước
Trả lời:
Khi không gian trạng thái của bài toán được biểu diễn bằng cây với điểmxuất phát là root của cây, thì DFS sẽ tìm đến trạng thái đích nhanh hơn BFS khitrạng thái đích là nút lá tận cùng bên trái của không gian trạng thái
Trang 11*Ví dụ : tìm đường đi từ A đến L trong đồ thị sau:
Trang 12Vậy để đi đến nút L phải duyệt qua các đỉnh A,B,E,F trong 4 lần lập
=>>Với trường hợp trên thì duyệt DFS sẽ nhanh hơn BFS
CHƯƠNG 2.ÁP DỤNG GIẢI QUYẾT B!I TOÁN:
2.1 Phát biểu bài toán:
Bài toán này khá quen thuộc, với nhiều phiên bản khác nhau như 8 puzzle,
15 puzzle… Ở mức độ thấp nhất là 8 puzzle, bài toán bao gồm một bảng 3x3 các ô
số được đánh từ 1 -> 8
Ở trạng thái bắt đầu, thứ tự của các ô số được sắp xếp ngẫu nhiên, nhiệm vụcủa người giải là phải đứa chúng về đúng thứ tự ban đầu đó là sắp xếp theo thứ tựtăng dần và từ trái qua phải
Trang 132.2.Mô hình hoá bài toán:
Bài toán được xây dựng trên bảng các ô vuông theo kích thước n x n (với 8puzzle thì n=3 và với 15 puzzle thì n=4) Số lượng trạng thái ban đầu là hoán vịcủa n x n phần tử Như vậy, mỗi khi giá trị của n tăng lên 1 thì không gian trạngthái của bài toán cũng tăng lên rất nhanh Do vậy, phụ thuộc vào cách chọn hàmđánh giá, nếu không kết hợp với các kỹ thuật bổ sung thì các bài với n>3 rất lâutìm ra kết quả hoặc là không thể thực hiện quá trình tìm lời giải bởi vì không giantrạng thái quá lớn
Với bài toán trên, dễ dàng nhận thấy rằng, tại mỗi trạng thái của bài toán chỉ
có tối đa 4 cách di chuyển sang trạng thái khác (trái, phải, lên, xuống), và để có thểtrở về trạng thái thoả mãn yêu cầu (trạng thái đích) thì trạng thái đầu tiên phải tuântheo một quy luật nào đó
2.3.Các bước giải bài toán:
Trang 142.3.1.Thuật toán tìm kiếm theo chiều rộng:
Thuật toán sử dụng một cấu trúc dữ liệu hàng đợi để lưu trữ thông tintrung gian thu được trong quá trình tìm kiếm:
1 Chèn đỉnh gốc vào hàng đợi (đang hướng tới)
2 Lấy ra đỉnh đầu tiên trong hàng đợi và quan sát nó Nếu đỉnh này chính làđỉnh đích, dừng quá trình tìm kiếm và trả về kết quả.Nếu không phải thìchèn tất cả các đỉnh kề với đỉnh vừa thăm nhưng chưa được quan sát trước
Trang 152.3.2.Thuật toán tìm kiếm theo chiều sâu:
Thuật toán sử dụng một cấu trúc dữ liệu hàng đợi để lưu trữ thông tin trunggian thu được trong quá trình tìm kiếm:
1 Chèn đỉnh gốc vào ngăn xếp (đang hướng tới)
2 Lấy ra đỉnh đầu tiên trong ngăn xếp và quan sát nó Nếu đỉnh này chính làđỉnh đích, dừng quá trình tìm kiếm và trả về kết quả Nếu không phải thìchèn tất cả các đỉnh kề với đỉnh vừa thăm nhưng chưa được quan sát trước
Trang 162.4.Kết quả giải toán :
2.4.1 Thuật toán tìm kiếm chiều rộng :
Trang 172.4.2 Thuật toán tìm kiếm chiều sâu :
CHƯƠNG 3.DEMO:
Trang 18*Thuật toán tìm kiếm chiều rộng:
*Thuật toán tìm kiếm chiều sâu:
Trang 19 Nếu Độ sâu không phù hợp sẽ ngưng tìm đích:
Giải Bình thường ( trường hợp đủ độ sâu hoặc thừa ):
Trang 20KẾT LUẬN
Trang 21Với đề tài: Bài toán và phương pháp tìm kiếm điểm mù, vì thời gian cũng nhưkiến thức còn hạn chế, bài báo cáo này không thể tránh được những thiếu sót.Chúng em rất mong nhận được sự chỉ bảo, đóng góp ý kiến của các quý thầy cô đểchúng em có điều kiện bổ sung, nâng cao ý thức, tri thức của mình, phục vụ tốt hơntrong công tác học tập cũng như thực tế sau này.
Chúng em xin chân thành cảm ơn!
T!I LIỆU THAM KHẢO