Các hệ thống thông minh nhân tạo & ứng dụng Các hệ thống thông minh nhân tạo & ứng dụng Khoa CNTT, ĐH KHTN HCM 1 BÀI TẬP THỰC HÀNH TÌM KIẾM HEURISTIC I Đề bài Cho trước mê cung có kích thước M x N bất[.]
Trang 1Khoa CNTT, ĐH KHTN HCM 1
TÌM KIẾM HEURISTIC
I Đề bài
Cho trước mê cung có kích thước M x N bất kì Pacman xuất phát từ vị trí P và cố gắng tìm đường đi để đến được vị trí G của mê cung Biết rằng Pacman có thể di chuyển theo 4
hướng: trái, phải, lên, xuống và không thể di chuyển xuyên tường hoặc thoát ra khỏi mê cung
Sinh viên hãy cài đặt thuật toán A* để giúp Pacman tìm được đường đi tối ưu theo số bước
đi, sử dụng khoảng cách Mahattan làm hàm Heuristic Chương trình cần mô phỏng được giải pháp đường đi cho Pacman trên GUI
Source code demo vẽ GUI với C++ và các tập tin của mê cung, sinh viên xem trong tập tin đính kèm
II Tham số dòng lệnh, tập tin input, output
Tham số dòng lệnh
Tên tập tin input chứa thông tin mê cung và vị trí của Pacman được truyền dưới dạng tham số dòng lệnh như sau:
<MSSV>.exe <tập_tin_input>
Trang 2Khoa CNTT, ĐH KHTN HCM 2
Ví dụ: Sinh viên có mã số 07K2099 có:
Tập tin thực thi là 07K2099.exe
Tập tin input là input.txt
Tham số dòng lệnh sẽ là:
07K2099.exe input.txt
Tập tin input
Tập tin input được truyền vào trong tham số dòng lệnh thứ 2 (argv[1])
Cấu trúc: Là một lưới kí tự có kích thước M x N.
o Các vị trí không thể di chuyển vào được đánh dấu bằng dấu “%”
o Kí tự “P” và “G” tương ứng với vị trí bắt đầu của Pacman và “G” là vị trí muốn đến Trong trường hợp có nhiều “G”, Pacman chỉ cần tới được một
“G” là được
o Khoảng trắng hoặc kí tự khác là vị trí mà Pacman có thể di chuyển vào
Ví dụ:
input_1.txt
%%%%%%%
% P%
% %%% %
% % %
%% %%
%G %%%%
%%%%%%%
III Cấu trúc thư mục
Sinh viên phải dịch ra tập tin MSSV.exe và đặt trong thư mục Release, toàn bộ source code đặt trong thư mục Source. Hai thư mục này đặt trong thư mục MSSV, toàn bộ thư mục này được nén thành MSSV.rar hoặc MSSV.zip
Ví dụ: Sinh viên mã số 07K2099 tổ chức thư mục như sau:
Trang 3Khoa CNTT, ĐH KHTN HCM 3
07K2099
Source
input.txt Release
07K2099.txt 07K2099.exe
Các tập tin của project
Những đoạn code trích dẫn (tham khảo) phải ghi rõ nguồn trích dẫn (tham khảo) Nguồn tham khảo hoặc trích dẫn phải được ghi dưới dạng chú thíchngay trên đoạn code tham
khảo hoặc trích dẫn đó (coi ví dụ dưới đây)
…
void main()
{
…
if (example==0)
{
/*Tham khao:nguon http://en.wikipedia.org/wiki/Genetic_algorithm*/
float minvalues[] ={-3, -3};
float maxvalues[] ={3, 3};
best = ga->Solve(2, fsquare,minvalues, maxvalues );
/*Ket thuc tham khao*/
} else
{
if (example ==1 ) {
float minvalues[] ={-10,-10, -10,-10};
float maxvalues[] ={10,10,10, 10};
best = ga->Solve(4, f4square,minvalues, maxvalues ); }
}
…
Trang 4Khoa CNTT, ĐH KHTN HCM 4
Những vấn đề khác nếu sinh viên cần trình bày với giáo viên cũng có thể ghi thẳng vào tập tin source code dưới dạng chú thích
IV Quy định Chấm Bài
Trong chương trình cuối cùng đem nộp không được dùng bất cứ hàm input từ màn hình nào (như getch, scanf, scanf_s, cin v.v…)
Đối với những bài giống nhau sẽ bị 0 điểm
Những bài không nào không trích dẫn nguồn tham khảo sẽ bị 0 điểm