trí tuệ nhân tạo nâng cao - nnhoa.free.frnnhoa.free.fr/courses/ai++/2006/introduction.pdf ·...
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)
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