trí tuệ nhân tạo nâng cao - nnhoa.free.frnnhoa.free.fr/courses/ai++/2006/introduction.pdf ·...

43
5 April 2006 5 April 2006 [email protected] [email protected] Tr Tr í í tu tu nhân nhân t t o o nâng nâng cao cao Hoá NGUYEN College of Technology, Vietnam National University, Hanoi I. Nhp môn AI++ - Hoá NGUYEN @ 2006 2 Agenda Agenda Nhp môn Khái nim Lch s Thc trng Biu din bài toán và tìm kiếm gii pháp Các kiu bài toán Xác lp bài toán Các thut toán tìm kiếm Logic và biu din tri thc Logic mnh đề Logic vtcp 1 FOL Biu din tri thc Suy din Suy dinvi logic Lut suy din Mnh đề hoá cơ stri thc Lp lun tiến Lp lun lùi

Upload: phamhuong

Post on 27-Apr-2018

223 views

Category:

Documents


2 download

TRANSCRIPT

5 April 20065 April 2006 [email protected]@vnu.edu.vn

TrTríí tutuệệ nhânnhân ttạạoo nângnâng caocao

Hoá NGUYENCollege of Technology,

Vietnam National University, Hanoi

I. Nhập môn

AI++ - Hoá NGUYEN @ 2006 2

AgendaAgendaNhập môn

Khái niệmLịch sửThực trạng

Biểu diễn bài toán và tìm kiếm giải phápCác kiểu bài toánXác lập bài toánCác thuật toán tìm kiếm

Logic và biểu diễn tri thứcLogic mệnh đềLogic vị từ cấp 1 FOLBiểu diễn tri thức

Suy diễnSuy diễn với logicLuật suy diễnMệnh đề hoá cơ sở tri thứcLập luận tiếnLập luận lùi

AI++ - Hoá NGUYEN @ 2006 3

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 Russel & Peter Norvig)

Trí tuệ nhân tạo (Artificial Intelligence AI): được nhìn nhận qua 4 góc độ:

Acting rationallyHành động hợp lý

Acting humanlyHành động như người

Thinking rationallyNghĩ hợp lý

Thinking humanlyNghĩ như người

Acting rationally: Tác nhân có lý (Rational Agent)Tác nhân: cái có thể cảm nhận và hành động

Làm những điều hợp lý

TrTríí tutuệệ nhânnhân ttạạoo llàà ggìì ??

AI++ - Hoá NGUYEN @ 2006 4

KhKhááii niniệệmm TrTríí tutuệệ nhânnhân ttạạoo

TTNT: Lĩnh vực trong khoa học máy tính nghiên cứu về cáchành vi thông minh (intelligent behavior)

Mục tiêu: Hiểu được bản chất các hành vi thông minh

Xây dựng các hệ thống thông minh

TTNT: tập trung về các nguyên lý về tác nhân có lý trí vàcác yếu tố để xây dựng chúng.

AI++ - Hoá NGUYEN @ 2006 5

TTNT: TTNT: llĩĩnhnh vvựựcc đa đa ngngàànhnhTriết học Logic, các phương pháp suy luận, trí tuệ

kiểu cơ sở hệ thống tự nhiên của việc học, ngôn ngữ, tính hợp lý

Toán học Biểu diễn hình thức, thuật toán kiểmchứng, tính toán, khả năng quyết định, tínhdễ xử lý, xác xuất.

Kinh tế Tính hữu dụng, lý thuyết quyết địnhThần kinh học Cơ sở tự nhiên của hoạt động tinh thầnTâm lý học Hiện tượng cảm nhận, kỹ thuật thực nghiệmKỹ nghệ máy tính

Xây dựng những máy tính tốc độ caoLý thuyết điều khiển

Hệ thống thiết kế tối ưu hoá hàm mục tiêu. Ngôn ngữ Biểu diễn tri thức, ngữ pháp

AI++ - Hoá NGUYEN @ 2006 6

Con Con ngưngườờii vvàà mmááyy ttíínhnh

Khó người, dễ máy:Cờ,

Ô chữ,

Xếp thư,

Chứng minh định lý,

Lập lịch

Dễ người, khó máy:Nhận dạng tiếng nói, hình dáng,

Hiểu ngôn ngữ tự nhiên,

Xoạn nhạc, thơ,

AI++ - Hoá NGUYEN @ 2006 7

LLịịchch ssửử ngngàànhnh TTNTTTNT

1943 McCulloch & Pitts: Mô hình mạch boolean chonão1950 Turing's "Computing Machinery and Intelligence"1956 Hội nghị Dartmouth: TTNT được thông qua1965 Robinson hoàn thành thuật toán cho suy luậnlogic1966—73 TTNT khám phá sự phức tạp tính toán. Nghiêncứu về mạng nơron hầu hết biến mất1969—79 Phát triển sớm các hệ thống dựa trên tri thức1980-- TTNT trở thành 1 ngành công nghiệp1986-- Mạng nơron trở lại phổ biến1987-- TTNT trở thành một khoa học1995-- Xuất hiện của tác nhân thông minh

AI++ - Hoá NGUYEN @ 2006 8

ThThựựcc trtrạạngng TTNTTTNT

Deep Blue đánh bại đại kiện tướng cờ vua thế giới Garry Kasparov, 1997

Chứng minh được 1 phỏng đoán toán học (phỏng đoánRobbins), cái đã không giải được từ nhiều thập kỷ

Xe tự động xuyên Mỹ (tự động 98% thời gian từ Pittsburgh đến San Diego), 1993.

Chương trình lập kế hoạch tự động hoạt động trên các phi thuyền của NASAPhần mềm Proverb giải các câu đố chữ tốt hơn so với hầuhết con người.

Hệ thống tổ chức hội nghị bằng ngôn ngữ tự nhiên.

….

AI++ - Hoá NGUYEN @ 2006 9

ThThựựcc trtrạạngng

AI++ - Hoá NGUYEN @ 2006 10

ỨỨngng ddụụngng

Nhận dạng/tổng hợp tiếng nói,

Nhận dạng/tổng hợp ảnh,

Nhận dạng chữ viết tay,

Xử lý ngôn ngữ tự nhiên,

Lập kế hoạch,

Hỗ trợ quyết định,

Hệ chuyên gia,

AI++ - Hoá NGUYEN @ 2006 11

AgendaAgendaNhập môn

Khái niệmLịch sửThực trạng

Biểu diễn bài toán và tìm kiếm giải phápCác kiểu bài toánXác lập bài toánCác thuật toán tìm kiếm

Logic và biểu diễn tri thứcLogic mệnh đềLogic vị từ cấp 1 FOLBiểu diễn tri thức

Suy diễnSuy diễn với logicLuật suy diễnMệnh đề hoá cơ sở tri thứcLập luận tiếnLập luận lùi

AI++ - Hoá NGUYEN @ 2006 12

CCáácc ttáácc nhânnhân gigiảảii quyquyếếtt vvấấnn đđềề

Tác nhân thông minh: hành động thông qua một dãy cáctrạng thái với tiêu chí cực đại hoá hiệu năng.

Phương pháp:

xác định mục tiêu

biểu diễn bài toán

tìm kiếm chuỗi hành động

thi hành

AI++ - Hoá NGUYEN @ 2006 13

VVíí ddụụ : : kkỳỳ nghnghỉỉ ởở RomaniaRomania

Hiện thời đang tại Arad và bẳt buộc phái lái xe đến BucharestXác định mục tiêu:

