SlideShare a Scribd company logo
1
Lập trình logic và ràng buộc
(Logic Programming and Constraint)
Ts. Lê Mạnh Hải
Khoa CNTT,
ĐH Kỹ thuật Công nghệ TP HCM
2
Mở đầu
I Mục đích môn học:
• Giới thiệu một công cụ hỗ trợ nghiên cứu trí tuệ nhân tạo:
ngôn ngữ lập trình SWI-Prolog.
• Một số ứng dụng trong xử lý ngôn ngữ tự nhiên.
II. Thời gian và nội dung: 30 tiết lý thuyết + 15 tiết bài tập
• Tổng quan về Prolog(3 tiết)
• Kỹ thuật lập trình Prolog(9 tiết)
• Logic và CSDL(3 tiết)
• Logic và Hệ chuyên gia(3 tiết)
• Logic và ngữ pháp (6 tiết)
• Logic và lập trình ràng buộc (6 tiết)
• Bài tập và kiểm tra giữa kỳ (15 tiết)
3
III Giáo trình và tài liệu tham khảo
• Bài giảng của Lê Mạnh Hải (Lưu hành nội bộ)
• James Lu, Jerud J. Mead. Prolog A Tutorial
Introduction. Computer Science Department
Bucknell University
• Ulf Nilsson and Jan Maluszynsky. LOGIC,
PROGRAMMING AND PROLOG (2ED). John
Wiley & Sons Ltd. 2000.
• Phan Huy Khánh. Lập trình logic trong Prolog. Nhà
xuất bản ĐH QG Hà nội. 2004
4
IV. Đánh giá:
• Điểm giữa kỳ (30%): Bài kiểm tra 60 phút trên PC
• Thi kết thúc môn (70%): Bài kiểm tra 90 phút
V. Giáo viên:
• Ts. Lê Mạnh Hải. Khoa CNTT HUTECH.
• email: lm.hai@hutech.edu.vn
• Website: giangvien.hutech.edu.vn
Bài 1: Giới thiệu về ngôn ngữ
Prolog
• Mục tiêu:
– Lược sử Prolog và các dòng sản phẩm
– Cài đặt SWI-Prolog và SWI-Prolog editor
– Các khái niệm cơ bản và ví dụ
5
Lược sử Prolog và các dòng
Theo Wikipedia.org
• “Prolog là một ngôn ngữ lập trình. "lập trình theo lô gích".
Xuất hiện từ năm 1972 , mục tiêu của Prolog là giúp người
dùng mô tả lại bài toán trên ngôn ngữ của logic, dựa trên đó,
máy tính sẽ tiến hành suy diễn tự động dựa vào những cơ chế
suy diễn có sẵn (hợp nhất, quay lui và tìm kiếm theo chiều
sâu) để tìm câu trả lời cho người dùng.
• Cú pháp và ngữ nghĩa của Prolog đơn giản và sáng sủa, nó
được người Nhật coi là một trong những nền tảng để xây
dựng máy tính thế hệ thứ năm mà ở đó, thay vì phải mô tả
cách giải quyết một bài toán trên máy tính, con người chỉ cần
mô tả bài toán và máy tính sẽ hỗ trợ họ nốt phần còn lại.
6
Ý tưởng mới trong các ứng dụng
cũ
• Prolog được sử dụng nhiều trong các ứng dụng của trí tuệ
nhân tạo (AI) và ngôn ngữ học trong khoa học máy tính
(đặc biệt là trong ngành xử lý ngôn ngữ tự nhiên NLP vì
đây là mục tiêu thiết kế ban đầu của nó).”
• Các lĩnh vực khác: theorem proving,[8] expert systems,[9]
games, automated answering systems, ontologies and
sophisticated control systems.
• Cơ sở của Prolog là hàm mệnh đề (propositional
Function) và vị từ logic (logic predicate) . Xem thêm Toán
rời rạc.
7
8
• Cơ sở lý thuyết của AI
– AI  Phát triển các chương trình có khả năng suy
luận, dựa trên lý thuyết toán học mệnh đề
– Suy luận giúp chương trình AI biết được tính
đúng/sai của một vấn đề nào đó.
– Không quan trọng vấn đề đó được thực hiện như thế
nào.
• Phép toán vị từ được hiện thực bằng ngôn ngữ
lập trình trên máy tính PROLOG
Suy luận logic
9
• Giáo sư môn logic học nhận ra mình bị mất kính. Ông bèn ngồi
suy luận để xem đối tượng nào đã lấy kính của mình.
"Ai lấy cắp? Đương nhiên là kẻ cắp rồi. Và tên này có thể bị
cận thị, có thể không. Có thể hắn đã có kính, có thể chưa có.
Nhưng nếu chưa có làm sao hắn có thể trông thấy kính của
mình? Điều này chứng tỏ hắn không bị cận thị. Mà không bị
cận thị thì đâu cần tới kính.
Từ những giả thuyết trên, có thể kết luận là không ai lấy kính
của mình cả. Chắc chắn nó nằm ở đâu đây thôi.
Nhưng mình đã nhìn khắp rồi, không thấy gì cả. Mà mình nhìn
được như vậy có nghĩa là mình đang đeo kính. Ôi may quá!!!".
• Một anh chàng lập trình viên cùng người yêu đi du lịch
nước ngoài. Trong đoàn còn có một cặp người Anh và một
cặp người Mỹ nên họ nói với nhau bằng tiếng Anh.
Một hôm cả đoàn ngồi ăn bữa sáng.
Anh chồng người Anh nói với vợ:
"Can you pass the honey, Honey?" (Đưa anh ít mật, em yêu)
Anh chồng người Mỹ nói với vợ:
"Do you mind passing the sugar, Sugar?" (Chuyển cho anh
chút đường, em yêu)
Chàng lập trình viên tỏ ra không thua kém:
"Pass me the bacon, Pig!". (Lấy cho anh thịt lợn muối, Lợn!)
10
Mệnh đề
• Bầu trời xanh
• Loan thích Long
• Tâm yêu Tâm (!???)
• Mệnh đề không biểu diễn được biểu thức X=Y+3 vì X và Y
chưa có giá trị, nên không thể kết luận đúng sai.
• Những sự tương đương sau không biểu diễn được bằng logic
mệnh đề
"Không phải tất cả bánh đều ăn được" và "Chỉ một số bánh ăn
được“
Ứng dụng phép tam đoạn luận: A v B, !A => B
Có tôi với anh mà tôi mất đồng hồ, mà tôi thì không lấy của tôi
rồi!
11
Logic vị từ (Predicate)
• Predicate là vị từ mô tả tính chất của những
đối tượng, hoặc quan hệ giữa chúng
Phát biểu x > 3 có 2 phần:
– Biến x
– Tính chất của biến x (> 3), được gọi là vị từ
(predicate)
• Ký hiệu phát biểu P(x)
• ⇒ P(2), P(4) là mệnh đề. Mệnh đề đầu sai.
12
Tổng quát
• các chương trình Prolog đều yêu cầu vị từ logic ở phần đầu của
một mệnh đề Horn là một vị từ dương
13
Các dòng Prolog
• SWI – Prolog: Free but strong!
• ISO Prolog,
• Edinburgh Prolog
• Quintus
• SICStus
• GNU Prolog
• Ciao prolog
• … 14
SWI-Prolog
• Tất cả free trên http://www.swi-prolog.org/
• Hãy cài lên máy tính của bạn để thực hành
15
Ví dụ đầu tiên
1 ?- atom(foot).
true.
2 ?- atom(3).
false.
3 ?- atom('foot').
true.
4 ?- atom("foot").
false.
5 ?- blue(sky).
ERROR: toplevel: Undefined procedure: blue/1 (DWIM
could not correct goal) 16
Các vị từ có sẵn
• atom
• member and so on…
6 ?- member(3,[1,2,3]).
true.
7 ?- member(X,[1,2,3]).
X = 1 ;
X = 2 ;
X = 3.
• Làm sao tìm các hàm build-in ?
• Help - Manual
17
18
Các quy ước
• Hằng số: 3.2
• Hằng chuỗi: an, binh, ‘An’, ‘Binh’
• Hằng logic: true, false.
• Biến: bắt đầu bằng chữ hoa hoặc ‘_’. Biến
nặc danh _ được dùng khi không cần truy
cập
19
20
Các mệnh đề của người sử dụng: chương trình prolog.
8 ?- edit(file(vd)).
Chép đoạn mã sau vào file vd
likes(mary,food).
likes(mary,wine).
likes(john,wine).
likes(john,mary).
Đóng file để lưu. Load file và query
14 ?- [vd].
% vd compiled 0.00 sec, 1 clauses
true.
15 ?- likes(mary,food).
true .
16 ?- likes(mary,john).
false.
Ví dụ 2
luong(an,300).
luong(binh,400).
luong(hai,500).
luong(tuan,400).
luong(long,450).
luongcaohon(X,Y):-luong(X,Z),luong(Y,T),Z>T.
luongbang(X,Y):- luong(X,Z),luong(Y,T),Z=T.
25 ?- luongcaohon(X,tuan).
X = hai ;
X = long.
21
Ví dụ 3: tính giai thừa
factorial(0,1).
factorial(N,F) :- N>0, N1 is N-1,
factorial(N1,F1), F is N * F1.
31 ?- factorial(5,W).
W = 120 .
22
23
Bài tập
1. viết chương trình tính số fibonacci
2. Tìm hiểu vị từ setof
Ý nghĩa?
Ví dụ?
Bài kế tiếp
Kỹ thuật lập trình Prolog
– Đệ quy: tháp Hà nội
– Xử lý danh sách . Quicksort, Mergesort
– Bó mệnh đề.
– Ngữ nghĩa và thứ tự
– Xử lý file.
24

