You are on page 1of 388

TRÍ TUỆ NHÂN TẠO

Giới thiệu môn học

Giảng viên: TS. Lê Hoàng Sơn


Thông tin chung về môn học
 Tên môn học: Trí tuệ nhân tạo

 Số tín chỉ: 2 (Cao học) | 3 (Nghiên cứu sinh)

 Điểm danh môn học theo từng buổi

Lê Hoàng Sơn 2 sonlh@vnu.edu.vn


Lê Hoàng Sơn 3 sonlh@vnu.edu.vn
Tài liệu tham khảo
 Bài trình chiếu của giảng viên

 Russell, S. J., Norvig, P., Canny, J. F., Malik, J. M., &


Edwards, D. D. (2003). Artificial intelligence: a modern
approach (Vol. 2). Upper Saddle River: Prentice hall

 Korytkowski, L. R. M., Tadeusiewicz, R. S. R., & Zurada, L.


A. Z. J. M. Artificial Intelligence and Soft Computing.

 Nguyễn Thanh Thủy, Giáo trình trí tuệ nhân tạo, 1998.

 Bài giảng của ĐH Kinh tế - Kỹ thuật Công nghiệp, HV Kỹ


thuật Quân sự, ..

Lê Hoàng Sơn 4 sonlh@vnu.edu.vn


Thông tin giảng viên
 Họ tên: TS. Lê Hoàng Sơn

 Địa chỉ: Trường Đại học Khoa học Tự


nhiên, ĐHQGHN

 Lĩnh vực nghiên cứu: Trí tuệ nhân tạo,


Khai phá dữ liệu, Tính toán mềm, Hệ
tư vấn

 Là thành viên của IACSIT và là phó


tổng biên tập của tạp chí International
Journal of Engineering and Technology
(IJET). Là phản biện và thành viên BTC
của nhiều hội nghị quốc tế và tạp chí
uy tín

 Email: lehoangson@hus.edu.vn /
sonlh@vnu.edu.vn

Lê Hoàng Sơn 5 sonlh@vnu.edu.vn


TRÍ TUỆ NHÂN TẠO
Bài 1: Tổng quan về Trí tuệ nhân tạo

TS. Lê Hoàng Sơn


ĐH Khoa học Tự nhiên-ĐHQGHN
lehoangson@hus.edu.vn
sonlh@vnu.edu.vn

1
Nội dung chính

1 Các khái niệm cơ bản

2 Lịch sử phát triển

3 Thành tựu TTNT

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”

 Intelligence: trí thông minh “ability to learn, understand


and think” (Oxford dictionary)

 Artificial Intelligence (AI): trí thông minh nhân tạo


“attempts to understand intelligent entities”
“strives to build intelligent entities”
(Stuart Russell & Peter Norvig)
3 Lê Hoàng Sơn
Trí tuệ
 Trí tuệ con người (Human Intelligence): Cho đến nay có
hai khái niệm về trí tuệ con người được chấp nhận và sử
dụng nhiều nhất, đó là:
 Khái niệm trí tuệ theo quan điểm của Turing: “Trí tuệ là
những gì có thể đánh giá được thông qua các trắc nghiệm
thông minh”
 Khái niệm trí tuệ đưa ra trong từ điển bách khoa toàn
thư: “Trí tuệ là khả năng:
• “Phản ứng một cách thích hợp những tình huống mới
thông qua hiệu chỉnh hành vi một cách thích đáng
• Hiểu rõ những mối liên hệ qua lại của các sự kiện của
thế giới bên ngoài nhằm đưa ra những hành động phù
hợp đạt tới một mục đích nào đó”

4 Lê Hoàng Sơn
Trí tuệ (2)

5 Lê Hoàng Sơn
TRÍ TUỆ NHÂN TẠO

 Nghiên cứu về cách hành xử thông minh


 Xây dựng lý thuyết đầy đủ về thông minh
 Giải thích được hoạt động thông minh của sinh vật
 Áp dụng được các hiểu biết vào các máy móc nói chung
 Phục vụ cho con người

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

Thinking humanly Thinking rationally


(Suy nghĩ như con người) (Suy nghĩ hợp lý)

Acting humanly Acting rationally


(Hành động như con người) (Hành động hợp lý)

12 Lê Hoàng Sơn
Hành động như con người: Phép thử Turing

Alan Turing (1912-1954)


“Computing Machinery and Intelligence”
(1950)
Phép thử Người

Người kiểm tra


Hệ thống TTNT

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

 Suy diễn tự động: để sử dụng các thông tin đã được


lưu trữ trả lời các câu hỏi và đưa ra các kết luận mới

 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

 Con người suy nghĩ ntn ?


 Nhờ tâm lý học, khoa học nhận thức

 Người thuộc trường phái này, yêu cầu:


 Chương trình chẳng những giải đúng
 Còn so sánh từng bước giải với sự giải của 1 người.
 VD: General Problem Solver (GPS), Newell & Simon.

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”

 Aristole -> 20th:


 Logic hình thức (formal logic) ra đời
 Hình thức hoá về mặt ký hiệu và quá trình suy diễn
với các đối tượng trong thế giới tự nhiên

16 Lê Hoàng Sơn
Hành động có lý

Hành động có lý ~ hành động để đạt được mục


tiêu

Ư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

 Các phương pháp tìm kiếm trong không gian bài


toá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

Nghiên cứu tâm


trí con người Các lý thuyết của lập
luận và học

TTNT

Ngôn ngữ học


Toán học
Nghiên cứu ý nghĩa và Các lý thuyết xác suất logic,
cấu trúc của ngôn ngữ tạo quyết định và tính toán
Khoa học
máy tính

Làm cho TTNT trở


thành hiện thực
20 Lê Hoàng Sơn
Nội dung chính

1 Các khái niệm cơ bản

2 Lịch sử phát triển

3 Thành tựu 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

 Bắt đầu của AI (1943 - 1956):


 1943: McCulloch & Pitts: Mô hình chuyển mạch logic
 1950: Bài báo “Computing Machinery and
Intelligence” của Turing
 1956: McCarthy đề xuất tên gọi “Artificial Intelligence”

 Hội nghị ở Dartmouth College mùa hè 1956, do Minsky


và McCarthy tổ chức, và ở đây McCarthy đề xuất tên gọi
“artificial intelligence”. Có Simon và Newell trong những
người tham dự.

22 Lê Hoàng Sơn
LỊCH SỬ PHÁT TRIỂN CỦA KHOA HỌC TTNT (2)

John McCarthy Marvin Minsky


23 Lê Hoàng Sơn
LỊCH SỬ PHÁT TRIỂN CỦA KHOA HỌC TTNT (3)
 Mong muốn (1952 - 1969):
 Một số chương trình TTNT thành công:
• Samuel’s checkers
• Newell & Simon’s Logic Theorist
• Gelernter’s Geometry Theorem Prover
 Thuật giải của Robinson cho lập luận logic

 Thực tế (1966 − 1974):


 Phát hiện được các khó khăn về độ phức tạp tính
toán
 Quyển sách của Minsky & Papert năm 1969

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

 TTNT trở thành ngành công nghiệp (1980 - 1988):


 Bùng nổ về các hệ chuyên gia
 1981: Đề án máy tính thế hệ thứ năm của Nhật Bản

 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

1 Các khái niệm cơ bản

2 Lịch sử phát triển

3 Thành tựu TTNT

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

Honda Humanoid Robot


& Asimo Lên xuống
cầu thang
35 Lê Hoàng Sơn
CÁC THÀNH TỰU CỦA KHOA HỌC TTNT (6)

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

1 Các khái niệm cơ bản

2 Lịch sử phát triển

3 Thành tựu TTNT

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

1 Các khái niệm cơ bản

2 Lịch sử phát triển

3 Thành tựu TTNT

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ỷ

2. Lập trình lôgic trong Prolog (2004)


Phan Huy Khánh

3. Artificial Intelligence: A Modern Approach (2nd


edition, 2002)
Stuart Russell & Peter Norvig

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

TS. Lê Hoàng Sơn


ĐH Khoa học Tự nhiên-ĐHQGHN
lehoangson@hus.edu.vn
sonlh@vnu.edu.vn

1
Nội dung chính

1 Vấn đề và bài toán

2 Các phương pháp biểu diễn vấn đề

3 Thuật toán và thuật giải

4 Một số thuật giải Heuristics

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

 Vấn đề = bài toán AB


 A: giả thiết, điều kiện ban đầu
 B: kết luận cần đạt đến

: 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

 Vấn đề (bài toán) phát biểu không chỉnh (ill-formed problems):


 Là các vấn đề được phát biểu chưa đầy đủ, thiếu dữ kiện
 Các bài toán chẩn đoán và điều trị bệnh, bài toán xác định chất
lượng sản phẩm là các bài toán phát biểu không chỉnh

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

D÷ liÖu + Tri thøc

Gi¶i thuËt ChiÕn l-îc Kü thuËt Kü thuËt


C¬ së
C¬ së t×m kiÕm ®iÒu khiÓn Heuristic suy diÔn tri thøc
d÷ liÖu

HÖ thèng gi¶i quyÕt vÊn ®Ò

7
Nội dung chính

1 Vấn đề và bài toán

2 Các phương pháp biểu diễn vấn đề

3 Thuật toán và thuật giải

4 Một số thuật giải Heuristics

5 Bài tập

