Tải bản đầy đủ (.doc) (10 trang)

Báo cáo đồ án trí tuệ nhân tạo: Xây dựng chương trình tạo ngẫu nhiên không gian trạng thái ma trận kích thước m*n sử dụng giải thuật 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 (303.99 KB, 10 trang )

HỌ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
Đồ á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
Lời nói đầu 4
I. Cơ sở lí thuyết 4
II. Chương trình: 5
III. 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: 10
Lời nói đầ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.
I. Cơ sở lí thuyế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ể.
II. Chươ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ỳ

- Chọn điểm đầu và điểm cuối
- Nhấn nút tìm đường để có kết quả
- OK để hiện đường đi

Trườ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ỳ
- 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ả
III. 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:
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.

×