More Related Content

Similar to LaptrinhLogic1-Prolog.ppt

Thiết kế bài giảng điện tử elearning
Thiết kế bài giảng điện tử elearningThiết kế bài giảng điện tử elearning
Thiết kế bài giảng điện tử elearning
Bùi Việt Hà
 
Học lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trình
Học lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trìnhHọc lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trình
Học lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trình
CodeGym Đà Nẵng
 
Sáng kiến kinh nghiệm hướng dẫn học sinh lập trình ứng dụng học tập cho thiết...
Sáng kiến kinh nghiệm hướng dẫn học sinh lập trình ứng dụng học tập cho thiết...Sáng kiến kinh nghiệm hướng dẫn học sinh lập trình ứng dụng học tập cho thiết...
Sáng kiến kinh nghiệm hướng dẫn học sinh lập trình ứng dụng học tập cho thiết...
jackjohn45
 
Giới thiệu dự án
Giới thiệu dự ánGiới thiệu dự án
Giới thiệu dự án
Bảo Nguyễn
 
Ky thuat-lap-trinh 13754342619
Ky thuat-lap-trinh 13754342619Ky thuat-lap-trinh 13754342619
Ky thuat-lap-trinh 13754342619Ky Nguyen Ad
 
Ung dung xu ly anh trong thuc te voi thu vien open cv
Ung dung xu ly anh trong thuc te voi thu vien open cvUng dung xu ly anh trong thuc te voi thu vien open cv
Ung dung xu ly anh trong thuc te voi thu vien open cvTrinh Giang
 