8 Lê Hoàng Sơn
2. CÁC PHƯƠNG PHÁP BIỂU DIỄN VẤN ĐỀ

 Phương pháp biểu diễn nhờ không gian trạng thái


 Phương pháp qui bài toán về các bài toán con
 Phương pháp biểu diễn vấn đề nhờ logic hình thức
 Lựa chọn phương pháp biểu diễn thích hợp
 Biểu diễn vấn đề trong máy tính
 Biểu diễn tri thức và giải quyết vấn đề

9
A. Phương pháp biểu diễn nhờ KGTT

 Trạng thái (State) là hình trạng của bài toán

 Toán tử (Operator) là các phép biến đổi từ trạng thái


này sang trạng thái khác

 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

 Tập tất cả các trạng thái được sinh ra do xuất phát từ


trạng thái đầu và áp dụng các toán tử được gọi là không
gian trạng thái (state space)

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ố (nN, 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

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)

 VD: Bài toán Tháp Hà nội (n=3)

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 đã

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Đ

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

1 Vấn đề và bài toán

2 Các phương pháp biểu diễn vấn đề

3 Thuật toán và thuật giải

4 Một số thuật giải Heuristics

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

 Thuật toán có thể được thể hiện qua: Ngôn ngữ tự


nhiên, Lưu đồ, Mã giả

 Ngoài ra thuật toán còn phải có độ phức tạp thấp

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

 Giả sử biết thời gian để 1 máy thực hiện viêc thứ j là tj

 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

 Mẫu số liệu: n=10, m=3, tj = 4 9 5 2 7 6 10 8 7 5

29
Một số ví dụ về bài toán có độ phức tạp cao (2)

 Bài toán tô màu

 Giả sử ta có bản đồ các 9

quốc gia trên thế giới, ta 1 6

muốn tô màu các quốc gia


này sao cho các nước 0 2 5

hàng xóm được tô khác 7

màu
8
3

 Yêu cầu tìm cách tô sao


4

cho số màu sử dụng là ít


nhất
30
Một số ví dụ về bài toán có độ phức tạp cao (3)
 Bài toán người đưa A

thư
5 1

 Giả sử có một đồ thị có E 3 B

trọng số dương, tìm

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

 Hoặc 2 lớp khác như sau:


Lớp 1: những yêu cầu cần phải thỏa mãn
Lớp 2: những yêu cầu có thể sẵn lòng thỏa hiệp

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

2. Tạo miền D’ rất nhỏ so với D

3. Vét cạn trên D’

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

 Thuật giải GTS1: (Greedy-Traveling Saleman): Xây dựng một lịch


trình du lịch có chi phí Cost tối thiểu cho bài toán trong trường hợp
phải qua n thành phố với ma trận chi phí C và bắt đầu tại một đỉnh U
nào đó

 Thuật giải GTS2: (Greedy-Traveling Saleman): Tạo ra lịch trình từ p


thành phố xuất phát riêng biệt. Tìm chu trình của người bán hàng
qua n thành phố (1<p<n) và p chu trình được tạo ra và chỉ chu trình
tốt nhất trong p chu trình được giữ lại mà thôi (thuật giải này đòi hỏi
phải nhập n, p và C)

38
GST1
Bước 1: {Khởi đầu}
Đặt Tour := {};
Cost := 0; A

V := U; {V là đỉnh hiện tại đang 5


1
làm việc} E
3 B
7 2
Bước 2: {Thăm tất cả các thành 2
3 4
phố} 4

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}

• Đặt (V, W) là cung có chi phí nhỏ


nhất tính từ V đến các đỉnh W
A
chưa dùng:
Tour := Tour + {(V,W)}; 5
1
Cost := Cost + Cost(V,W); E
• Nhãn W được sử dụng 3 B
7 2
• Đặt V := W; {Gán để xét bước kế
2
tiếp} 3 4
4

Bước 4: {Chuyến đi hoàn thành}


D 1
C

• Đặt Tour := Tour + {(V,U)};


• Cost := Cost + Cost(V,U);
• Dừng
40
GST1 (3)
U= A
 1 2 7 5 
Tour = {} 
1  4 4 3
 
Cost = 0 =
C 2 4  1 2
  3
V=A  7 4 1 
W  {B, C, D, E} {Các đỉnh có thể đến từ A}  5 3 2 3 

 W = B {Vì qua B có giá thành bé nhất}


A
Tour = {(A, B)}
5
1

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 BECD 2
3
 A với giá thành Cost = 14 4
4

Nhận xét: Tuy nhiên kết quả nhỏ nhất sẽ là D 1


A  B  D  C  E  A với Cost=13. Sở C
dĩ không tối ưu do “háu ăn”: cứ hướng nào
có chi phí thấp thì đi, bất chấp về sau
42
GST2
Bước 1: {Khởi đầu}
 k := 0; {Đếm số thành phố đi qua}
 Best := {}; {Ghi nhớ chu trình tốt nhất tìm thấy có chi phí là Cost}
 Cost := ;

Bước 2: {Bắt đầu chu trình mới}


 Chuyển qua bước 3 khi k<p, ngược lại dừng.

Bước 3: {Tạo chu trình mới}


 k := k + 1;
 Call (GTS1(Vk)) : Trả về một chu trình T(k) ứng với chi phí C(k).

Bước 4: {Cập nhật chu trình tốt nhất}


 Nếu C(k)< Cost thì Best := T(k); Cost := C(k)

43
GST2 (2)
Ví dụ: (Giải lại ví dụ trên) p=3

k=0 Best={} Cost=∞


k=0 < p V0=A

Call(GTS1(A))
=>T(0) = {(A,B),(B,E),(E,C),(C,D),(D,A)}, A

C(0) = 14 < Cost => Best = T(0) Cost = 14 5


1
k=1<p V1=B
E
3 B
Call(GTS1(B)) 7 2
=>T(1) = {(B,A),(A,C),(C,D),(D,E),(E,B)}, 2
3 4
C(1) = 10 < Cost=>Best = T(1) Cost = 10 4
k=2 < p V2 = C Call(GTS1(C))
=>T(2) = {(C,D),(D,E),(E,B),(B,A),(A,C)}, 1
D C
C(2) = 10 >= Cost
k=3 >= p Dừng
44
C. Nguyên lý thứ tự
 Không đặt vấn đề thứ tự của phần tử khi tìm chiến lược giải bài toán

 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 tô màu tối ưu trên đồ thị: tô toàn bộ bản đồ mà chỉ sử


dụng 4 màu sao cho không có bất kỳ 2 nước láng giềng nào có cùng
chung một màu

 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 đó)

Công việc 1 2 3 4 ... n

Máy 1 1 3 2 ...

Độ phức tạp : O(Mn)

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 1: Chọn đỉnh có bậc lớn nhất tô màu i

Bước 2: Hạ bậc:

- Đỉnh đã tô màu: bậc = 0


- Những đỉnh có liên hệ: bậc := bậc – 1

Bước 3: Đánh dấu các đỉnh liên hệ (bậc vừa trừ đi 1)


cấm tô màu i
49
TôMàu
màutô tối ưu trên đồ thị
Màu tô lần 7 2 1 4 1
(Các nước có bậc là 0 mà chưa tô màu)
Màu tô lần 6 3 3

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

Đỉnh L M P Be R V Ber Lx Bru H


Bậc 1 2 6* 4 3 3 6 3 4 2
Hạ bậc lần 1 1 1 0 3 2 3 5* 2 3 2
Hạ bậc lần 2 1 1 0 2 2* 2 0 1 2 1
Hạ bậc lần 3 1 1 0 1 0 1 0 1 2* 1
Hạ bậc lần 4 1* 1 0 1 0 1 0 0 0 0
Hạ bậc lần 5 0 0 0 1* 0 1 0 0 0 0
Hạ bậc lần 6 0 0 0 0 0 0 0 0 0 0
50
Bài toán phân công, lịch công tác, lịch thi đấu

• 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

• Xây dựng lịch sao cho số buổi diễn ra là ít nhất

• Gợi ý: số màu = số buổi

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

Xác định hướng tìm (forward hay backward reasoning)

Cách lựa chọn luật để áp dụng (matching)

Cách biểu diễn NODE của quá trình tì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

1 Vấn đề và bài toán

2 Các phương pháp biểu diễn vấn đề

3 Thuật toán và thuật giải

4 Một số thuật giải Heuristics

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:

1. Chèn đỉnh gốc vào hàng đợi (đang hướng tới)


2. Lấy ra đỉnh đầu tiên trong hàng đợi và quan sát nó
3. Nếu đỉnh này chính là đỉnh đích, dừng quá trình tìm kiếm và trả
về kết quả
4. Nếu không phải thì chèn tất cả các đỉnh kề với đỉnh vừa thăm
nhưng chưa được quan sát trước đó vào hàng đợi
5. Nếu hàng đợi là rỗng, thì tất cả các đỉnh có thể đến được đều
đã được quan sát – dừng việc tìm kiếm và trả về "không thấy"
6. Nếu hàng đợi không rỗng thì quay về bước 2

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 đó

 Nếu không tìm ra nghiệm ta tăng độ sâu lên d+1 và lại


tìm kiếm theo độ sâu tới mức d+1. Quá trình trên được
lặp lại với d lần lượt là 1, 2,…đến độ sâu max 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?

Nếu phải thì ngừng việc tìm kiếm


