Noi Dung TH

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

Thực hành trí tuệ nhân tạo

THỰC HÀNH TRÍ TUỆ NHÂN TẠO


I. Những quy định:
1. % điểm: 10%.
2. Hình thức đánh giá:
- Thời gian làm bài: 30’
- Bài kiểm tra thực hành: Tương đối nhẹ nhàng, bao gồm bốc thăm đề bài (một
trong các bài sẽ được thực hành trong các buổi thực hành), sau đó làm bài trên
máy và nộp.
- Phần mềm thực hành: B-Prolog
II. Nội dung:
1. Phần tìm kiếm:
• Các bài toán phải thực hành trong phần này:
8puzzle, đong nước, người nông dân qua sông, nhà truyền giáo.
• Các giải thuật phải được chạy thử:
Depth First Search(DFS), Breadth First Search(BrFS)
• Chương trình mẫu: Bài toán 8 puzzle
a. Kết xuất dạng text, giải thuật DFS, BrFS
Có tại thư mục: 8Puzzle\BProlog. Chạy với B-Prolog.
b. Kết xuất dạng đồ họa trên Windows, giải thuật DFS, BrFS, A*.
Có tại thư mục: 8Puzzle\VProlog. Chạy với Visual Prolog.
• Trình tự thực hành:
o Sinh viên chạy và hiểu 1 chương trình tìm kiếm mẫu cho bài toán 8 puzzle,
với các giải thuật: DFS, BrFS.
o Sinh viên tự viết lại cho các bài toán khác. Các chương trình tự viết nên có
kết xuất đơn giản, ở dạng TEXT, không cần GUI và phần giải thuật nên đặt
tách rời với phần đặc tả từng bài toán.
o Các bài bắt buộc phải làm xong: Đong nước, nông dân qua sông, truyền
giáo.
o Các bài toán mở rộng thêm: Con khỉ và quả chuối, các khối...

2. Phần game:
• Trình tự thực hành:
o Sinh viên đọc hiểu giải thuật minimax và alphabeta trước ở nhà, tham khảo
giải thuật viết bằng Prolog trong quyển sách của Ivan Bratko pp. 504 - 512.
o Viết và chạy thử giải thuật minimax và alphabeta với 1 cây tìm kiếm bằng
B-Prolog.
• Thực hiện các bước cải tiến giải thuật
o Cải tiến để cho phép định nghĩa người chơi ở vị trí hiện tại là max hay min
(không còn sử dụng vị từ: max_to_move và min_to_move nữa).
minimax(a, min, Next, Val) hoặc minimax(a, max, Next, Val)
alphabeta(a, min, -infinity, +infinity, Next, Val) hoặc alphabeta(a, max, -
infinity, +infinity, Next, Val)
o Cải tiến giải thuật để cho phép khả năng giới hạn số bước nhìn trước
alphabeta(Pos, Player, Alpha, Beta, Depth, Next, Val).

Trang 1 / 6
Thực hành trí tuệ nhân tạo

• Sử dụng giải thuật minimax và alphabeta đã cải tiến để viết các bài NIM, TIC-
TAC-TOE, và bốc diêm.

3. Phần lập kế hoạch:


Trình tự thực hành:
• Sinh viên đọc hiểu chương trình giải bài toán các khối (Block world) được cho sẵn
viết bằng B-Prolog.
• Áp dụng tương tự để giải bài toán thanh ghi, con khỉ và quả chuối.

4. Thi thực hành:


Dự kiến vào tuần dự trữ, sẽ được thông báo cụ thể sau.
Khi làm bài thi thực hành, các sinh viên cần phải viết vị từ go là vị từ chính để chạy chương
trình. Giáo viên sẽ chạy vị từ này để chấm điểm.

Trang 2 / 6
Thực hành trí tuệ nhân tạo

Mô tả yêu cầu đề bài


CHỦ ĐỀ: TÌM KIẾM

Yêu cầu: Hiện thực các bài toán sau với ba giải thuật Breadth-First Search,
Depth-First Search và Best-First Search.
1. 8-puzzle
8-puzzle là một bảng 3x3 trong đó có 8 ô đánh số từ 1 → 8. Ô thứ chín để trống. Một ô kề với
ô trống có thể trượt vào ô trống đó. Trò chơi bao gồm trạng thái bắt đầu và trạng thái đích.
Mục tiêu là chuyển từ trạng thái bắt đầu sang trạng thái kết thúc bằng cách trượt các ô sang
các vị trí lân cận.

1 2 4 2 6
3 5 5 4 7
7 8 6 3 1 8

2. Đong nước
Có 2 bình nước, một 4 lít và một 3 lít. Mỗi bình không có vạch đo nước. Nước đổ vào bình có
thể lấy từ vòi. Làm thế nào để có thể đong 2 lít nước vào bình 4 lít?

3. Người nông dân qua sông


Có một người nông dân, một con trâu, một con hổ và một bó cỏ bên bờ sông và muốn sang
bên kia. Họ chỉ có một chiếc thuyền. Thuyền chỉ có thể chở được người nông dân và con hổ
hoặc trâu hoặc bó cỏ. Không thể để hổ và trâu ở cùng một bờ sông mà không có người nông
dân, tương tự cho con trâu và bó cỏ. Làm thế nào để tất cả cùng qua sông?