DCT119C1_3119411001_Dư-Hoàng-An_TL.pdf
DCT119C1_3119411001_Dư-Hoàng-An_TL.pdfDCT119C1_3119411001_Dư-Hoàng-An_TL.pdf
DCT119C1_3119411001_Dư-Hoàng-An_TL.pdf
DHongAn2
 
đạI học đà nẵngkhoa công nghệ thông tin và truyền thông báo cáo đồ án cơ sở 5...
đạI học đà nẵngkhoa công nghệ thông tin và truyền thông báo cáo đồ án cơ sở 5...đạI học đà nẵngkhoa công nghệ thông tin và truyền thông báo cáo đồ án cơ sở 5...
đạI học đà nẵngkhoa công nghệ thông tin và truyền thông báo cáo đồ án cơ sở 5...
jackjohn45
 
Hướng dẫn bộ kĩ sư robot chuyên sâu Lego Education
Hướng dẫn bộ kĩ sư robot chuyên sâu Lego EducationHướng dẫn bộ kĩ sư robot chuyên sâu Lego Education
Hướng dẫn bộ kĩ sư robot chuyên sâu Lego Education
Cat Van Khoi
 
3 module3 lienket_4_module4_anphamhs_review01
3 module3 lienket_4_module4_anphamhs_review013 module3 lienket_4_module4_anphamhs_review01
3 module3 lienket_4_module4_anphamhs_review01gvhoangphuong
 
3 module3 lienket_4_module4_anphamhs_review
3 module3 lienket_4_module4_anphamhs_review3 module3 lienket_4_module4_anphamhs_review
3 module3 lienket_4_module4_anphamhs_reviewgvhoangphuong
 
Plotly
PlotlyPlotly
DCCTK45_Lập Trình HĐT.pdf
DCCTK45_Lập Trình HĐT.pdfDCCTK45_Lập Trình HĐT.pdf
DCCTK45_Lập Trình HĐT.pdf
trucmt2000
 
Ky thuat lap trinh
Ky thuat lap trinhKy thuat lap trinh
Ky thuat lap trinh
QaPhy-Duong MTE
 