Nếu không phải thì ta kiểm tra xem trạng thái mới này có tốt hơn
(gần trạng thái đích hơn) so với trạng thái đã có hay không? Nếu quả
thật như vậy thì ghi nhận trạng thái này, ngược lại thì bỏ qua
Bước 4: Trong các trạng thái được tạo ra, ưu tiên phát triển trạng thái
tốt nhất (tiềm năng dẫn tới đích nhanh nhất)

Bước 5: Lặp lại từ bước 2

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(NS)

Bước 4: Quay lại bước 2


75
Ví dụ thuật giải AT
100 1
17 1 D
A B C
10 20 12 1
1
E 1 G H I J
F 1
1 1 1
K N
1 L M 1
O P
1 1
Q R
1
1
S T
1 Traïng thaùi ñích
U
1
V
76
Ví dụ thuật giải AT
Mọi đỉnh n, g(n) chưa biết 100 1
17
1 D
A B C
B1: Mở S, đặt g(S) = 0. 10 20 12
1
1
E 1 G H I J
B2: Đóng S; mở A, B, C, D F 1
1
g(A) = g(S) + gt(SA) = 0 + 100 = 100 K 1 1
N
g(B) = 0 + 17 = 17 1
L M 1
g(C) = g(D) = 0 + 1 = 1 (min) O P

Chọn ngẫu nhiên giữa C, D: chọn C 1 1


Q R
1
B3: Đóng C, mở G, H: 1
S T
g(A) = 100
1
g(B) = 17 U
Traïng thaùi ñích

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 2: Chọn đỉnh mở có f là nhỏ nhất và gọi là đỉnh N


 Nếu N là đích: đường đi từ đỉnh ban đầu đến đỉnh N là ngắn nhất và và bằng g(N).
Dừng (Success)
 Nếu không tồn tại đỉnh mở nào: cây biểu diễn vấn đề không tồn tại đường đi tới mục
tiêu. Dừng (Fail)
 Nếu có 2 đỉnh mở trở lên có cùng giá trị f nhỏ nhất: kiểm tra xem những đỉnh đó 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 đỉnh đó là N

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(SN)
 Sử dụng tri thức bổ sung để tính h(S) và f(S): f(S) = g(S) + h(S)

Bước 4: Quay lại bước 2.


81
Bài toán taci

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

với (ai,bi) là số lần ít nhất phải đẩy ô ai = a theo chiều dọc


hay ngang về đúng vị trí bi = b.
Giả sử:

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

g=2 g=2 g=2


h=2 h=3 h=1
f=4 f=5 f = 3 (min)

g=3 g=3 g=3


h=2 h=1 h=0
f=5 f=4 f = 3 (Ñích)

86
G. Thuật giải A*
Mở rộng thuật giải AKT thành thuật giải A* như sau:

Bước 1: Mở đỉnh đầu tiên:


S0 = E; {Trang thái ban đầu}
g(S0) = 0;
f(S0) = g(S0)+ h(S0) ;
= {S0}; {Gán S0 cho tập đỉnh mở}
C={}; {Gán tập đóng C bằng rỗng}
while   {} do

Bước 2: Chọn một S trong  với f(S) nhỏ nhất:


 =  - {S}
C = C + {S} {Đóng đỉnh S}
Nếu S là đích thì dừng
Ngược lại qua bước 3

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

Từ Arad có thể đi đến được 3 thành phố là Sibiu, Timisoara


và Zerind. Ta lần lượt tính giá trị f’, g và h’ của 3 thành phố
này (bước 3)
91
Minh họa thuật giải A*
h’(Sibiu) = 253
g(Sibiu) = g(Arad)+cost(Arad,Sibiu) = 0+140= 140
f’(Sibiu) = g(Sibiu)+h’(Sibiu) = 140+253 = 393
h’(Timisoara) = 329
g(Timisoara) = g(Arad)+cost(Arad, Timisoara) = 0+118= 118
f’(Timisoara) = g(Timisoara)+ h’(Timisoara) = 118+329 = 447
h’(Zerind) = 374
g(Zerind) = g(Arad)+cost(Arad, Zerind) = 0+75= 75
f’(Zerind) = g(Zerind)+h’(Zerind) = 75+374 = 449

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)

OPEN = {(Sibiu,g= 140,h’= 253,f’= 393)


(Timisoara,g= 118,h’= 329,f’= 447)
(Zerind,g= 75,h’= 374,f’= 449)}
CLOSE = {(Arad,g= 0,h’= 0,f’= 0)}

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

OPEN = {(Timisoara,g= 118,h’= 329,f’= 447)


(Zerind,g= 75,h’= 374,f’= 449)}

CLOSE = {(Arad,g= 0,h’= 0,f’= 0)


(Sibiu,g= 140,h’= 253,f’= 393)}

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ị

Mối quan hệ giữa AT, AKT, A*:

f(S) = (1 - ) g(S) +  h(S) với 0    1


- Nếu  = 0  AT (không có tri thức bổ sung)
- Nếu  = 1  AKT (Phụ thuợc vào tri thức bổ sung)
- Nếu  = ½  A*
95
H. Giải thuật minimax
 Giải thuật tìm kiếm Heuristic với các hàm heuristic chỉ thích hợp cho
các bài toán không có tính đối kháng. Như các trò chơi chỉ có một
người chơi: Puzzle, tìm lối ra mê cung, bài toán n quân hậu, v.v.

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

có thể đặt tiếp quân hậu


Nếu chọn C: sẽ còn 10 vị trí 7

có thể đặt tiếp quân hậu


8

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

 Cách 2: 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 và bước cuối cùng
phải quay về đúng vị trí xuất phát

104
Mã đi tuần
1 2 3 4 5 6 7 8

3 x
4

105
Nội dung chính

1 Vấn đề và bài toán

2 Các phương pháp biểu diễn vấn đề

3 Thuật toán và thuật giải

4 Một số thuật giải Heuristics

5 Bài tập

106 Lê Hoàng Sơn


Questions

107 Lê Hoàng Sơn


Click to edit company slogan .

108
Bài 3: Các phương pháp biểu diễn và xử lý tri thức

TS. Lê Hoàng Sơn


ĐH Khoa học Tự nhiên-ĐHQGHN
lehoangson@hus.edu.vn
sonlh@vnu.edu.vn

1
Nội dung chính

1 Tri thức

2 Biểu diễn thông tin trong máy tính

3 Các phương pháp biểu diễn tri thức

4 Ngôn ngữ Prolog

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

Động cơ suy diễn là một dạng của


thuật toán đặc biệt
4
Cấu trúc của một chương trình trí tuệ nhân tạo

5
Phân loại tri thức

Siêu tri thức

Tri thức

Thông tin

Dữ liệu

Dữ liệu toái nghóa, chưa rõ ràng

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,…

 Tính cấu trúc:


 Một trong những đặc trưng cơ bản của hoạt động nhận thức con người
đối với thế giới xung quanh là khả năng phân tích cấu trúc các đối
tượng
 Ở mức đơn giản nhất là cấu trúc: là một bộ phận của toàn thể, là một
giống của một loài nào đó, là phần tử của lớp nào đó.
 Tri thức đưa vào máy cũng cần có khả năng tạo được phân cấp giữa
các khái niệm và quan hệ giữa chúng

 Tính liên hệ:

8
Đặc điểm (2)

 Có tính chủ động:


 Dữ liệu hoàn toàn bị động do con người khai thác,
còn tri thức thì có tính chủ động
 Khi hoạt động bất kỳ ở đâu trong lĩnh vực nào, con
người cũng bị điều khiển bởi tri thức của mình
 Các tri thức biểu diễn trong máy tính cũng vậy, chúng
chủ động hướng người dùng biết cách khai thác dữ
liệu

9
Nội dung chính

1 Tri thức

2 Biểu diễn thông tin trong máy tính

3 Các phương pháp biểu diễn tri thức

4 Ngôn ngữ Prolog

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

 Thể hiện 2 trạng thái đó thông qua bit

 Các đơn vị thông tin:


 1 byte= 8 bit .
 1 kilo byte =2^10 byte=1204 byte .
 1 megabyte=2^20 byte.
 1 gigabyte=2^30byte .
 1 tetrabyte=2^10 gigabyte.

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

 Để chuyển đổi một số từ hệ cơ số b về hệ thập phân thì sử dụng


công thức:

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

Ví dụ: X = (11 1011)2 = (3B)16

 Để 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

Ví dụ: X= (3B)16 = (0011 1011)2

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ụ:

 Biểu diễn hỗn số:

15 Lê Hoàng Sơn
Hệ nhị phân (tt)
 Cộng hỗn số:

 Nhân nhị phân:


101
* 11
----------
101
+ 101
--------
1111

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

 Số bù 2 của một số = Số bù 1 cộng với 1


Ví dụ: 01110
+ 1
-----------
01111
 Muốn trừ 2 số với nhau, ta lấy số bị trừ cộng với số bù 2 của số trừ
Ví dụ: 1010 tương đương với 1010
- 0111 + 1001
------------ ----------
10011

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

3. Đổi các số thập lục phân sau về nhị phân: a) 4F b) E5

4. Cộng các hỗn số sau và đổi kết quả sang hệ 10: 100.001 +
11.101 + 101.1

5. Nhân 2 số nhị phân sau: 110 * 111

