TR NG CAO Đ NG CNTT H U NGH Vi T - HÀNƯỜ Ẳ Ữ Ị Ệ
KHOA KHOA H C MÁY TÍNHỌ
***
TRÍ TUỆ NHÂN TẠO
(Artificial Intelligence - AI)
Nguyễn Thanh Cẩm
12/04/10 2
Contents
Tổng quan về khoa học trí tuệ nhân tạo
1
Các phương pháp giải quyết vấn đề cơ bản
2
Tri thức và các phương pháp biểu diễn tri thức
3
Máy học
4
Mạng Nơron
5
12/04/10 3
Chương 2
Các ph ng pháp gi i quy t v n đ c b nươ ả ế ấ ề ơ ả
Các ph ng pháp gi i quy t v n đ c b nươ ả ế ấ ề ơ ả
2.1
2.2
2.3
Biểu diễn bài toán trong không gian trạng thái
Tìm kiếm lời giải trong không gian trạng thái
Tìm kiếm lời giải trên đồ thị và/hoặc
12/04/10 4
2.1.1
2.1.2
2.1.3
2.1.4
Đ t v n đặ ấ ề
Mô t tr ng tháiả ạ
Toán t chuy n tr ng tháiử ể ạ
Không gian tr ng thái c a bài toánạ ủ
2.1 Biểu diễn bài toán trong không gian trạng thá i
Bi u di n không gian tr ng thái d i d ng đ ể ễ ạ ướ ạ ồ
thị
2.1.5
12/04/10 5
2.1 Biểu diễn bài toán trong không gian trạng thá i
Khi giải quyết bài toán bằng phương pháp tìm kiếm:
phải xác định không gian tìm kiếm.
Phương pháp giải quyết vấn đề dựa trên:
khái niệm trạng thái (state) và
toán tử (operator)
được gọi là cách tiếp cận giải quyết vấn đề nhờ không
gian trạng thái.
2.1.1. Đặt vấn đề
12/04/10 6
2.1.1
2.1.2
2.1.3
2.1.4
Đ t v n đặ ấ ề
Mô t tr ng tháiả ạ
Toán t chuy n tr ng tháiử ể ạ
Không gian tr ng thái c a bài toánạ ủ
2.1 Biểu diễn bài toán trong không gian trạng thá i
Bi u di n không gian tr ng thái d i d ng đ ể ễ ạ ướ ạ ồ
thị
2.1.5
12/04/10 7
2.1 Biểu diễn bài toán trong không gian trạng thá i
Mô tả trạng thái bài toán:
các xâu ký hiệu,
véctơ,
mảng hai chiều,
cây,
danh sách.
Mỗi trạng thái là một hình trạng của bài toán:
hình trạng đầu gọi là trạng thái đầu
hình trạng cuối gọi là trạng thái cuối.
2.1.2. Mô tả trạng thá i
12/04/10 8
2.1 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
2.1.2. Mô tả trạng thá i
m lit.
n lit
Cần đong k lit nước. giả thiết k <= min(m,n).
12/04/10 9
2.1 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
Gọi x là lượng nước hiện có trong bình dung tích m
và y là lượng nước hiện có trong bình dung tích n.
bộ có thứ tự (x,y) có thể xem là trạng thái của bài toán.
Trạng thái đầu: (0,0)
Trạng thái cuối: (x,k) hoặc (k,y), 0 ≤ x ≤ m , 0 ≤ y ≤ n
2.1.2. Mô tả trạng thá i
12/04/10 10
2.1 Biểu diễn bài toán trong không gian trạng thá i
2
8
3
1
6
4
7
5
2.1.2. Mô tả trạng thá i
1
2
3
8
4
7
6
5
Hình trạng đầu Hình trạng cuối
Ví dụ: Bài toán trò chơi 8 số
12/04/10 11
2.1 Biểu diễn bài toán trong không gian trạng thá i
Có th mô t tr ng thái c a bài toán b ng m t ma tr n ể ả ạ ủ ằ ộ ậ
A
3*3
= (a
ij
) , a
ij
∈{0 8}, a
ij
<> a
kl
, ∀i<>k, j<> l
507
461
382
2.1.2. Mô tả trạng thá i
567
408
321
Tr ng thái cu iạ ố
Tr ng thái đ uạ ầ
12/04/10 12
2.1 Biểu diễn bài toán trong không gian trạng thá i
Hãy dịch chuyển n đĩa ở cọc 1 sang cọc 3 sao cho:
Mỗi lần chỉ chuyển một đĩa.
Trong mỗi cọc không cho phép đĩa to nằm trên đĩa nhỏ hơn.
2.1.2. Mô tả trạng thá i
1 2 3
Ví dụ: Bài toán tháp Hà Nội
12/04/10 13
2.1 Biểu diễn bài toán trong không gian trạng thá i
Ví dụ: Bài toán tháp Hà Nội
Bài toán xác định khi biết từng đĩa đang nằm ở cọc nào.
Cách 1:
Cọc 1 hiện đang chứa những đĩa nào?
Cọc 2 hiện đang chứa những đĩa nào?
Và cọc 3 đang chứa những đĩa nào.
Cách 2:
Đĩa lớn thứ i hiện đang nằm ở cọc nào?
(i = 1 n)
2.1.2. Mô tả trạng thá i
Như vậy cách mô tả trạng thái bài toán không duy nhất, vấn đề là chọn
cách mô tả nào để đạt được mục đích dễ dàng nhất.
12/04/10 14
2.1 Biểu diễn bài toán trong không gian trạng thá i
Cách 1 ta phải dùng 3 danh sách động.
Cách 2 mô tả bài toán hiệu quả hơn.
Nếu gọi x
i
là cọc chứa đĩa lớn thứ i, trong đó x
i
∈{1, 2, 3},
i∈{1 n}.
Khi đó bộ có thứ tự (x
1
, x
2
, . . ,x
n
) là dạng mô tả trạng thái
đang xét của bài toán.
Trạng thái đầu là (1,1,. . .,1)
Trạng thái cuối là (3,3,. . .,3)
2.1.2. Mô tả trạng thá i
12/04/10 15
2.1.1
2.1.2
2.1.3
2.1.4
Đ t v n đặ ấ ề
Mô t tr ng tháiả ạ
Toán t chuy n tr ng tháiử ể ạ
Không gian tr ng thái c a bài toánạ ủ
2.1 Biểu diễn bài toán trong không gian trạng thá i
Bi u di n không gian tr ng thái d i d ng đ ể ễ ạ ướ ạ ồ
thị
2.1.5
12/04/10 16
2.1 Biểu diễn bài toán trong không gian trạng thá i
Là các phép biến đổi đưa từ trạng thái này sang trạng
thái khác.
Có hai cách biểu diễn các toán tử:
Biểu diễn hàm xác định trên tập các trạng thái và nhận
giá trị cũng trong tập này.
Biểu diễn dưới dạng các quy tắc sản xuất S→A có nghĩa
là nếu có trạng thái S thì có thể đưa đến trạng thái A.
2.1.3. Toán tử chuyển trạng thái
12/04/10 17
2.1 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
Các thao tác sử dụng để chuyển trạng thái này sang
trạng thái khác gồm:
Đổ đầy một bình,
đổ hết nước trong một bình ra ngoài,
đổ nước từ bình này sang bình khác.
2.1.2. Mô tả trạng thá i
12/04/10 18
2.1 Biểu diễn bài toán trong không gian trạng thá i
Nếu trạng thái đang xét là (x,y) thì các trạng thái kế tiếp có thể
chuyển đến sẽ là:
2.1.2. Mô tả trạng thá i
12/04/10 19
2.1 Biểu diễn bài toán trong không gian trạng thá i
Ví dụ: Trò chơi 8 số
Các thao tác để chuyển trạng thái tương ứng với việc chuyển ô
trống sang phải, sang trái, lên, xuống nếu có thể được.
Biểu diễn theo quy tắc sản xuất
2.1.2. Mô tả trạng thá i
12/04/10 20
2.1 Biểu diễn bài toán trong không gian trạng thá i
Biểu diễn theo một hàm
Gọi f
u
là hàm biểu diễn toán tử chuyển ô trống lên trên;
Gọi B (B= (b
ij
)) là trạng thái sau khi di chuyển ô trống ở trạng
thái A (A= (a
ij
)) lên trên, nghĩa là: B= f
u
(A), giả sử ô trống đang ở
vị trí (i
0
, j
0
) (hay nói cách khác a
i0 j0
= 0) thì hàm f
u
được xác định
như sau:
2.1.2. Mô tả trạng thá i
12/04/10 21
2.1 Biểu diễn bài toán trong không gian trạng thá i
2.1.2. Mô tả trạng thá i
Phép chuy n ô tr ng xu ng d i fể ố ố ướ
d
, qua trái f
l
, qua ph i fả
r
nh sau:ư
12/04/10 22
2.1 Biểu diễn bài toán trong không gian trạng thá i
Ví dụ: Bài toán Tháp Hà Nội với n = 3
Mỗi trạng thái là một bộ ba (i, j, k). Có các trường hợp
như sau:
Ba đĩa cùng nằm trên một cọc: (i, i, i)
Hai đĩa cùng nằm trên hai cọc: (i, i, j), (i, j, i), (j, i, i),
Ba đĩa nằm trên ba cọc phân biệt: (i, j, k)
2.1.2. Mô tả trạng thá i
12/04/10 23
2.1 Biểu diễn bài toán trong không gian trạng thá i
2.1.2. Mô tả trạng thá i
12/04/10 24
2.1.1
2.1.2
2.1.3
2.1.4
Đ t v n đặ ấ ề
Mô t tr ng tháiả ạ
Toán t chuy n tr ng tháiử ể ạ
Không gian tr ng thái c a bài toánạ ủ
2.1 Biểu diễn bài toán trong không gian trạng thá i
Bi u di n không gian tr ng thái d i d ng đ ể ễ ạ ướ ạ ồ
thị
2.1.5
12/04/10 25
2.1 Biểu diễn bài toán trong không gian trạng thá i
KGTT là tập tất cả các trạng thái có thể có và tập
các toán tử của bài toán.
KGTT là một bộ bốn: K= (T, S, G, F). Trong đó:
T: tập tất cả các trạng thái có thể có của bài toán
S: trạng thái đầu
G: tập các trạng thái đích
F: tập các toán tử
2.1.4. Không gian trạng thái của bài toán