3 module3 lienket
3 module3 lienket3 module3 lienket
3 module3 lienkethoangtv
 
Ung dung xu ly anh trong thuc te voi thu vien open cv
Ung dung xu ly anh trong thuc te voi thu vien open cvUng dung xu ly anh trong thuc te voi thu vien open cv
Ung dung xu ly anh trong thuc te voi thu vien open cvNguyen An
 
Ke hoach bai giang
Ke hoach bai giangKe hoach bai giang
Ke hoach bai giangChau Nguyen
 

Similar to LaptrinhLogic1-Prolog.ppt (20)

Thiết kế bài giảng điện tử elearning
Thiết kế bài giảng điện tử elearningThiết kế bài giảng điện tử elearning
Thiết kế bài giảng điện tử elearning
 
Học lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trình
Học lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trìnhHọc lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trình
Học lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trình
 
Sáng kiến kinh nghiệm hướng dẫn học sinh lập trình ứng dụng học tập cho thiết...
Sáng kiến kinh nghiệm hướng dẫn học sinh lập trình ứng dụng học tập cho thiết...Sáng kiến kinh nghiệm hướng dẫn học sinh lập trình ứng dụng học tập cho thiết...
Sáng kiến kinh nghiệm hướng dẫn học sinh lập trình ứng dụng học tập cho thiết...
 
Giới thiệu dự án
Giới thiệu dự ánGiới thiệu dự án
Giới thiệu dự án
 
Ky thuat-lap-trinh 13754342619
Ky thuat-lap-trinh 13754342619Ky thuat-lap-trinh 13754342619
Ky thuat-lap-trinh 13754342619
 
Ung dung xu ly anh trong thuc te voi thu vien open cv
Ung dung xu ly anh trong thuc te voi thu vien open cvUng dung xu ly anh trong thuc te voi thu vien open cv
Ung dung xu ly anh trong thuc te voi thu vien open cv
 
DCT119C1_3119411001_Dư-Hoàng-An_TL.pdf
DCT119C1_3119411001_Dư-Hoàng-An_TL.pdfDCT119C1_3119411001_Dư-Hoàng-An_TL.pdf
DCT119C1_3119411001_Dư-Hoàng-An_TL.pdf
 
đạI học đà nẵngkhoa công nghệ thông tin và truyền thông báo cáo đồ án cơ sở 5...
đạI học đà nẵngkhoa công nghệ thông tin và truyền thông báo cáo đồ án cơ sở 5...đạI học đà nẵngkhoa công nghệ thông tin và truyền thông báo cáo đồ án cơ sở 5...
đạI học đà nẵngkhoa công nghệ thông tin và truyền thông báo cáo đồ án cơ sở 5...
 
Hướng dẫn bộ kĩ sư robot chuyên sâu Lego Education
Hướng dẫn bộ kĩ sư robot chuyên sâu Lego EducationHướng dẫn bộ kĩ sư robot chuyên sâu Lego Education
Hướng dẫn bộ kĩ sư robot chuyên sâu Lego Education
 
3 module3 lienket_4_module4_anphamhs_review01
3 module3 lienket_4_module4_anphamhs_review013 module3 lienket_4_module4_anphamhs_review01
3 module3 lienket_4_module4_anphamhs_review01
 
3 module3 lienket_4_module4_anphamhs_review
3 module3 lienket_4_module4_anphamhs_review3 module3 lienket_4_module4_anphamhs_review
3 module3 lienket_4_module4_anphamhs_review
 
Plotly
PlotlyPlotly
Plotly
 
DCCTK45_Lập Trình HĐT.pdf
DCCTK45_Lập Trình HĐT.pdfDCCTK45_Lập Trình HĐT.pdf
DCCTK45_Lập Trình HĐT.pdf
 
Ky thuat lap trinh
Ky thuat lap trinhKy thuat lap trinh
Ky thuat lap trinh
 
Ktlt
KtltKtlt
Ktlt
 
đánh giá
đánh giáđánh giá
đánh giá
 
3 module3 lienket
3 module3 lienket3 module3 lienket
3 module3 lienket
 
Khbd
KhbdKhbd
Khbd
 
Ung dung xu ly anh trong thuc te voi thu vien open cv
Ung dung xu ly anh trong thuc te voi thu vien open cvUng dung xu ly anh trong thuc te voi thu vien open cv
Ung dung xu ly anh trong thuc te voi thu vien open cv
 
