Chapter 2 1 PhanTichAI

You might also like

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

NHẬP MÔN TRÍ TUỆ NHÂN TẠO

--------
CHƯƠNG 2

GIẢI QUYẾT VẤN ĐỀ BẰNG TÌM KIẾM


Nội dung

■ Biểu diễn bài toán trong KGTT


■ Tìm kiếm mù (uninformed search)
■ Tìm kiếm heuristic (informed search)
■ Cây trò chơi, cắt tỉa alpha –beta
■ Bài toán thoả mãn ràng buộc
BIỂU DIỄN BÀI TOÁN TRONG
KHÔNG GIAN TRẠNG THÁI
Ví dụ: Bài toán đong nước

9 lít
4 lít
a b

Cho 2 bình rỗng 9 lít và 4 lít, không có vạch chia, và 1 vòi bơm.
Làm cách nào đong được 6 lít nước?

4
Ví dụ: Bài toán đong nước
a b
Start 0 0
1 9 0
2 5 4
9 lít
4 lít
3 5 0
4 1 4 a b
5 1 0
6 0 1
6 lít
7 9 1
8 6 4 Goal 5
Không gian trạng thái (KGTT)

▪ Một trong những cách để giải quyết các bài toán TTNT là sử
dụng Không gian trạng thái (KGTT) để biểu diễn tri thức
▪ Biểu diễn KGTT là gì?
▪ KGTT bao gồm các trạng thái, kết nối với nhau bằng các
hành động
▪ Từ một trạng thái ban đầu, một hành động có thể chuyển
trạng thái đó sang một trạng thái khác

6
Không gian trạng thái (KGTT)

■ Không gian trạng thái (State space) được mô tả bởi 1 bộ


bốn thông tin (N,S,GD,Op)
– N (node) : tập các trạng thái
– S (start): tập không rỗng các trạng thái ban đầu
– GD (Goal Description) - bộ mô tả mục tiêu
■ Tập không rỗng các trạng thái đích
– Op (Operator) tập các toán tử biến đổi trạng thái
Ví dụ: Bài toán đong nước
■ Xác định các thành phần của bài toán:
– Tập trạng thái của bài toán
– Trạng thái đầu 9 lít
4 lít
– Trạng thái đích
– Các thao tác a b

– Chi phí
6 lít

8
Ví dụ: Bài toán đong nước
■ Xác định các thành phần của bài toán:
– Tập trạng thái: số lượng nước có ở bình
9 lít và bình 4 lít lần lượt là x và y (0 <= x
9 lít
<= 9 và 0 <= y <= 4) 4 lít
– Trạng thái đầu: (0, 0)
a b
– Trạng thái đích: (6, _)
– Các thao tác : đong đầy bình (từ vòi,
hoặc từ bình còn lại), làm rỗng bình 6 lít

– Chi phí: 1 cho mỗi thao tác


9
Ví dụ: Bài toán đong nước
■ Xác định các thành phần của bài toán:
– Tập trạng thái: số lượng nước có ở bình
9 lít và bình 4 lít lần lượt là x và y (0 <= x
<= 9 và 0 <= y <= 4)
– Trạng thái đầu: (0, 0) 9 lít
4 lít
– Trạng thái đích: (6, _)
– Các thao tác : đong đầy bình (từ vòi, a b
hoặc từ bình còn lại), làm rỗng bình
– Chi phí: 1 cho mỗi thao tác
6 lít
– Tìm giải pháp: tìm dãy các thao tác chuyển
từ trạng thái đầu đến trạng thái đích
10
AI – Giải quyết vấn đề bằng tìm kiếm

■ Mục tiêu tìm chuỗi các hành động, một số bài toán
sử dụng phương pháp tìm kiếm
⮚ Puzzles – xếp ô số
⮚ Games – trò chơi
⮚ Navigation – dẫn đường
⮚ Motion planning – kế hoạch chuyển động
⮚ Scheduling – lập lịch biểu
⮚ Routing – tìm đường
AI – Giải quyết vấn đề bằng tìm kiếm
Biểu diễn bài toán trên KGTT

■ Trò chơi Tic-tac-toe:


■ Xác định các thành phần của bài toán:
– Trạng thái của bài toán?
– Trạng thái đầu
– Trạng thái đích
– Các thao tác

13
Ví dụ: Trò chơi Tic-tac-toe
■ Phân tích:
o Các trạng thái: mỗi lượt đi sẽ tạo
nên 1 trạng thái mới
o Các hành động: đi X hoặc O
o Mục tiêu: dãy 3 ký hiệu giống nhau
(ngang, dọc hoặc chéo)
o Chi phí: 1 (mỗi lượt đi)

14
Biểu diễn bài toán trên KGTT

■ Trò chơi Tic-tac-toe:

15
Ví dụ: Trò chơi 8 ô số (8-Puzzle)

■ Cần xác định:


o Các trạng thái?
o Các hành động?
o Trạng thái đầu?
o Mục tiêu?
o Chi phí đường đi?

16
Ví dụ: Trò chơi 8 ô số (8-Puzzle)
■ Phân tích:
o Các trạng thái: vị trí khác nhau của các ô số
o Các hành động: di chuyển ô trống sang trái
phải, lên, xuống
o Trạng thái đầu: Start state
o Mục tiêu: Goal state
o Chi phí đường đi: 1 (mỗi lần di chuyển)

17
Biểu diễn bài toán trên KGTT

■ Trò chơi 8-Puzzle

18
Ví dụ: Bài toán 8 quân hậu

■ Đặt 8 quân hậu lên bàn cờ


vua sao cho không có quân
hậu nào bị khống chế.

■ Xác định trạng thái, phép


toán biến đổi trạng thái
Ví dụ: Bài toán 8 quân hậu

Ví dụ: Bài toán 8 quân hậu
Phương pháp 2:
■ Trạng thái:
– Bàn cờ và vị trí của các quân hậu trên bàn cờ (có thể có từ 0 đến
8 quân hậu trên bàn cờ), không có quân nào bị khống chế.
■ Phép toán:
– Đặt thêm một quân hậu vào một vị trí nào đó trên cột trống đầu
tiên của bàn cờ sao cho quân hậu vừa mới đặt không bị khống
chế
■ Hàm kiểm tra mục tiêu:
– Có đủ 8 quân hậu chưa
■ Số lượng đường đi sẽ giảm đi rất đáng kể
Ví dụ: Bài toán 8 quân hậu

Phương pháp 3
■ Trạng thái:
– Bàn cờ và vị trí của cả 8 quân hậu, mỗi quân trên một cột.
■ Phép toán:
– Di chuyển 1 quân hậu bị khống chế qua một ô khác trong
cùng một cột.
■ Hàm kiểm tra mục tiêu:
– Có quân hậu nào còn bị khống chế không
Giải quyết bài toán bằng tìm kiếm

■ Khi bài toán đã được biểu diễn bằng không gian


trạng thái => Tìm kiếm một đường đi lời giải/ một
trạng thái đích mong ước
■ Đường đi lời giải (Solution path)
– Là đường đi trong đồ thị/cây trạng thái dẫn từ trạng thái
bắt đầu đến trạng thái thõa mãn mục tiêu/trạng thái đích
■ Một trạng thái đích mong ước: là trạng thái cuối
cùng thõa mãn mục tiêu yêu cầu

23
Giải pháp cho các bài toán
▪ Biểu diễn bài toán trên KGTT để thực hiện tìm kiếm
▪ Các bước xây dựng KGTT:
o Bắt đầu từ một trạng thái đã cho (trạng thái ban đầu)
o Kiểm tra xem có phải là trạng thái đích
o Mở rộng 1 trong các trạng thái
o Nếu có nhiều khả năng, chọn 1 khả năng nào đó
o Quy trình: chọn, kiểm tra và mở rộng đến khi tìm ra giải pháp hoặc
không thể tiếp tục mở rộng => quy trình xây dựng cây tìm kiếm
▪ Tập các trạng thái được mở rộng sẽ có nhiều lựa chọn, việc chọn
trạng thái nào để mở rộng được gọi là chiến lược tìm kiếm

