E hỏi về môn AI
Em đang học môn AI . thầy kêu Viết chương trình cho trò chơi đẩy số (sliding number puzzle) dùng thuật toán “Tìm kiếm tốt nhất-đầu tiên (best-first search)”. Đầu vào của chương trình là file .text và đầu ra là các bước di chuyển đến trạng thái mục tiêu.
Định dạng của file .text như sau: dòng đầu tiên của file chứa kích thước của trò chơi (chỉ cần xử lý khối vuông kích thước 4x4). Những dòng tiếp theo chứa trạng thái ban đầu của trò chơi. Một dấu “-“ tượng trưng cho 1 khoảng trống, và các ô vuông khác chứa các ký tự hoa
VD:
em không biết tìm kiếm chiều sâu làm sao . Ai có bt mẫu share cho em với ko ! . Em cảm ơn !
cái này có 1 cách lượng hóa trạng thái là dùng hàm khoảng cách Manhattan.
Giá trị 1 trạng thái = khoảng cách manhattan từ nó đến đích.
=> từ 1 trạng thái có 3 trạng thái kề cạnh (max là 3) thì chọn trạng thái có giá trị nhỏ nhất đi trước . Gọi là best-first search :))
Bạn có thể tham khảo ở topic: [Basic] Khởi đầu với trí tuệ nhân tạo, bài toán game caro
Về cách lượng hóa 1 trạng thái. (tương tự thôi, bài bạn không phức tạp như vậy)
Duyệt sâu thì cứ DFS như thường thôi
Lưu trạng thái bằng 1 xâu 16 kí tự
Có thời gian mình sẽ làm cả bộ này luôn cho mọi người theo dõi :)) welcome to AI
anh có code mẫu nào k để em tham khảo tại em mất căn bản nên k biết code từ đầu như thế nào.
Việc bạn cần làm bây h để làm bài này vì trên diễn đàn kiêng share code =))
p/s: khoảng cách manhattan là tổng hiệu của của các chiều abs(x1-x2)+abs(y1-y2)
ví dụ của bạn:
Khoảng các của N đến N đích là: (4-4)+(3-2)=1 nếu coi
A là (1,1) ; O là (4,4)
Giá trị 1 trạng thái bằng tổng khoảng cách các phần tử
a có thể chỉ e kiếm code mẫu ở đâu không để kham khảo qua . e có đọc rồi nhưng phần code còn yếu nên không biết phải làm sao!
https://jdanger.com/solving-8-puzzle-with-artificial-intelligence.html
cảm ơn nhiều nha . để coi từ từ
tối qua em có tìm rất nhìu bài mẫu nhưng do phần code ko cứng mà bài lại khó cho thời gian ít . huynh có bài mẫu sẵn ko cho em xin với sắp hết hạn rồi TT.
Mình ko có code sẵn ;(