Ke hoach bai giang
Ke hoach bai giangKe hoach bai giang
Ke hoach bai giang
 

Recently uploaded

Halloween vocabulary for kids in primary school
Halloween vocabulary for kids in primary schoolHalloween vocabulary for kids in primary school
Halloween vocabulary for kids in primary school
AnhPhm265031
 
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
khanhthy3000
 
tiếng việt dành cho sinh viên ngoại ngữ h
tiếng việt dành cho sinh viên ngoại ngữ htiếng việt dành cho sinh viên ngoại ngữ h
tiếng việt dành cho sinh viên ngoại ngữ h
huynhanhthu082007
 
BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...
BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...
BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...
Nguyen Thanh Tu Collection
 
DANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdf
DANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdfDANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdf
DANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdf
thanhluan21
 
BÁO CÁO CUỐI KỲ PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG - NHÓM 7.docx
BÁO CÁO CUỐI KỲ PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG - NHÓM 7.docxBÁO CÁO CUỐI KỲ PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG - NHÓM 7.docx
BÁO CÁO CUỐI KỲ PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG - NHÓM 7.docx
HngL891608
 
trắc nhiệm ký sinh.docxddddddddddddddddd
trắc nhiệm ký sinh.docxdddddddddddddddddtrắc nhiệm ký sinh.docxddddddddddddddddd
trắc nhiệm ký sinh.docxddddddddddddddddd
my21xn0084
 
bài dự thi chính luận 2024 đảng chọn lọc.docx
bài dự thi chính luận 2024 đảng chọn lọc.docxbài dự thi chính luận 2024 đảng chọn lọc.docx
bài dự thi chính luận 2024 đảng chọn lọc.docx
HiYnThTh
 
YHocData.com-bộ-câu-hỏi-mô-phôi.pdf đầy đủ
YHocData.com-bộ-câu-hỏi-mô-phôi.pdf đầy đủYHocData.com-bộ-câu-hỏi-mô-phôi.pdf đầy đủ
YHocData.com-bộ-câu-hỏi-mô-phôi.pdf đầy đủ
duyanh05052004
 
Smartbiz_He thong MES nganh may mac_2024june
Smartbiz_He thong MES nganh may mac_2024juneSmartbiz_He thong MES nganh may mac_2024june
Smartbiz_He thong MES nganh may mac_2024june
SmartBiz
 
[NBV]-CHUYÊN ĐỀ 3. GTLN-GTNN CỦA HÀM SỐ (CÓ ĐÁP ÁN CHI TIẾT).pdf
[NBV]-CHUYÊN ĐỀ 3. GTLN-GTNN CỦA HÀM SỐ (CÓ ĐÁP ÁN CHI TIẾT).pdf[NBV]-CHUYÊN ĐỀ 3. GTLN-GTNN CỦA HÀM SỐ (CÓ ĐÁP ÁN CHI TIẾT).pdf
[NBV]-CHUYÊN ĐỀ 3. GTLN-GTNN CỦA HÀM SỐ (CÓ ĐÁP ÁN CHI TIẾT).pdf
NamNguynHi23
 
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
Nguyen Thanh Tu Collection
 
Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...
Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...
Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...
Bồi Dưỡng HSG Toán Lớp 3
 
THONG BAO nop ho so xet tuyen TS6 24-25.pdf
THONG BAO nop ho so xet tuyen TS6 24-25.pdfTHONG BAO nop ho so xet tuyen TS6 24-25.pdf
THONG BAO nop ho so xet tuyen TS6 24-25.pdf
QucHHunhnh
 
Biểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang Thiều
Biểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang ThiềuBiểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang Thiều
Biểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang Thiều
lamluanvan.net Viết thuê luận văn
 
Từ vay mượn trong tiếng Anh trên các phương tiện tin đại chúng
Từ vay mượn trong tiếng Anh trên các phương tiện tin đại chúngTừ vay mượn trong tiếng Anh trên các phương tiện tin đại chúng
Từ vay mượn trong tiếng Anh trên các phương tiện tin đại chúng
MinhSangPhmHunh
 
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...
Nguyen Thanh Tu Collection
 
PLĐC-chương 1 (1).ppt của trường ĐH Ngoại thương
PLĐC-chương 1 (1).ppt của trường  ĐH Ngoại thươngPLĐC-chương 1 (1).ppt của trường  ĐH Ngoại thương
PLĐC-chương 1 (1).ppt của trường ĐH Ngoại thương
hieutrinhvan27052005
 
Từ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdf
Từ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdfTừ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdf
Từ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdf
Man_Ebook
 