24
Giải quyết bài toán bằng tìm kiếm

Chiến lược tìm kiếm:


■ Từ một trạng thái ban đầu hay trạng thái bất kỳ chưa phải là
trạng thái đích, dựa vào các hành động để sinh ra các trạng
thái mới (mở rộng không gian trạng thái)
■ Để tìm được lời giải, quá trình mở rộng KGTT được thực
hiện cho đến khi tìm được trạng thái đích hay không thể mở
rộng được KGTT
■ Tập các trạng thái được mở rộng sẽ có nhiều lựa chọn, việc
chọn trạng thái nào để mở rộng được gọi là chiến lược tìm
kiếm

25
Các kỹ thuật tìm kiếm

▪ Tìm kiếm mù (uninformed/blind search):


o Trạng thái được chọn để phát triển chỉ dựa theo cấu trúc của
KGTT mà không dùng thêm thông tin hỗ trợ.
o Tìm kiếm dựa trên kinh nghiệm (informed/ heuristic search):
o Dựa vào kinh nghiệm và sự hiểu biết để xây dựng hàm đánh
giá hướng dẫn tìm kiếm

26
Đánh giá phương pháp tìm kiếm

• Phương pháp tìm kiếm xác định thứ tự triển khai của các đỉnh
trong cây tìm kiếm
• Các giải thuật tìm kiếm thường được đánh giá dựa trên 4 tiêu chí
sau:
• Tính trọn vẹn: Liệu nó luôn tìm ra nghiệm không nếu bài toán tồn tại
nghiệm.
• Độ phức tạp thời gian: giải thuật có mất nhiều thời gian không?
• Độ phức tạp không gian: yêu cầu bộ nhớ lưu trữ?
• Tính tối ưu: Giải thuật có đảm bảo tìm ra nghiệm với hàm chi phí ít nhất
không?

27
Xác định không gian trạng thái của bài toán sau:
Một con robot hút bụi cần
dọn dẹp bụi tại phòng A
hoặc B. Ban đầu, giả sử con
robot đang ở phòng A, hãy
định nghĩa không gian trạng
thái để giải quyết bài toán
làm sao con robot có thể hút
hết tất cả bụi ở cả hai phòng.
Node?
Start?
Goal State?
Operators?
Cost?
Xác định không gian trạng thái của bài toán sau:

Node: Vị trí robot và bụi bẩn đang có ở phòng A hay phòng B?


Start: (A, “no”, “yes”)
Goal State: (-, “no”, “no”)
Operators: sang trái, sang phải, hút bụi
Cost: 1 cho mỗi hành động
Xác định không gian trạng thái của bài toán sau:
Bài toán qua sông: cáo, dê,
bắp cải.
Ban đầu, các vật thể cùng
ông lái thuyền ở bên bờ trái
của sông. Hãy đưa các vật
thể này qua bên bờ phải sao
cho:
- Mỗi lần đưa, chỉ đưa
được tối đa 1 vật thể.
Node?
- Nếu cáo và dê ở chung
Start?
một bờ sông không có ông
Goal State? lái thuyền thì cáo sẽ ăn
Operators? dê. Hoặc nếu dê và bắp
Cost? cải ở chung thì dê sẽ ăn
bắp cải.
Xác định không gian trạng thái của bài toán sau:

Node: vị trí của sói, bắp cải, cừu và con tàu


Start: (left, left, left, left)
Goal State: (right, right, right, right)
Operators: tàu (sang trái, sang phải), sói – dê – bắp cải (được chở
hoặc không được chở kèm điều kiện sói – dê không đứng riêng và
dê – bắp cải không đứng riêng)
Cost: 1 cho mỗi hành động
Xác định không gian trạng thái của bài toán sau:
Một bình 12 lít đựng đầy nước, có 2
bình rỗng có thể chứa 8 lít và 5 lít. Hãy
thực hiện đong nước qua lại giữa các
bình sao cho được 6 lít nước.
Biết rằng, các bình này không có vạch
chia độ và không được bơm nước ra
ngoài.

