Đồ án Nhập môn trí tuệ nhân tạo Đề tài: Không gian trạng thái là ma trận kích thước m*n. Trên không gian trạng thái có nơi được phép đến, có nơi không được phép đến. Xây dựng chương trình tạo ngẫu nhiên không gian trạng thái này, vị trí bắt đầu, vị trí cần tìm và sử dụng giải thuật tìm kiếm theo chiều rộng. Thầy giáo hướng dẫn: Ngô Hữu Phúc Học viên : Đàm Ngọc Anh Lớp : Tin học 5A Hà Nội, tháng 3 năm 2010 Mục lục I. Lời nói đầu 3 II. Cơ sở lí thuyết 3 III. Chương trình: 4 IV. Kết quá thu được từ chương trình tìm đường sử dụng thuật toán Nhánh và cận: 9
Trang 1HỌC VIỆN KỸ THUẬT QUÂN SỰ KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO MÔN HỌC
TRÍ TUỆ NHÂN TẠO
Giáo viên hướng dẫn: Ngô Hữu Phúc
HÀ NỘI 3/2010
Trang 2Đồ án Nhập môn trí tuệ nhân tạo
Đề tài: Không gian trạng thái là ma trận kích thước m*n Trên không gian trạng thái có nơi được phép đến, có nơi không được phép đến Xây dựng chương trình tạo ngẫu nhiên không gian trạng thái này, vị trí bắt đầu, vị trí cần tìm và sử dụng
giải thuật tìm kiếm theo chiều rộng.
Thầy giáo hướng dẫn: Ngô Hữu Phúc
Học viên : Đàm Ngọc Anh
Lớp : Tin học 5A
Hà Nội, tháng 3 năm 2010
Trang 3M c l c ục lục ục lục
I Lời nói đầu 3
II Cơ sở lí thuyết 3
III Chương trình: 4
IV Kết quá thu được từ chương trình tìm đường sử dụng thuật toán Nhánh và cận: 9
Trang 4I L i nói đ u ời nói đầu ầu
Kỹ thuật tìm kiếm được chia ra làm 3 loại:
- Kỹ thuật tìm kiếm mù: Trong bài toán này, chúng ta hoàn toàn không biết gì về các đối tượng để hướng dẫn tìm kiếm mà chỉ đơn thuần là xem xét tất cả các đối tượng của 1 hệ thống để phát hiện ra đối tượng cần tìm Một số kỹ thuật tìm kiếm mù: Tìm kiếm theo chiều rộng (Breadth-first search) và tìm kiếm theo chiều sâu (depth-first search)
- Kỹ thuật tìm kiếm có kinh nghiệm (Tìm kiếm với hàm Heuristic): Hàm Heuristic là hàm đánh giá được xây dựng nhờ vào kinh nghiệm và sự hiểu biết của chúng ta về vấn
đề cần giải quyết Một số kỹ thuật tìm kiếm có kinh nghiệm: Tìm kiếm beam, Tìm kiếm leo đồi
- Kỹ thuật tìm kiếm tối ưu: Trong không gian trạng thái cần tìm kiếm, mỗi 1 đối tượng
x đều gắn với 1 số đo giá trị của nó là f(x), mục tiêu đặt ra là tìm đối tượng có giá trị f(x) lớn nhất hoặc nhỏ nhất Hàm f(x) được gọi là hàm mục tiêu Một số kỹ thuật tìm kiếm tối ưu: Các kỹ thuật tìm đường đi ngắn nhất trong không gian trạng thái (Thuật toán A*, thuật toán nhánh và cận, … ), các kỹ thuật tìm kiếm đối tượng tốt nhất (Tìm kiếm leo đồi, tìm kiềm Gradient, …), tìm kiếm bắt chước sự tiến hóa (Thuật toán gene)
Trong các kỹ thuật tìm kiếm, đồ án của em sử dụng kỹ thuật tìm mù: tìm kiếm theo chiều rộng
II C s lí thuy t ơ sở lí thuyết ở lí thuyết ết
Trong thuật toán tìm kiếm theo chiều 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 sử dụng là 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 không Nói chung, các trạng thái kết thúc được xác đinh bởi điều kiện nào đó.
Nếu bài toán có nghiệm (tồn tại đường đi từ trạng thái đầu tới trạng thái kết thúc), thì thuật toán sẽ tìm được nghiệm.
Ta cần nhớ rằng không gian lưu trữ hết sức tốn kém là vấn đề lớn nhất đối với BFS Tuy nhiên giải thuật này cũng tỏ ra rất hữu dụng trong các tình huống cụ thể.
Trang 5III Ch ươ sở lí thuyết ng trình:
Chương trình được xây dựng dựa trên cơ sở lí thuyết vừa nêu trên Giao diện chương trình
- Nhập số hàng, cột của ma trận (không gian trạng thái cần xét)
- Nhấn nút tạo ma trận để khởi tạo ma trận bất kỳ
Trang 6
- Chọn điểm đầu và điểm cuối
Trang 7- Nhấn nút tìm đường để có kết quả
- OK để hiện đường đi
Trang 8Trường hợp không tìm được đường đi, chương trình sẽ đưa ra thông báo
Trong chương trình em đã sử dụng các đoạn thuật toán:
- Tạo ma trận bất kỳ
Trang 9- Mảng father để lưu lại các đỉnh đã đi qua.
- Mảng 2 chiêu bool bao gồm các phần tử true, false, ánh xạ của ma trận
ban đầu.
bool [,] arrCheck = new bool [dong, cot];
- Đoạn chương trình mô tả thuật toán tìm kiếm BFS
- Đoạn chương trình hiển thị kết quả
Trang 10IV K t quá thu đ ết ược từ chương trình tìm đường sử dụng ừ chương trình tìm đường sử dụng c t ch ươ sở lí thuyết ng trình tìm đ ười nói đầu ng s d ng ử dụng ụng
thu t toán Nhánh và c n: ật toán Nhánh và cận: ật toán Nhánh và cận:
Khuôn khổ của đồ án này chỉ giới hạn trong việc minh họa cho thuật toán tìm kiếm theo chiều rộng chứ chưa hướng tới việc áp dụng trong thực tế
Nếu muốn áp dụng cho thực tế thì sẽ cần nhiều thời gian và quá trình tìm hiểu hơn nữa nên sau khi kết thúc môn học này, em mong thầy có thể giúp đỡ để em
có thể hoàn thiện chương trình của em hơn
Em xin cám ơn thầy!
V Tài liệu tham khảo:
- Slide bải giảng AI: TS.Ngô Hữu Phúc
- Vở ghi trên lớp