Recently uploaded (19)

Halloween vocabulary for kids in primary school
Halloween vocabulary for kids in primary schoolHalloween vocabulary for kids in primary school
Halloween vocabulary for kids in primary school
 
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
 
tiếng việt dành cho sinh viên ngoại ngữ h
tiếng việt dành cho sinh viên ngoại ngữ htiếng việt dành cho sinh viên ngoại ngữ h
tiếng việt dành cho sinh viên ngoại ngữ h
 
BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...
BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...
BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...
 
DANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdf
DANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdfDANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdf
DANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdf
 
BÁO CÁO CUỐI KỲ PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG - NHÓM 7.docx
BÁO CÁO CUỐI KỲ PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG - NHÓM 7.docxBÁO CÁO CUỐI KỲ PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG - NHÓM 7.docx
BÁO CÁO CUỐI KỲ PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG - NHÓM 7.docx
 
trắc nhiệm ký sinh.docxddddddddddddddddd
trắc nhiệm ký sinh.docxdddddddddddddddddtrắc nhiệm ký sinh.docxddddddddddddddddd
trắc nhiệm ký sinh.docxddddddddddddddddd
 
bài dự thi chính luận 2024 đảng chọn lọc.docx
bài dự thi chính luận 2024 đảng chọn lọc.docxbài dự thi chính luận 2024 đảng chọn lọc.docx
bài dự thi chính luận 2024 đảng chọn lọc.docx
 
YHocData.com-bộ-câu-hỏi-mô-phôi.pdf đầy đủ
YHocData.com-bộ-câu-hỏi-mô-phôi.pdf đầy đủYHocData.com-bộ-câu-hỏi-mô-phôi.pdf đầy đủ
YHocData.com-bộ-câu-hỏi-mô-phôi.pdf đầy đủ
 
Smartbiz_He thong MES nganh may mac_2024june
Smartbiz_He thong MES nganh may mac_2024juneSmartbiz_He thong MES nganh may mac_2024june
Smartbiz_He thong MES nganh may mac_2024june
 
[NBV]-CHUYÊN ĐỀ 3. GTLN-GTNN CỦA HÀM SỐ (CÓ ĐÁP ÁN CHI TIẾT).pdf
[NBV]-CHUYÊN ĐỀ 3. GTLN-GTNN CỦA HÀM SỐ (CÓ ĐÁP ÁN CHI TIẾT).pdf[NBV]-CHUYÊN ĐỀ 3. GTLN-GTNN CỦA HÀM SỐ (CÓ ĐÁP ÁN CHI TIẾT).pdf
[NBV]-CHUYÊN ĐỀ 3. GTLN-GTNN CỦA HÀM SỐ (CÓ ĐÁP ÁN CHI TIẾT).pdf
 
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
 
Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...
Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...
Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...
 
THONG BAO nop ho so xet tuyen TS6 24-25.pdf
THONG BAO nop ho so xet tuyen TS6 24-25.pdfTHONG BAO nop ho so xet tuyen TS6 24-25.pdf
THONG BAO nop ho so xet tuyen TS6 24-25.pdf
 
Biểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang Thiều
Biểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang ThiềuBiểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang Thiều
Biểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang Thiều
 
Từ vay mượn trong tiếng Anh trên các phương tiện tin đại chúng
Từ vay mượn trong tiếng Anh trên các phương tiện tin đại chúngTừ vay mượn trong tiếng Anh trên các phương tiện tin đại chúng
Từ vay mượn trong tiếng Anh trên các phương tiện tin đại chúng
 
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...
 
PLĐC-chương 1 (1).ppt của trường ĐH Ngoại thương
PLĐC-chương 1 (1).ppt của trường  ĐH Ngoại thươngPLĐC-chương 1 (1).ppt của trường  ĐH Ngoại thương
PLĐC-chương 1 (1).ppt của trường ĐH Ngoại thương
 
Từ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdf
Từ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdfTừ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdf
Từ ngữ về con người và chiến tranh trong Nhật ký Đặng Thùy Trâm.pdf
 

