30/09/2018, 19:55

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:

vana viết 22:07 ngày 30/09/2018

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 !

Ai Android viết 22:00 ngày 30/09/2018

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

vana viết 22:10 ngày 30/09/2018

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.

Ai Android viết 22:06 ngày 30/09/2018

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 =))

  1. Search GG về DFS đọc hiểu nó là gì
  2. Viết 1 hàm lượng hóa trạng thái. Tức tính khoảng cách từ A (String[16]) đến trạng thái đích B(String[16])
    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ử
vana viết 21:59 ngày 30/09/2018

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!

Ai Android viết 22:04 ngày 30/09/2018

https://jdanger.com/solving-8-puzzle-with-artificial-intelligence.html

vana viết 22:05 ngày 30/09/2018

cảm ơn nhiều nha . để coi từ từ

vana viết 22:04 ngày 30/09/2018

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.

Ai Android viết 21:56 ngày 30/09/2018

Mình ko có code sẵn ;(

Bài liên quan
0