đến Bucharest

Xác lập bài toán:Các trạng thái: các thành phố khác nhauCác hành động: lái xe giữa các thành phố

Tìm giải pháp:danh sách các thành phố đi qua, ví dụ: Arad, Sibiu, Fagaras, Bucharest

AI++ - Hoá NGUYEN @ 2006 14

CCáácc kikiểểuu bbààii totoáánn

Phụ thuộc vào từng kiểu môi trườngXác định, có thể quan sát toàn bộ bài toán trạng thái đơn(single-state problem)

Tác nhân hiểu rõ trạng thái nào nó sẽ đạt đến; lời giải là một dãytrạng thái

Không thể quan sát bài toán không sensor (sensorless, conformant problem)

Tác nhân có thể không biết trạng thái hiện thời của nó

Không xác định và/hoặc có thể quan sát cục bộ bài toántình cờ (contingency problem)

Các cảm nhận cung cấp thông tin mới về trạng thái hiện thờiThường xen lẫn giữa tìm kiếm và thi hành

Không gian trạng thái không xác định bài toán khai phá(exploration problem)

AI++ - Hoá NGUYEN @ 2006 15

XXáácc llậậpp bbààii totoáánn trtrạạngng ththááii đơnđơn

Một bài toán được xác định bởi bốn yếu tố:

1. Trạng thái ban đầu, v.d., "tại Arad"

2. Hành động hoặc hàm kế tiếp S(x) = tập các cặp trạng thái-hành

động

v.d., S(Arad) = {<Arad Zerind, Zerind>, … }

3. Kiểm tra đích, có thể

cụ thể (explicit), v.d., x = "at Bucharest"

Không cụ thể (implicit), v.d., Checkmate(x)

4. Chi phí (path cost)

e.g., tổng các khoảng cách, số các hành động đã thi hành, v.v.

c(x,a,y) là chi phí bước (step cost), phải đảm bảo ≥ 0

Một giải pháp là một chuỗi các hành động đi từ trạng thái đầu

đến trạng thái đích (mục tiêu đề ra)

AI++ - Hoá NGUYEN @ 2006 16

LLựựaa chchọọnn khôngkhông giangian trtrạạngng ththááii

Thế giới thực phức tạp một cách ngớ ngẩnkhông gian trạng thái phải được thu gọn để giái quyết vấn đề

Trạng thái (rút gọn) = tập các trạng thái thực

Hành động (rút gọn) = phối hợp phức tạp của các hànhđộng thực tế

vd., "Arad Zerind" thể hiện 1 tập hỗn hợp các con đường, khúcngoặt, điểm đỗ, v.v.

Để đảm bảo thực tế, mọi trạng thái thực ở "Arad" phải tính đến mộtsố trạng thái thực ở "Zerind"

Giải pháp (rút gọn) = tập các đường đi trong thế giới thực

Mỗi hành động rút gọn cần phải "dễ hơn" so với bài toángốc

AI++ - Hoá NGUYEN @ 2006 17

VVíí ddụụ: : TròTrò chơichơi 8 8 ssốố

states? Các vị trí các ô

actions? Di truyển ô trắng left, right, up, down

goal test? = trạng thái đích (thiết lập ban đầu)

path cost? 1 với mỗi di chuyển

AI++ - Hoá NGUYEN @ 2006 18

VVíí ddụụ: : llắắpp rrắắpp mmááyy

states?: các toạ độ định vị thực của robot, kết hợp góc độcủa đối tượng cần lắp rắp

actions?: cử động liên tục của khớp nối robot

goal test?: lắp rắp hoàn toàn

path cost?: thời gian thi hành

AI++ - Hoá NGUYEN @ 2006 19

CCáácc gigiảảii thuthuậậtt ttììmm kikiếếmm cơcơ bbảảnn

Ý tưởng cơ bản: duyệt không gian trạng thái thông qua việcsản sinh các trạng thái kế tiếp (bằng cách khai triển trạngthái hiện thời)

AI++ - Hoá NGUYEN @ 2006 20

CCáácc trtrạạngng ththááii llặặppKhông xác định được các trạng thái lặp có thể đưa bài toántuyến tính thành bài toán phi tuyến (exponential problem)!

Xử lý các trạng thái lặp:Không quay lai trạng thái đã duyệt

Không tạo đường đi có chu trình

Không sinh ra những trạng thái đã được sinh ra trước đây, cáctrạng thai sinh ra phải được lưu trong bộ nhớ độ phức tạp khônggian là O(bd).

AI++ - Hoá NGUYEN @ 2006 21

CCáácc chichiếếnn thuthuậậtt ttììmm kikiếếmm

Chiến thuật tìm kiếm: lựa chọn thứ tự của việc mở rộng nốt.

Chiến thuật được đánh giá dựa trên những điểm sau:

Tính hoàn thành: liệu nó có luôn tìm được lời giải nếu tồn tại?

Độ phức tạp về thời gian: số nốt được sinh ra

Độ phức tạp về không gian: số lớn nhất nốt lưu được trong bộ nhớ

Tính tối ưu: liệu nó luôn tìm được lời giải chi phí thấp nhất?

Độ phức tạp về thời gian và không gian được thể hiện:

b: số nhánh cực đại của cây tìm kiếm (nhân tố nhánh)

d: độ sâu của giải pháp có chi phí thấp nhất

m: độ sâu cực đại của không gian trạng thái (có thể là ∞)

AI++ - Hoá NGUYEN @ 2006 22

Uninformed search strategiesUninformed search strategies

Tìm kiếm theo chiều rộng (breadth-first search)Mở rộng nốt chưa mở nông/cạn nhất

Tìm kiếm theo chiều sâu (depth-first search)Mở rộng nốt chưa mở sâu nhất

Tìm kiếm theo giới hạn độ sâu (depth-limited search)Tìm kiếm theo chiều sâu có giới hạn độ sâu

Tìm kiếm sâu lặp (iterative deepening search)Sử dụng tìm kiếm theo giới hạn độ sâu

AI++ - Hoá NGUYEN @ 2006 23

Informed search strategiesInformed search strategies

Tìm đối tượng tốt nhất (Best-first search): sử dụng hàmđánh giá f(n) đối với mỗi nốt

Ước lượng độ mong muốn Mở rộng nốt chưa mở rộng mongmuốn cao nhất

Giải thuật:Tìm đối tượng tốt nhất nông (Greedy best-first search)

Hàm đánh giá f(n) = h(n) (heuristic)

h(n) = ước chi phí từ n đến đích goal

Tìm kiểu A*: tránh mở rộng những đường đi có chi phí đắtHàm đánh giá f(n) = g(n) + h(n)

g(n) = chi phí để tới được n

h(n) = chi phí ước lượng từ n đến đích

f(n) = tổng chi phí ước đoán con đường đi qua n đến đích.

AI++ - Hoá NGUYEN @ 2006 24

Informed search strategiesInformed search strategies

Tìm kiếm cục bộ (local search): Giữ trạng thái đơn hiện tại, và tìm cách cải thiện nó

Tìm kiếm Hill-climbingTối ưu địa phương (có thể khác tối ưu toàn cục)Lặp nhiều lần để có được tốt hơn (1 dãy đủ lớn trạng thái ban đầu ngẫunhiên)

Tìm kiếm mô phỏng luyện kimNhảy qua cực đại địa phương bằng cách cho phép vài dịch chuyển "xấu", nhưng giảm dần tần xuất của chúng.