6. Trừ 2 số nhị phân sau: 1101 - 101

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

2. Đổi các số nhị phân sau sang thập lục phân:


a) 0111110 2 = 3E 16
b) 1001011 2 = 4B 16

3. Đổi các số thập lục phân sau về nhị phân:


a) 4F16 = 1001111 2
b) E516 = 1110101 2

4. Cộng các hỗn số sau: 100.001 + 11.101 + 101.1 = 1101.010 2 = (53 ∕ 4) 10

5. Nhân 2 số nhị phân sau: 110 * 111 = 101010 2

6. Trừ 2 số nhị phân sau: 1101 – 101 = 10000 2

19 Lê Hoàng Sơn
Phép toán logic
 Phép AND: ký hiệu A ^ B (A.B)
Ví dụ:

 Phép OR: ký hiệu A v B (A + B)


Ví dụ:

20 Lê Hoàng Sơn
Phép toán logic (tt)
 Phép NOT:
Ví dụ:

 Phép XOR: (loại trừ)


Ví dụ:
A B A XOR B
0 0 0
0 1 1
1 0 1
1 1 0

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

 Bảng chân lý của hàm này như sau


x y A B F
0 0 0 0 0
0 1 0 1 1
1 0 1 0 1
1 1 0 0 0

 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

 Ví dụ2: vẽ mạch logic cho hàm Boolean X = (A+B) . C

 Bài tập: vẽ mạch cho các hàm sau:

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

2 Biểu diễn thông tin trong máy tính

3 Các phương pháp biểu diễn tri thức

4 Ngôn ngữ Prolog

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ý:

a b ab ab a ab ab


0 0 0 0 1 1 1
0 1 0 1 1 1 0
1 0 0 1 0 0 0
1 1 1 1 0 1 1

 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 ab  ab
 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

 Ngoài các phép  , , , , , người ta đã đưa vào khái niệm vị từ


và lượng từ ( - với mọi,  - tồn tại) để tăng cường tính cấu trúc
của một mệnh đề

 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

 VD: p(x, y, z) được phát biểu x.y = z là một vị từ 3 biến x, y, z trên


tập các số thực. Khi đó tính chất giao hoán của phép nhân được
diễn tả như sau: x, y p(x, y, z)  p(y, x, z)
31
31
Logic vị từ (2)
 Lượng từ : x p(x, y, z,. . .) có nghĩa là tồn tại một giá trị x0 sao cho
p(x0, y, z,. . .) đúng với mọi y, z, . . .

 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ý

 Hai phạm vi ứng dụng chính của logic hình thức:


 Chứng minh định lý
 Giải quyết vấn đề

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 2: Chuyển vế các GTi và KLj có dạng phủ định.


 p  q, (r s), q, pr  s, p
 p  q, pr, p  s, r s, q

 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

r, p  q, r r, p  q, s r, s  q, r r, s  q,s


khoân g chöùn g minh khoân g chöùn g minh khoân g chöùn g minh chöùn g minh

 Kết luận: Vấn đề trên sai


36
Thuật toán Vương Hạo (4)

Đánh giá giải thuật: Nếu ở một dòng có n dấu ,  thì:

 Để lập bảng chân trị cần 2n cột để xét giá trị

 Nếu dùng thuật toán thì phải tách ra 2n dòng

 Độ 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

(a) Cam là thức ăn.


(b) Vịt là thức ăn.
(c) Món ăn mà ăn không chết gọi là thức ăn.
(d) Ông An ăn táo.
(e) Ông An còn sống.

Hỏi Táo có phải là thức ăn không?

40
VÍ DỤ 2 (2)

 Diễn đạt phát biểu dưới dạng vị từ:


 Thứcăn(X)
 Sống(Y)
 Ăn(Y, X)

 (a) Cam là thức ăn. (a) Thứcăn(Cam)


 (b) Vịt là thức ăn. (b) Thứcăn(Vịt)
 (c) Món ăn mà ăn (c) Ăn(Y, X)  Sống(Y)  Thứcăn(X)
 không chết gọi là thức ăn. Ăn(Y, X)  Sống(Y)  Thứcăn(X)
(d) Ăn(An, Táo)
 (d) Ông An ăn táo.
(e) Sống(An)
 (e) Ông An còn sống. (f) Thứcăn(Táo)?
 Hỏi Táo có phải là thức ăn không

 Bài tóan được phát biểu lại: a,b,c,d,e->f

41

VÍDỤ
DỤ2:(tt)
2 (3)

Bài toán: a,b,c,d,e ->f

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

 Ta sử dụng các vị từ sau:


 BB(x): x là kẻ bịp bợm
 LD(x): x là kẻ lừa dối
 NN(x): x là kẻ nhút nhát
 ĐT(x,y): x đồng tình với y.

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ó: Po=(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

 Các luật sinh có dạng: P1  P2  P3  …  Pm  Q.

 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:

 Trong logic vị từ:


P1, P2, …, Pm, Q Biểu thức logic
 Phép kéo theo

 Trong ngôn ngữ lập trình: if P1 and P2 and … and Pm then Q

 Trong ngôn ngữ tự nhiên. Ví dụ: one  một.

 Trong hệ chuyên gia (Expert System):


 Cơ sở dữ liệu các sự kiện: F = {f1, f2, …, fk} (F: Fact – Sự kiện)
 Cơ sở luật sinh: fi1  fi2  …  fik  Q (R: Rule – Luật)
47
BIỂU DIỄN TRI THỨC BẰNG LUẬT SINH (2)

 Ví dụ: Cho một cơ sở tri thức sau:


 Cơ sở sự kiện: H, K
 Tập các luật (quy tắc):
(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

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

 Rút gọn bên phải: Luật sau hiển nhiên đúng


 A V B -> A
 Do đó luật
 A V B -> A -> C
 Là hoàn toàn tương đương với
 A V B -> C

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

 Rút gọn bên trái: Xét các luật


 (L1) A, B -> C {sự kiện B trong luật là dư thừa, và có thể loại bỏ được}
 (L2) A -> X
 (L3) X -> C

 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

 Phân rã và kết hợp luật


 Ví dụ: Luật A V B -> C
 Tương đương với hai luật
 A -> C
 B -> C

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.

 Thuật toán tối ưu tập luật

 B1 : Rút gọn vế phải


 B2 : Phân rã các luật
 B3 : Loại bỏ luật thừa
 B4 : Rút gọn vế trá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


 Phương pháp này sẽ biểu diễn tri thức dưới dạng một đồ thị, trong đó
đỉnh là các đối tượng (khái niệm) còn các cung cho biết mối quan hệ
giữa các đối tượng (khái niệm) này

 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:

 Xử lý ngữ nghĩa tự nhiên


 Giải các bài toán thông minh

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ụ

Đỉnh: Hình chữ nhật:


Công thức Hình tròn: Cung: luôn hướng từ
Biến đỉnh hình tròn lên
đỉnh hình chữ nhật,
cho biết biến nào nằm
trong công thức nào.

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)

 Tính  Rj(+1): Số biến đã biết trong công thức

 Tính: IF (  Rj(–1) –  Rj(+1) = 1 ): công thức Rj đã biết


ELSE Công thức chưa được biết.

 Nếu toàn bộ đều  1 thì dữ liệu chưa đủ

 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

(1) (2) (3) (4) (5)

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

(1) (2) (3) (4) (5)

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

(1) (2) (3) (4) (5)

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

(1) (2) (3) (4) (5)

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

(1) (2) (3) (4) (5)

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

(1) (2) (3) (4) (5)

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 đó

 Frame là nguồn gốc của lập trình hướng đối tượng

 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

 Cấu trúc của frame:


 Mỗi một frame mô tả một đối tượng (object)
 Một frame bao gồm 2 thành phần cơ bản là slot và facet
 Một slot là một thuộc tính đặc tả đối tượng được biểu diễn bởi
frame (trong frame mô tả xe hơi, có hai slot là trọng lượng và
loại)

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 đó

 Các thành phần của Script:


 Điều kiện vào (entry condition): mô tả những tình huống hoặc điều kiện
cần được thỏa mãn trước khi các sự kiện trong script có thể diễn ra
 Role (diễn viên): là những con người có liên quan trong script
 Prop (tác tố): là tất cả những đối tượng được sử dụng trong các chuỗi
sự kiện sẽ diễn ra
 Scene (Tình huống): là chuỗi sự kiện thực sự diễn ra
 Result (Kết quả): trạng thái của các Role sau khi script đã thi hành xong
 Track (phiên bản): mô tả một biến thể (hoặc trường hợp đặc biệt) có thể
xảy ra trong đoạn script
69
Ví dụ Script "nhà hàng"

 Phiên bản: Nhà hàng bán thức ăn nhanh.


 Diễn viên: Khách hàng,Người phục vụ.
 Tác tố : Bàn phục vụ. Chỗ ngồi. Khay đựng thức ăn …
 Điều kiện vào: Khách hàng đóiKhách hàng có đủ tiền để trả.
 Tình huống 1: Vào nhà hàng
 Tình huống 2: Kêu món ăn.
 Tình huống 3: Khách hàng dùng món ăn
 Tình huống 4: Ra về
 Kết quả : Khách hàng không còn đói.
Khách hàng còn ít tiền hơn ban đầu

Khách hàng vui vẻ *


Khách hàng bực mình *
Khách hàng quá no

70
3.7. PHỐI HỢP NHIỀU CÁCH BIỂU DIỄN TRI THỨC

P.Pháp Ưu điểm Nhược điểm


Luật sinh Cú pháp đơn giản, dễ Rất khó theo dõi sự phân
hiểu, diễn dịch đơn giản, cấp, không hiệu quả trong
tính đơn thể cao, linh những hệ thống lớn, không
động (dễ điều chỉnh). thể biểu diễn được mọi loại tri
thức, rất yếu trong việc biểu
diễn các tri thức dạng mô tả,
có cấu trúc.
Mạng ngữ Dễ theo dõi sự phân Ngữ nghĩa gắn liền với mỗi
nghĩa cấp, sẽ dò theo các mối đỉnh có thể nhập nhằng, khó
liên hệ, linh động xử lý các ngoại lệ, khó lập
trình.

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

2 Biểu diễn thông tin trong máy tính

3 Các phương pháp biểu diễn tri thức

4 Ngôn ngữ Prolog

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

 VD: Cho quan hệ gia đình qua


cây gia phả lê tâm
 Node : đối tượng
 Cung : quan hệ
 Đặt tên quan hệ : chame.
 chame(X,Y) có nghĩa X là hạnh
cha/mẹ của Y

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

 Loại 1 : Có hay không ?


 hoàng có phải là cha/mẹ của tâm không ?
 lan có phải là cha/mẹ của hoàng không ?

 Loại 2 : Xác định (tìm tất cả)


 Ai là cha/mẹ của hạnh ?
 Ai là con của mai ?
 Xác định các cặp cha/mẹ con ?
 ...

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)

 Các đối tượng trong một quan hệ có thể là : đối tượng