LaptrinhLogic1-Prolog.ppt

  • 1. 1 Lập trình logic và ràng buộc (Logic Programming and Constraint) Ts. Lê Mạnh Hải Khoa CNTT, ĐH Kỹ thuật Công nghệ TP HCM
  • 2. 2 Mở đầu I Mục đích môn học: • Giới thiệu một công cụ hỗ trợ nghiên cứu trí tuệ nhân tạo: ngôn ngữ lập trình SWI-Prolog. • Một số ứng dụng trong xử lý ngôn ngữ tự nhiên. II. Thời gian và nội dung: 30 tiết lý thuyết + 15 tiết bài tập • Tổng quan về Prolog(3 tiết) • Kỹ thuật lập trình Prolog(9 tiết) • Logic và CSDL(3 tiết) • Logic và Hệ chuyên gia(3 tiết) • Logic và ngữ pháp (6 tiết) • Logic và lập trình ràng buộc (6 tiết) • Bài tập và kiểm tra giữa kỳ (15 tiết)
  • 3. 3 III Giáo trình và tài liệu tham khảo • Bài giảng của Lê Mạnh Hải (Lưu hành nội bộ) • James Lu, Jerud J. Mead. Prolog A Tutorial Introduction. Computer Science Department Bucknell University • Ulf Nilsson and Jan Maluszynsky. LOGIC, PROGRAMMING AND PROLOG (2ED). John Wiley & Sons Ltd. 2000. • Phan Huy Khánh. Lập trình logic trong Prolog. Nhà xuất bản ĐH QG Hà nội. 2004
  • 4. 4 IV. Đánh giá: • Điểm giữa kỳ (30%): Bài kiểm tra 60 phút trên PC • Thi kết thúc môn (70%): Bài kiểm tra 90 phút V. Giáo viên: • Ts. Lê Mạnh Hải. Khoa CNTT HUTECH. • email: lm.hai@hutech.edu.vn • Website: giangvien.hutech.edu.vn
  • 5. Bài 1: Giới thiệu về ngôn ngữ Prolog • Mục tiêu: – Lược sử Prolog và các dòng sản phẩm – Cài đặt SWI-Prolog và SWI-Prolog editor – Các khái niệm cơ bản và ví dụ 5
  • 6. Lược sử Prolog và các dòng Theo Wikipedia.org • “Prolog là một ngôn ngữ lập trình. "lập trình theo lô gích". Xuất hiện từ năm 1972 , mục tiêu của Prolog là giúp người dùng mô tả lại bài toán trên ngôn ngữ của logic, dựa trên đó, máy tính sẽ tiến hành suy diễn tự động dựa vào những cơ chế suy diễn có sẵn (hợp nhất, quay lui và tìm kiếm theo chiều sâu) để tìm câu trả lời cho người dùng. • Cú pháp và ngữ nghĩa của Prolog đơn giản và sáng sủa, nó được người Nhật coi là một trong những nền tảng để xây dựng máy tính thế hệ thứ năm mà ở đó, thay vì phải mô tả cách giải quyết một bài toán trên máy tính, con người chỉ cần mô tả bài toán và máy tính sẽ hỗ trợ họ nốt phần còn lại. 6
  • 7. Ý tưởng mới trong các ứng dụng cũ • Prolog được sử dụng nhiều trong các ứng dụng của trí tuệ nhân tạo (AI) và ngôn ngữ học trong khoa học máy tính (đặc biệt là trong ngành xử lý ngôn ngữ tự nhiên NLP vì đây là mục tiêu thiết kế ban đầu của nó).” • Các lĩnh vực khác: theorem proving,[8] expert systems,[9] games, automated answering systems, ontologies and sophisticated control systems. • Cơ sở của Prolog là hàm mệnh đề (propositional Function) và vị từ logic (logic predicate) . Xem thêm Toán rời rạc. 7
  • 8. 8 • Cơ sở lý thuyết của AI – AI  Phát triển các chương trình có khả năng suy luận, dựa trên lý thuyết toán học mệnh đề – Suy luận giúp chương trình AI biết được tính đúng/sai của một vấn đề nào đó. – Không quan trọng vấn đề đó được thực hiện như thế nào. • Phép toán vị từ được hiện thực bằng ngôn ngữ lập trình trên máy tính PROLOG
  • 9. Suy luận logic 9 • Giáo sư môn logic học nhận ra mình bị mất kính. Ông bèn ngồi suy luận để xem đối tượng nào đã lấy kính của mình. "Ai lấy cắp? Đương nhiên là kẻ cắp rồi. Và tên này có thể bị cận thị, có thể không. Có thể hắn đã có kính, có thể chưa có. Nhưng nếu chưa có làm sao hắn có thể trông thấy kính của mình? Điều này chứng tỏ hắn không bị cận thị. Mà không bị cận thị thì đâu cần tới kính. Từ những giả thuyết trên, có thể kết luận là không ai lấy kính của mình cả. Chắc chắn nó nằm ở đâu đây thôi. Nhưng mình đã nhìn khắp rồi, không thấy gì cả. Mà mình nhìn được như vậy có nghĩa là mình đang đeo kính. Ôi may quá!!!".
  • 10. • Một anh chàng lập trình viên cùng người yêu đi du lịch nước ngoài. Trong đoàn còn có một cặp người Anh và một cặp người Mỹ nên họ nói với nhau bằng tiếng Anh. Một hôm cả đoàn ngồi ăn bữa sáng. Anh chồng người Anh nói với vợ: "Can you pass the honey, Honey?" (Đưa anh ít mật, em yêu) Anh chồng người Mỹ nói với vợ: "Do you mind passing the sugar, Sugar?" (Chuyển cho anh chút đường, em yêu) Chàng lập trình viên tỏ ra không thua kém: "Pass me the bacon, Pig!". (Lấy cho anh thịt lợn muối, Lợn!) 10
  • 11. Mệnh đề • Bầu trời xanh • Loan thích Long • Tâm yêu Tâm (!???) • Mệnh đề không biểu diễn được biểu thức X=Y+3 vì X và Y chưa có giá trị, nên không thể kết luận đúng sai. • Những sự tương đương sau không biểu diễn được bằng logic mệnh đề "Không phải tất cả bánh đều ăn được" và "Chỉ một số bánh ăn được“ Ứng dụng phép tam đoạn luận: A v B, !A => B Có tôi với anh mà tôi mất đồng hồ, mà tôi thì không lấy của tôi rồi! 11
  • 12. Logic vị từ (Predicate) • Predicate là vị từ mô tả tính chất của những đối tượng, hoặc quan hệ giữa chúng Phát biểu x > 3 có 2 phần: – Biến x – Tính chất của biến x (> 3), được gọi là vị từ (predicate) • Ký hiệu phát biểu P(x) • ⇒ P(2), P(4) là mệnh đề. Mệnh đề đầu sai. 12
  • 13. Tổng quát • các chương trình Prolog đều yêu cầu vị từ logic ở phần đầu của một mệnh đề Horn là một vị từ dương 13
  • 14. Các dòng Prolog • SWI – Prolog: Free but strong! • ISO Prolog, • Edinburgh Prolog • Quintus • SICStus • GNU Prolog • Ciao prolog • … 14
  • 15. SWI-Prolog • Tất cả free trên http://www.swi-prolog.org/ • Hãy cài lên máy tính của bạn để thực hành 15
  • 16. Ví dụ đầu tiên 1 ?- atom(foot). true. 2 ?- atom(3). false. 3 ?- atom('foot'). true. 4 ?- atom("foot"). false. 5 ?- blue(sky). ERROR: toplevel: Undefined procedure: blue/1 (DWIM could not correct goal) 16
  • 17. Các vị từ có sẵn • atom • member and so on… 6 ?- member(3,[1,2,3]). true. 7 ?- member(X,[1,2,3]). X = 1 ; X = 2 ; X = 3. • Làm sao tìm các hàm build-in ? • Help - Manual 17
  • 18. 18
  • 19. Các quy ước • Hằng số: 3.2 • Hằng chuỗi: an, binh, ‘An’, ‘Binh’ • Hằng logic: true, false. • Biến: bắt đầu bằng chữ hoa hoặc ‘_’. Biến nặc danh _ được dùng khi không cần truy cập 19
  • 20. 20 Các mệnh đề của người sử dụng: chương trình prolog. 8 ?- edit(file(vd)). Chép đoạn mã sau vào file vd likes(mary,food). likes(mary,wine). likes(john,wine). likes(john,mary). Đóng file để lưu. Load file và query 14 ?- [vd]. % vd compiled 0.00 sec, 1 clauses true. 15 ?- likes(mary,food). true . 16 ?- likes(mary,john). false.
  • 22. Ví dụ 3: tính giai thừa factorial(0,1). factorial(N,F) :- N>0, N1 is N-1, factorial(N1,F1), F is N * F1. 31 ?- factorial(5,W). W = 120 . 22
  • 23. 23 Bài tập 1. viết chương trình tính số fibonacci 2. Tìm hiểu vị từ setof Ý nghĩa? Ví dụ?
  • 24. Bài kế tiếp Kỹ thuật lập trình Prolog – Đệ quy: tháp Hà nội – Xử lý danh sách . Quicksort, Mergesort – Bó mệnh đề. – Ngữ nghĩa và thứ tự – Xử lý file. 24