Professional Documents
Culture Documents
Trí Tuệ Nhân Tạo
Trí Tuệ Nhân Tạo
Nguyễn Thanh Thủy, Giáo trình trí tuệ nhân tạo, 1998.
Email: lehoangson@hus.edu.vn /
sonlh@vnu.edu.vn
1
Nội dung chính
4 Xu hướng mới
5 Bài tập
2 Lê Hoàng Sơn
1. CÁC KHÁI NIỆM CƠ BẢN
Trí tuệ nhân tạo là khoa học liên quan đến việc làm cho
máy tính có những khả năng của trí tuệ con người, tiêu
biểu như các khả năng“suy nghĩ”, “hiểu ngôn ngữ”, và
biết “học tập”
4 Lê Hoàng Sơn
Trí tuệ (2)
5 Lê Hoàng Sơn
TRÍ TUỆ NHÂN TẠO
6 Lê Hoàng Sơn
TRÍ TUỆ NHÂN TẠO (2)
Trí tuệ máy: cũng không có một định nghĩa tổng quát,
nhưng cũng có thể nêu các đặc trưng chính:
Khả năng học
Khả năng mô phỏng hành vi của con người
Khả năng trừu tượng hoá, tổng quát hoá và suy diễn
Khả năng tự giải thích hành vi
Khả năng thích nghi tình huống mới kể cả thu nạp tri thức và dữ
liệu
Khả năng xử lý các biểu diễn hình thức như các ký hiệu tượng
trưng
Khả năng sử dụng tri thức heuristic
Khả năng xử lý các thông tin không đầy đủ, không chính xác
7 Lê Hoàng Sơn
Đối tượng và mục tiêu nghiên cứu của TTNT
Mục đích chính của trí tuệ nhân tạo là hướng tới việc xây dựng các
máy tính thông minh hơn, giúp ích cho việc khám phá các quy luật hoạt
động sáng tạo và khả năng trí tuệ của con người
Trí tuệ nhân tạo bao quát rất nhiều lĩnh vực nghiên cứu: từ các lĩnh
vực tổng quát như máy nhận biết, suy luận logic, đến các bài toán như
chơi cờ, chứng minh định lý,..
Trong các lĩnh vực khác trí tuệ nhân tạo được dùng kỹ thuật hệ
thống hoá và tự động hoá các xử lý tri thức cũng như các phương
pháp thuộc lĩnh vực mang tính con người
8 Lê Hoàng Sơn
Vai trò của Trí Tuệ Nhân Tạo
Trí tuệ nhân tạo:
Nghiên cứu kỹ thuật làm cho máy tính có thể “suy nghĩ một cách
thông minh”
Mô phỏng quá trình suy nghĩ của con người khi đưa ra những
quyết định, lời giải
Thiết kế các chương trình cho máy tính để giải quyết bài toán
9 Lê Hoàng Sơn
Trí tuệ nhân tạo
10 Lê Hoàng Sơn
TTNT và lập trình truyền thống
11 Lê Hoàng Sơn
Các yêu cầu của TTNT
12 Lê Hoàng Sơn
Hành động như con người: Phép thử Turing
13 Lê Hoàng Sơn
Hành động như con người
Chỉ ra các lĩnh vực cần nghiên cứu trong AI:
Xử lý ngôn ngữ tự nhiên: để giao tiếp
Biểu diễn tri thức: để lưu trữ và phục hồi các thông tin
được cung cấp trước/trong quá trình thẩm vấn
Học máy & tính toán: thích nghi với các tình huống
mới, phát hiện và suy ra các mẫu
14 Lê Hoàng Sơn
Suy nghĩ như con người: Mô hình nhận thức
15 Lê Hoàng Sơn
Suy nghĩ có lý: Luật của suy nghĩ
Aristole: ~420 BC
Tiến trình suy nghĩ đúng là gì?
Mở ra nhánh: quá trình suy luận
VD: “Socrates is a man, all men are mortal; therefore
Socrates is mortal”
16 Lê Hoàng Sơn
Hành động có lý
Ưu thế:
Tổng quát hơn luật suy nghĩ: Xử lý thông tin
không chắc chắn
17 Lê Hoàng Sơn
Các phương pháp và kỹ thuật
Các phương pháp biểu diễn tri thức và kỹ thuật xử lý tri
thức
Các phương pháp giải quyết vấn đề
Các phương pháp Heuristic
Các phương pháp học
Các ngôn ngữ TTNT
Lý thuyết giải bài toán và suy diễn thông minh
Lý thuyết tìm kiếm may rủi
Lý thuyết thể hiện tri thức và hệ chuyên gia
Lý thuyết nhận dạng và xử lý tiếng nói
Người máy
18 Lê Hoàng Sơn
Các thành phần trong hệ thống
Hai thành phần cơ bản:
Các phương pháp biểu diễn vấn đề, các phương
pháp biểu diễn tri thức và các chiến lược suy diễn
19 Lê Hoàng Sơn
CÁC TIỀN ĐỀ CƠ BẢN CỦA TTNT
TTNT kế thừa nhiều ý tưởng, quan điểm và các kỹ thuật từ các ngành khoa học khác
TTNT
4 Xu hướng mới
5 Bài tập
21 Lê Hoàng Sơn
2. LỊCH SỬ PHÁT TRIỂN CỦA KHOA HỌC TTNT
22 Lê Hoàng Sơn
LỊCH SỬ PHÁT TRIỂN CỦA KHOA HỌC TTNT (2)
24 Lê Hoàng Sơn
Milestones
25 Lê Hoàng Sơn
Milestones
26 Lê Hoàng Sơn
LỊCH SỬ PHÁT TRIỂN CỦA KHOA HỌC TTNT (4)
Hệ thống dựa trên tri thức (1969 − 1979):
1969: DENDRAL by Buchanan et al.
Đưa ra cấu trúc phân tử từ thông tin của quang phổ kế
1976: MYCIN by Shortliffle
Chuẩn đoán nhiểm trùng máu
1979: PROSPECTOR by Duda et al.
Chuẩn đoán vị trí khoan dầu
Sự trở lại của các mạng nơron và lý thuyết TTNT (1986 - nay)
27 Lê Hoàng Sơn
LỊCH SỬ PHÁT TRIỂN CỦA KHOA HỌC TTNT (5)
28 Lê Hoàng Sơn
Nội dung chính
4 Xu hướng mới
5 Bài tập
29 Lê Hoàng Sơn
3. CÁC THÀNH TỰU CỦA KHOA HỌC TTNT
30 Lê Hoàng Sơn
CÁC THÀNH TỰU CỦA KHOA HỌC TTNT
31 Lê Hoàng Sơn
CÁC THÀNH TỰU CỦA KHOA HỌC TTNT (2)
32 Lê Hoàng Sơn
CÁC THÀNH TỰU CỦA KHOA HỌC TTNT (3)
33 Lê Hoàng Sơn
CÁC THÀNH TỰU CỦA KHOA HỌC TTNT (4)
SONY AIBO
34 Lê Hoàng Sơn
CÁC THÀNH TỰU CỦA KHOA HỌC TTNT (5)
Đi bộ
Quay
36 Lê Hoàng Sơn
CÁC THÀNH TỰU CỦA KHOA HỌC TTNT (7)
37 Lê Hoàng Sơn
Nội dung chính
4 Xu hướng mới
5 Bài tập
38 Lê Hoàng Sơn
4. CÁC XU HƯỚNG MỚI TRONG TTNT
39 Lê Hoàng Sơn
CÁC XU HƯỚNG MỚI TRONG TTNT (2)
40 Lê Hoàng Sơn
CÁC XU HƯỚNG MỚI TRONG TTNT (3)
41 Lê Hoàng Sơn
CÁC XU HƯỚNG MỚI TRONG TTNT (4)
42 Lê Hoàng Sơn
CÁC XU HƯỚNG MỚI TRONG TTNT (5)
43 Lê Hoàng Sơn
CÁC XU HƯỚNG MỚI TRONG TTNT (6)
44 Lê Hoàng Sơn
CÁC XU HƯỚNG MỚI TRONG TTNT (7)
45 Lê Hoàng Sơn
CÁC XU HƯỚNG MỚI TRONG TTNT (8)
46 Lê Hoàng Sơn
CÁC XU HƯỚNG MỚI TRONG TTNT (9)
47 Lê Hoàng Sơn
CÁC XU HƯỚNG MỚI TRONG TTNT (10)
48 Lê Hoàng Sơn
CÁC XU HƯỚNG MỚI TRONG TTNT (11)
49 Lê Hoàng Sơn
CÁC XU HƯỚNG MỚI TRONG TTNT (12)
50 Lê Hoàng Sơn
CÁC XU HƯỚNG MỚI TRONG TTNT (13)
51 Lê Hoàng Sơn
CÁC XU HƯỚNG MỚI TRONG TTNT (14)
52 Lê Hoàng Sơn
CÁC XU HƯỚNG MỚI TRONG TTNT (15)
53 Lê Hoàng Sơn
CÁC XU HƯỚNG MỚI TRONG TTNT (16)
54 Lê Hoàng Sơn
Nội dung chính
4 Xu hướng mới
5 Bài tập
55 Lê Hoàng Sơn
Một số chủ đề nghiên cứu
Giải thuật di truyền và ứng dụng
Mạng Nơron nhân tạo và ứng dụng
Công nghệ tác tử và ứng dụng
KDD và ứng dụng
Phân lớp - học có thầy
• Lý thuyết tập thô
• Cây quyết định
• .....
Phân cụm - học không có thầy
Luật kết hợp
....
. . .
56 Lê Hoàng Sơn
TÀI LIỆU THAM KHẢO
1. Trí tuệ nhân tạo – Các phương pháp Giải
quyết vấn đề và kỹ thuật xử lý tri thức (1999)
Nguyễn Thanh Thuỷ
57 Lê Hoàng Sơn
TÀI LIỆU THAM KHẢO
58 Lê Hoàng Sơn
TÀI LIỆU THAM KHẢO
59 Lê Hoàng Sơn
Questions
60 Lê Hoàng Sơn
Click to edit company slogan .
61
Bài 2: Các chiến lược tìm kiếm & heuristics
1
Nội dung chính
5 Bài tập
2 Lê Hoàng Sơn
1. Vấn đề và bài toán
Những vướng mắc khó khăn cần giải quyết
Một yêu cầu tìm kiếm xử lý trong một ngữ cảnh cụ thể, bao gồm:
Các sự kiện
Các thông tin
Những ràng buộc nhất định
: suy luận hay giải pháp cần xác định = một số hữu hạn bước
3
Phân loại vấn đề
Xác định rõ
• A, B đều rõ
Chưa rõ
• A rõ, B chưa rõ
• A chưa rõ, B rõ
• A, B đều chưa rõ
4
Phân loại vấn đề
Vấn đề (bài toán) phát biểu chỉnh (well-formed problems):
Là các bài toán có thể biết được hình trạng đầu, hình trạng đích
và có thể quyết định khi nào vấn đề được coi là giải quyết xong
5
Các đặc trưng cơ bản của vấn đề
Các đặc trưng cơ bản của vấn đề
Bài toán có thể phân tích thành các bài toán dễ giải hơn không?
Các bước giải của bài toán có thể bỏ qua hay huỷ bỏ hay
không?
Không gian bài toán có thể đoán trước hay không?
Có tiêu chuẩn để xác định lời giải nào đó là tốt đối với bài toán
không?
Có cần tri thức để giải quyết bài toán hay điều khiển quá trình
tìm kiếm không?
Cơ sở tri thức để giải quyết bài toán có nhất quán với nội dung
không?
Có cần tương tác người máy trong quá trình giải quyết không?
6
Các thành phần cơ bản trong hệ thống giải quyết vấn đề
Giải quyết vấn đề: Biểu diễn bài toán và tìm kiếm lời giải
trong không gian bài toán
Hệ thống giải quyết vấn đề:
Bµi to¸n
7
Nội dung chính
5 Bài tập
8 Lê Hoàng Sơn
2. CÁC PHƯƠNG PHÁP BIỂU DIỄN VẤN ĐỀ
9
A. Phương pháp biểu diễn nhờ KGTT
Hình trạng đầu, hình trạng cuối của bài toán được gọi là
trạng thái đầu, trạng thái cuối
10
Phương pháp biểu diễn nhờ KGTT
Mét c¸ch biÓu diÔn trùc quan ®èi víi kh«ng gian tr¹ng th¸i vµ
c¸c to¸n tö lµ sö dông ®å thÞ, trong ®ã, c¸c ®Ønh cña ®å thÞ =
c¸c tr¹ng th¸i cßn c¸c cung = c¸c to¸n tö
VD: Bài toán trò chơi n2-1 số (nN, n>2)
n=4
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15
11
Phương pháp biểu diễn nhờ KGTT (2)
Mỗi trạng thái là một sắp xếp nào đó của các con số từ 1 đến 15
sao cho không có hai ô nào có cùng giá trị
Hình trạng đầu và cuối tương ứng với các trạng thái đầu và cuối
Không gian trạng thái đạt được từ trạng thái đầu bao gồm tất cả các
hình trạng được sinh ra nhờ áp dụng những phép dịch chuyển chấp
nhận được của ô trống
Đối với bài toán này số trạng thái chấp nhận được xấp xỉ (1/2). 16 !
10.5.1012
12
Phương pháp biểu diễn nhờ KGTT (3)
Các toán tử chính là các phép biến đổi từ trạng thái này sang trạng
thái khác bao gồm: dịch ô trống sang phải, sang trái, lên trên, xuống
dưới
Đối với một số trạng thái có một số toán tử không áp dụng được
Lời giải của bài toán có thể nhận được nhờ sử dụng quá trình tìm
kiếm sau:
Áp dụng các toán tử vào trạng thái đầu để nhận được những
trạng thái mới
Áp dụng các toán tử vào các trạng thái mới này
Cứ như vậy cho đến khi đạt đến trạng thái đích
13
Phương pháp biểu diễn nhờ KGTT (4)
14
B. Phương pháp qui bài toán về các bài toán con
Tách bài toán thành các bài toán con sao cho lời giải
của tập các bài toán con cho phép xác định lời giải của
bài toán ban đầu
Cách tiếp cận này dẫn đến phương pháp biểu diễn vấn
đề bằng đồ thị Và /Hoặc
A
Và
C
Hoặc
B
G
H I J
E F
15
Phương pháp qui bài toán về các bài toán con (2)
1 1
2 2
3 3
A B C A B C
Hµ Néi (2, A, C, B)
Hµ Néi (3, A, B, C) Hµ Néi (1, A, B, C)
Hµ Néi (2, B, A, C)
16
Phương pháp qui bài toán về các bài toán con (3)
n = 3
n = 4
17
D. Phương pháp biểu diễn vấn đề nhờ logic hình thức
Thông thường, để giải quyết vấn đề người ta cần phân tích logic để
thu gọn quá trình tìm kiếm và đôi khi nhờ phân tích logic có thể
chứng tỏ được rằng một bài toán nào đó không thể giải được
VD: Bài toán trò chơi n2-1 số
15 14 13 12
11 10 9 8
7 6 5 4
3 2 1
18
Phương pháp biểu diễn vấn đề nhờ logic hình thức (2)
Các dạng logic hình thức được sử dụng để biểu diễn bài toán gồm:
Logic mệnh đề
Logic vị từ
Phương pháp biểu diễn bài toán nhờ logic hình thức cho phép:
Kiểm tra điều kiện kết thúc trong khi tìm kiếm đối với không gian
trạng thái
Kiểm tra tính áp dụng được đối với các toán tử
Chứng minh không tồn tại lời giải
Mục đích giải quyết vấn đề dựa trên logic hình thức là chứng minh
một phát biểu nào đó trên cơ sở những tiền đề và luật suy diễn đã
có
19
Lựa chọn phương pháp biểu diễn thích hợp
Trong nhiều trường hợp, việc giải quyết bài toán dựa trên các thuật ngữ đã
được dùng để phát biểu nó là rất khó khăn
Người ta thường lựa chọn một dạng biểu diễn phù hợp nào đó đối với các
dữ liệu của bài toán, làm cho bài toán trở nên dễ giải hơn
Việc lựa chọn phương pháp biểu diễn thích hợp nhằm:
Tránh giải trực tiếp bài toán đặt ra ban đầu do những khó khăn liên
quan tới kích cỡ, trọng số, tầm quan trọng và chi phí xử lý dữ liệu của
bài toán
Bỏ bớt những thông tin thừa hoặc không quan trọng trong bài toán
Tận dụng những phương pháp giải đã có đối với bài toán nhận được
sau khi phát biểu lại
Cách phát biểu mới có thể cho phép thể hiện một vài tương quan nào
đó giữa các yếu tố của bài toán nhằm thu gọn quá trình giả
20
Lựa chọn phương pháp biểu diễn thích hợp
Sau khi đã giải quyết xong bài toán theo cách biểu diễn mới, cần
phải diễn giải lời giải nhận được cho sát với bài toán thực tế và
chứng minh rằng cách diễn giải đó thực sự giải quyết được bài toán
đặt ra
Để có thể giải quyết vấn đề trên máy tính, trước hết ta phải tìm cách
biểu diễn lại vấn đề sao cho máy tính có thể “hiểu” được
Điều này có nghĩa là ta phải đưa các dữ liệu của bài toán về dạng
có thể xử lý được trên máy tính
21
Biểu diễn vấn đề trong máy tính
Cách biểu diễn dùng bảng: Sử dụng bảng để biểu diễn
các hình trạng của bài toán.
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15
22
Biểu diễn vấn đề trong máy tính (2)
Cách biểu diễn dùng xâu ký hiệu
TgT
ToĐ
VĐ
MĐ
TgT VT
23
Biểu diễn vấn đề trong máy tính (3)
Cách biểu diễn dùng cấu trúc danh sách
b 2 4ac /
2a
* 2 a
* 4 a c
b 2
24
Biểu diễn tri thức và giải quyết vấn đề
Có hai cách tiếp cận trong giải quyết vấn đề:
Tổng quát hoá để đưa ra mô hình bài toán
Cụ thể hoá trên cơ sở sử dụng các tri thức đặc tả
Trên thực tế, có những bài toán không thể giải được nhờ sử dụng
mô hình, hơn nữa lời giải nhận được còn khá xa với lời giải thực tế
Trong trường hợp đó, người ta áp dụng cách tiếp cận sử dụng tri
thức đặc tả
Các phương pháp biểu diễn tri thức bao gồm: Frame, logic hình
thức, mạng ngữ nghĩa và các hệ sản xuất
25
Nội dung chính
5 Bài tập
26 Lê Hoàng Sơn
3. Thuật toán và thuật giải
Thuật toán: Là chuỗi hữu hạn các công việc trình tự xác
định các thao tác để giải các bài toán.
Tính chất:
Tính xác định
Tính đúng đắn
Tính dừng
27
Độ phức tạp thuật toán
O(log2 n)
O(n)
O(nlog2 n) ®é phøc t¹p ®a thøc chÊp nhËn ®îc
O(n 2 )
O(n k )
O(2n )
®é phøc t¹p cao khã chÊp nhËn
n!
28
Một số ví dụ về bài toán có độ phức tạp cao
Bài toán phân công công việc
Một đề án gồm n công việc và các việc sẽ được thực
hiên bởi m máy như nhau
Yêu cầu: Tìm phương án phân công sao cho thời gian
hoàn thành toàn bộ công việc là thấp nhất
29
Một số ví dụ về bài toán có độ phức tạp cao (2)
màu
8
3
thư
5 1
7
đường đi nhắn nhất
2
qua tất cả các đỉnh của 2
4
3
4
đồ thị rồi trở về đỉnh
ban đầu
D 1 C
31
Mở rộng khái niệm thuật toán
Đối với thuật toán, chúng ta có ba tính chất bắt buộc:
Tính xác định (đơn định)
Tính dừng (hữu hạn)
Tính đúng (kết quả)
Tuy nhiên trong quá trình nghiên cứu giải bài toán:
Có các bài toán cho đến nay vẫn chưa tìm ra được cách giải theo thuật
toán và cũng không biết có tồn tại thuật toán để giải bài toán này hay
không?
Có các bài toán đã tìm ra được thuật toán nhưng không thể thực hiện
được hoặc khó thực hiện vì thời gian giải theo thuật toán đó quá dài
hoặc các điều kiện đặt ra cho thuật toán là khó đáp ứng được
Có các bài toán được giải theo các cách giải mà vi phạm các tính chất
của thuận toán nhưng lời giải được thực tiễn chấp nhận
32
Thuật giải
Giải pháp được viết dưới dạng thủ tục tương tự như thuật
toán nhưng không đòi hỏi các tiêu chuẩn như thuật toán
Tính đúng: chấp nhận các thuật giải đơn giản có thể cho kết
quả đúng hay gần đúng nhưng có khả năng thành công cao hơn
Để có thể được chấp nhận thuật giải phải thể hiện một giải
pháp hợp lý nhất có thể trong tình huống hiện tại bằng cách:
Tận dụng mọi thông tin hữu ích
Sử dụng tri thức, kinh nghiệm trực giác của con người
Tự nhiên đơn giản nhưng cho kết quả chấp nhận được
33
Thuật giải Heuristic
Mở rộng khái niệm thuật toán
Thuờng tìm lời giải tốt nhưng không tốt nhất
Nhanh chóng tìm ra kết quả hơn so với giải thuật tối ưu, vì
vậy chi phí thấp hơn
Thuờng thể hiện khá tự nhiên, gần gũi với cách suy nghĩ
và hành động của con nguời
Là các quy tắc, phương pháp, chiến lược, mẹo giải hay phương
cách nào đó nhằm làm giảm khối lượng tìm kiếm lời giải trong
không gian bài toán cực lớn
34
Tiếp cận chung cho thiết kế thuật giải Heuristic
Liệt kê tất cả các yêu cầu của một thuật toán và chia
chúng thành 2 lớp:
Lớp 1: những yêu cầu dễ dàng thỏa mãn
Lớp 2: những yêu cầu không dễ dàng thỏa mãn
35
Thuật giải Heuristics (2)
Các nguyên lý của thuật giải heuristics
1. Vét cạn thông minh
2. Nguyên lý tham lam
3. Nguyên lý thứ tự
4. Hàm heuristic
36
A. Vét cạn thông minh
1. Hạn chế vùng không gian tìm kiếm và có sự định
hướng để nhanh chóng tìm đến mục tiêu
37
B. Nguyên lý tham lam
Lấy tiêu chuẩn tối ưu (trên phạm vi toàn cục) của bài toán để làm
tiêu chuẩn chọn lựa hành động cho phạm vi cục bộ của từng bước
38
GST1
Bước 1: {Khởi đầu}
Đặt Tour := {};
Cost := 0; A
For k := 1 To n Do
qua bước 3; D 1
C
39
GST1 (2)
Bước 3: {Chọn cung kế tiếp}
Cost = 1 E
3 B
V=B 7 2
W {C, D, E} W = E 2
3 4
Tour = {(A, B),(B, E)} 4
Cost = 1 + 3 = 4
V=E D 1
C
W {C, D} W = C 41
GST1 (4)
Tour = {(A, B), (B, E), (E, C)} 1 2 7 5
Cost = 4 + 2 = 6 4 4 3
1
V=C =
C 2 4 1 2
3
W {D} W = D 7 4 1
Tour = {(A, B), (B, E), (E, C), (C, D)} 5 3 2 3
Cost = 6 + 1 = 7 A
V=D
5
Tour = {(A, B), (B, E), (E, C), (C, D), (D, A)} 1
Cost = 7 + 7 = 14 E
3 B
7 2
Kết quả:Tour du lịch A BECD 2
3
A với giá thành Cost = 14 4
4
43
GST2 (2)
Ví dụ: (Giải lại ví dụ trên) p=3
Call(GTS1(A))
=>T(0) = {(A,B),(B,E),(E,C),(C,D),(D,A)}, A
Bài toán phân công: Cho M máy có cùng công suất như nhau và n
công việc. Thực hiện công việc i trên bất kỳ máy nào cũng tốn thời
gian là ti. Hãy phân công các công việc trên các máy sao cho tổng
thời gian để hoàn thành tất cả công việc là thấp nhất
Bài toán phân công, lịch công tác, lịch thi đấu
45
Bài toán phân công
Có 3 máy M1, M2, M3 và 6 công việc:
t1 = 2, t2 = 5, t3 = 8, t4 = 1, t5 = 5, t6 = 1
t2 = 5
M1
t5 = 5
M2
t1 = 2 t6 = 1 t3 = 8
M3
t4 = 1
46
Nhận xét độ phức tạp
Thứ tự của các công việc trên một máy là không
quan trọng (vì không làm thay đổi tổng thời gian thực
hiện trên máy đó)
Máy 1 1 3 2 ...
47
Bài toán tô màu tối ưu trên đồ thị
Đỉnh Lisbon Madrid Paris Berne Rome Viene Berlin Luxemburg Brusen Hague
L M P Be R V Ber Lx Bru H
Bậc 1 2 6 4 3 3 6 3 4 2
Lisbon 3
1 Brusels
Paris
Luxemburg
1
4 The Hague
4 4
Madrid Berne
3
2 2
Rome Berlin
1
Viene
48
Tô màu tối ưu trên đồ thị
Thuật toán: Lặp lại các bước sau cho đến khi nào tô
màu hết các đỉnh
Bước 2: Hạ bậc:
Màu tô lần 5 1 1
Màu tô lần 4 3 3 3
Màu tô lần 3 2 2 2
Màu tô lần 2 2 2 2 2 2 2
Màu tô lần 1 1 1 1 1 1 1 1
• Có một cuộc hội thảo khoa học với 9 chủ đề khác nhau, mỗi
chủ đề diễn ra trong một buổi
• Các chủ đề sau không được đồng thời: AE, BC, CD, ED, ABD,
AHI, BHI, DFI, DHI, FGH
51
AE, BC, CD, ED, ABD, AHI, BHI, DFI, DHI, FGH
-1 -1 -1 1 -1 -1 -1 -1
dinh A B C D E F G H I
bac 5 5 2 7 2 4 2 6 5
4 4 1 0 1 3 2 5 4
52
D. Hàm heuristic
Trong việc xây dựng các thuật giải Heuristic, người ta thường dùng
các hàm Heuristic
Đó là các hàm đánh già thô, giá trị của hàm phụ thuộc vào trạng thái
hiện tại của bài toán tại mỗi bước giải. Nhờ giá trị này, ta có thể chọn
được cách hành động tương đối hợp lý trong từng bước của thuật giải
Giaû thuyeát Keát luaän
S0 S1 S2 … … … … Sn
START GOAL
Traïng thaùi baét ñaàu Traïng thaùi keát thuùc
53
Các đặc điểm của bài toán
Khả năng phân rã?
Khả năng lờ đi và quay lui
Khả năng dự đoán toàn cục
Mục tiêu là trạng thái hay con đường?
Lượng tri thức cần để giải bài toán
Có cần sự can thiệp của con người trong quá trình giải
không?
54
Biểu diễn bài toán
1. Chọn được không gian tìm kiếm thích hợp
2. Tiến hành tìm kiếm có hệ thống và có hiệu quả trong không gian
tìm kiếm
3. Sử dụng triệt để các nguồn tri thức có liên quan trong quá trình tìm
kiếm tương ứng với miền đại lượng cụ thể
4. Không gian tìm kiếm thường được biểu diễn bởi một đồ thị hoặc
một dạng đặc biệt của đồ thị (cây):
a) Mỗi đỉnh là một giai đoạn của quá trình giải (hay là trạng thái)
b) Mỗi cung là một tác động biến đổi quá trình từ giai đoạn này
sang giai đoạn khác
55
Các vấn đề trong thiết kế các chương trình tìm kiếm
Các NODE trong đồ thị có thể được phát sinh nhiều lần,
và có thể đã được xem xét trước đó trong quá trình duyệt
Cần loại bỏ những NODE lặp lại và lưu lại các NODE đã
xét
56
Bài toán Taci
57
Nội dung chính
5 Bài tập
58 Lê Hoàng Sơn
4. Một số thuật giải Heuristics
1. Tìm kiếm theo chiều sâu (DFS)
2. Tìm kiếm theo chiều rộng (BFS)
3. Tìm kiếm sâu dần (Iterative deepening search)
4. Tìm kiếm leo đồi (Hill Climbing)
5. Thuật toán AT (Algorithm for Tree)
6. Thuật giải AKT – Tìm kiếm với tri thức bổ sung
(Algorthm for Knowledgeable Tree)
7. Thuật giải A*
8. Thuật giải Minimax
59
A. Tìm kiếm theo chiều sâu (DFS)
Thuật toán sử dụng một cấu trúc dữ liệu ngăn xếp để lưu trữ
thông tin trung gian thu được trong quá trình tìm kiếm:
1. Bắt đầu từ đỉnh s là đỉnh hiện hành u, đánh đấu đỉnh này "đã
thăm“
2. Đi theo cạnh (u,v) bất kỳ. Nếu cạnh (u,v) dẫn đến đỉnh "đã
thăm" v, ta quay trở về u
3. Nếu v là đỉnh mới, ta di chuyển đến v và đánh dấu v là "đã
thăm". Đặt v thành đỉnh hiện hành và lặp lại bước 1
4. Cuối cùng, ta đi đến một đỉnh mà tại đó tất cả các cạnh kề với
nó đều dẫn chúng ta đến các đỉnh "đã thăm". Khi đó, quay lui
lại cho đến khi trở lại một đỉnh kề với một cạnh còn chưa được
khám phá. Lặp lại bước 1
5. Khi chúng ta trở về s và không còn cạnh nào kề với nó chưa bị
khám phá là lúc DFS dừng
60
Minh họa tìm kiếm theo chiều sâu (DFS)
61
Tìm kiếm theo chiều sâu (DFS)
62
B. Tìm kiếm theo chiều rộng (BFS)
Thuật toán sử dụng một cấu trúc dữ liệu hàng đợi để lưu trữ
thông tin trung gian thu được trong quá trình tìm kiếm:
63
Minh họa Tìm kiếm theo chiều rộng (BFS)
64
C. Tìm kiếm sâu dần
Kỹ thuật tìm kiếm sâu dần là thực hiện việc tìm kiếm với
độ sâu ở mức giói hạn d nào đó
Kỹ thuật tìm kiếm sâu dần thường được thực hiện khi
cây tìm kiếm chứa nhánh vô hạn, và nếu sử dụng tìm
kiếm theo độ sâu ta có thể mắc kẹt ở một nhánh nào đó
(thuật toán không dừng) và không tìm ra nghiệm
65
Thuật toán
bool result = false;
openList.Push(n0);
deepOfNode(no, 0);//độ sâu của đỉnh xuất phát là 0
while (!openList.IsEmpty())
node = openList.Pop();
if (node.Equals(n*)) { result = true; break; }
closeList.Push(node);
int deep = deepOfNode[node];
if (deep < limitedDeep)
for (n in Tn(node))
if (!openList.InList(n) && !closeList.InList(n))
openList.Push(n);
BeforeOfNode(n, node);
deepOfNode.Add(n, deep + 1);//độ sâu của đỉnh n
if (result)
DisplayResult();
else
NotFound();
66
Minh họa Tìm kiếm sâu dần
67
Tìm kiếm sâu dần l =3
68
D. Tìm kiếm leo đồi
Một trường hợp đặc biệt của tìm kiếm theo chiều sâu
nhưng không thể quay lui
Lựa chọn trạng thái tiếp theo được quyết định dựa trên
một hàm Heuristic
69
Tìm
Một kiếm
trường leobại
hợp thất đồicủa : (tt)
leo đèo kết hợp quay lui
70
Tìm kiếm leo đồi
Bước 1: Nếu trạng thái đầu trùngvới trạng thái đích thì dừng ngay,
ngược lại thì chuyển sang bước 2
Bước 2: Sử dụng các quy tắc biến đổi để tạo ra 1 tập hợp các trạng
thái từ trạng thái hiện thời
Bước 3: Với mỗi trạng thái trong tập hợp vừa tạo ra kiểm tra xem đó có
phải là trạng thái đích hay không?
71
Ví dụ tìm kiếm leo đồi
Vi dụ
72
Ví dụ tìm kiếm leo đồi
H(n)=Tọa độ x của đích – Tọa độ x của
n+ Tọa độ y của đích – Tọa độ y của n
h(S)=|4-1|+|4-1|=6
n:=S h(A)=|4-2|+|4-3|=3 < h(S)
NextS = A
n:=A h(B)=|4-2|+|4-4|=2 (min) < h(A)
h(C)=|4-2|+|4-2|=4
NextA = B
n:=B h(D)=|4-1|+|4-4|=3
h(E)=|4-3|+|4-4|=1 (min) < h(B)
NextB = E
n:=E h(G)=|4-4|+|4-4|=0(min) < h(B)
h(H)=|4-3|+|4-3|=2
NextE = G (Đích- Dừng)
73
E. Thuật giải AT
Mỗi đỉnh n tương ứng với một số g(n): giá (fitness) của
đường đi từ đỉnh ban đầu đến đỉnh n
Đỉnh:
Đỉnh đóng (Closed): là những đỉnh đã được xem xét
Đỉnh mở (Open): là những đỉnh giả thiết sẽ được
xem xét ở bước sau
Đỉnh ẩn (Hiden): là những đỉnh mà tại đó hàm g(n)
chưa được xác định
74
Thuật giải AT
Bước 1:
Mọi đỉnh n, mọi giá trị g(n) đều là ẩn.
Mở đỉnh đầu tiên và gọi đó là đỉnh S. Đặt g(S) = 0.
Bước 2 : Chọn đỉnh mở với giá g tương ứng là nhỏ nhất và gọi đó là đỉnh N
Nếu N là mục tiêu: đường đi từ đỉnh ban đầu đến N là đường đi ngắn nhất và
bằng g(N). Dừng (Success).
Nếu không tồn tại một đỉnh mở nào nữa: cây biểu diễn vấn đề không có
đường đi tới mục tiêu. Dừng (Fail).
Nếu tồn tại nhiều hơn 1 đỉnh N (nghĩa là có 2 đỉnh N trở lên) mà có cùng giá
thành g(N) nhỏ nhất. Kiểm tra xem trong số đó có đỉnh nào là đích hay không
Nếu có: đường đi từ đỉnh ban đầu đến đỉnh N là ngắn nhất và bằng g(N),
dừng (Success)
Nếu không có: Chọn ngẫu nhiên một trong các đỉnh đó và gọi là đỉnh N
Bước 3: Đóng đỉnh N và mở các đỉnh sau N (là những đỉnh có cung hướng từ N
tới). Tại mọi đỉnh S sau N tính :g(S) = g(N) + cost(NS)
g(D) = 1 (min) 1
g(G) = 11 V
g(H) = 21
77
Ví dụ thuật giải AT (2)
B4: Đóng D, mở I, J:
g(A) = 100 100 1
g(B) = 17 17 1 D
A B C
g(I) = 12 10 20 12 1
1
g(J) = 2 (min) E 1 G H I J
g(G) = 11 F 1
1 1 1
g(H) = 21 K N
1 L M 1
O P
B5: Đóng J, mở N: 1 1
g(A) = 100 Q R
g(B) = 17 1
1
g(I) = 12 S T
g(G) = 11 1 Traïng thaùi ñích
g(H) = 21 U
1
g(N) = 3 (min) V
78
Ví dụ thuật giải AT (3)
B6: Đóng N, mở P: 100 1
17 1
D
g(A) = 100 A B C
10 1
g(B) = 17 1 20 12
g(I) = 12 E 1 G H I J
F 1
g(G) = 11 1 1 1
K N
g(H) = 21 L M
1 1
g(P) = 4 (min) O P
1 1
B7: Đóng P, mở R: Q R
1
g(A) = 100 1
g(B) = 17 S T
1
g(I) = 12 U Traïng thaùi ñích
g(G) = 11 1
g(H) = 21 V
g(R) = 5 (min)
R là đích. Vậy đường đi là: S
1 D 1 J 1 N 1 P 1 R
Nhận xét: Thuật toán này chỉ sử dụng 3 thông tin: đỉnh, cung và giá thành của
cung.
79
F. Thuật giải AKT
Thuật giải AT là thuật giải tìm kiếm đường đi tốt nhất đối với cây chỉ có
các thông tin về đỉnh, cung và giá trị của cung.
Trong nhiều trường hợp việc tìm kiếm đường đi sẽ được định hướng rõ
thêm nếu sử dụng các tri thức thu được dựa trên các hiểu biết về tình
huống vấn đề ở mỗi bước: h(n) = ước lượng giá thành đường đi từ n đến
mục tiêu.
Ở ví dụ của giải thuật AT, ở bước đầu tiên: g(c) = g(d) = 1. AT chọn tùy ý
một trong hai đỉnh c và d để xét tiếp.
Nhưng thay vì chọn tùy ý chúng ta có thể đặt câu hỏi “Đỉnh nào trong
các đỉnh c và d gần mục tiêu hơn”, chúng ta ước lượng được: h(c) = 11,
h(d) = 4 nên việc chọn đỉnh kế tiếp sẽ là d chứ không phải c
Do vậy tri thức bổ sung sẽ dựa trên cơ sở cực tiểu hóa giá thành f ở mỗi
bước: f(n) = g(n) + h(n)
80
Thuật giải AKT
Bước 1:
Mọi đỉnh, cũng như các hàm g, h, f chưa biết
Mở đỉnh đầu tiên S, gán g(S) = 0
Sử dụng tri thức bổ sung để ước tính hàm h(S)
Tính f(S) = g(S) + h(S)
Bước 3:
Đóng đỉnh N, mở mọi đỉnh sau N. Với mỗi đỉnh S sau N, tính g(S) = g(N) + cost(SN)
Sử dụng tri thức bổ sung để tính h(S) và f(S): f(S) = g(S) + h(S)
2 8 3 1 2 3
1 6 4 8 4
7 5 7 6 5
S0 Sn
Cách 1:
t 0 neáu a i = bi
H = d(ai , bi ) vôùi d(ai , bi ) =
i =1 1 neáu a i bi
82
Bài toán taci (2)
2 8 3
g=0
1 6 4 h = 4 (coù 4 soá sai vò trí so vôùi Goal)
7 5 f=4
2 8 3 2 8 3 2 8 3
g=1 g=1 g=1
1 6 4 h=5 1 4 h=3 1 6 4 h=5
7 5 f=6 7 6 5 f = 4 (min) 7 5 f=6
2 8 3 2 3 2 8 3
g=2 g=2 g=2
1 4 h=3 1 8 4 h=3 1 4 h=4
7 6 5 f=5 7 6 5 f = 5 (min) 7 6 5 f=6
2 3 2 3
g=3 g=3
1 8 4 h=2 1 8 4 h=4
7 6 5 f = 5 (min) 7 6 5 f=7
1 2 3 1 2 3
g=4 g=5
8 4 h=1 8 4 h=0
7 6 5 f = 5 (min) 7 6 5 f = 5 (Ñích)
83
Bài toán taci (3)
t
Cách 2: H = (a i , b i )
i =1
2 8 3
1 6 4 Soá 1 2 3 4 5 6 7 8 Coäng
Vò trí 1 1 0 0 0 1 0 2 5
7 5
84
Bài toán Tháp Hà Nội với n = 2
Sắp xếp các đĩa theo trật tự kích thước vào một cọc sao cho đĩa nhỏ nhất
nằm trên cùng
Yêu cầu di chuyển toàn bộ số đĩa sang một cọc khác, tuân theo các quy tắc
sau:
Chỉ có 3 cột để di chuyển
Một lần chỉ được di chuyển một đĩa (không được di chuyển đĩa nằm
giữa)
Một đĩa chỉ có thể được đặt lên một đĩa lớn hơn (không nhất thiết hai
đĩa này phải có kích thước liền kề, tức là đĩa nhỏ nhất có thể nằm trên
đĩa lớn nhất)
S0 Sn h(n) = 0 1 2 3
85
Bài toán Tháp Hà Nội với n = 2
g=0
h=2
f=2
g=1 g=1
h=2 h=3
f = 3 (min) f=4
86
G. Thuật giải A*
Mở rộng thuật giải AKT thành thuật giải A* như sau:
87
G. Thuật giải A*
Bước 3: Xây dựng các đỉnh Si có thể đến từ S nhờ các hành động có
thể chọn để thực hiện.Si sau S:
Tính g(Si) ứng với mỗi i: g(Si) = g(S) + cost(S->Si)
Ước lượng h(Si) G
Gán f(Si)=g(Si)+h(Si)
Bước 4: Đặt vào trong những Si không có trong lẫn trong C. Với
các Si đã có trong hoặc trong C thì gán:
f(Si) = Min( fcũ(Si), fmới(Si) )
If Si có trong C and fcũ(Si)< fmới(Si) then
C := C – {Si}
:= + {Si} {Mở Si}
End A*
88
Bản đồ của Romania với khoảng cách tính theo km
89
Khoảng cách đường chim bay từ một thành phố đến Bucharest
90
Minh họa thuật giải A*
Ban đầu (bước 1) :
OPEN = {(Arad,g= 0,h’= 0,f’= 0)}
CLOSE = {}
Do trong OPEN chỉ chứa một thành phố duy nhất nên thành
phố này sẽ là thành phố tốt nhất. Nghĩa là S0 = Arad.Ta lấy
Arad ra khỏi OPEN và đưa vào CLOSE(bước 2).
OPEN = {}
CLOSE = {(Arad,g= 0,h’= 0,f’= 0)}
Do cả 3 nút Sibiu, Timisoara, Zerind đều không có trong cả OPEN và CLOSE nên
ta bổ sung 3 nút này vào OPEN (bước 4)
92
Minh họa thuật giải A*
Trong tập OPEN, nút Sibiu là nút có giá trị f’ nhỏ nhất nên ta sẽ chọn Si = Sibiu.
Ta lấy Sibiu ra khỏi OPEN và đưa vào CLOSE
Từ Sibiu có thể đi đến được 4 thành phố là : Arad, Fagaras, Oradea, Rimnicu.
Ta lần lượt tính các giá trị g, h’, f’ cho các nút này.
h’(Arad) = 366
g(Arad) = g(Sibiu)+cost(Sibiu,Arad)= 140+140= 280
f’(Arad) = g(Arad)+h’(Arad)= 280+366 = 646
93
Minh họa thuật giải A*
h’(Fagaras) = 178
g(Fagaras) = g(Sibiu)+cost(Sibiu, Fagaras) = 140+99= 239
f’(Fagaras) = g(Fagaras)+ h’(Fagaras) = 239+178= 417
h’(Oradea) = 380
g(Oradea) = g(Sibiu)+cost(Sibiu, Oradea) = 140+151 = 291
f’(Oradea) = g(Oradea)+ h’(Oradea) = 291+380 = 671
h’(R.Vilcea) = 193
g(R.Vilcea) = g(Sibiu)+cost(Sibiu, R.Vilcea) = 140+80 = 220
f’(R.Vilcea) = g(R.Vilcea)+ h’(R.Vilcea) = 220+193 = 413
Nút Arad đã có trong CLOSE. Tuy nhiên, do g(Arad) mới được tạo ra (có giá trị
280) lớn hơn g(Arad) lưu trong CLOSE (có giá trị 0) nên ta sẽ không cập nhật lại
giá trị g và f’ của Arad lưu trong CLOSE
3 nút còn lại : Fagaras, Oradea, Rimnicu đều không có trong cả OPEN và
CLOSE nên ta sẽ đưa 3 nút này vào OPEN, đặt cha của chúng là Sibiu. Như vậy,
đến bước này OPEN đã chứa tổng cộng 5 thành phố
94
Nhận xét
AT AKT A*
đỉnh đỉnh đỉnh
Cung Cung Cung
Giá thành cung Giá thành cung Giá thành cung
Tri thức bổ sung Tri thức bổ sung
Thao tác trên cây Thao tác trên cây Thao tác trên đồ thị
Các trò chơi có tính đối kháng cao, thường là các trò chơi 2 người
chơi như: tic tac toa, caro, cờ quốc tế,… giải thuật trên không có tác
dụng vì: Đối phương không bao giờ đi theo con đường cho ta có thể đi
đến goal
Bài toán que diêm: Một tập que diêm ban đầu đặt giữa 2 người
chơi. Lần lượt đi xen kẽ. Người đến lượt đi phải chia nhóm que diêm
theo nguyên tắc:
Chọn nhóm bất kỳ có số que >2
Chia thành 2 nhóm có số que khác nhau
Goal: người nào đến lượt mà không chia được là thua
96
Giải thuật minimax
Với một node bất kỳ nếu thuộc lớp MAX gán cho nó giá
trị lớn nhất của các node con. Nếu thuộc lớp MIN gán cho
nó giá trị nhỏ nhất của các node con
Không gian trạng thái của trò chơi được phát triển toàn
bộ, các node lá được gán giá trị 1 nếu là MAX thắng và 0
nếu là MIN thắng
97
Minimax – bài toán que diêm
MIN 7 1
6-1
1 5-2
1 4-3
1
MAX
5-1-1
0 4-2-1
1 3-2-2
0 3-3-1
1
MIN
4-1-1-1
0 3-2-1-1
1 2-2-2-1
0
MAX
3-1-1-1-1
0 2-2-1-1-1
1
MIN
2-1-1-1-1-1
0
MAX
98
Minimax với độ sâu giới hạn
Minimax như đã xét buộc phải có toàn bộ không gian trạng
thái đã được triển khai để có thể gán trị cho các nút lá và
tính ngược lại
Không khả thi với các bài toán lớn vì không gian trạng thái
là quá lớn
Đánh giá cho các nút này như là nút lá bằng một hàm
lượng giá Heuristic
Áp dụng chiến lược minimax cho việc đánh giá các nút cấp
trên
99
Ví dụ: Bài toán Tic Tac Toe
Hàm lượng giá:
f(x) = (Số dòng, số cột, số đường chéo còn mở đối với
Max)-(Số dòng, số cột, số đường chéo còn mở đối với Min)
X có 6 khả năng
X thắng
E(n) = 6 - 5 = 1
X O
O có 5 khả năng
O X thắng
100
Ví dụ: Bài toán Tic Tac Toe
1
MAX
X -1 1 -2
MIN X X
1 2
MAX X X
X -1 X 0 X 1 X 0 X -1
O O
O O O
101
Bài toán 8 con hậu
1 2 3 4 5 6 7 8
+ Cho 3 quân hậu đặt trước
vào bàn cờ A0 {(1,4), (2,2), 1
(3,8)}
X
+ Hãy đặt tiếp 5 quân hậu 2 X
khác sao cho các con hậu
không ăn nhau: 3 X
+ Gợi ý: Có thể đặt tại dòng 4
một con hậu ở một trong ba vị 4 A B C
trí A,B,C:
Nếu chọn A: sẽ còn 8 vị trí 5
có thể đặt tiếp quân hậu
Nếu chọn B: sẽ còn 9 vị trí 6
102
Bài toán 8 con hậu (tt)
Hàm lượng giá:
f1(0): số vị trí có thể đặt quân hậu tiếp trên không
gian còn lại
f1(A) = 8; f1(B) = 9; f1(C) = 10 Max f1(0) = C
f2(0): số ít nhất các vị trí có thể đặt quân hậu tiếp
trên một hàng
f2(A) = 1; f2(B) = 1; f2(C) = 2 Max f2(0) = C
Có thể sử dụng cùng lúc cả 2 hàm f1(0) và f2(0).
Nếu 2 hàm này tính ra có vị trí sai lệch nhau, ta
chọn:
f1 f2
Max
2
103
Bài toán mã đi tuần
Cách 1: Viết chương trình để mã đi qua hết 64 ô trong
bàn cờ mà mỗi ô chỉ qua một lần
104
Mã đi tuần
1 2 3 4 5 6 7 8
3 x
4
105
Nội dung chính
5 Bài tập
108
Bài 3: Các phương pháp biểu diễn và xử lý tri thức
1
Nội dung chính
1 Tri thức
5 Bài tập
2 Lê Hoàng Sơn
1. Tri thức
So với chương trình truyền thống (được cấu tạo từ hai "chất liệu" cơ
bản là dữ liệu và thuật toán), chương trình trí tuệ nhân tạo được
cấu tạo từ hai thành phần:
Cơ sở tri thức : là tập hợp các tri thức liên quan đến vấn đề mà
chương trình quan tâm giải quyết
Động cơ suy diễn : là phương pháp vận dụng tri thức trong cơ
sở tri thức để giải quyết vấn đề.
3
Chương trình trí tuệ nhân tạo
Cơ sở tri
thức là một
dạng dữ
liệu đặc biệt
5
Phân loại tri thức
Tri thức
Thông tin
Dữ liệu
6
Phân loại tri thức
Tri thức sự kiện: là các khẳng định về một sự kiện, khái niệm
nào đó
VD: Các định luật vật lý, toán học (Mặt trời mọc ở đằng đông, tam giác đều
có 3 góc 600, ...)
Tri thức thủ tục: thường dùng để diễn tả phương pháp, các
bước cần tiến hành, trình tự hay ngắn gọn là cách giải quyết một
vấn đề
VD: Thuật toán, thuật giải là một dạng của tri thức thủ tục
Tri thức mô tả: cho biết một đối tượng, sự kiện, vấn đề, khái
niệm được thấy, cảm nhận, cấu tạo như thế nào
VD: một cái bàn thường có 4 chân, con người có 2 tay, 2 mắt,..
Tri thức Heuristic: là một dạng tri thức cảm tính. Các tri thức
thuộc loại này thường có dạng ước lượng, phỏng đoán, và
thường được hình thành thông qua kinh nghiệm
7
Đặc điểm
Tự giải thích nội dung: Tri thức tự giải thích nội dung còn dữ liệu không tự
giải thích được
VD: Dữ liệu là số 7. Tri thức số 7 là số lẻ, là số nguyên tố, là số
dương,…
8
Đặc điểm (2)
9
Nội dung chính
1 Tri thức
5 Bài tập
10 Lê Hoàng Sơn
2. Biểu diễn thông tin trong máy tính
Hệ đếm: là tập hợp bao gồm những ký hiệu và quy tắc sử dụng những ký
hiệu đó để biểu diễn và xác định giá trị các số.
Ví dụ: Hệ thập phân có các chữ số: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Hệ nhị phân có các chữ số: 0, 1
Hệ thập lục phân: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
Hệ nhị phân: Các số biểu diễn ở hệ nhị phân sẽ là một chuỗi bit, ứng với
mỗi vị trí bit được gán 1 trọng số. Các trọng số này được xác định từ phải
sang trái với các giá trị là 1, 2, 4, 8...với vị trí các bit tương ứng 0, 1, 2, 3...
Ví dụ: Biểu diễn nhị phân 100101 là biểu diễn nhị phân của 37
11 Lê Hoàng Sơn
Đơn vị thông tin
Tại mỗi linh kiện điện tử hay mỗi phần tử vật chất ta đều tìm thấy 2
trạng thái trái ngược nhau.
Ví dụ: điện thế cao hay thấp, đèn sáng hay yếu
12 Lê Hoàng Sơn
Đổi hệ đếm
Để chuyển đổi một số từ hệ thập phân sang hệ cơ số b (b<>10) thì
thực hiện: Lấy số thập phân chia cho cơ số b cho đến khi phần
thương của phép chia bằng 0, số đổi được chính là các phần dư
của phép chia theo thứ tự ngược lại.
Ví dụ: Đổi số 6 trong hệ thập lục phân sang hệ nhị phân
13 Lê Hoàng Sơn
Đổi hệ đếm (tt)
Ví dụ: X=(110)2 = 1* 22 + 1*21 + 0*20 = (6)10
Để chuyển số từ hệ nhị phân sang hệ thập lục phân thì thực hiện:
Nhóm lần lượt 4 bit từ phải sang trái sau đó thay thế các nhóm 4 bit
bằng giá trị tương ứng với hệ thập lục phân
Để chuyển từ hệ thập lục phân sang hệ nhị phân thì thực hiện: ứng
với mỗi chữ số sẽ được biểu diễn dưới dạng 4 bit
14 Lê Hoàng Sơn
Hệ nhị phân
Cộng nhị phân: Các qui tắc cộng:
0 + 0 = 0, 0+1=1
1 + 0 = 1, 1 + 1 = 10
Khi cộng thực hiện cộng các cột từ phải sang trái, ứng với mỗi cột ta cộng 2
só theo qui tắc trên, nếu có nhớ thì cộng nhớ sang cột kế bên. Ví dụ:
15 Lê Hoàng Sơn
Hệ nhị phân (tt)
Cộng hỗn số:
16 Lê Hoàng Sơn
Hệ nhị phân (tt)
Trừ nhị phân:
Số bù 1 của một số là đảo bit của số đó
Ví dụ: 10001 có số bù 1 là: 01110
17 Lê Hoàng Sơn
Bài tập
1. Đổi các số thập phân sau sang hệ 2, 8, 16: a) 52 b) 108
2. Đổi các số nhị phân sau sang thập lục phân: a) 0111110 b)
1001011
4. Cộng các hỗn số sau và đổi kết quả sang hệ 10: 100.001 +
11.101 + 101.1
18 Lê Hoàng Sơn
Đáp án
1. Đổi các số thập phân sau sang hệ 2, 8, 16:
a) 5210 = 1101002 = 648 = 3416
b) 10810 = 11011002 = 1548 = 6C16
19 Lê Hoàng Sơn
Phép toán logic
Phép AND: ký hiệu A ^ B (A.B)
Ví dụ:
20 Lê Hoàng Sơn
Phép toán logic (tt)
Phép NOT:
Ví dụ:
21 Lê Hoàng Sơn
Các hàm đại số logic
Xét tập D = {0,1} với các giá trị logic hay nhị phân. Hàm F(x1,x2,..,xn) nhận
hai giá trị 0 và 1 gọi là hàm Boolean (hàm logic).
Hàm đại số Logic có thể được biểu diễn thông qua các hàm logic khác
Ví dụ: F(x,y) = (x ^ NOT y) v (NOT x ^ y) = A v B
Người ta có thể chứng minh các đẳng thức logic thông qua việc lập bảng
chân lý
22 Lê Hoàng Sơn
Chứng minh các đẳng thức logic sau..
23 Lê Hoàng Sơn
Thiết kế mạch logic
Ví dụ: vẽ mạch logic cho hàm Boolean X = A.B + C
24 Lê Hoàng Sơn
Bài tập
Mạch này là của hàm logic nào?
25 Lê Hoàng Sơn
Nội dung chính
1 Tri thức
5 Bài tập
26 Lê Hoàng Sơn
3. CÁC PHƯƠNG PHÁP BIỄU DIỄN TRI THỨC
Logic mệnh đề: Mệnh đề là một khẳng định có thể nhận giá trị
đúng hoặc sai
Logic vị từ: mở rộng của logic mệnh đề bằng cách đưa vào các
khái niệm vị từ và các lượng từ phổ thông dụng (, )
27
A. Logic mệnh đề
Mệnh đề p là một phát biểu chỉ có thể nhận giá trị đúng (True, 1)
hoặc sai (False, 0)
VD: Phát biểu "1+1=2" có giá trị đúng.
Phát biểu "Mọi loại cá có thể sống trên bờ" có giá trị sai
Các biểu thức trong logic mệnh đề được xây dựng trên cơ sở các
tên mệnh đề (thường ký hiệu bằng các chữ cái la tinh như a,b,p,q, .
. .) và các phép toán logic theo những quy tắc cú pháp nhất định.
Các phép toán logic bao gồm:
Hội: (, and, và).
Tuyển: (, or, hoặc).
Phủ định: (, not, không).
Kéo theo: ().
Tương đương: ().
28
28
Logic mệnh đề (2)
Giá trị chân lý của một biểu thức được tính dựa theo bảng chân lý:
Mọi biểu thức logic mệnh đề đều có thể đưa về dạng biểu thức tương
đương chỉ chứa các phép toán , ,
Dễ thấy ab ab
Các phép toán , có tính giao hoán, kết hợp, phân phối và luỹ đẳng
29
29
Logic mệnh đề (3)
Các phép biến đổi tương đương:
R1. a b b a; a b b a
R2. a b b a
R3. a a a; a a a
R4. a (b c) (a b) c; a (b c) (a b) c
R5. a b (a b); a b (a b)
R6. a b a b
R7. a (b c) (a b) (a c); a (b c) (a b) (a c)
R8. a (a b) a; a (a b) a
R9. a a
R10. (a b) a b; (a b) a b
R11. a a 0
R12. a 0 0; a 1 1; a 0 a; a 1 a
R13. 1 0; 0 1
30
30
B. Logic vị từ
Biểu diễn vấn đề bằng mệnh đề gặp phải một trở ngại cơ bản là ta
không thể can thiệp vào cấu trúc của một mệnh đề. Hay nói một
cách khác là mệnh đề không có cấu trúc. Điều này làm hạn chế rất
nhiều thao tác suy luận
Vị từ p(x,...,y) là một phát biểu chứa các biến x,...,y sao cho khi
x,...,y nhận các giá trị cụ thể thì nó nhận giá trị hoặc đúng hoặc sai
Lượng từ : x p(x, y, z,. . .) có nghĩa là với mọi giá trị của x p(x, y,
z,. . .) đúng với mọi y, z,. . .
Logic vị từ cho phép diễn đạt hầu hết các khái niệm và nguyên lý
của các khoa học cơ bản, nhất là toán học và vật lý
32
32
Logic vị từ (3)
Trong logic vị từ, một mệnh đề được cấu tạo bởi hai thành phần là các đối tượng tri
thức và mối liên hệ giữa chúng (gọi là vị từ). Các mệnh đề sẽ được biểu diễn dưới
dạng :
Vị từ (<đối tượng 1>, <đối tượng 2>, …, <đối tượng n>)
Như vậy để biểu diễn vị của các trái cây, các mệnh đề sẽ được viết lại thành :
Cam có vị Ngọt ~ Vị (Cam, Ngọt)
Cam có màu Xanh ~ Màu (Cam, Xanh)
"Không có vật gì là lớn nhất và không có vật gì là bé nhất!" có thể được biểu diễn dưới
dạng vị từ như sau :
LớnHơn(x,y) = x>y
NhỏHơn(x,y) = x<y
" x y : LớnHơn(y,x) và " x y : NhỏHơn(y,x)
Câu châm ngôn "Gần mực thì đen, gần đèn thì sáng" được hiểu là "chơi với bạn xấu
nào thì ta cũng sẽ thành người xấu" có thể được biểu diễn bằng vị từ như sau:
NgườiXấu (x) = y : Bạn(x,y) và NgườiXấu(y)
Công cụ vị từ đã được nghiên cứu và phát triển thành một ngôn ngữ lập trình đặc
trưng cho trí tuệ nhân tạo (PROLOG)
33
3.1. Chứng minh định lý bằng Thuật toán Vương Hạo
Bước 1: Phát biểu lại giả thiết và kết luận của vấn đề dưới dạng
chuẩn như sau:
GT1, GT2, …, GTn KL1, KL2, … KLm
Trong đó các GTi và KLj được xây dựng từ các biến mệnh đề và
các phép toán , , .
Bước 3: Thay dấu “” ở trong GTi và dấu “” ở trong KLj bằng dấu
“,” (phẩy).
p q, r (p s) q r
p, q, r, p s q, r
34
Thuật toán Vương Hạo (2)
Bước 4: Nếu GTi còn dấu “” và KLj còn dấu “” thì dòng đó được tách
thành hai dòng con
p, p q q
p, p q p, q q
doø ng 1 doø ng 2
Bước 5: Nếu một dòng được chứng minh: nếu tồn tại chung một mệnh đề ở
cả 2 vế thì coi như đúng
p, q p: mệnh đề đúng
Bước 6: Nếu một dòng không còn dấu liên kết tuyển và hội mà cả ở hai vế
đều không có chung biến mệnh đề nào thì dòng đó không được chứng minh
p, q q
Một vấn đề được giải quyết một cách trọn vẹn nếu mọi dòng dẫn xuất từ
dạng chuẩn được chứng minh.Từ bước 2 đến bước 4 không cần làm theo
thứ tự
35
Thuật toán Vương Hạo (3)
Khi một vấn đề được phân thành n vấn đề con, ta phải chứng minh tất
cả các mệnh đề con đều đúng thì mệnh đề đầu mới đúng. Nếu chứng
minh được một mệnh đề con sai thì mệnh đề chính sai
Ví dụ: Giả sử có một vấn đề được hiểu dưới dạng chuẩn sau, hãy
chứng minh vấn đề này đúng hay sai
r, p s q, r s
Ta coù:
r, p q, r s r, s q, r s
Độ phức tạp của thuật toán đơn giản hơn phương pháp lập bảng
chân trị.
37
3.2. Chứng minh định lý bằng Thuật toán Robinson
Bước 1: Phát biểu lại giả thiết và kết luận của vấn đề dưới dạng
chuẩn như sau:
GT1, GT2, …, GTn KL1, KL2, … KLm
Trong đó các GTi và KLj được xây dựng từ các biến mệnh đề và
các phép toán , , .
Bước 2: Biến đổi dòng trên thành danh sách các mệnh đề:
{GT1, GT2, …, GTn, KL1, KL2, …, KLm}
Bước 3: Nếu trong danh sách mệnh đề có 2 mệnh đề đối ngẫu nhau
thì vấn đề được giải quyết xong. Nếu không thì chuyển sang bước 4
Bước 4: Xây dựng một mệnh đề mới bằng cách tuyển một cặp
mệnh đề từ danh sách mệnh đề ở bước 2. Nếu mệnh đề mới có các
biến mệnh đề đối ngẫu thì các biến mệnh đề đó được loại bỏ
(p q) (r s q)
p r s
38
Thuật toán Robinson (2)
Bước 5: Bổ sung mệnh đề mới này vào danh sách các mệnh đề và loại bỏ 2
mệnh đề được tuyển thành mệnh đề mới đó
Bước 6: Nếu không xây dựng thêm được mệnh đề mới nào và trong danh
sách các mệnh đề không có 2 mệnh đề nào đối ngẫu nhau thì vấn đề phát
biểu ở dạng chuẩn của bước 1 là sai
VD: Có một vấn đề phát biểu ở dạng chuẩn như sau, hãy chứng minh vấn đề
đúng hay sai:
p q, q r, r s, u s p, u
{p q, q r, r s, u s, p, u}
{p r, r s, u s, p, u}
{p s, u s, p, u}
{p u, p, u}
{u, u}
Kết luận: Điều phải chứng minh là đúng
39
VÍ DỤ 2
40
VÍ DỤ 2 (2)
41
VÍ
VÍDỤ
DỤ2:(tt)
2 (3)
Bước 2:a,b,c,d,e, f
(a) Thứcăn(Cam)
(b) Thứcăn(Vịt)
(c) Ăn(Y, X) Sống(Y)
Thứcăn(X)
(d) Ăn(An, Táo)
(e) Sống(An)
42
Ví dụ 2
Nếu xem một ai đó đi lừa dối người khác là kẻ bịp bợm và bất kỳ ai
đồng tình với kẻ bịp bợm cũng là bịp bợm, hơn nữa trong tập thể có
một người nhút nhát đồng tình với kẻ lừa dối thì chắc chắn là có
một kẻ bịp bợm tính tình nhút nhát
43
43
Ví dụ 2 (2)
Khi đó ta có:
1. LD(x), BB(x)
2. ĐT(x,y), BB(y), BB(x)
3. NN(a)
4. LD(b)
5. ĐT(a,b)
6. BB(x), NN(x)
7. BB(b) Res(1A, 4), q1 ={b/x}
8. BB(b), BB(a) Res(2A, 5), q2 ={a/x, b/y}
9. BB(a) Res(3, 6B), q3 ={a/x}
10. NN(b) Res(6A, 7), q4 ={b/x}
11. BB(b) Res(8B, 9),
12. M©u thuẫn Res(7,11).
44
44
Áp dụng phép tính vị từ trong giải quyết vấn đề
Phần này sẽ nghiên cứu việc xác định các phép gán trị cho các biến
để từ GT1...GTm suy ra KL1...KLn. Có hai cách giải quyết:
Lưu lại vết các phép gán giá trị nhận được cho đến khi đưa đến
mâu thuẫn.Ta đưa vào khái niệm hợp các phép gán. Giả sử , là
hai phép gán trị, hợp của chúng được kí hiệu bởi o sao cho đối
với mọi biểu thức P ta có: Po=(P).
VD: Giả sử Mai và Dương rất thân nhau. Đi đâu Mai và Dương cũng
có nhau. Hơn nữa ta biết rằng hiện nay Mai đang ở thư viện. Hỏi
Dương đang ở đâu?
Ta đưa vào vị từ: P(x,y): x đang ở vị trí y.
x P(Mai, x)P(Dương, x)
P(Mai, Thư viện)
Cần tìm giá trị của P(Dương,x)
45
45
Áp dụng phép tính vị từ trong giải quyết vấn đề (2)
46
46
3.3. BIỂU DIỄN TRI THỨC BẰNG LUẬT SINH
Tùy thuộc vào bản chất của lĩnh vực đang quan tâm mà có những ngữ
nghĩa khác nhau về luật sinh:
48
Cơ chế suy luận trên các luật sinh:
Suy diễn tiến: là quá trình suy luận xuất phát từ một số sự kiện ban đầu, xác định
các sự kiện có thể được "sinh" ra từ sự kiện này
Sự kiện ban đầu : H, K
Ta có: {H, K}
Từ (R3): H A thì {A, H, K}
(R1): A E thì {A, E, H, K}
(R5): E K B thì {A, B, E, H, K}
(R2): B D thì {A, B, D, E, H, K}
(R6): D E K C thì {A, B, C, D, E, H, K}
Suy diễn lùi : là quá trình suy luận ngược xuất phát từ một số sự kiện ban đầu, ta
tìm kiếm các sự kiện đã "sinh" ra sự kiện này
(R1): A E
(R2): B D
(R3): H A
(R4): E G C
(R5): E K B
(R6): D E K C
(R7): G K F A
49
Tối ưu luật
Quy tắc rút gọn: Có thể loại bỏ những sự kiện bên vế phải nếu những sự
kiện đó đã xuất hiện bên vế trái. Nếu sau khi rút gọn mà vế phải trở thành
rỗng thì luật đó là luật hiển nhiên. Ta có thể loại bỏ các luật hiển nhiên ra khỏi
tri thức
50
Tối ưu luật (2)
Luật A, B -> C có thể được thay thế bằng luật A -> C mà không làm ảnh
hưởng đến các kết luận
51
Tối ưu luật (3)
Luật thừa: Một luật dẫn A -> B được gọi là thừa nếu có thể suy ra luật này
từ những luật còn lại
Ví dụ : trong tập các luật gồm {A -> B, B -> C, A -> C} thì luật thứ 3 là luật
thừa vì nó có thể được suy ra từ 2 luật còn lại.
52
Nhận xét
Ưu điểm
Các luật rất dễ hiểu nên có thể dễ dàng dùng để trao đổi với người dùng
Có thể dễ dàng xây dựng được cơ chế suy luận và giải thích từ các luật
Việc hiệu chỉnh và bảo trì hệ thống là tương đối dễ dàng
Có thể cải tiến dễ dàng để tích hợp các luật mờ
Các luật thường ít phụ thuộc vào nhau
Nhược điểm
Các tri thức phức tạp đôi lúc đòi hỏi quá nhiều (hàng ngàn) luật sinh. Điều này sẽ
làm nảy sinh nhiều vấn đề liên quan đến tốc độ lẫn quản trị hệ thống
Người xây dựng hệ thống trí tuệ nhân tạo thích sử dụng luật sinh hơn tất cả phương
pháp khác (dễ hiểu, dễ cài đặt) nên họ thường tìm mọi cách để biểu diễn tri thức
bằng luật sinh cho dù có phương pháp khác thích hợp hơn
Cơ sở tri thức luật sinh lớn sẽ làm giới hạn khả năng tìm kiếm của chương trình điều
khiển
Nhiều hệ thống gặp khó khăn trong việc đánh giá các hệ dựa trên luật sinh cũng như
gặp khó khăn khi suy luận trên luật sinh
53
3.4. BIỄU DIỄN TRI THỨC SỬ DỤNG MẠNG NGỮ NGHĨA
Mạng ngữ nghĩa sử dụng công cụ là đồ thị nên nó thừa hưởng tất cả những
mặt mạnh của công cụ đồ thị
Các thuật toán đã được cài đặt và phát triển trên máy tính, khi áp dụng chúng
ta có thể giải quyết nhiều vấn đề khác nhau ở trên mạng
Mạng ngữ nghĩa được ứng dụng nhiều trong hai lĩnh vực:
54
Xây dựng mạng ngữ nghĩa để giải tam giác
Có 22 yếu tố liên quan đến cạnh và góc của tam giác. Để xác định
một tam giác hay để xây dựng một 1 tam giác ta cần có 3 yếu tố
trong đó phải có yếu tố cạnh
Như vậy có khoảng C322 -1 (khoảng vài ngàn) cách để xây dựng hay
xác định một tam giác. Theo thống kê, có khoảng 200 công thức liên
quan đến cạnh và góc 1 tam giác
Để giải bài toán này bằng công cụ mạng ngữ nghĩa, ta phải sử dụng
khoảng 200 đỉnh để chứa công thức và khoảng 22 đỉnh để chứa các
yếu tố của tam giác
Mạng ngữ nghĩa cho bài toán này có cấu trúc như sau :
55
Ví dụ
56
Suy diễn
Bài toán: "Cho hai góc , và chiều dài cạnh a của tam giác. Tính đường
cao hC"
Cơ chế suy diễn thực hiện theo thuật toán "loang" như sau:
B1 : Kích hoạt những đỉnh hình tròn đã cho ban đầu (những yếu tố đã có
giá trị)
B2 : Lặp lại bước sau cho đến khi kích hoạt được tất cả những đỉnh ứng với
những yếu tố cần tính hoặc không thể kích hoạt được bất kỳ đỉnh nào nữa.
Nếu một đỉnh hình chữ nhật có cung nối với n đỉnh hình tròn mà n-1 đỉnh
hình tròn đã được kích hoạt thì kích hoạt đỉnh hình tròn còn lại (và tính giá
trị đỉnh còn lại này thông qua công thức ở đỉnh hình chữ nhật.
57
Cài đặt thuật toán
0 if X i R j
XiRj
1 if X i R j
58
Cài đặt thuật toán
Nhập các biến Xi cho trước (kích hoạt): khi đó những công thức nào có
chứa biến này thì cho giá trị là 1 (đổi từ –1 thành 1)
Nếu công thức = 1 công thức đó được kích hoạt. Các biến liên hệ với
công thức này (duyệt theo cột) sẽ được kích hoạt từ –1 sang 1
Duyệt tiếp để xác định tiếp các công thức liên quan
59
Ban đầu
(1) (2) (3) (4) (5)
-1 0 0 -1 0
-1 -1 0 -1 0
d 0 -1 0 -1 0
a -1 0 -1 0 0
b -1 -1 -1 0 0
c 0 -1 -1 0 -1
S 0 0 -1 0 -1
hC 0 0 0 0 -1
60
Đỉnh a, b , a của đồ thị được kích hoạt
a 1 0 0 1 0
b 1 1 0 1 0
d 0 -1 0 -1 0
a 1 0 1 0 0
b -1 -1 -1 0 0
c 0 -1 -1 0 -1
S 0 0 -1 0 -1
hC 0 0 0 0 -1
61
Trên cột (1), hiệu (1+1+1 – (-1)) = 4 nên dòng b sẽ được kích hoạt
a 1 0 0 1 0
b 1 1 0 1 0
d 0 -1 0 -1 0
a 1 0 1 0 0
b 1 1 1 0 0
c 0 -1 -1 0 -1
S 0 0 -1 0 -1
hC 0 0 0 0 -1
62
Trên cột (4), hiệu (1+1 – (-1)) = 3 nên dòng d sẽ được kích hoạt
a 1 0 0 1 0
b 1 1 0 1 0
d 0 1 0 1 0
a 1 0 1 0 0
b 1 1 1 0 0
c 0 -1 -1 0 -1
S 0 0 -1 0 -1
hC 0 0 0 0 -1
63
Trên cột (2), hiệu (1+1+1 – (1)) = 4 nên dòng c được kích hoạt
a 1 0 0 1 0
b 1 1 0 1 0
d 0 1 0 1 0
a 1 0 1 0 0
b 1 1 1 0 0
c 0 1 1 0 1
S 0 0 -1 0 -1
hC 0 0 0 0 -1
64
Trên cột (3), hiệu (1+1+1 – (-1)) = 4 nên dòng S được kích hoạt
a 1 0 0 1 0
b 1 1 0 1 0
d 0 1 0 1 0
a 1 0 1 0 0
b 1 1 1 0 0
c 0 1 1 0 1
S 0 0 1 0 1
hC 0 0 0 0 -1
65
Trên cột (5), hiệu (1+1 – (-1)) = 3 nên dòng hC được kích hoạt
a 1 0 0 1 0
b 1 1 0 1 0
d 0 1 0 1 0
a 1 0 1 0 0
b 1 1 1 0 0
c 0 1 1 0 1
S 0 0 1 0 1
hC 0 0 0 0 1
66
3.5. BIỄU DIỄN TRI THỨC BẰNG FRAME
Cấu trúc dữ liệu chứa đựng tất cả những tri thức liên quan đến một đối
tượng cụ thể nào đó
Một frame bao hàm trong nó một khối lượng tương đối lớn tri thức về một
đối tượng, sự kiện, vị trí, tình huống hoặc những yếu tố khác
67
Ví dụ
Frame MÁY
Xy-lanh : 3.19 inch
Một số facet thường gặp: Tỷ lệ nén : 3.4 inche
Xăng : TurboCharger
Value: giá trị. Cho biết giá trị của thuộc tính đó Mã lực : 140 hp
Default :giá trị mặc định
Range: miền giá trị
If added : mô tả một hành động sẽ được thi hành khi
một giá trị trong slot được thêm vào (hoặc được hiệu
chỉnh). Thủ tục thường được viết dưới dạng một
script
If needed : được sử dụng khi slot không có giá trị
nào. Facet mô tả một hàm để tính ra giá trị của slot
68
3.6. BIỄU DIỄN TRI THỨC BẰNG SCRIPT
Là một cách biểu diễn tri thức tương tự như frame nhưng thay vì đặc tả một
đối tượng, nó mô tả một chuỗi các sự kiện
Để mô tả chuỗi sự kiện, script sử dụng một dãy các slot chứa thông tin về
các con người, đối tượng và hành động liên quan đến sự kiện đó
70
3.7. PHỐI HỢP NHIỀU CÁCH BIỂU DIỄN TRI THỨC
71
PHỐI HỢP NHIỀU CÁCH BIỂU DIỄN TRI THỨC (2)
Frame Có sức mạnh diễn đạt tốt, Khó lập trình, khó suy diễn,
dễ cài đặt các thuộc tính thiếu phần mềm hỗ trợ.
cho các slot cũng như các
mối liên hệ, dễ dàng tạo
ra các thủ tục chuyên biệt
hóa, dễ đưa vào các
thông tin mặc định và dễ
thực hiện các thao tác
phát hiện các giá trị bị
thiếu sót.
Logic hình Cơ chế suy luận chính Tách rời việc biểu diễn và xử
thức xác (được chứng minh lý, không hiệu quả với lượng
bởi toán học). dữ liệu lớn, quá chậm khi cơ
sở dữ liệu lớn
72
Nội dung chính
1 Tri thức
5 Bài tập
73 Lê Hoàng Sơn
4. Ngôn ngữ Prolog
Prolog là một ngôn ngữ lập
trình dùng cho tính toán ký minh mai
hiệu
Thích hợp giải quyết các bài
toán liên quan đến đối tượng
hoàng lan
và quan hệ giữa các đối tượng
74
Ví dụ
Thể hiện bằng Prolog
minh mai
chame(minh, hoàng).
chame(mai, lan).
chame(mai, hoàng).
chame(hoàng, lê). hoàng lan
chame(hoàng, tâm).
chame(tâm, hạnh).
lê tâm
Có 6 mệnh đề (clause)
hạnh
75
Ví dụ (2)
Làm được gì với đoạn chương trình trên ?
Hỏi các câu hỏi
Cho phép hỏi về những quan hệ đã được thiết lập trong chương trình
76
Ví dụ (3)
Loại 1 : Có hay không ?
hoàng có phải là cha/mẹ của tâm không ?
• ?- chame(hoàng, tâm). minh mai
lan có phải là cha/mẹ của hoàng không ?
• ?- chame(lan, hoàng).
Loại 2 : Xác định. hoàng lan
Ai là cha/mẹ của hạnh ?
• ?-chame(X, hạnh).
Ai là con của mai ? lê tâm
• ?-chame(mai, X).
Xác định tất cả các cặp cha/mẹ con ?
• ?-chame(X,Y). hạnh
77
77
Ví dụ (4)
78
Ví dụ (5)
Mở rộng câu hỏi:
Ai là ông/bà của hạnh ? X
Giải quyết:
chame
Giả sử X là kết quả cần tìm.
Khi đó, X là cha/mẹ của Y và Y là cha/mẹ của
Y
hạnh.
Vậy : cần tìm X, Y thoả : ongba
chame
chame (X,Y) and chame(Y, hạnh)
Thể hiện bằng Prolog :
hạnh
?-chame(X, Y), chame(Y, hạnh)
Tương tự : Ai là cháu của mai ?
79
Prolog
Chương trình bao gồm các mệnh đề (clause), kết thúc bằng dấu
chấm (.)
Tham số của quan hệ có thể là : đối tượng đã biết (nguyên tố, atom)
hoặc đối tượng chung (biến, variable)
Các câu hỏi có thể có một hoặc nhiều mục tiêu (goal)
Các câu hỏi có thể có dạng (1): có/không (thoả hay không thoả) ; (2)
tìm tất cả (nếu thoả)
80
Prolog (2)
Với đoạn chương trình bên cạnh,
hãy trả lời : Đoạn chương trình:
• ?-chame(hoàng,X). chame(minh, hoàng).
• ?-chame(X, lan). chame(mai, lan).
• ?-chame(minh, X), chame(X, chame(mai, hoàng).
tâm). chame(hoàng, lê).
• ?-chame(minh,X), chame(hoàng, tâm).
chame(X,Y), chame(Y, hạnh) chame(tâm, hạnh).
Viết dạng Prolog các câu hỏi
sau:
• Ai là cha/mẹ của tâm ?
• tâm có con không ?
• hạnh có con không ?
• Ai là ông/bà của lê ?
81
Prolog (3)
Bổ sung 2 quan hệ mới : nam, nu.
Ví dụ :
• nam(minh).
• nam(hoàng).
• nu(lan).
• nu(mai).
• ...
Quan hệ nam, nu là các quan hệ một ngôi. (Chỉ thuộc tính của đối
tượng)
Quan hệ chame là quan hệ hai ngôi. (Chỉ mối liên hệ giữa các đối
tượng)
82
Prolog (4)
Bổ sung thêm quan hệ con(X,Y). (X là con của Y). (Quan hệ ngược
của quan hệ chame).
Ta biết được
Với mọi X, Y
Y là con của X nếu X là cha/mẹ của Y.
Có thể định nghĩa quan hệ con dựa trên quan hệ chame.
con(Y,X) :- chame(X,Y).
Mệnh đề trên được gọi là quy tắc (rule).
83
Prolog (5)
84
Prolog (6)
Giả sử có câu hỏi : ?-con(tâm, hoàng)
Prolog giải quyết ra sao ?
1) Tìm kiếm sự kiện con(tâm, hoàng) ?
(Không có)
2) Áp dụng quy tắc con(X,Y).
Khởi tạo X = tâm, Y = hoàng.
Sau khởi tạo, ta có quy tắc đặc biệt :
• con(tâm, hoàng):- chame(hoàng, tâm)
Phần điều kiện trở thành chame(hoàng,tâm).
Nếu phần điều kiện thoả thì phần kết luận đúng.
chame(hoàng, tâm) là một sự kiện nên có thể kết luận
con(tâm, hoàng) đúng.
85
Prolog (7)
Bổ sung các quan hệ mới : cha, me, nam
chiemgai, ongba.
X
Quan hệ cha
Với mọi X, Y
X là cha của Y nếu X là cha/mẹ của Y và chame cha
X thuộc phái nam.
cha(X,Y) :- chame(X,Y), nam(X).
Y
86
Prolog (8)
Chương trình Prolog được mở rộng bằng cách thêm các mệnh
đề mới.
Mệnh đề gồm phần đầu (head) và phần thân (body). Dấu , trong
phần thân chỉ phép và.
Phân loại mệnh đề : sự kiện, quy tắc, câu hỏi
Sự kiện luôn đúng .
Quy tắc chỉ đúng khi điều kiện được thoả.
Người sử dụng hỏi chương trình qua câu hỏi.
Sự kiện chỉ gồm phần đầu. Câu hỏi chỉ có phần thân. Quy tắc có
cả phần đầu lẫn phần thân.
Biến có thể thay thế bằng một đối tượng cụ thể. Ta nói biến
được khởi tạo.
87
CẤU TRÚC CHƯƠNG TRÌNH
Chương trình Prolog thường gồm các phần :
domains
...
predicates
...
clauses
...
goal
...
Không nhất thiết có đầy đủ các phần
88
CẤU TRÚC CHƯƠNG TRÌNH
domains : phần định nghĩa các kiểu dữ liệu
Các ghi chú trong Prolog nằm trong cặp /* */ hoặc sau dấu %
Trong SWI-Prolog, người sử dụng không cần khai báo kiểu dữ liệu,
cấu trúc chương trình không cần các từ khóa trên
89
ĐỐI TƯỢNG DỮ LIỆU
Gồm các loại :
Nguyên tố (atoms) Đối tượng dữ liệu
Số (numbers)
Biến (variables) Đối tượng cơ bản Cấu trúc
Cấu trúc (structures)
Hằng số Biến
Nguyên tố Số
90
ĐỐI TƯỢNG DỮ LIỆU – Nguyên tố
Là chuỗi các ký tự
Chữ hoa từ A đến Z
Chữ thường từ a đến z
Chữ số 0,..,9
Ký tự đặc biệt : + - * / < > = : . & _ ~
91
ĐỐI TƯỢNG DỮ LIỆU - Số
Gồm số nguyên và số thực
Ví dụ :
Số nguyên : -3, -100, 1, 5 ,2, ...
Số thực : 1.25, -3.25, ...
Số thực ít được sử dụng trong lập trình Prolog
92
ĐỐI TƯỢNG DỮ LIỆU - Biến
Biến
Chuỗi các chữ cái, chữ số và dấu _, bắt đầu bằng một chữ
viết HOA hoặc dấu _.
Ví dụ : X, Result, Object2, _23
Biến vô danh
Ký hiệu : _
Nếu biến chỉ xuất hiện một lần, không cần đặt tên. Sử dụng biến
vô danh
Ví dụ :
haschild(X) :- parent(X,Y). %Biến Y chỉ xuất hiện một lần
haschild(X) :- parent(X,_). %Thay thế bằng biến vô danh
93
ĐỐI TƯỢNG DỮ LIỆU – Cấu trúc
Các đối tượng có nhiều thành phần.
Ví dụ :
Đối tượng date có thể xem là một cấu trúc với các thành phần :
day, month, year.
Thể hiện bằng Prolog:
Ví dụ :
date(1,may, 2005)
date
1 may 2005
94
ĐỐI TƯỢNG DỮ LIỆU – Cấu trúc
Term (hạng)
Tất cả các đối tượng dữ liệu trong Prolog được gọi là term
Ví dụ : thangnam, ngay(1, thangchin,2005) là các term
So khớp (matching)
Là thao tác quan trọng nhất trên các term
Là quá trình kiểm tra xem hai term có khớp nhau hay không
95
ĐỐI TƯỢNG DỮ LIỆU – Cấu trúc
Hai term được xem là khớp (match) nhau nếu:
Giống nhau hoàn toàn
Các biến trong cả hai term được khởi tạo thành các đối tượng
sao cho sau khi thay thế chúng bằng các đối tượng này thì
chúng giống nhau hoàn toàn
Ví dụ:
Cho hai term date(D,M, 2005) và date(D1, thangchin, Y1) được
coi là khớp nhau
Ta có : D khởi tạo thành D1, M khởi tạo thành thangchin, còn Y1
khởi tạo thành 2005
96
ĐỐI TƯỢNG DỮ LIỆU – Cấu trúc
Xác định hai term có khớp nhau hay không?
Nếu S, T là hằng số thì chúng khớp nhau khi chúng cùng một
đối tượng.
Nếu S là biến và T bất kỳ. Nếu chúng khớp nhau thì S được
khởi tạo thành T và ngược lại.
Nếu S và T là cấu trúc. Chúng khớp nhau khi tất cả các thành
phần trong S và T khớp nhau.
97
KIỂU DỮ LIỆU & PHÉP TOÁN
KIỂU DỮ LIỆU
char : ký tự ở giữa cặp dấu ‘’.
Ví dụ : ‘a’, ‘b’, ‘1’, ...
integer : số nguyên (từ -32768 đến 32767)
Ví dụ : 200, -521, 322, ...
real : số thực
Ví dụ : 25.18, -78.3e+21, 25.5e-20, ...
string : chuỗi dài tối đa 64KB, nằm cặp dấu “”.
Ví dụ : “chào các bạn”, “Prolog”
symbol : chuỗi dài tối đa 80 ký tự, có thể không có dấu “”.
Ví dụ : prolog, “Prolog”, chao_cac_ban,...
98
KIỂU DỮ LIỆU & PHÉP TOÁN
PHÉP TOÁN TRONG SWI-PROLOG
Phép toán số học : +, -, *, /, mod, //, **
Biểu thức số học: được xây dựng nhờ vị từ is
Number is Expr
Number: đối tượng cơ bản
Expr: biểu thức số học được xây dựng từ các phép toán số học,
các số và các biến.
Phép so sánh số học : >, <, =:=, >=, <=, =\=
Các hàm số học: sin, cos, tan, arctan, ln, log, exp, sqrt, round,
trunc, abs ...
99
KIỂU DỮ LIỆU & PHÉP TOÁN
Trong SWI-Prolog, có các vị từ xác định kiểu dữ liệu:
var(V) V là một biến?
nonvar(X) X không phải là một biến?
atom(A) A là một nguyên tố?
integer(I) I là một số nguyên?
float(R) R là một số thực(dấu chấm động)?
number(N) N là một số (nguyên hoặc thực)?
atomic(A) A là một nguyên tố hoặc một số?
compound(X) X là một term có cấu trúc?
100
CÁC BƯỚC XÂY DỰNG
Tìm USCLN của 2 số a,b >0
101
CÁC BƯỚC XÂY DỰNG
(1) Đặc tả bài toán
xác định mục tiêu cần giải P
102
CÁC BƯỚC XÂY DỰNG
(1) uscln(X,Y,Z) Z là USCLN của X,Y
(2) uscln(X,Y,Z)
[(X>Y) (T=X-Y) uscln(T,Y,Z)]
[(X<Y) (T=Y-X) uscln(X,T,Z)]
[(Y=X) (Z=X)].
103
CÁC BƯỚC XÂY DỰNG
(4) Chuyển sang Prolog
uscln (X,Y,Z):-X>Y, T is X-Y, uscln(T,Y,Z).
uscln (X,Y,Z):-X<Y, T is Y-X, uscln(X,T,Z) .
uscln (X,Y,Z):-X=Y, Z=X.
104
CẤU TRÚC DANH SÁCH
Một số vị từ xử lý danh sách trong SWI-Prolog:
105
CẤU TRÚC DANH SÁCH
last(L,E): kiểm tra phần tử đứng cuối cùng trong danh sách L có
phải là E hay không.
reverse(L1,L2): nghịch đảo thứ tự các phần tử của danh sách L1 để
trả về kết quả L2.
permutation(L1,L2): hoán vị danh sách L1 thành danh sách L2.
flatten(L1,L2): chuyển danh sách L1 chứa các phần tử bất kỳ thành
danh sách phẳng L2.
sumlist(L,S): tính tổng các phần tử của danh sách L chứa toàn số
để trả về kết quả S.
106
Bài toán 8 Hậu
Bàn cờ vua gồm 8x8 ô
Đặt các con Hậu trên bàn cờ sao cho các con Hậu không tấn công
lẫn nhau (theo luật cờ vua).
Hai con Hậu không thể tấn công nhau nếu :
Không cùng dòng
Không cùng cột
Không cùng đường chéo (chính, phụ)
107
Bài toán 8 Hậu
Vị trí các con Hậu (X) không
X tấn công lẫn nhau
X (1,5)
(2,7)
X (3,2)
X (4,6)
(5,3)
X
(6,1)
X (7,4)
X (8,8)
108
Bài toán 8 Hậu
Vị trí Hậu :
pos(Dong,Cot)
Do các con Hậu không cùng dòng nên ta có thể cố định dòng của
chúng như sau :
[pos(1, Y1), pos(2, Y2), pos(3, Y3), pos(4, Y4), pos(5, Y5),
pos(6, Y6), pos(7, Y7), pos(8, Y8)]
109
Bài toán 8 Hậu
Danh sách kết quả chấp nhận được nếu :
Các pos(X,Y) trong danh sách không vi phạm điều kiện : cùng
cột, cùng đường chéo (chính, phụ)
110
Bài toán 8 Hậu
Kiểm tra lời giải cho bài toán:
solution([]).
solution([pos(X,Y) | Others]):- solution(Others),
member(Y,[1,2,3,4,5,6,7,8]),
noattack(pos(X,Y), Others).
Hai con Hậu ở pos(X1,Y1) và pos(X2, Y2) không tấn công nhau nếu
Khác dòng : hiển nhiên (không cần kiểm tra)
Khác cột : Y1 =\= Y2
Khác đường chéo:
• Y2 – Y1 =\= X2 – X1
Khác đường chéo phụ :
• Y2 – Y1 =\= X1 – X2
111
Bài toán 8 Hậu
Tạo danh sách kết quả “mẫu”
template([pos(1,_), pos(2,_), pos(3,_), pos(4,_), pos(5,_), pos(6,_),
pos(7,_), pos(8,_)]).
Kiểm tra một vị trí đặt hậu pos(X,Y) thật sự không tấn công những con Hậu
khác
noattack(P, Plist)
• Plist = [] => true
• Plist = [P1|Plist1] => true nếu P không tấn công P1 và P không tấn
công các vị trí trong Plist1
Kiểm tra một vị trí đặt hậu pos(X,Y) thật sự không tấn công những con Hậu
khác
noattack(_, []).
noattack(pos(X,Y), [pos(X1,Y1) | Others]) :-
Y =\= Y1, Y1-Y =\= X1-X, Y1-Y=\=X-X1, noattack(pos(X,Y),Others).
112
Điều khiển quay lui và lát cắt
Mối quan hệ giữa X và Y được xác lập qua 3 luật:
Luật 1: Nếu X < 3 Thì Y = 0
Luật 2: Nếu 3<=X và X < 6 Thì Y = 2
Luật 3: Nếu 6<=X Thì Y = 4
113
Điều khiển quay lui và lát cắt (2)
Thể hiện quan hệ X và Y bằng Prolog
f(X,0) :- X<3.
f(X,2) :- 3<=X, X<6.
f(X,4) :- 6<=X.
Dĩ nhiên, khi vị từ f(X,Y) được thực hiện thì giá trị của X đã được
khởi tạo.
114
Điều khiển quay lui và lát cắt (3)
Đưa vào một câu hỏi cho đoạn chương trình trên
?- f(1,Y), Y>2.
Dùng để ngăn Prolog quay lui trong trường hợp đã tìm ra lời giải
hoặc sẽ không tìm ra lời giải thêm nếu tiếp tục
115
Điều khiển quay lui và lát cắt (2)
Thêm lát cắt :
f(X,0) :- X<3, !.
f(X,2) :- 3<=X, X<6, !.
f(X,4) :- 6<=X, !.
Prolog sẽ cho kết quả ra sao? Thực thi như thế nào?
116
Điều khiển quay lui và lát cắt (3)
Với đoạn chương trình:
f(X,0) :- X<3, !.
f(X,2) :- 3<=X, X<6, !.
f(X,4) :- 6<=X, !.
Cho biết kết quả và phân tích cách thức Prolog thực hiện?
117
Điều khiển quay lui và lát cắt (4)
Thử luật 1: 8<3 sai, quay lui, thử luật 2 (không bị lát cắt tác dụng).
Thử luật 2: 3<=8 đúng nhưng 8<6 sai, quay lui, thử luật 3
Thử luật 3: 6<=8 đúng.
Cải tiến:
Nếu X<3 Thì Y=0
Ngược lại, Nếu X < 6 Thì Y=2
Ngược lại, Y=4
118
Điều khiển quay lui và lát cắt (5)
Giả sử goal G có dạng:
P1, P2, P3,..,Pi, !, Pi+1, …, Pn
Prolog chỉ tìm một lời giải duy nhất cho các sub-goal P1, P2, P3,..,Pi.
Các sub-goal Pi+1, …, Pn vẫn thực hiện (quay lui) bình thường
Ví dụ:
C :- P, Q, R, !, S, T, U.
C :- V.
A :- B, C, D.
Goal: A
Lát cắt chỉ có tác dụng đối với vị từ C, “ẩn” đối với A. (Trong A, việc
quay lui tự động vẫn thực hiện trên B, C, D)
119
Điều khiển quay lui và lát cắt (6)
Thuận lợi:
Lát cắt làm tăng hiệu quả chương trình (tiết kiệm không gian,
thời gian,…)
Loại bỏ được những chọn lựa chắc chắn sai.
Có thể thực hiện các luật có dạng:
if ĐK1 then KL1
else KL2
Khó khăn: Trật tự các mệnh đề trong vị từ có thể ảnh hưởng đến kết
quả (khi sử dụng lát cắt)
Ví dụ:
p :- a,b.
p :- c.
p <=> (a b) c
120
Nội dung chính
1 Tri thức
5 Bài tập
123
Bài 4: Cơ bản về tính toán mềm
1
Nội dung chính
1 Hệ mờ
2 Mạng Nơron
2 Lê Hoàng Sơn
1. Tập mờ
❖ Tập rõ chia các phần tử trong không gian nền thành hai nhóm rõ rệt: là
thành viên và không là thành viên
▪ Tuy nhiên, trong nhiều trường hợp điều này là không hợp lý
▪ Ví dụ: tập những người cao, xe hơi đắt tiền hay trời nắng
❖ Tập mờ ngược lại định nghĩa “thành viên” một cách mềm dẻo hơn
thông qua độ thuộc
❖ Ví dụ: một tập mờ biểu diễn cho khái niệm “trời nắng” sẽ
bao gồm các phần tử sau:
▪ X1: “Mức độ bao phủ của mây là 0%” có độ thuộc bằng 1
▪ X2: “Mức độ bao phủ của mây là 20%” có độ thuộc bằng 0.8
▪ X3: “Mức độ bao phủ của mây là 75%” có độ thuộc bằng 0
Lê Hoàng Sơn 3 sonlh@vnu.edu.vn
Hàm thuộc
❖ Là một hàm cho phép gán mức độ thuộc về một tập của một
phần tử có giá trị trong khoảng [0, 1]
❖ Gía trị hàm thuộc càng lớn thì độ thuộc của pâần tử vào tập
mờ càng cao
❖ Tập hợp A được định nghĩa bởi các hàm thuộc là tập mờ
trong không gian nền X
A : X [0,1]
❖ Một số hàm thuộc kinh điển: hàm tam giác, hình thang,
Gauss, Bell, Sigmoid
Lê Hoàng Sơn 4 sonlh@vnu.edu.vn
Các hàm thuộc của tập mờ “Số gần 2”
Highly
educated (0.8)
Very highly
educated (0.5)
Trẻ
Trung niên
Già
▪ Tập -cắt mạnh của tập mờ A chứa tất cả các phần tử của
A mà độ thuộc lớn hơn giá trị
❖ Hàm lõm:
17
Lê Hoàng Sơn 17 sonlh@vnu.edu.vn
Phần bù của tập mờ
❖ Được định nghĩa là: A ( x) 1 A( x) x X
▪ Phần tử của X mà: A ( x) A( x) được gọi là điểm cân bằng
của A.
▪ Ví dụ: 27.5 và 52.5.
❖ Ví dụ:
▪ Trong đó, toán tử tổng được tính toán theo các giá trị độ
thuộc sau bị vi phạm:
dấu tích phân không được hiểu theo nghĩa thông thường
24
Lê Hoàng Sơn 24 sonlh@vnu.edu.vn
2. Logic mờ
❖ Một phương pháp biểu diễn tri thức mà các thông tin và khái
niệm không được định nghĩa một cách chính xác mà phụ thuộc
vào ngữ cảnh
bool speed;
❖ Logic rõ: get the speed
if ( speed == 0) {
// speed is slow
}
else {
// speed is fast
}
Slow Fast
Speed = 0 Speed = 1
0
10 30 50 70 90 110
Temp. (F°)
0.3
0
10 30 50 70 90 110
Temp. (F°)
0.75
0.375
0 0
(AB = C) (C = 0.75)
Lê Hoàng Sơn 33 sonlh@vnu.edu.vn
Bộ suy diễn (2)
❖Sử dụng các phép
toán:
▪ Giao (t-chuẩn) ( )
▪ Hợp (t-đối chuẩn) ()
❖AB = min (A, B)
A B
1 1
0.75
0.375
0 0
(AB = C) (C = 0.375)
Lê Hoàng Sơn 34 sonlh@vnu.edu.vn
Bộ suy diễn (3)
❖Sử dụng các phép
toán:
▪ Phủ định A
1
❖Not A = 1- A
0
0.375
= 1- 0.375
= 0.625 0
0 0
.1 .2 .3 .4 .5 .6 .7 .8 .9 1 5 10 15 20 25 30 35 40
❖T-đối chuẩn
▪ Đồng nhất: S(x,0) = x
▪ Giao hoán: S(x,y) = S(y,x)
▪ Kết hợp : S(x,S(y,z)) = S(S(x,y),x)
▪ Đơn điệu : x y, y v, S(x,y) S(u,v)
1 Hệ mờ
2 Mạng Nơron
40 Lê Hoàng Sơn
2. Mạng Nơron
Hệ chuyên gia coi não bộ con người như là hộp đen, trong khi
mạng Nơron tìm hiểu về cấu trúc và khả năng học của não để
mô phỏng
Tri thức trong hệ chuyên gia được biểu diễn dưới dạng luật IF-
THEN trong khi tri thức trong mạng Nơron được lưu dưới dạng
các trọng số của nơron
Lê Hoàng Sơn 44 sonlh@vnu.edu.vn
Hệ chuyên gia vs. Mạng Nơron (2)
Trong hệ chuyên gia thì tri thức được thể hiện dưới các luật
riêng rẽ nhau và con người chỉ có thể quan sát một phần của tri
thức qua các luật này.
Đối với mạng Nơron, tri thức được gắn vào trong cả mạng và
không thể tách rời thành các phần riêng rẽ, và bất kỳ thay đổi
của trọng số sẽ dẫn đến các kết quả khác nhau.
Training Data
Inference Engine
Explanation Facilities
User Interface
User
So sánh điều kiện của mỗi luật với dữ liệu hiện có và nếu thỏa
mãn thì hành động sau THEN sẽ thực hiện
Sử dụng pha huấn luyện của mạng Nơron để tạo nên cơ sở tri
thức cho hệ, do đó dữ liệu sử dụng không cần nhất thiết phải
giống với dữ liệu training (là ý tưởng chính của suy luận xấp xỉ)
Mỗi Nơron trong hệ neural expert system kết nối với nhau và
kèm theo trọng số thể hiện mức độ liên kết
Lê Hoàng Sơn 48 sonlh@vnu.edu.vn
Ví dụ
Wings
+1 -0.8
Rule 1 Bird
1.0
Tail -1.6 -0.7 +1
0 -0.2
-0.1
-1.1
Beak Rule 2 Plane
+1 2.2 1.0
0.0 1
-1.0
Feathers 2.8
+1 -1.6
-2.9 Rule 3 Glider
-1.1 1.9 1.0 1
Engine
1
-1.3
KNOWN UNKNOWN
0.2 1.0
a2 1.0 R2 b1 R6 0.7
1.0 c1
0.1
-0.1 1.0
a3 1.0 R3 b2 R7
1.0
1.0 1.0 0.9
c2
1.0 0.9 1.0
a4 R4 b3 R8
1.0
1.0 0.6
a5 R5
Logic mờ có khả năng suy luận ở mức cao qua các biến ngôn ngữ, nhưng không có
khả năng học và không thể tự điều chỉnh với môi trường dữ liệu mới
Kết hợp logic mờ và mạng Nơron trong mạng Nơron mờ là cách thức tuyệt vời để
xây dựng các hệ Neural Expert Systems
Mạng Nơron mờ là mạng nơron có chức năng năng tương tự hệ suy diễn mờ trong đó
các luật mờ dạng IF-THEN được huấn luyện qua các tham số của hàm thuộc và trọng
số của mạng
Có cấu trúc giống mạng Nơron đa lớp gồm 1 lớp input, 3 lớp ẩn thể hiện hàm thuộc
và luật mờ, 1 lớp output
A1 A1 R1
x1 R1
x1 x1
A2 R2
x1 A2 R2
wR3 C1
C1
A3 A3 R3 R3 wR6
y
wR1
B1 B1 R4 R4 wR2
x2 C2
wR4
C2
R5
x2 x2 B2 wR5
B2 R5
x2
R6
B3
B3 R6
1 1
a = 4, b =6 a = 4.5, b =6 a = 4, b =6
0.8 0.8
a = 4, b =4
0.6 0.6
0.4 0.4
0.2 0.2
0
0 1 2 3 4 5 6 7 8
X 0
0 1 2 3 4 5 6 7 8
X
1 A1 B1 R1
(3) (3) (3) (3) (3)
yi x1i x2i xk i yR
(4)
yi( 4) x1(i4) x2( 4i ) xli( 4) yC1 R3 R6 C1
R k : IF x is Ak THEN y is B k k 1, , N
fuzzy relation
fuzzification input value
x x1 ,, xn X
T
1 if xx
A x B y A B x, y
xx
k k k
0 if
B ' y S B y B ' y T B y
N N
k k
k 1 k 1
B
y k
y k
y k 1
B
N
y k centre of consequent
output value k 1 fuzzy set Bk
Lê Hoàng Sơn 62 sonlh@vnu.edu.vn
Huấn luyện mạng
Áp dụng các thuật toán huấn luyện cơ bản của mạng Nơron như
thuật toán lan truyền ngược
Thuật toán này truyền ngược sai số MSE từ lớp đầu ra về lớp
đầu vào nhằm điều chỉnh lại trọng số mạng
Xét ví dụ sau:
W: trọng số
Alpha: tốc độ học
Jacobian
Sử dụng khai triển Taylor để giải bài toán tối ưu phi tuyến trên!
Phương pháp đạo hàm bậc 2 hiệu quả hơn bậc 1, nhưng chi phí
tính toán đắt giá hơn!
Với lớp ẩn
Khi một tập dữ liệu huấn luyện được đưa vào hệ thống thì các
luật mờ không phù hợp sẽ được loại bỏ, do vậy giảm bớt sự phụ
thuộc vào tri thức chuyên gia khi xây dựng mạng
1 Hệ mờ
2 Mạng Nơron
73 Lê Hoàng Sơn
3. Tối ưu tiến hóa
❖ Bài toán tìm kiếm là một trong những bài toán kinh điển
của AI
❖ Khi không gian tìm kiếm rất lớn và việc vét cạn là bất
khả thi thì việc tìm kiếm theo định hướng (heuristics) là
cần thiết
❖ Tournament selection:
▪ Chọn ngẫu nhiên tập k cá thể từ quần thể gốc
▪ Xác định cá thể có độ thích nghi tốt nhất
▪ Lặp lại thao tác trên p lần với số k có thể thay đổi
❖ Neighborhood selection:
▪ Xác định cấu trúc hàng xóm
▪ Chọn p cá thể trong cấu trúc này
❖ Lựa chọn thế hệ để tiếp tục sản sinh ra các thế hệ khác
❖ Chỉ phù hợp với bài toán đơn giản do có độ phức tạp
tính toán lớn. Sử dụng cách biểu diễn Lisp
❖ Meta-genetic algorithm
❖ Cá thể được biểu diễn ở dạng bit. Biểu diễn cá thể và hàm thích
nghi là hai vấn đề chính khi áp dụng GA
❖ Sử dụng lai ghép làm toán tử chính. Đột biến được áp dụng cho
cá thể con tạo ra từ lai ghép và bằng một trong các phương pháp:
One point, Two point, Cut and splice
❖ GA không hiệu quả với bài toán mà hàm thích nghi nhận giá trị là
1 hoặc 0
❖ Sử dụng các toán tử: chọn lọc, lai ghép và đột biến. Với phép
chọn lọc, phương pháp neighborhood method được sử dụng:
▪ Plus selection (Cả cha mẹ và con)
▪ Comma selection (Chỉ cha mẹ)
❖ Lai ghép & đột biến giống GA tuy nhiên tốc độ đột biến thay đổi
theo từng thế hệ bởi tham số sigma
Lê Hoàng Sơn 88 88
Questions
89 Lê Hoàng Sơn
Click to edit company slogan .
90