Local beam searchLưu giữ k trạng thái thay vì chỉ mộtBắt đầu với k trạng thái được sinh ra ngẫu nhiênVới mỗi lần lặp, mọi hậu duệ của cả k trạng thái đều được sinh raNếu 1 trong số đó là trạng thái đích, stop; nếu không thì chọn k hậu duệtốt nhất từ danh sách đầy đủ và lặp lại

Thuật toán di truyền

AI++ - Hoá NGUYEN @ 2006 25

ThuThuậậtt totoáánn didi truytruyềềnn

Trạng thái hậu duệ được sinh ra qua việc kết hợp hai trạngthái cha

Bắt đầu với k trạng thái được sinh ra ngẫu nhiên(population)

Một trạng thái được biểu diễn như một chuỗi các ký tựalphabet hữu hạn (thường là 0,1)

Hàm đánh giá (hàm phù hợp): Giá trị cao hơn cho trạng tháitốt hơn

Sản sinh thế hệ kế tiếp của các trạng thái bằng lựa chọn, laitạp, và đột biến (selection, crossover, and mutation)

AI++ - Hoá NGUYEN @ 2006 26

TTóómm ttắắtt

Sử dụng kinh nghiệm (heuristics) để nâng cao hiệu quả tìmkiếm

Best-First Search: những nốt có chi phí thấp nhất được mởrộng trước tiên.

Greedy search: ước lượng chi phí đến đích h(n) từ n.

A*: ước lượng chi phí đường qua n đến đích f(n) = g(n) + h(n).

A* : tối ưu, luôn có nghiệm, mặc dù không gian tìm kiếm còn rộng

Local search: cải thiện việc lặp bằng cách chỉ lưu 1 trạngthái đơn trong bộ nhớ:

Hill-Climbing: có thể kẹt tại cục bộ địa phương.

Simulated Annealing: thoát khỏi cục bộ địa phương với 1 lịch trìnhlàm lạnh đủ dài.

AI++ - Hoá NGUYEN @ 2006 27

AgendaAgendaNhập môn

Khái niệmLịch sửThực trạng

Biểu diễn bài toán và tìm kiếm giải phápCác kiểu bài toánXác lập bài toánCác thuật toán tìm kiếm

Logic và biểu diễn tri thứcLogic mệnh đềLogic vị từ cấp 1 FOLBiểu diễn tri thức

Suy diễnSuy diễn với logicLuật suy diễnMệnh đề hoá cơ sở tri thứcLập luận tiếnLập luận lùi

AI++ - Hoá NGUYEN @ 2006 28

LogicLogic

Logics là những ngôn ngữ hình thức dùng để biểu diễn

thông tin sao cho có thể đi đến một kết luận nào đó

Cú pháp-Syntax định nghĩa câu trong ngôn ngữ đó

Ngữ nghĩa - Semantics xác định "nghĩa" của câu

Tức là định nghĩa chân lý của câu trong một thế giới

Ví dụ:,ngôn ngữ số học

x+2 ≥ y là 1 câu; x2+y > {} không phải là 1 câu

x+2 ≥ y đúng nếu và chỉ nếu số x+2 không bé hơn y

x+2 ≥ y đúng trong thế gới mà x = 7, y = 1

x+2 ≥ y sai trong thế giới mà x = 0, y = 6

Logic mệnh đề Logic Cú pháp và ngữ nghĩa Dạng chuẩn hội

AI++ - Hoá NGUYEN @ 2006 29

LogicLogic mmệệnhnh đ đềề

Logic mệnh đề (propositional logic): quan tâm đến nhữngcông thức mà chúng có thể đúng (true) hoặc sai (false)

Các phần tử cơ bản: các mệnh đề nguyên tử (atoms).

VD: atoms:Hà nội là thủ đô của Việt nam (true)

Việt nam thuộc châu Âu (false)

Việc diễn dịch một mệnh đề dựa trên việc gán cho nó giá trịlogic T (true) hoặc F (false)

Logic mệnh đề Logic Cú pháp và ngữ nghĩa Dạng chuẩn hội

AI++ - Hoá NGUYEN @ 2006 30

DDạạngng chuchuẩẩnn ttắắcc

Các tương đương logic cho phép thực hiện mọi phép toántrên các mệnh đề

Với mọi mệnh đề P, ta đều có thể tìm được mệnh đề P’tương đương với P mà không chứa cả⇔ lẫn ⇒

(nhờ các luật bỏ kéo theo đơn và tương đương)

VD: (A ⇔ B) ⇒ C = ( (A ⇒B) ∧ (B ⇒ A) ⇒ C)

= ¬( (¬A ∨ B) ∧ (¬B ∨ A) ) ∨ C

= (¬(¬A ∨ B)) ∨ (¬(¬B ∨A))∨C

= (A ∧ ¬B) ∨ (B ∧ ¬A) ∨ C

Logic mệnh đề Logic Cú pháp và ngữ nghĩa Dạng chuẩn hội

AI++ - Hoá NGUYEN @ 2006 31

DDạạngng chuchuẩẩnn hhộộii