4. Nhà truyền giáo và kẻ ăn thịt


Có 3 nhà truyền giáo và 3 kẻ ăn thịt người (quỷ) cùng đứng bên bờ của một dòng sông và
muốn sang bờ bên kia. Các nhà truyền giáo sợ kẻ ăn thịt người có thể làm hại người đi chung.
Do đó, các nhà truyền giáo muốn quản lý sự di chuyển qua bên kia sông sao cho số lượng các
nhà truyền giáo trong bất kỳ bờ bên nào của dòng sông không bao giờ nhỏ hơn số lượng các
kẻ ăn thịt người trong cùng bờ bên đó. Chiếc thuyền chỉ có thể chở được hai người một lúc.
Làm thế nào để tất cả cùng qua sông mà không có nhà truyền giáo nào bị ăn thịt?

Trang 3 / 6
Thực hành trí tuệ nhân tạo

CHỦ ĐỀ: TRÒ CHƠI

Yêu cầu: Hiện thực các bài toán sau với hai giải thuật Minimax và Alpha-Beta.
1. Bốc diêm
Ban đầu có một đống gồm N que dim. Người chơi phải chọn ra được 1 đống để chia nó thành
2 đống khác, với điều kiện không thể chia ra 2 đống với số que bằng nhau. Nếu không chọn
được 1 đống như vậy thì coi như bị thua.
Hãy hiện thực bài toán bốc diêm với N = 7, số bước nhìn trước là 3.

2. Nim
Có N đống que diêm, mỗi đống có một số lượng que diêm cho trước.
Luật chơi:
Hai người chơi đi xen kẽ, đến lượt đi của mình, người chơi PHẢI chọn một đống để
rút ra m que diêm (1 ≤ m ≤ số que diêm hiện có của đống). Một đống bị rút hết không còn que
diêm nào xem như xóa ra khỏi tập các đống hiện tại.
Luật thắng – thua:
Người chơi đến lượt đi của mình mà không thể chọn ra một đống diêm để rút thì bị
thua. Người còn lại xem như thắng cuộc.
Hiện thực bài toán Nim trong trường hợp N = 2, số lượng hai đống diêm là (3, 2)

3. Tic-tac-toe
Người chơi lần lượt đặt quân vào một trong các ô của bàn cờ 3x3. Khi đến lượt, mỗi người đặt
quân X hay O. Người đầu tiên đạt được ba quân của mình trên cùng hàng ngang, hàng dọc,
hay đường chéo là người thắng cuộc. Hỏi MAX hoặc MIN đi trước thì nên đi đến nước nào?

Trang 4 / 6
Thực hành trí tuệ nhân tạo

CHỦ ĐỀ: LẬP KẾ HOẠCH


1. Blocks world – 4 actions

A
C B
A B C
ON(C,A) ON(B,C) ∧ ON(A,B)
Có một cái bàn phẳng, các khối vuông có nằm trên đó được. Có 1 số khối vuông, kích thước
bằng nhau.
Có một cánh tay robot, có thể làm cách hành động:
UNSTACK(X,Y): Nhấc khối X ra khỏi khối Y
STACK(X,Y): Để khối X nằm trên khối Y
PICKUP(X): Nhấc khối X từ mặt bàn lên
PUTDOWN(X): Đặt khối X xuống mặt bàn
Các vị từ dùng để mô tả trạng thái bài toán:
ON(X,Y): Khối X nằm trên khối Y
ONTABLE(X): Khối X nằm trên mặt bàn
CLEAR(X): Khối X trống (Không có khối nào nằm trên X; mặt bàn được xem là luôn
luôn trống)
HOLDING(X): Cánh tay robot đang nắm khối X
ARMEMTY: Cánh tay robot không nắm vật gì cả

ON(B,C) ∧ ON(A,B)

ON(B,C) ON(A,B)

Put B on C

ON(B,C) Clear(A) ON(A,B)

Move A Put A on B
to table

Clear(A) ON(A,B)
2. Hoán vị thanh ghi
Chúng ta muốn hoán đổi giá trị của hai thanh ghi, A và B. Giả sử ta đã có sẵn toán tử
ASSIGN (x, v, lv, ov) thực hiện việc gán giá trị v, được chứa ở thanh ghi lv, cho thanh ghi x,
vốn trước đó chứa giá trị ov:
ASSIGN (x, v, lv, ov)
POSTCONDITION: CONTAINS (lv, v) ∧ CONTAINS (x, ov)
DELETE: CONTAINS (x, ov)

Trang 5 / 6
Thực hành trí tuệ nhân tạo

ADD: CONTAINS (x, v)


Giả sử có ít nhất một thanh ghi C trống.

3. Con khỉ và quả chuối


Có một con khỉ đứng ở cửa ra vào một căn phòng. Giữa phòng có một quả chuối được treo
trên trần nhà. Con khỉ thì đói và muốn lấy quả chuối, nhưng nó không đủ cao để với tới.
Trong phòng có một cái hộp tại cửa sổ. Con khỉ có thể thực hiện các hành động sau: đi bộ trên
sàn, leo lên cái hộp, đẩy chiếc hộp đi và chụp lấy quả chuối nếu đứng trên chiếc hộp trực tiếp
bên dưới quả chuối. Con khỉ có thể lấy được quả chuối không và làm như thế nào?

Trang 6 / 6

You might also like