Node?
Start?
Goal State?
Operators?
Cost?
Xác định không gian trạng thái của bài toán sau:
Một bình 12 lít đựng đầy nước, có 2
bình rỗng có thể chứa 8 lít và 5 lít. Hãy
thực hiện đong nước qua lại giữa các
bình sao cho được 6 lít nước.
Biết rằng, các bình này không có vạch
chia độ và không được bơm nước ra
ngoài.

Node: tập trạng thái mô tả lượng nước ở lần lượt 3 bình 12l, 8l và 5l có
thể định nghĩa bằng 3 giá trị x, y và z (0 <= x <= 12, 0 <= y <= 8, 0 <= z
<= 5)
Start: (12, 0, 0)
Goal State: (6, _, _) hoặc (_, 6, _)
Operators: đổ đầy bình, làm rỗng bình, đổ từ bình này sang bình khác
Cost: 1 cho mỗi hành động
Xác định không gian trạng thái của bài toán sau:
Ba vị thầy tu đang trên đường hành
khất thì gặp một con sông. Ở đó
chỉ có một chiếc thuyền và 3 con
quỷ đang đứng chờ sẵn. Nhưng
những con quỷ này rất nhát gan.
Lũ quỷ chỉ dám ăn thịt thầy tu khi
số lượng của chúng nhiều hơn số
thầy tu. Nhiệm vụ của các bạn là
đưa cả 3 thầy tu và 3 con quỷ sang
Node? sông mà các thầy tu vẫn an toàn.
Biết rằng thuyền chỉ trở được tối
Start?
đa 2 người (Cả thầy tu và quỷ). Nếu
Goal State? số quỷ trên bờ nhiều hơn số thầy
Operators? tu trên bờ, thầy tu đó sẽ bị ăn thịt.
Cost?
Xác định không gian trạng thái của bài toán sau:
Ba vị thầy tu đang trên đường hành khất
thì gặp một con sông. Ở đó chỉ có một
chiếc thuyền và 3 con quỷ đang đứng
chờ sẵn. Nhưng những con quỷ này rất
nhát gan. Lũ quỷ chỉ dám ăn thịt thầy tu
khi số lượng của chúng nhiều hơn số
thầy tu. Nhiệm vụ của các bạn là đưa cả
3 thầy tu và 3 con quỷ sang sông mà các
thầy tu vẫn an toàn.
Biết rằng thuyền chỉ trở được tối đa 2
người (Cả thầy tu và quỷ). Nếu số quỷ
Node: tập mô tả gồm (số lượng thầy tu bên
trên bờ nhiều hơn số thầy tu trên bờ,
bờ phải, số lượng quỷ bên bờ phải, thầy tu đó sẽ bị ăn thịt.
vị trí thuyền)
Start: (3, 3, “R”)
Goal State: (0, 0, “L”)
Operators: thuyền sang phải hoặc trái, thuyền chở thầy tu hoặc quỷ với điều kiện số
lượng quỷ phải nhỏ hơn hoặc bằng số lượng thầy tu ở bất cứ bờ nào
Cost: 1 cho mỗi hành động
Xác định không gian trạng thái của bài toán sau:
Vật Một bài toán tìm đường đi đơn giản
cản
trên bản đồ có kích thước 5x5 như
hình bên. Ban đầu, vị trí xuất phát là S,
thực hiện di chuyển trên bản đồ để đến
được D với điều kiện là chỉ đi qua
những ô không phải vật cản.

Node?
Start?
Goal State?
Operators?
Cost?
Xác định không gian trạng thái của bài toán sau:
Vật Một bài toán tìm đường đi đơn giản
cản
trên bản đồ có kích thước 5x5 như
hình bên. Ban đầu, vị trí xuất phát là S,
thực hiện di chuyển trên bản đồ để đến
được D với điều kiện là chỉ đi qua
những ô không phải vật cản.

Node: vị trí trên ma trận lưu trữ mê cung (x,y), ma trận được lưu
trữ có gán trọng số (1: có thể đi, -1 là vật cản)
Start: (0, 0)
Goal State: (4, 4)
Operators: di chuyển sang trái, phải, lên, xuống
Cost: 1 cho mỗi lần di chuyển
38

You might also like