Dạng chuẩn hội - Conjunctive Normal Form (CNF): công thứcđược thể hiện dưới dạng hội của các câu tuyển.Câu tuyển: câu có dạng A1 ∨ A2 ∨… ∨ An, trong đó Ai là cácliteral.Chuyển tới dạng chuẩn hội CNF: (v.d. với A ⇔ (B ∨ C)

1. Loại ⇔, thay α⇔ β bằng (α⇒ β)∧(β⇒ α)(A ⇒ (B ∨ C)) ∧ ((B ∨ C) ⇒ A)

2. Loại ⇒, thay α⇒ β bằng ¬α∨ β.(¬A ∨ B ∨ C) ∧ (¬(B ∨ C) ∨ A)

3. Chuyển ¬ vào trong sử dụng luật de Morgan và phủ định kép(double-negation):(¬A∨ B ∨ C) ∧ ((¬B∨ ¬C) ∨ A)

4. Áp dụng luật phân phối (∧ trên ∨) :(¬A ∨ B ∨ C) ∧ (¬B ∨ A) ∧ (¬C ∨ A)

Logic mệnh đề Logic Cú pháp và ngữ nghĩa Dạng chuẩn hội

AI++ - Hoá NGUYEN @ 2006 32

CôngCông ththứứcc HornHorn

Công thức Horn (1951):

P1 ∧ P2 ∧… ∧Pm ⇒ Q

~ luật if-then: If P1 and … and Pm then Q

Khi m=0, công thức horn trở thành câu đơn Q, hay sự kiện

Q

Logic mệnh đề Logic Cú pháp và ngữ nghĩa Dạng chuẩn hội

AI++ - Hoá NGUYEN @ 2006 33

ĐĐặặcc điđiểểmm ccủủaa logiclogic mmệệnhnh đ đềề

Ưu điểm:☺ Là dạng khai báo (declarative)

☺ Tri thức và quá trình suy diễn là tách biệt với nhauSuy diễn độc lập với môi trường

☺ Cho phép có những thông tin phủ định/từng phần/không liên kết vớinhau.

☺ Là logic cấu thành: nghĩa của 1 câu phụ thuộc vào nghĩa của cácthành phần của nó

☺ Nghĩa của 1 câu độc lập với ngữ cảnh.

Nhược điểm:Khả năng hạn chế trong việc biểu diễn thông tin

VD: Ta không thể biểu diễn được những câu:

- « Mọi phụ nữ đều duyên dáng »

- « Cô ta đang ăn trái cây »

Logic mệnh đề Logic Cú pháp và ngữ nghĩa Dạng chuẩn hội

AI++ - Hoá NGUYEN @ 2006 34

ĐĐặặtt vvấấnn đ đềề

Thế giới hiện thực: tập các đối tượngmỗi đối tượng có những tính chất riêng,

các đối tượng có quan hệ với nhau

Logic mệnh đề: biểu diễn thế giới qua các sự kiện (facts)

Logic vị từ (first-order logic) (như ngôn ngữ tự nhiên): chophép biểu diễn thế giới:

Đối tượng: người, một cái bàn, …

Quan hệ: cha-con, tròn-vuông, …

Hàm: cho phép xác đinh quan hệ của đối tượng

Logic vị từ cấp một Cú pháp Ngữ nghĩa Sử dụng

AI++ - Hoá NGUYEN @ 2006 35

CCúú phpháápp ccủủaa FOLFOL

Hằng: Hương, 2, NUS,...

Biến: x, y, a, b…

Vị từ (predicate): Brother, >,...

Hàm (function): Sqrt, FatherOf,...

Kết nối: ¬, ⇒, ∧, ∨, ⇔

Bằng: =

Lượng tử: ∀, ∃

Logic vị từ cấp một Cú pháp Ngữ nghĩa Sử dụng

AI++ - Hoá NGUYEN @ 2006 36

CôngCông ththứứcc phânphân ttửử

Công thức phân tử (atomic sentences) :

vị từ(term1,...,termn) hoặc term1 = term2

Trong đó các hạng thức (term) được xác định :

Term = function (term1,...,termn) hoặc hằng hoặc biến

VD: Love(Liên, Husband(Liên)) là một công thức phân tử, trong đó Husband(Liên) là một hạng thức

Logic vị từ cấp một Cú pháp Ngữ nghĩa Sử dụng

AI++ - Hoá NGUYEN @ 2006 37

CôngCông ththứứcc phphứứcc

Công thức phức (complex sentences) được xây dựng từ

các công thức phân tử thông qua việc sử dụng các kết nối

¬S, S1 ∧ S2, S1 ∨ S2, S1⇒ S2, S1 ⇔S2,

VD: >(1,2) ∨ ≤(1,2)

>(1,2) ∧ ¬ >(1,2)

Công thức cụ thể: công thức không chứa biến

Lượng tử phổ dụng: mô tả tính chất của 1 lớp đối tượng

VD: "Mọi người đều có quyền tự do": ∀x (Người(x) ⇒ Tựdo(x))

Lượng tử tồn tại: dùng để nói đến một đối tượng trong 1 lớp

đối tượng mà nó có tính chất/thoả mãn quan hệ nào đó

Một số cô gái có mái tóc nâu: ∃x (Cogai(x) ∧ MàuTóc(x, Nâu))

Logic vị từ cấp một Cú pháp Ngữ nghĩa Sử dụng

AI++ - Hoá NGUYEN @ 2006 38

NgNgữữ nghnghĩĩaa

Giá trị chân lý của một công thức được thể hiện thông qua một mẫu (model) và một minh hoạ (interpretation)

Một mẫu chứa các đối tượng và các quan hệ giữa chúng

Minh hoạ xác định các tham chiếu cho:Ký tự hằng → đối tượngKý tự vị từ → quan hệKý tự hàm → quan hệ hàm

Công thức phân tử predicate(term1,...,termn) là đúng nếu vàchỉ nếu các đối tượng tham chiếu bởi term1,...,termnở trongquan hệ tham chiếu bởi predicate

Ngữ nghĩa của công thức phức: xác định thông qua cáccông thức phân tử.

Logic vị từ cấp một Cú pháp Ngữ nghĩa Sử dụng

AI++ - Hoá NGUYEN @ 2006 39

VVíí ddụụLogic vị từ cấp một Cú pháp Ngữ nghĩa Sử dụng

AI++ - Hoá NGUYEN @ 2006 40

LưLượợngng ttửử phphổổ ddụụngng

∀<variables> <sentence>

VD: Mọi người Việt đều thông minh:∀x NgườiViệt(x) ⇒ Thôngminh(x)

∀x P đúng với mẫu m khi và chỉ khi P đúng với mỗi đốitượng có thể có trong mẫu đó

Nói cách khác, ∀ tương ứng với hợp của mọi thể hiện củaP

NgườiViệt(Lan) ⇒ Thôngminh(Lan)∧ NgườiViệt(Tiến) ⇒ Thôngminh(Tiến)∧ NgườiViệt(Sơn) ⇒ Thôngminh(Sơn)∧ …

Logic vị từ cấp một Cú pháp Ngữ nghĩa Sử dụng

AI++ - Hoá NGUYEN @ 2006 41

LLỗỗii ccầầnn trtráánhnh

Thường thì ⇒ là kết nối chính với ∀

Lỗi: sử dụng ∧ như là kết nối chính với ∀:∀x NgườiViệt(x) ∧ Thôngminh(x)

Có nghĩa: “Mọi người Việt và Mọi người thông minh”

Logic vị từ cấp một Cú pháp Ngữ nghĩa Sử dụng

AI++ - Hoá NGUYEN @ 2006 42

LưLượợngng ttửử ttồồnn ttạạii

∃<variables> <sentence>

VD: Một số người Việt thông minh:

∃x NgườiViệt(x) ∧ Thôngminh(x)

∃x P là đúng trong mẫu m nếu và chỉ nếu P là đúng với x làmột vài đôi tượng có thể có trong mẫu đó

Tương đương với giao các thể hiện của PNgườiViệt(Lan) ∧ Thôngminh(Lan)

∨ NgườiViệt(Tiến) ∧ Thôngminh(Tiến)

∨ NgườiViệt(Sơn) ∧ Thôngminh(Sơn)

∨ ...

Logic vị từ cấp một Cú pháp Ngữ nghĩa Sử dụng

AI++ - Hoá NGUYEN @ 2006 43

LLỗỗii ccầầnn trtráánhnh

Thường thì ∧ là kết nối chính với ∃

Lỗi thường gặp: sử dụng ⇒ như là kết nối chính ∃:

VD: ∃x NgườiViệt(x) ⇒ Thôngminh(x) là đúng nếu không cóai là người Việt !!!!

Logic vị từ cấp một Cú pháp Ngữ nghĩa Sử dụng

AI++ - Hoá NGUYEN @ 2006 44

ĐĐặặcc điđiểểmm ccủủaa ccáácc lưlượợngng ttửử

∀x ∀y tương đương với ∀y ∀x

∃x ∃y tương đương với ∃y ∃x

∃x ∀y không tương đương với ∀y ∃x

VD: ∃x ∀y Loves(x,y) : “Có người yêu mọi người”

∀y ∃x Loves(x,y): “Mọi người đều được yêu bởi ít nhấtmột người”

Đối ngẫu(Quantifier duality): mỗi lượng tử có thể được thểhiện bởi lượng tử kia.

∀x Likes(x, Kem) ¬∃x ¬Likes(x,Kem)

∃x Likes(x, Đichơi) ¬∀x ¬Likes(x, Đichơi)

Logic vị từ cấp một Cú pháp Ngữ nghĩa Sử dụng

AI++ - Hoá NGUYEN @ 2006 45

TươngTương đươngđương

term1 = term2 đúng với một minh hoạ nếu và chỉ nếu term1

và term2 trỏ đến cùng đối tượng

VD: định nghĩa AnhChịEmRuột với hệ thức ChaMẹ:

∀x,y AnhChịEmRuột(x,y) ⇔ [¬(x = y) ∧ ∃m,f ¬ (m = f) ∧ ChaMẹ(m,x) ∧ChaMẹ(f,x) ∧ ChaMẹ(m,y) ∧ ChaMẹ(f,y)]

Logic vị từ cấp một Cú pháp Ngữ nghĩa Sử dụng

AI++ - Hoá NGUYEN @ 2006 46

ChuChuẩẩnn hohoáá côngcông ththứứcc

Chuẩn tắc hội (CNF)

Loại bỏ kéo theo: P ⇔ Q tương đương với (P ⇒ Q)∧(Q ⇒ P)

Loại ⇒, thay P ⇒ Q bằng ¬P∨ Q.

Chuyển phủ định tới các phân tử¬(¬P) Ξ P

¬( A∧ B) Ξ ¬A∨ ¬B

¬( A ∨ B) Ξ ¬A ∧ ¬B

¬(∀x P) Ξ ∃x (¬P)

¬(∃x P) Ξ ∀x (¬P)

AI++ - Hoá NGUYEN @ 2006 47

ChuChuẩẩnn hohoáá côngcông ththứứcc

Loại bỏ các lượng tử tồn tại:Giả sử ∃x (G) là một công thức con của công thức đang xét và nằm

trong miền tác dụng của các lượng tử ∀x1, … ∀xn

y: hàm của n biến f(x1, …, xn)

Thay xuất hiện của y trong công thức G bởi hạng thức f(x1, …, xn) vàloại bỏ các lượng tử tồn tại.

VD: ∀x (∃y (P(x,y) ∨ ∀u (∃v (Q(a,v) ∧ ∃y ¬R(x,y))) (1)

Đặt y=f(x), v = g(x,u) và y = h(x,u), ta thu được:

∀x ( (P(x,f(x)) ∨ ∀u (Q(a,g(x,u)) ∧ ¬R(x,h(x,u)))) (2)

Loại bỏ các lượng tử phổ dụng:(2) (P(x,f(x)) ∨ (Q(a,g(x,u)) ∧ ¬R(x,h(x,u) ) ) (3)

Chú ý: tất cả các biến trong công thức là chịu tác dụng của lượng tửphổ dụng

AI++ - Hoá NGUYEN @ 2006 48

ChuChuẩẩnn hohoáá côngcông ththứứcc

Chuyển các tuyển tới literal:A ∨ (B ∧ C) thành (A ∨ B) ∧ (A ∨ C)

(3) (P(x,f(x)) ∨ Q(a,g(x,u))) ∧ (P(x,f(x)) ∨ ¬R(x,h(x,u) ) )(4)

Loại bỏ các hội: một câu hội là đúng các thành phần đềuđúng.

(4) tương đương với tập 2 tuyểnP(x,f(x)) ∨ Q(a,g(x,u))

P(x,f(x)) ∨ ¬R(x,h(x,u) )(5)

Đặt tên biến: biến trong câu khác nhau có tên khác nhau.(5) trở thành:

P(x,f(x)) ∨ Q(a,g(x,u))

P(z,f(z)) ∨ ¬R(z,h(z,u) )(6)

AI++ - Hoá NGUYEN @ 2006 49

SSửử ddụụngng logic logic vvịị ttừừ

Vấn đề quan hệ họ hàng:

AnhEmTrai là quan hệ AnhChiEmRuột

∀x,y AnhEmTrai(x,y) ⇔ AnhChiEmRuột(x,y)

Mẹ là phụ nữ trong BốMẹ

∀m,c Mẹ(c) = m ⇔ (PhụNữ(m) ∧ BốMẹ(m,c))

“AnhChiEmRuột” là đối xứng

∀x,y AnhChiEmRuột(x,y) ⇔ AnhChiEmRuột(y,x)

Logic vị từ cấp một Cú pháp Ngữ nghĩa Sử dụng

AI++ - Hoá NGUYEN @ 2006 50

TTóómm ttắắtt

Logic vị từ:Đối tượng và quan hệ là gốc của ngữ nghĩa

Cú pháp: hằng, hàm, vị từ, tương đương, lượng tử

Tăng sức mạnh thể hiện: đủ để diễn đạt những thế giớiphức tạp

Logic vị từ cấp một Cú pháp Ngữ nghĩa Sử dụng

AI++ - Hoá NGUYEN @ 2006 51

BiBiểểuu didiễễnn thithi ththứứcc

Vấn đề chính của TTNT:

TTNT nhắm đến việc băt chước sự thông minh của con người

Sự thông minh của con người lại dựa trên tri thức

Làm sao để biểu diễn được tri thức trong các hệ thống tin học ?

Để có thể hiểu được một cảnh, một câu chuyện, cần phải

tìm được liên hệ giữa những cái cảm nhận được và những

cái điều đã biêt

Việc cảm nhận được hiểu theo nghĩa kết hợp những khái

niệm trí tuệ với nhau

Điều đó cần một cách thức biểu diễn

Biểu diễn tri thức Thu nhận và mô hình hoá Bản thể học Phạm trù Web Semantic

AI++ - Hoá NGUYEN @ 2006 52

Thu Thu nhnhậậnn vvàà mômô hhììnhnh hohoáá

Hai vấn đề lớn đặt ra:

Thu nhận tri thức (knowledge acquisition):

Làm sao để có thể được tri thức vào máy?

Làm sao để máy có thể sử lý hiệu quả những tri thức (học)?

Mô hình hoá tri thức (knowledge modelisation)

Làm sao để có thể chỉ rõ cái được gọi là tri thức?

Làm sao để chuyển tri thức đó sang một cấu trúc có thể xử lý bởi một

chương trình?

Biểu diễn tri thức Thu nhận và mô hình hoá Bản thể học Phạm trù Web Semantic

AI++ - Hoá NGUYEN @ 2006 53

BBảảnn ththểể hhọọcc

Với những bài toán nhỏ, việc biểu diễn tri thức có thể thựchiện dễ dàng

Những lĩnh vực phức tạp đòi hỏi phải có những biểu diễnchung hơn và mềm dẻo hơn

VD: làm sao để biểu diễn những khái niệm:

Actions, Time, Physical objects, Belief

Việc biểu diễn những khái niệm trừu tượng được gọi là kỹnghệ bản thể học (ontology engineering)

Biểu diễn tri thức Thu nhận và mô hình hoá Bản thể học Phạm trù Web Semantic

AI++ - Hoá NGUYEN @ 2006 54

PhânPhân ccấấpp khkhááii niniệệmmBiểu diễn tri thức Thu nhận và mô hình hoá Bản thể học Phạm trù Web Semantic

AI++ - Hoá NGUYEN @ 2006 55

PhPhạạmm trtrùù

Tương tác với thế giới ở mức đối tượng, sự suy luận lạithường xảy ra ở mức phạm trù

Với logic vị từ, ta có thể sử dụng những predicates để biểudiễn phạm trù

VD: Sinhvien(s)

SinvienTinhoc(Hoctin(s), Sinhvien(s))…

Biểu diễn tri thức Thu nhận và mô hình hoá Bản thể học Phạm trù Web Semantic

AI++ - Hoá NGUYEN @ 2006 56

PhPhạạmm trtrùù

Kế thừa: cho phép đơn giản hoá cơ sở tri thứcPhạm trù ThựcPhẩm: liên quan đến tất cả những gì mà có thể ănđược

TráiCây là lớp con của ThựcPhẩm

Táo là lớp con của TráiCây

Táo là ăn được

Những quan hệ của các lớp con cho phép tổ chức phạm trùtheo kiểu phân lớp (taxonomy)

Biểu diễn tri thức Thu nhận và mô hình hoá Bản thể học Phạm trù Web Semantic

AI++ - Hoá NGUYEN @ 2006 57

PhânPhân llớớpp ((taxonomytaxonomy))Biểu diễn tri thức Thu nhận và mô hình hoá Bản thể học Phạm trù Web Semantic

AI++ - Hoá NGUYEN @ 2006 58

LogicLogic vvịị ttừừ vvàà phphạạmm trtrùù

Một đối tượng gắn với một phạm trù:

TáoĐỏ thuộc phạm trù Táo

Một phạm trù này sẽ lại là lớp con của một phạm trù khác:

Táo là lớp con của TráiCây

Các thành phần của 1 phạm trù đều có một vài thuộc tính:

TaoDo(x) MauDo(x)

Các thành phần của 1 phạm trù có thể được xác định thông

qua các thuộc tính:

ConNguoi(x) ^ GioiTinh(x)=Nu x Є PhuNu

Biểu diễn tri thức Thu nhận và mô hình hoá Bản thể học Phạm trù Web Semantic

AI++ - Hoá NGUYEN @ 2006 59

ĐĐặặcc điđiểểmm ccủủaa phphạạmm trtrùù

Rời nhau: 2 phạm trù là rời nhau nếu chúng không có phần

tử chung

VD: Động vật và Thực vật

Phân rã toàn bộ: nếu phạm trù đó có thể phân rã hoàn toàn

thành các lớp con.

VD: - Vietnam, Lao, Camphuchia llà phân rã toàn bộ của phạm

trù DôngDuong

Phân hoạc: phân rã toàn bộ và rời nhau

VD: DanOng và PhuNu là một phân hoạch của phạm trù con

người

Biểu diễn tri thức Thu nhận và mô hình hoá Bản thể học Phạm trù Web Semantic

AI++ - Hoá NGUYEN @ 2006 60

ĐĐốốii tưtượợngng ghghéépp

Một đối tượng có thể là một phần của đối tượng khác

Ta sử dụng quan hệ PartOf

VD: PartOf(Hanoi, Vietnam)

Quan hệ PartOf là phản xạ và bắc cầu

Kết cấu của một đối tượng thể hiện qua các phần xác định,

nhưng không có cấu trúc

Sử dụng quan hệ SetOf

VD: SetOf({ Táo1, Táo2, Táo3})

Cần phân biệt SetOf( Táo) và Táo

Biểu diễn tri thức Thu nhận và mô hình hoá Bản thể học Phạm trù Web Semantic

AI++ - Hoá NGUYEN @ 2006 61

ĐĐộộ đođo

Làm sao để biểu diễn các độ đo (measure)

Một độ đo có thể có nhiều đơn vị khác nhau cần biểu

diễn đơn vị.

VD: Lenght(L) = Inches(1.5) = Centimeters(3.81)

Có thể thể hiện các chuyển đổi:

Centimeters(2.54 x d) = Inches( d)

Với độ lớn về chất, ta sẽ dùng các ký hiệu:

VD: Difficulty( exercice1) > Difficulty( exercice2)

Biểu diễn tri thức Thu nhận và mô hình hoá Bản thể học Phạm trù Web Semantic

AI++ - Hoá NGUYEN @ 2006 62

SemanticSemantic Web & ontologiesWeb & ontologies

Internet, đặc biệt là Web: nguồn tri thức lớn nhất.

Nhược điểm: tri thức trên Internet thường không có cấu trúcVí dụ: Search Engine:

Vấn đề: ngữ nghĩa của các từ

Cần có những nghiên cứu để đem lại nghĩa/giá trị củanhững tri thức tìm được trên Internet

Sự nhập nhằng:

VD: Mực, đường,

Biểu diễn tri thức Thu nhận và mô hình hoá Bản thể học Phạm trù Web Semantic

AI++ - Hoá NGUYEN @ 2006 63

SemanticSemantic WebWeb

Nhiều nghiên cứu hiện nay nhắm đến việc hình thức hoá tri

thức trên Internet.

Vấn đề:

Nghĩa 1 từ thay đổi theo lĩnh vực

Mỗi người phát triển trang Web bởi chính họ, không có ràng buộc

chuẩn

Việc hình thức hoá tri thức rất phức tạp: nhiều ngành, định nghĩa

khác nhau

Từ (nhãn) là khác nhau tuỳ theo ngôn ngữ thể hiện

Cần có bộ dịch tự động các từ

Biểu diễn tri thức Thu nhận và mô hình hoá Bản thể học Phạm trù Web Semantic

AI++ - Hoá NGUYEN @ 2006 64

OntologyOntology

Hình thức hoá ngôn ngữ bằng ontology (W3C):

Một ontology biểu diễn những tri thức có cấu trúc của mộtlĩnh vực

bởi một phân lớp các mệnh đề(cú pháp)

bởi một phân lớp các quan hệ có thể có giữa các mệnh đề(ngữnghĩa)

Những chuẩn (ngôn ngữ) của W3C để cấu trúc hoá tri thức:

RDF / RDFS: mở rộng của XML cho tri thức có cấu trúc. Có nhiềuontologies tồn tại, nhưng chưa có chuẩn.

http://www-sop.inria.fr/acacia/personnel/Fabien.Gandon/lecture/emse_ontologie2002/

Biểu diễn tri thức Thu nhận và mô hình hoá Bản thể học Phạm trù Web Semantic

AI++ - Hoá NGUYEN @ 2006 65

XâyXây ddựựngng cơcơ ssởở tri tri ththứứcc

B1: Xác định ngữ cảnh của bài toán: các loại đối tượng, các

thuộc tính có thể có, các quan hệ.

B2: Xây dựng hệ thống từ vựng

Hằng, các vị từ, các hàm

HasColor(x,y), Small(x), FatherOf(x), …

B3: Xây dựng tri thức về lĩnh vực, về bài toán đặt ra

Chuyển đổi các câu/mệnh đề trong ngôn ngữ tự nhiên thành công

thức logic vị từ.

B4: Chuẩn hoá công thức

KB: tập các câu tuyển

Kỹ nghệ tri thức

Biểu diễn tri thức Thu nhận và mô hình hoá Bản thể học Phạm trù Web Semantic

AI++ - Hoá NGUYEN @ 2006 66

AgendaAgendaNhập môn

Khái niệmLịch sửThực trạng

Biểu diễn bài toán và tìm kiếm giải phápCác kiểu bài toánXác lập bài toánCác thuật toán tìm kiếm

Logic và biểu diễn tri thứcLogic mệnh đềLogic vị từ cấp 1 FOLBiểu diễn tri thức

Suy diễnSuy diễn với logicLuật suy diễnMệnh đề hoá cơ sở tri thứcLập luận tiếnLập luận lùi

AI++ - Hoá NGUYEN @ 2006 67

SuySuy didiễễnn logiclogic

Chuỗi các mệnh đề đúng (tiền đề)

Cần suy ra những sự kiện mới, đúng từ những mệnh đề đó(kết luận)

VD:Tiền đề (những mệnh đề đúng)

A ⇒ B : Nếu Bình ngoan thì Bình sẽ đi xem phim

A : Bình ngoan

Kết luận (sự kiện suy ra)B: Bình sẽ đi xem phim

Ký hiệu suy diễn bằng |={A ⇒ B, A} |= B

Qua suy diễn, ta suy ra những mệnh đề mới là hệ quả logiccủa những mệnh đề ban đầu.

Suy diễn Suy diễn với logic Luật suy diễn Mệnh đề hoá KB Lập luận tiến Lập luận lùi

AI++ - Hoá NGUYEN @ 2006 68

CơCơ ssởở tri tri ththứứcc

Cơ sở tri thức (knowledge base, KB): tập các câu trong mộtngôn ngữ hình thức

KB bao gồm:Tập các sự kiện

Tập các luật

Suy diễn: sử dụng những sự kiện và luật đã có để tìm ra những sự kiện mới, nghĩa là những tri thức mới.

Suy diễn Suy diễn với logic Luật suy diễn Mệnh đề hoá KB Lập luận tiến Lập luận lùi

AI++ - Hoá NGUYEN @ 2006 69

LuLuậậtt suysuy didiễễnn

Modus ponens (kéo theo – loại trừ)Nếu A và (A ⇒ B) thì ta suy ra B

Ký hiệu {A, A ⇒ B} |= B

Modus tollensNếu ¬B và (A ⇒ B) thì ta suy ra ¬A

Ký hiệu {¬B, A ⇒ B} |= ¬A

Bắc cầuNếu A ⇒ B và B ⇒ C thì ta suy ra A ⇒ C

Ký hiệu {A ⇒ B,B ⇒ C} |= A ⇒ C

Suy diễn Suy diễn với logic Luật suy diễn Mệnh đề hoá KB Lập luận tiến Lập luận lùi

AI++ - Hoá NGUYEN @ 2006 70

LuLuậậtt suysuy didiễễnn

Loại bỏ hội:Nếu A và (A ∧ B) thì ta suy ra B

Ký hiệu {A, A ∧ B} |= B

Đưa vào hộiNếu A và B thì ta suy ra A ∧ B

Ký hiệu {A,B} |= A ∧ B

Đưa vào tuyểnNếu A, ta suy ra A ∨ B

Ký hiệu {A} |= A ∨ B

Cho phép đưavào biến tự do

Suy diễn Suy diễn với logic Luật suy diễn Mệnh đề hoá KB Lập luận tiến Lập luận lùi

AI++ - Hoá NGUYEN @ 2006 71

VVíí ddụụ

Đơn giản hoá {p, ¬r, p ⇒ (q ⇒ r)}

Suy diễn bằng Modus ponens : q ⇒ r

Sau đó với Modus tollens : ¬q

Vậy {p, ¬r, p ⇒ (q ⇒ r)} |= ¬q.

Chứng minh rằng {A v B, ¬B v C} |= A v C

(A v B) ⇔ (¬A ⇒ B)

(¬B v C) ⇔ (B ⇒ C)

{A v B, ¬B v C} ⇔ {¬A ⇒ B, B ⇒ C}

Với luật bắc cầu, ta thu được {¬A ⇒ B, B ⇒ C} |= A v C

Chú ý: những ví dụ này chỉ đúng khi chúng ta thừa nhận

những mệnh đề cơ bản là đúng!

Suy diễn Suy diễn với logic Luật suy diễn Mệnh đề hoá KB Lập luận tiến Lập luận lùi

AI++ - Hoá NGUYEN @ 2006 72

LuLuậậtt suysuy didiễễnn (FOL)(FOL)

Thay thế phổ dụng (universal instantiation): thay biến thànhhằng ∀x α |= SUBST ({x/C}, α)

Ví dụ : ∀x Thích(x,tráicây)Thay x bởi Lan (kí hiệu {x/Lan}), ta được Thích(Lan,tráicây)

Thay thế tồn tại (existential instantiation): với câu α, biến x và hằng c, không xuất hiện trong KB: ∃x α |= SUBST ({x/C}, a)

VD: ∃x Thích(x,tráicây)Thay x bởi C1 (ký hiệu {x/C1})

Thích(C1,tráicây), với điều kiện là C1 không nằm trong KB

Chú ý:Thay thế phổ dụng có thể được áp dụng nhiều lần để thêm câu mới. Cơ sở tri thức mới tương đương với cơ sở tri thức cũ, theo nghĩalogicThay thế tồn tại chỉ được áp dụng 1 lần để thay một câu tồn tại. KB mới không tương đương với KB cũ, nhưng nó có thể thoả mãn nếuKB cũ có thể thoả mãn

Suy diễn Suy diễn với logic Luật suy diễn Mệnh đề hoá KB Lập luận tiến Lập luận lùi

AI++ - Hoá NGUYEN @ 2006 73

RRúútt ggọọnn vvềề KB KB mmệệnhnh đđềề

Giả sử KB chỉ chứa:∀x Vua(x) ^ Ham(x) ⇒ XauBung(x)Vua(Titi)Ham(Titi)AnhEm(Toto,Titi)

Nếu chúng ta thay phổ dụng bởi tất cả các khả năng củanó:

Vua(Titi) ^ Ham(Titi) ⇒ XauBung(Titi)Vua(Toto) ^ Ham(Toto) ⇒ XauBung(Toto)Vua(Titi)Ham(Titi)

KB mới đã được mệnh đề hoá và chỉ chứa các mệnh đề(propositions).Ta có thể chuyển KB sử dụng FOL về dạng chỉ chứa cácmệnh đề và áp dụng kỹ thuật phân giải để thu về lời giải

Suy diễn Suy diễn với logic Luật suy diễn Mệnh đề hoá KB Lập luận tiến Lập luận lùi

AI++ - Hoá NGUYEN @ 2006 74

VVấấnn đđềề vvớớii mmệệnhnh đđềề hohoáá KBKB

Mệnh đề hoá KB có thể sinh ra những câu không thíchđáng.

VD, từ:∀x King(x) ∧ Greedy(x) ⇒ Evil(x)

King(John)

∀y Greedy(y)

Brother(Richard,John)

Khi mệnh đề hoá, sẽ sinh ra những sự kiện không thích đáng nhưGreedy(Richard) (vì Richard không greedy)

Suy diễn Suy diễn với logic Luật suy diễn Mệnh đề hoá KB Lập luận tiến Lập luận lùi

AI++ - Hoá NGUYEN @ 2006 75

HHợợpp nhnhấấtt -- UnificationUnification

Ta có thể tiến hành suy diễn, cần hợp nhất câu bởi cácphép thế θVD: King(x) và Greedy(x) thoả mãn King(John) vàGreedy(y)

θ = {x/John,y/John}

Unify(α,β) = θ if αθ = βθα β θ

Knows(John,x) Knows(John,Jane)

Knows(John,x) Knows(y,OJ)

Knows(John,x) Knows(y,Mother(y))

Knows(John,x) Knows(x,OJ)

Loại bỏ việc trùng tên biến giữa các câu, v.d. Knows(z,OJ)

{x/Jane}}

{x/OJ,y/John}}

{y/John,x/Mother(John)}}

{fail}

Suy diễn Suy diễn với logic Luật suy diễn Mệnh đề hoá KB Lập luận tiến Lập luận lùi

AI++ - Hoá NGUYEN @ 2006 76

UnificationUnification

Để hợp nhất Knows(John,x) và Knows(y,z), ta có:θ = {y/John, x/z } hoặc θ = {y/John, x/John, z/John}

MGU(most general unifier): phép thế mang lại sự ít hạn chếnhất cho các biến.MGU = { y/John, x/z }

Suy diễn Suy diễn với logic Luật suy diễn Mệnh đề hoá KB Lập luận tiến Lập luận lùi

AI++ - Hoá NGUYEN @ 2006 77

LuLuậậtt Modus Ponens Modus Ponens ttổổngng ququáátt

Generalized Modus Ponens(GMP) p1', p2', … , pn', ( p1 ∧ p2 ∧ … ∧ pn ⇒q)

VD:

p1' = King(John) p1 = King(x)

p2' = Greedy(y) p2 = Greedy(x)

θ = {x/John,y/John} q = Evil(x)

qθ = Evil(John)

where pi'θ = piθ for all i

Suy diễn Suy diễn với logic Luật suy diễn Mệnh đề hoá KB Lập luận tiến Lập luận lùi

AI++ - Hoá NGUYEN @ 2006 78

TTíínhnh đđúúngng đđắắnn ccủủaa GMPGMP

Cần chứng minh:p1', …, pn', (p1 ∧ … ∧ pn ⇒ q) ╞ qθ

với pi'θ = piθ cho mọi i

Bổ đề: với mọi câu p, ta có p ╞ pθ

1. (p1 ∧ … ∧ pn ⇒ q) ╞ (p1 ∧ … ∧ pn ⇒ q)θ = (p1θ ∧ … ∧ pnθ⇒ qθ)

2. p1', …, pn' ╞ p1' ∧ … ∧ pn' ╞ p1'θ ∧ … ∧ pn'θ3. Từ 1 và 2, ta có qθ được suy ra từ luật Modus Ponens

chuẩn.

Suy diễn Suy diễn với logic Luật suy diễn Mệnh đề hoá KB Lập luận tiến Lập luận lùi

AI++ - Hoá NGUYEN @ 2006 79

LLậậpp luluậậnn titiếếnn –– forwardforward chainingchaining

Cơ chế: để có được một sự kiện F, ta xem xét các luật trong

KB mà tiền đề đã được biết cho đến khi thu được F hoặc

không còn luật nào có thể triển khai được nữa.

Lập luận tiến: quá trình suy ra các sự kiện mới từ các sự

kiện đã có - Lập luận điều khiển bởi dữ liệu (data-driven

reasoning)

Suy diễn Suy diễn với logic Luật suy diễn Mệnh đề hoá KB Lập luận tiến Lập luận lùi

AI++ - Hoá NGUYEN @ 2006 80

VVíí ddụụ

Cho: FB = { B, C}, RB gồm các luật:1. Nếu B AND D AND E thì F

2. Nếu G AND D thì A

3. Nếu C AND F thì A

4. Nếu B thì X

5. Nếu D thì E

6. Nếu X AND A thì H

7. Nếu C thì D

8. Nếu X AND C thì A

9. Nếu X AND B thì D

Cần tìm H

Áp dụng giải thuật lập luận tiến, ta sẽ thu được FB = { B, C, X, D, E, F, A, H}

Suy diễn Suy diễn với logic Luật suy diễn Mệnh đề hoá KB Lập luận tiến Lập luận lùi

AI++ - Hoá NGUYEN @ 2006 81

NhNhậậnn xxéétt

Giải thuật lập luận tiến luôn kết thúc.

Nếu ta sử dụng những luật mà phần kết luận có thể có

những sự kiện phủ định thì ta có thể gặp 4 trường hợp sau:

1. F∈ FB: sự kiện được xác định.

2. ¬F ∈ FB : phủ định của sự kiện được khẳng định.

3. Cả F lẫn ¬F đều không có trong FB không thể đưa ra kết luận gì

về F

4. F và ¬F ∈ FB : KB không chặt chẽ

Giải thuật có thể được áp dụng để sinh ra tất các các sự

kiện kéo theo từ bộ luật có được.

Suy diễn Suy diễn với logic Luật suy diễn Mệnh đề hoá KB Lập luận tiến Lập luận lùi

AI++ - Hoá NGUYEN @ 2006 82

LLậậpp luluậậnn llùùii –– backwardbackward chainingchaining

Cơ chế: đi từ sự kiện cần khẳng định để tìm ra sự khẳngđịnh thông qua phần kết luận của các luật

VD: Cho: FB = { B, C}, RB gồm các luật:1. Nếu B AND D AND E thì F2. Nếu G AND D thì A3. Nếu C AND F thì A4. Nếu B thì X5. Nếu D thì E6. Nếu X AND A thì H7. Nếu C thì D8. Nếu X AND C thì A9. Nếu X AND B thì D

Cần tìm HLập luận lùi: lập luận hướng mục đích (goal orientedreasoning)

Suy diễn Suy diễn với logic Luật suy diễn Mệnh đề hoá KB Lập luận tiến Lập luận lùi

AI++ - Hoá NGUYEN @ 2006 83

NhNhậậnn xxéétt

Nếu các sự kiến đã xét không thể nhớ hết (chẳng hạn vìchúng quá nhiều), lập luận lùi có thể rơi vào vòng lặp.

Cần sự can thiệp từ phía người dùng.VD: Với tập luật:

1. Nếu B và C thì A

2. Nếu D và E thì A

3. Nếu F và G thì A

4. Nếu I và J thì G

5. Nếu J thì ¬E

Giả sử các sự kiện B, D, F, I có thể yêu cầu người dùng cho phép thêmvao FB hay không. FB khởi tạo có J và cần tìm A.

Suy diễn Suy diễn với logic Luật suy diễn Mệnh đề hoá KB Lập luận tiến Lập luận lùi

AI++ - Hoá NGUYEN @ 2006 84

NhNhậậnn xxéétt

Những câu hỏi thích đáng cần hỏi người dùng ?

"B có đúng không" không phải là câu thích đáng vì khôngcó luật nào đưa ra C (sự kiện không thể hỏi)

"D có đúng không" cũng không phải là câu thích đáng, vì D chỉ dùng với E mà E là sai.

"F có đúng không" là một câu cần thiết, vì G còn là có thểsuy diễn được.

Nếu câu trả lời là không thì câu "I có đúng không" sẽ trởnên không thích đáng.

Suy diễn Suy diễn với logic Luật suy diễn Mệnh đề hoá KB Lập luận tiến Lập luận lùi

AI++ - Hoá NGUYEN @ 2006 85

LLậậpp luluậậnn kkếếtt hhợợpp

Lập luận kết hợp giữa lập luận tiến và lùi :

Vào : F (sự kiện cần phải xác định)

BEGIN

WHILE F chưa xác định DO

- Suy diễn tìm tất cả các sự kiện có thể có bằng lập luận tiến

- Tìm những sự kiện mà có thể suy diễn

- Tìm một câu hỏi thích đáng để hỏi người dùng và thêm câu trả lời vàotập sự kiện

END_WHILE

END

Suy diễn Suy diễn với logic Luật suy diễn Mệnh đề hoá KB Lập luận tiến Lập luận lùi

AI++ - Hoá NGUYEN @ 2006 86

ỨỨngng ddụụngng suysuy didiễễnn

Hệ chuyên gia: cơ sở tri thức + mô tơ suy diễn

VD: MyCin: hơn 300 luật…

Hệ thống dựa trên tri thức

Hệ thống chứng minh tự động…

Suy diễn Suy diễn với logic Luật suy diễn Mệnh đề hoá KB Lập luận tiến Lập luận lùi