Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 46 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
46
Dung lượng
450,98 KB
Nội dung
Trí Tuệ Nhân Tạo Nguyễn Nhật Quang quangnn-fit@mail.hut.edu.vn Viện Cơng nghệ Thông tin Truyền thông Trường Đại học Bách Khoa Hà Nội Năm học 2009-2010 Nội dung môn học: Giới thiệu Trí tuệ nhân tạo Tác tử Giải vấn đề: Tìm kiếm, Thỏa mãn ràng buộc Logic suy diễn Lập trình logic Prolog (Dựa giảng csc.villanova.edu/ dmatusze/8310summer2001/index.html/prolog1.ppt) csc.villanova.edu/~dmatusze/8310summer2001/index.html/prolog1.ppt) Biểu diễn tri thức Suy diễn với tri thức không chắn Học máy Lập kế ế hoặch Trí tuệ nhân tạo Lập p trình logic g Một chương trình logic biểu diễn sở tri thức (một tập mệnh đề logic) Các mệnh đề logic phải dạng chuẩn Horn p1 ∧ p2 ∧ … ∧ pn → q1 ∨ q2 ∨ … ∨ qm Nếu n=0, m=1, q1 kiện (fact) Nếu n≥1, m m=1, 1, (p1 ∧ p2 ∧ … ∧ pn → q1) luật (rule) Nếu n≥1, m>1, tương đương với luật (p1 ∧ p2 ∧ … ∧ pn ∧ ¬q1 ∧ ¬q2 ∧ … ∧ ¬qm-1 → qm) Trí tuệ nhân tạo Ngơn g ngữ g lập p trình logic g Prologg Prolog = Programming Logic Một ột ngôn gô ngữ gữ lập ập ttrình logic og c sử dụ dụng g ất p phổ ổb biến ế Trong ngôn ngữ Prolog Các luật kiện tiên đề (axioms) Câ hỏi, Câu hỏi đ đ đưa người ời dùng, dù định đị h lý cần ầ chứng minh i h Prolog áp dụng phương pháp suy diễn quay lui (Back Chaining) để chứng minh Để chứng minh P(a) Tìm kiện P(t) luật (Q1 ∧ Q2 ∧ … ∧ Qn → P(t)) Nếu tìm kiện P(t), P(t) thay tt=a a, định lý chứng minh Nếu tìm luật (Q1 ∧ Q2 ∧ … ∧ Qn → P(t)), cần tiếp tục chứng minh giả thiết Nếu có biến, tìm cách thay biến giá trị, cho đích chứng minh thỏa mãn Trí tuệ nhân tạo Phần mềm SWI-Prologg SWI-Prolog cơng cụ lập trình Prolog sử dụng phổ biến, biến có phiên chạy hệ điều hành Windows, MacOS, Linux Bản quyền sử dụng phần mềm SWI SWI-Prolog Prolog miễn phí cho mục đích học tập nghiên cứu SWI Prolog tải từ địa chỉ: http://www.swi SWI-Prolog http://www.swiprolog.org/ Trí tuệ nhân tạo Ví dụ chươngg trình Prologg (1) Suy diễn logic T ấ Tuấn ột sinh i h viên iê ủ HUT Mọi sinh viên HUT học mơn Tốn rời rạc Tuấn có học mơn Tốn rời rạc khơng? Chương trình Prolog studentHUT(tuan) studentHUT(tuan) studDiscretMath(X) :- studentHUT(X) ?- studDiscretMath(tuan) ( ) Trí tuệ nhân tạo Ví dụ chươngg trình Prologg (2) Sự kiện: Tuấn sinh viên HUT Luật: Mọi sinh viên HUT học mơn Tốn rời rạc studDiscretMath(X) :: studentHUT(X) studentHUT(X) Câu hỏi (của người dùng): Tuấn có học mơn Tốn rời rạc khơng? studentHUT(tuan) t d tHUT(t ) ?- studDiscretMath(tuan) Các câu hỏi có dạng kiện Trí tuệ nhân tạo Chạy chươngg trình Prologg (1) Sử dụng chương trình soạn thảo (vd: Notepad) để tạo chương trình (cơ sở tri thức) Ghi lại chương trình tập tin định dạng văn (text only) sử dụng tập tin pl Ví dụ chương trình Prolog: studentHUT(tuan) studDiscretMath(X) :- studentHUT(X) Trí tuệ nhân tạo Chạy chươngg trình Prologg (2) Để chạy chương trình Prolog: (Với hệ điều điề hành hà h Windows), Wi d ) kích kí h đúp đú lên lê tập tậ tin ti chương h tì h trình, Chạy phần mềm SWI-Prolog, tham vấn (consult) tới tập tin chương h tì h trình ?- consult('C:\\PrologPrograms\\myPrologProg.pl') Sau đó, đưa câu hỏi mong muốn ?- studDiscretMath(tuan) Prolog o og đưa a câu ttrả ả lời Yes Trí tuệ nhân tạo Prologg – Chứngg minh định lý Prolog trả giá trị Yes có nghĩa “chứng minh được” Prolog P l trả t ả ề giá iá trị t ị No N có ó nghĩa hĩ “không “khô thể chứng minh” ? stud_DiscretMath(hai) ?stud DiscretMath(hai) No Closed world assumption: Chương trình Prolog biết tất ả ề hữ gìì ó cần ầ biết Prolog cung cấp giá trị cho biến cần, để hồn chỉnh chứng minh ?- stud_DiscretMath(X) X = tuan Trí tuệ nhân tạo 10