cụ thể hoặc đối tượng chung

 hoàng, tâm trong chame(hoàng, tâm) : đối tượng cụ thể, gọi là


atom (nguyên tố)

 X trong chame(X, hạnh) hoặc X, Y trong chame(X, Y) : đối tượng


chung, gọi là variable (biến)

 Biến bắt đầu bằng chữ IN HOA

 Nguyên tố bắt đầu bằng chữ thường

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)

 Biến bắt đầu bằng chữ in hoa

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

 Quy tắc chỉ đúng khi điều kiện được thoả


 1 quy tắc có 2 phần :
 Phần điều kiện (hay là thân quy tắc (body))
 Phần kết luận (hay là đầu quy tắc (head))
 Ví dụ :
 con(Y,X) :- chame(X,Y).

Kết luận Điều kiện

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

 predicates : phần khai báo các quan hệ (vị từ)

 clauses : phần thể hiện các mệnh đề (có thể) của vị từ

 goal : đích cần đạt được của chương trình.


 goal được viết trong chương trình được gọi là internal goal.
 goal thực hiện lúc thực thi (cửa sổ Run) được gọi là external goal.

 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 : + - * / < > = : . & _ ~

 Dựa trên quy tắc


 Chuỗi các chữ cái, chữ số, dấu _ ,bắt đầu bằng một chữ thường
(VD : anna, x25, x__y, alpha_beta,...)
 Chuỗi các ký tự đặc biệt (VD : <---> , === > , ...)
 Chuỗi các ký tự nằm trong cặp dấu ‘ ’ (VD : ‘Hoàng’, ‘Hoa’,...)

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

 Sử dụng thuật toán Euclide


 USCLN của X và X là X.
 USCLN của X và Y là USCLN của X – Y và Y nếu X>Y.
 USCLN của X và Y là USCLN của Y-X và X nếu X<Y.

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

(2) Biểu diễn bài toán dưới dạng chuẩn


 P i(jqij).

(3) Chuyển sang mệnh đề Horn (luật, sự kiện)

(4) Chuyển sang Prolog

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)].

(3) uscln(X,Y,Z)  (X>Y)  (T=X-Y)  uscln(T,Y,Z).


uscln(X,Y,Z)  (X<Y)  uscln(X,T,Z)  (T=Y-X).
uscln(X,Y,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.

 Rút gọn và chỉnh sửa


uscln (X,X,X).
uscln (X,Y,Z):-X>Y, is(T, X-Y), uscln(T,Y,Z).
uscln (X,Y,Z):-X<Y, is(T, Y-X), uscln(X,T,Z).
Thỏa mãn các ràng buộc?

104
CẤU TRÚC DANH SÁCH
 Một số vị từ xử lý danh sách trong SWI-Prolog:

append(L1,L2,L3): ghép hai danh sách L1,L2 thành L3


member(E,L): kiểm tra E có phải là phần tử của danh sách L hay
không.
nextto(X,Y,L): kiểm tra phần tử Y có đứng ngay sau phần tử X trong
danh sách L hay không.
delete(L1,E,L2): xóa khỏi danh sách L1 những phần tử hợp nhất
được với E để trả về kết quả L2.
select(E,L,R): lấy phần tử E ra khỏi danh sách L để trả về những
phần tử còn lại trong R.
nth0(I,L,E): kiểm tra phần tử thứ I(tính từ 0) của danh sách L có phải
là E hay không.
nth1(I,L,E): kiểm tra phần tử thứ I(tính từ 1) của danh sách L có phải
là E hay không.

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)

 Kết quả thực hiện lưu trong danh sách


[pos(X1, Y1), pos(X2, Y2), pos(X3, Y3), pos(X4, Y4), pos(X5, Y5),
pos(X6, Y6), pos(X7, Y7), pos(X8, Y8)]

 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ụ)

 Kiểm tra lời giải cho bài toán


solution(Plist)
 Plist = [] là một lời giải hợp lệ
 Plist = [pos(X,Y)|Others] là lời giải hợp lệ nếu
• Không có hai vị trí Hậu trong Others tấn công lẫn nhau (hay
Others cũng là một lời giải hợp lệ)
• X,Y có giá trị nằm trong [1,8]
• Con Hậu tại vị trí pos(X,Y) không tấn công bất cứ con Hậu
nào trong Others.

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.

 Kết quả của câu hỏi trên?


 f(1,Y) sẽ cho kết quả Y=0
 Khi đó, Y>2 trở thành 0>2 (=> false)
 Vì vậy, goal cho kết quả là : No
 Prolog phải duyệt qua cả 3 mệnh đề của vị từ f.

 Lát cắt: Ký hiệu: !

 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, !.

 Hỏi lại câu hỏi: ?- f(1,Y), Y>2.

 Prolog sẽ cho kết quả ra sao? Thực thi như thế nào?

 Prolog sẽ cho ra cùng kết quả: No

 Không có sử dụng đến mệnh đề (luật) 2 và 3. =>đỡ tốn kém thời


gian thực hiện => tăng hiệu quả cho chương trình

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 câu hỏi: ?- f(8, Y).

 Cho biết kết quả và phân tích cách thức Prolog thực hiện?

 Dễ dàng nhận thấy kết quả: Y = 4.

 Prolog sẽ phải thực hiện cả 3 mệnh đề (luật) của vị từ f.

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

 Thể hiện bằng Prolog:


f(X,0) :- X<3, !.
f(X,2) :- X<6, !.
f(X,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

2 Biểu diễn thông tin trong máy tính

3 Các phương pháp biểu diễn tri thức

4 Ngôn ngữ Prolog

5 Bài tập

121 Lê Hoàng Sơn


Questions

122 Lê Hoàng Sơn


Click to edit company slogan .

123
Bài 4: Cơ bản về tính toán mềm

TS. Lê Hoàng Sơn


ĐH Khoa học Tự nhiên-ĐHQGHN
lehoangson@hus.edu.vn
sonlh@vnu.edu.vn

1
Nội dung chính

1 Hệ mờ

2 Mạng Nơron

3 Tối ưu tiến hóa

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”

Lê Hoàng Sơn 5 sonlh@vnu.edu.vn


Các dạng hàm thuộc
❖ Các hàm thuộc trên thỏa mãn tính chất sau:
▪ Ai(2) = 1 và Ai(x) <1 với mọi x #2.
▪ Ai(x) đối xứng xung quanh trục đứng của phần tử 2
▪ Ai(x) đơn điệu giảm từ 1 đến 0
❖ Họ các hàm trong ví dụ:

❖ Xác định giá trị của p1, p2, p3, p4?

Lê Hoàng Sơn 6 sonlh@vnu.edu.vn


Ví dụ: 7 cấp giáo dục

Highly
educated (0.8)

Very highly
educated (0.5)

Lê Hoàng Sơn 7 sonlh@vnu.edu.vn


Biến mờ
❖ Một biến mờ gồm nhiều trạng thái khác nhau thể hiện qua
các tập mờ (a: biến mờ, b: biến rõ)

Lê Hoàng Sơn 8 sonlh@vnu.edu.vn


Ví dụ
❖ Xét 3 tập mờ biểu diễn cho 3 khái niệm: trẻ, trung niên, già.
Các hàm thuộc sau được định nghĩa trong không gian nền
[0,80]:

Trẻ

Trung niên

Già

Lê Hoàng Sơn 9 sonlh@vnu.edu.vn


Ví dụ

Lê Hoàng Sơn 10 sonlh@vnu.edu.vn


Lát cắt alpha
❖ Cho tập mờ A xác định trên không gian nền X. Khi đó - cắt
và - cắt mạnh là các tập rõ:   [0,1],

▪ Tập  -cắt 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 hoặc bằng giá trị 

▪ 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ị 

Lê Hoàng Sơn 11 sonlh@vnu.edu.vn


Ví dụ

Lê Hoàng Sơn 12 sonlh@vnu.edu.vn


Tập mức
❖ Là tập tất cả các lát cắt alpha của tập mờ A

Lê Hoàng Sơn 13 sonlh@vnu.edu.vn


Ví dụ

Lê Hoàng Sơn 14 sonlh@vnu.edu.vn


Độ hỗ trợ và nhân của tập mờ
❖ Độ hỗ trợ của tập mờ A trên tập nền X:
▪ Là một tập rõ chứa các phần tử của X có được bằng 0
▪ Là lát cắt alpha mạnh với alpha = 0

❖ Nhân của tập mờ A


▪ Là lát cắt alpha với alpha = 1

Lê Hoàng Sơn 15 sonlh@vnu.edu.vn


Chiều cao của tập mờ
❖ Là độ thuộc lớn nhất trong tập mờ đó
h( A)  sup A( x)
xX

▪ Một tập mờ A được gọi là tiêu chuẩn nếu h(A) = 1


▪ Một tập mờ A được gọi là dưới tiêu chuẩn nếu h(A) <1
▪ Chiều cao của A là supremum của  trong đó:

A

Lê Hoàng Sơn 16 sonlh@vnu.edu.vn


Hàm lồi
❖ Hàm đa trị f là lồi nếu với hai điểm
bất kỳ x và y trong không gian C và
với mọi t thuộc [0,1], ta có:

❖ Một hàm là lồi nếu tập điểm nằm


trên đồ thị là tập lồi

❖ 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.

Lê Hoàng Sơn 18 sonlh@vnu.edu.vn


Giao và hợp hai tập mờ
❖ Cho hai tập mờ A và B, giao và hợp của hai tập mờ là tập mờ trong
đó min và max các toán tử:
( A  B)( x)  min[ A( x), B( x)],
x X
( A  B)( x)  max[ A( x), B( x)],

Lê Hoàng Sơn 19 sonlh@vnu.edu.vn


Một số tính chất khác
❖ Ví dụ: B  A1  A2
▪ A1, A2, A3 là tiêu chuẩn Tính tiêu chuẩn và tính lồi
▪ B và C là dưới tiêu chuẩn không bảo toàn qua phép
▪ B và C là tập lồi giao và hợp
▪ B  C và B  C không phải
tập lồi C  A2  A3

Lê Hoàng Sơn 20 sonlh@vnu.edu.vn


Tập con
❖ Cho 2 tập mờ
A là tập con của B và viết A  B iff
A( x)  B( x)
Với mọi x  X
▪ A  B iff A  B  A and A  B  B for any

❖ Lực lượng của tập mờ A:

❖ Ví dụ:

Lê Hoàng Sơn 21 sonlh@vnu.edu.vn


Ví dụ

Lê Hoàng Sơn 22 sonlh@vnu.edu.vn


Bậc của hàng xóm

▪ Trong đó, toán tử tổng được tính toán theo các giá trị độ
thuộc sau bị vi phạm:

Lê Hoàng Sơn 23 sonlh@vnu.edu.vn


Biểu diễn tập mờ
❖ Xét tập mờ A xác định trên không gian nền hữu hạn X
giả sử x1, x2, …, xn là các phần tử của độ hỗ trợ 0+A của A và
ai là độ thuộc của xi trong A

▪ Nếu X rời rạc:

▪ Nếu X liên tục:

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

Lê Hoàng Sơn 25 sonlh@vnu.edu.vn


Ví dụ
float speed;
Slowest
get the speed
if ((speed >= 0.0)&&(speed < 0.25)) { [ 0.0 – 0.25 ]
// speed is slowest
}
else if ((speed >= 0.25)&&(speed < 0.5))
{
Slow
// speed is slow
} [ 0.25 – 0.50 ]
else if ((speed >= 0.5)&&(speed < 0.75))
{
// speed is fast Fast
}
else // speed >= 0.75 && speed < 1.0 [ 0.50 – 0.75 ]
{
// speed is fastest
} Fastest
[ 0.75 – 1.00 ]

Lê Hoàng Sơn 26 sonlh@vnu.edu.vn


Lịch sử
❖ Hy Lạp cổ đại

❖ Lotfi Asker Zadeh (1965)


▪ Ý tưởng về logic mờ đầu tiên

❖ Professor Toshire Terano (1972 )


▪ Xây dựng nhóm làm việc về hệ mờ đầu tiên

❖ F.L. Smidth & Co. (1980)


▪ Tạo ra hệ chuyên gia mờ thương mại hóa

Lê Hoàng Sơn 27 sonlh@vnu.edu.vn


Ưu điểm của logic mờ
❖Logic mờ:
▪ Khả năng biểu diễn thông tin biến đổi hay không chính xác trong
logic
▪ Khả năng sử dụng ngôn ngữ tự nhiên trong logic
▪ Suy luận xấp xỉ

❖Ví dụ: “Nếu hôm nay trời nắng và ấm thì tôi sẽ


lái xe nhanh“

❖Biến ngôn ngữ:


▪ Temp: {freezing, cool, warm, hot}
▪ Cloud Cover: {overcast, partly cloudy, sunny}
▪ Speed: {slow, fast}

Lê Hoàng Sơn 28 sonlh@vnu.edu.vn


Mệnh đề logic mờ
❖ Biến rõ thường nhận giá trị cố định:
▪ x = 3.1415296
▪ A {0,1}

❖ Tương tự, một mệnh đề chỉ có 2 giá trị Đúng và Sai:


▪ ABC

❖ Tuy nhiên, trong logic mờ một mệnh đề có thể nhận nhiều


hơn hai giá trị này:
▪ King(Richard)  Greedy(Richard)  Evil(Richard)
▪ Richard có thể không phải greedy hay là King:
▪ Greedy(Richard) {0,1}
Lê Hoàng Sơn 29 sonlh@vnu.edu.vn
Biến ngôn ngữ
❖ Sử dụng để biểu diễn thông tin không chắc chắn
▪ Temp: {Freezing, Cool, Warm, Hot}
▪ Hàm thuộc xác định riêng cho mỗi biến ngôn ngữ

❖ Câu hỏi: Nhiệt độ thế nào?


❖ Trả lời: Ấm
❖ Câu hỏi: Ấm thế nào?
❖ Trả lời: …..

Lê Hoàng Sơn 30 sonlh@vnu.edu.vn


Biểu diễn thông qua hàm thuộc
❖ Temp: {Freezing, Cool, Warm, Hot}

Freezing Cool Warm Hot


1

0
10 30 50 70 90 110
Temp. (F°)

Lê Hoàng Sơn 31 sonlh@vnu.edu.vn


Ví dụ
❖36 F° lạnh như thế nào?
❖Trả lời: 30% lạnh và 70% đóng băng!

Freezing Cool Warm Hot


1
0.7

0.3
0
10 30 50 70 90 110
Temp. (F°)

Lê Hoàng Sơn 32 sonlh@vnu.edu.vn


Bộ suy diễn
❖Sử dụng các phép
toán:
▪ Giao (t-chuẩn) ( )
▪ Hợp (t-đối chuẩn)()
❖AB = max (A, B)
A B
1 1

0.75

0.375

0 0

(AB = 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) ()
❖AB = min (A, B)
A B
1 1

0.75

0.375

0 0

(AB = 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

Lê Hoàng Sơn 35 sonlh@vnu.edu.vn


Ví dụ: Phép giao
Tính AB với A bằng 0.4 và B bằng 20
A B
1 1
0.9
0.7

0 0
.1 .2 .3 .4 .5 .6 .7 .8 .9 1 5 10 15 20 25 30 35 40

▪ Tính độ thuộc của A và B:


• A = 0.7 B = 0.9
▪ Áp dụng toán tử AND:
• AB = min (A, B) = 0.7

Lê Hoàng Sơn 36 sonlh@vnu.edu.vn


T-chuẩn và T-đối chuẩn
❖T- chuẩn:
▪ Với mọi x,y,z,u,v  [0,1]
▪ Đồng nhất: T(x,1) = x
▪ Giao hoán: T(x,y) = T(y,x)
▪ Kết hợp: T(x,T(y,z)) = T(T(x,y),x)
▪ Đơn điệu: x  y, y  v, T(x,y) T(u,v)

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

Lê Hoàng Sơn 37 sonlh@vnu.edu.vn


Ví dụ

Lê Hoàng Sơn 38 sonlh@vnu.edu.vn


Nhận xét
❖Logic mờ cho phép nội suy mềm dẻo giữa các
tâm qua cơ sở luật

❖Cung cấp cách thức hữu hiệu để mô hình hóa ý


kiến chuyên gia trong máy tính

❖Tuy nhiên, logic mờ phụ thuộc vào việc xác định


các hàm thuộc

❖Không xử lý tốt với các bài toán lớn và phức tạp


Lê Hoàng Sơn 39 sonlh@vnu.edu.vn
Nội dung chính

1 Hệ mờ

2 Mạng Nơron

3 Tối ưu tiến hóa

40 Lê Hoàng Sơn
2. Mạng Nơron

Lê Hoàng Sơn 41 sonlh@vnu.edu.vn


Mạng Nơron đa lớp

Lê Hoàng Sơn 42 sonlh@vnu.edu.vn


So sánh các hệ tri thức
ES FS NN GA
Knowledge representation  
Uncertainty tolerance    
Imprecision tolerance   
Adaptability  
Learning ability  
Explanation ability  
Knowledge discovery and data mining  
Maintainability   

- bad, - rather bad,  - rather good and  - good


Lê Hoàng Sơn 43 sonlh@vnu.edu.vn
Hệ chuyên gia vs. Mạng Nơron
Hệ chuyên gia dựa vào suy luận logic và cây quyết định nằm
mục tiêu mô hình hóa các lập luận thông thường. Mạng Nơron
lại dựa vào quá trình xử lý dữ liệu song song và tập trung vào
mô hình hóa não người

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.

Có thể kết hợp hệ chuyên gia với mạng Nơron?

 Neural Expert Systems

Lê Hoàng Sơn 45 sonlh@vnu.edu.vn


Kiến trúc của Neural Expert Systems

Training Data

Neural Knowledge Base Rule Extraction


New
Data Rule: IF - THEN

Inference Engine

Explanation Facilities

User Interface

User

Lê Hoàng Sơn 46 sonlh@vnu.edu.vn


Kiến trúc tổng quát

Lê Hoàng Sơn 47 sonlh@vnu.edu.vn


Bộ suy diễn
Là thành tố chính của hệ neural expert system điều khiển luồng
hoạt động của hệ thống dựa trên cơ sở luật (suy luận xấp xỉ)

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

X Rule 1  1 (0.8)  0  (0.2)  1 2.2  1 2.8  (1)  (1.1)  5.3  0


YRule 1  YBird  1

Lê Hoàng Sơn 49 sonlh@vnu.edu.vn


Ví dụ (2)

X Rule 2  1 (0.7)  0  (0.1)  1 0.0  1 (1.6)  (1) 1.9  4.2  0


YRule 2  YPlane  1

X Rule 3  1 (0.6)  0  (1.1)  1 (1.0)  1 (2.9)  (1)  (1.3)  4.2  0


YRule 3  YGlider  1

Lê Hoàng Sơn 50 sonlh@vnu.edu.vn


Ví dụ (3)
Thiết lập các câu hỏi cho mỗi Nơron:
Neuron: Wings
Câu hỏi: Có cánh không?
Neuron: Tail
Câu hỏi: Có đuôi không?
Neuron: Beak
Câu hỏi: Có mỏ không?
Neuron: Feathers
Câu hỏi: Có lông không?
Neuron: Engine
Câu hỏi: Có động cơ không?
Cơ chế suy diễn, trong đó i  đã biết, j  đã biết và n là số
nơron n n
 xi wi   w j
i 1 j 1
Lê Hoàng Sơn 51 sonlh@vnu.edu.vn
Ví dụ (4)
Câu hỏi: Có lông không? (1 | 0)
 +1
KNOWN = 1 x 2.8 = 2.8
UNKNOWN = 0.8 + 0.2 +
2.2 + 1.1 = 4.3

KNOWN  UNKNOWN

Câu hỏi: Có mỏ không? (1 | 0)


 +1
KNOWN = 12.8 + 12.2 = 5.0
UNKNOWN = 0.8 + 0.2 +
1.1 = 2.1
KNOWN  UNKNOWN

Kết luận: Bird is TRUE


Lê Hoàng Sơn 52 sonlh@vnu.edu.vn
Mạng Nơron đa lớp
Rule 1: Rule 5:
IF a1 AND a3 THEN b1 (0.8) IF a5 THEN b3 (0.6)
Rule 2: Rule 6:
IF a1 AND a4 THEN b1 (0.2) IF b1 AND b3 THEN c1 (0.7)
Rule 3: Rule 7:
IF a2 AND a5 THEN b2 (-0.1) IF b2 THEN c1 (0.1)
Rule 4: Rule 8:
IF a3 AND a4 THEN b3 (0.9) IF b2 AND b3 THEN c2 (0.9)

Input Conjunction Disjunction Conjunction Disjunction


Layer Layer Layer Layer Layer
1.0
a1 R1 0.8
1.0

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

Lê Hoàng Sơn 53 sonlh@vnu.edu.vn


Mạng Nơron mờ
Mạng Nơron có khả năng xử lý tốt với dữ liệu thô, có khả năng học theo cả cấu trúc
và tham số, nhưng không thể xử lýđuược các dữ liệu phức tạp

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

Lê Hoàng Sơn 54 sonlh@vnu.edu.vn


Kiến trúc của mạng Nơron mờ
Layer 1 Layer 2 Layer 3 Layer 4 Layer 5

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

Lê Hoàng Sơn 55 sonlh@vnu.edu.vn


Kiến trúc của mạng Nơron mờ (2)
Layer 1 (Lớp input): Mỗi nơron trong lớp này truyền giá trị rõ
cho mạng:
yi(1)  xi(1)
Layer 2 (Lớp mờ hóa): Các nơron trong lớp này sẽ làm nhiệm vụ
mờ hóa giá trị rõ thu được thông qua các hàm thuộc, ví dụ:
hàm tam giác xác định qua mốc {a, b} như sau:
 ( 2) b
0 , if xi  a 
2

 2 x ( 2)
a
 i b b
yi( 2)  1  , if a   xi( 2)  a 
 b 2 2
 ( 2) b
0 , if xi  a 
2


Lê Hoàng Sơn 56 sonlh@vnu.edu.vn
Kiến trúc của mạng Nơron mờ (3)

 
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

(a) Effect of parameter a. (b) Effect of parameter b.

Lê Hoàng Sơn 57 sonlh@vnu.edu.vn


Kiến trúc của mạng Nơron mờ (4)
Layer 3 (lớp luật): Mỗi nơron trong lớp này tương
ứng với một luật mờ. Ví dụ: nơron R1 tương ứng
với Luật 1 sẽ nhận input từ nơron A1 và B1, sau đó
sử dụng toán tử tích (phép giao - AND) để tính
toán đầu ra:

1   A1   B1   R1
(3) (3) (3) (3) (3)
yi  x1i  x2i    xk i yR

Lê Hoàng Sơn 58 sonlh@vnu.edu.vn


Kiến trúc của mạng Nơron mờ (5)
Layer 4 (lớp tổng hợp các luật): Mỗi nơron trong
lớp này tương ứng với một tập mờ trong phần IF.
Sử dụng toán tử tổng (phép hợp - OR) để tính toán
đầu ra:

(4)
yi( 4)  x1(i4)  x2( 4i )    xli( 4) yC1   R3   R6  C1

Lê Hoàng Sơn 59 sonlh@vnu.edu.vn


Kiến trúc của mạng Nơron mờ (6)
Layer 5 (lớp giải mờ): Mỗi nơron trong lớp này
tương ứng với một giá trị đầu ra của mạng nơron
mờ. Có thể sử dụng các phương pháp giải mờ khác
nhau như phương pháp điểm trọng tâm. Tuy nhiên,
ANFIS chuẩn sử dụng phép hợp thành sum-
product

C1  aC1  bC1  C 2  aC 2  bC 2


y
C1  bC1  C 2  bC 2

Lê Hoàng Sơn 60 sonlh@vnu.edu.vn


Quy trình suy diễn
antecedent consequent
k-th rule

R k : IF x is Ak THEN y is B k k  1,  , N

input variable output variable


x  x1 ,, xn   X  R n Ak  A1k    Ank
T
yY  R
 A x 
k

fuzzy relation
fuzzification input value
x  x1 ,, xn   X
T

1 if xx
 A x     B  y    A B x, y 
xx
k k k
0 if

input fuzzy set k-th output fuzzy set


Lê Hoàng Sơn 61 sonlh@vnu.edu.vn
Gộp và giải mờ
aggregation for aggregation for
Mamdani approach logical approach

 B '  y   S  B  y   B '  y   T  B  y 
N N
k k
k 1 k 1

output fuzzy set T-norm


S-norm
for all N rules
defuzzification
 
N

 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:

Lê Hoàng Sơn 63 sonlh@vnu.edu.vn


Lan truyền ngược
Xét mạng sau:

Mục tiêu: cực tiểu hóa hàm giá

Lê Hoàng Sơn 64 sonlh@vnu.edu.vn


Phương pháp đạo hàm bậc 1
Luật cập nhật:

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!

Lê Hoàng Sơn 65 sonlh@vnu.edu.vn


Phương pháp đạo hàm bậc 2
Sử dụng ma trận Hessian:

Luật cập nhật là:

Lê Hoàng Sơn 66 sonlh@vnu.edu.vn


So sánh
Sự khác biệt của hai phương pháp này là kích thước và hướng
của các bước giảm gradient (gradient decent algorithm)

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!

Lê Hoàng Sơn 67 sonlh@vnu.edu.vn


Thuật toán lan truyền ngược
Với lớp output

Luật cập nhật cho lớp output

Với lớp ẩn

Luật cập nhật cho lớp ẩn

Lê Hoàng Sơn 68 sonlh@vnu.edu.vn


Ví dụ
Tốc độ học: 0.9
Hàm thuộc sigmoid
X = (1,0,1)
Class: 1

Lê Hoàng Sơn 69 sonlh@vnu.edu.vn


Ví dụ (2)
• Giá trị khởi tạo ban đầu
x1 x2 x3 w14 w15 w24 w25 w34 w35 w46 w56 w04 w05 w06
-----------------------------------------------------------------------------------
1 0 1 0.2 -0.3 0.4 0.1 -0.5 0.2 -0.3 -0.2 -0.4 0.2 0.1

• Tính giá trị đầu ra:


Unit j Net input Ij Output Oj
-----------------------------------------------------------------------------------
4 0.2 + 0 -0.5 -0.4 = -0.7 1/(1+e0.7)=0.332
5 -0.3 +0+0.2 +0.2 =0.1 1/(1+e0.1)=0.525
6 (-0.3)(0.332)-(0.2)(0.525)+0.1 = -0.105 1/(1+e0.105)=0.474

• Sai số tại các nút


Unit j j
-----------------------------------------------------------------------------
6 (0.474)(1-0.474)(1-0.474)=0.1311
5 (0.525)(1-0.525)(0.1311)(-0.2)=-0.0065
4 (0.332)(1-0.332)(0.1311)(-0.3)=-0.0087

Lê Hoàng Sơn 70 sonlh@vnu.edu.vn


Ví dụ (3)
• Cập nhật trọng số

Weight Giá trị


------------------------------------------------------------------------------
w46 -03+(0.9)(0.1311)(0.332)= -0.261
w56 -0.2+(0.9)(0.1311)(0.525)= -0.138
w14 0.2 +(0.9)(-0.0087)(1) = 0.192
w15 -0.3 +(0.9)(-0.0065)(1) = -0.306
w24 0.4+ (0.9)(-0.0087)(0) = 0.4
w25 0.1+ (0.9)(-0.0065)(0) = 0.1
w34 -0.5+ (0.9)(-0.0087)(1) = -0.508
w35 0.2 + (0.9)(-0.0065)(1) = 0.194
w06 0.1 + (0.9)(0.1311) = 0.218
w05 0.2 + (0.9)(-0.0065)=0.194
w04 -0.4 +(0.9)(-0.0087) = -0.408

Lê Hoàng Sơn 71 sonlh@vnu.edu.vn


Nhận xét
Ý kiến chuyên gia có thể tích hợp vào trong mạng nơron mờ
thông qua biến ngôn ngữ và luật mờ

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

Lê Hoàng Sơn 72 sonlh@vnu.edu.vn


Nội dung chính

1 Hệ mờ

2 Mạng Nơron

3 Tối ưu tiến hóa

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

❖ Các phương pháp tìm kiếm dựa trên mô phỏng và bắt


chước hành vi sinh học của quần thể trong tự nhiên
được gọi là tối ưu tiến hóa

Lê Hoàng Sơn 74 sonlh@vnu.edu.vn


Lớp các phương pháp tìm kiếm

Lê Hoàng Sơn 75 sonlh@vnu.edu.vn


Tối ưu tiến hóa
❖ Là phương pháp tìm nghiệm tối ưu toàn cục hiệu quả ngay cả trên
những hàm nhiễu và dựa trên ý tưởng về tìm kiếm ngẫu nhiên có
điều hướng

❖ Các tham số của tối ưu tiến hóa:


▪ Kích thước quần thể
▪ Số các thế hệ tối đa
▪ Các tham số về tốc độ giao phối, đột biến, ..

❖ Thuật toán tối ưu tiến hóa có 6 đặc trưng chính:


▪ Biểu diễn cá thể/ phương án
▪ Quá trình chọn lọc
▪ Lai ghép
▪ Đột biến
▪ Hàm thích nghi
▪ Lựa chọn thế hệ
Lê Hoàng Sơn 76 sonlh@vnu.edu.vn
Lược đồ của thuật toán tối ưu tiến hóa
❖ t:=0;
❖ InitPopulation(P,t);
❖ EvaluateFitness(P,t);
❖ while not terminate(P,t)
❖ begin
▪ t:=t+1;
▪ SelectParents(P,Ps);
▪ Recombine(Ps);
▪ Mutate(Ps);
▪ EvaluateFitness(Ps,t);
▪ Survive(P,Ps);
❖ end;

Lê Hoàng Sơn 77 sonlh@vnu.edu.vn


Đặc trưng của thuật toán tối ưu tiến hóa
❖ Biểu diễn cá thể:
▪ Mỗi cá thể là một phương án, nhưng biểu diễn ra
sao?
• Biểu diễn nhị phân
• Biểu diễn số thực
• Cấu trúc cây

❖ Quá trình chọn lọc:


▪ Nhằm xác định các bố mẹ tốt nhất để lai ghép nhằm
tạo thế hệ sau tốt hơn thế hệ trước
• Truncation selection
• Roulette wheel selection
• Tournament selection
• Neighborhood selection

Lê Hoàng Sơn 78 sonlh@vnu.edu.vn


Chọn lọc
❖ Truncation selection:
▪ Chọn ra 1/p số cá thể tốt nhất và lai ghép p lần
▪ Đơn giản nhưng không dùng phổ biến

❖ Roulette wheel selection:


▪ Tính xác suất của mỗi cá thể dựa vào hàm fitness
▪ Chọn ngẫu nhiên p cá thể trong đó

❖ 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ê Hoàng Sơn 79 sonlh@vnu.edu.vn


Đặc trưng của thuật toán tối ưu tiến hóa (2)
❖ Lai ghép
▪ Xác định cách thức lấy các gen của bố mẹ để giao phối
• One-point crossover
• Two-point crossover
• "Cut and splice"
• Uniform Crossover and Half Uniform Crossover

Lê Hoàng Sơn 80 sonlh@vnu.edu.vn


Đặc trưng của thuật toán tối ưu tiến hóa (3)
❖ Đột biến
▪ Thay thế một gen bằng một gen ngẫu nhiên nhằm tạo sự đa
dạng sinh học
• Phép đổi bit

• Phép đảo bit


• Cập nhật giá trị của gen: Boundary, Uniform, non-uniform,
Gaussian

❖ Hàm thích nghi: Quyết định độ “tốt” của 1 cá thể

❖ Lựa chọn thế hệ để tiếp tục sản sinh ra các thế hệ khác

Lê Hoàng Sơn 81 sonlh@vnu.edu.vn


Genetic Programming (GP)

❖ 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

❖ Toán tử chính là lai ghép còn đột biến là toán tử phụ.


Lai ghép thực hiện thay thế một gen của 1 cá thể bằng
1 gen của 1 cá thể ngẫu nhiên khác. Đột biến có thể
được sử dụng cho 1 gen hoặc toàn bộ cá thể đó

❖ Meta-genetic algorithm

Lê Hoàng Sơn 82 sonlh@vnu.edu.vn


Evolutionary Programming (EP)

❖ Không có cấu trúc biểu diễn cố định, không sử dụng lai


ghép, và đột biến được sử dụng để sinh ra cá thể con
▪ Khởi tạo quần thể và tính độ thích nghi
▪ Đột biến cha và tạo ra thế hệ mới
▪ Tính độ thích nghi của thế hệ mới và quay lại bước 2 cho đến
khi hết số lần lặp

❖ Không được sử dụng rộng rãi do sự thay đổi của các


thế hệ rất bé và tốc độ hội tụ chậm

Lê Hoàng Sơn 83 sonlh@vnu.edu.vn


Genetic Algorithm (GA)
❖ Sử dụng nhiều chiến lược tiến hóa sinh học khác nhau nên sẽ thu
được nghiệm tối ưu

❖ 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

❖ Thuật toán chọn lọc trong GA là: roulette wheel selection và


tournament selection

❖ 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

Lê Hoàng Sơn 84 sonlh@vnu.edu.vn


Evolutionary Strategy (ES)
❖ Sử dụng cách biểu diễn vector thực nên không gian tìm kiếm
được thực hiện trên miền liên tục

❖ 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

❖ Ba hàm lai ghép được sử dụng:


▪ Trung bình số học của cha mẹ
▪ Trung bình hình học của cha mẹ
▪ Phương pháp lai ghép rời rạc

Lê Hoàng Sơn 85 sonlh@vnu.edu.vn


Mã giả ES
▪ generationNumber = 0;
▪ initialization (β0 );
▪ while ( !stopping_criteria )
• for ( l = 0; l< λ ; l++)
– Ώl = reproduction ( βg , ρ );
– sl = s_recombination ( Ώl, ρ );
– sl' = s_mutation ( sl );
– yl = y_recombination ( Ώl, ρ );
– yl' = y_mutation ( yl );
– Fl = F(yl');
• βg' = { yl', sl', Fl };
• switch selection_type
– case comma-selection:
» βg+1' = selection( βg' );
» break;
– case plus-selection:
» βg+1' = selection( βg', βg );
» break;
• g = g + 1;

Lê Hoàng Sơn 86 sonlh@vnu.edu.vn


Mã giả ES (2)

▪ βn là cha mẹ tại thế hệ thứ nth,


▪ βn' là con tại thế hệ thứ nth,
▪ Ώl là con sau quá trình lai ghép,
▪ sl là đại lượng sigma của con thứ l,
▪ sl' là đại lượng sigma đột biến của con thứ l,
▪ yl là gene của con thứ l,
▪ yl' là gene đột biến của con thứ l
▪ g là số thế hệ trong thuật toán

Lê Hoàng Sơn 87 sonlh@vnu.edu.vn


Tóm tắt các thuật toán tiến hóa

Lê Hoàng Sơn 88 88
Questions

89 Lê Hoàng Sơn
Click to edit company slogan .

90

You might also like