1. Trang chủ
  2. » Thể loại khác

Logic vị từ Giảng viên: Nguyễn Văn Hòa Khoa CNTT

41 13 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Chương 7: Logic vị từ Giảng viên: Nguyễn Văn Hòa Khoa CNTT - ĐH An Giang Nội dung       Logic bậc (First Order Logic – FOL) Cú pháp ngữ nghĩa Các lượng từ Hợp giải với logic vị từ Dạng mệnh đề Lập trình logic Turbo Prolog Tại sử dụng logic vị từ    Logic mệnh đề xử lý kiện, khẳng định có giá trị sai Logic vị từ (logic bậc nhất) cho phép nói đối tượng, tính chất chúng, quan hệ chúng, phát biểu hay tất đối tượng mà khơng cần liệt kê chương trình Các câu biểu diễn logic mệnh đề biểu diễn logic vị từ  Socrates người nên socrates phải chết Cú pháp logic vị từ  Term (Tham chiếu đối tượng)     Ký kiệu bằng: Lan, Tuan, DHAG Biến: x, y, a Ký hiệu hàm áp dụng cho hay nhiều term: f(x), tuoi(Lan), sinh-vien(Tuan) Câu:     Một ký hiệu vi từ (predicate) áp dụng cho hay nhiều term: thuoc(Lan, DHAG), la-anh-em(Lan,Tuan)… t1=t2 Nếu x biến  câu x , x  câu Các câu tạo từ câu khác với phép nối câu    → Ngữ nghĩa logic vị từ   Có tập ngầm định U đối tượng mà câu FOL phát biểu đó, U gọi tập phát biểu Term tham chiếu đến đối tượng U     Hằng tham chiếu đến đối tượng cụ thể Biến tham chiếu đến đối tượng (cần lượng từ hóa) Hàm tham chiếu đối đối tượng thông qua đối tượng khác Câu phát biểu đối tượng   Vị từ thể tính chất, quan hệ đối tượng Lượng từ giúp phát biểu số lượng đối tượng: ,  Lượng từ với  Cú pháp:  Sinh viên CNTT thơng minh x sinhvien(x, CNTT) → thongminh(x)    x P miềm phát biểu U, P với x thuộc U Nghĩa tương đương với phép nối liền () đối tượng U sinhvien(Lan, CNTT) → thongminh(Lan)  sinhvien(Tuan, CNTT) → thongminh(Tuan)  sinhvien(Nam, CNTT) → thongminh(Nam) Lượng từ tồn  Cú pháp:  Sinh viên CNTT thơng minh  x sinhvien(x, CNTT) → thongminh(x)    x P miềm phát biểu U, P với x thuộc U Nghĩa tương đương với phép nối rời () đối tượng U sinhvien(Lan, CNTT) → thongminh(Lan)  sinhvien(Tuan, CNTT) → thongminh(Tuan)  sinhvien(Nam, CNTT) → thongminh(Nam) Viết FOL      Mèo động vật có vú ∀x.Mèo(x) → Động-vật-có-vú(x) Lan sinh viên học giỏi Sinh-viên(Lan) ∧ Học-giỏi(Lan) Cháu anh em ∀x,y.Cháu(x,y) ↔ ∃z.(Anh-em(z,y) ∧ Con(x,z)) Bà ngoại mẹ mẹ ∀x, ∃y Bà-ngoại(x,y) ↔ ∃z.(Mẹ(x,z) ∧ Mẹ(z,y)) Mọi người yêu ∀x, ∃y.Yêu(x, y) Chứng minh suy dẫn     Suy dẫn xuất pháp từ khái niệm tổng quát phép “kéo theo” Khơng thể tính tốn trực tiếp từ cách liệt kê Do ta phải làm theo cách chứng minh Trong FOL, KB suy dẫn S có tập hữu hạn chứng minh s từ KB Hợp giải bậc x , P(x) → Q(x) P(A) Q(A) Tam đoạn luận: Mọi người chết Socrate người Hai vấn đề đặt ra: Socrate chết Biến đổi FOL thành dạng x, P(x)  Q(x) P(A) Q(A) Tương đương theo mệnh đề (clausal form) Hợp giải biến định nghĩa phép Suy P(A)  Q(A) P(A) Q(A) Thay A vào x, dẫn Hợp giải mệnh đề 10 Phần goal     Bao gồm mục tiêu mà ta yêu cầu Prolog xác định tìm kết Khơng bắt buộc phải có Nếu viết sẵn CT gọi goal nội; Nếu khơng, chạy CT Prolog yêu cầu ta nhập goal vào, goal ngoại VD   Constants Pi = 3.141592653 27 predicates ktnt(integer,integer) tieptuc(integer,real,real,integer) clauses ktnt(1,_):-write("Day la so nguyen to") ktnt(2,_):-write("Day la so nguyen to") ktnt(N,M):-N1=N-1, N2=M/N1,N3=round(M/N1),tieptuc(N1,N2,N3,M) tieptuc(_,N2,N3,_):-N2=N3, write("Day khong phai la so nguyen to") tieptuc(N1,N2,N3,M):-N2N3,ktnt(N1,M) goal clearwindow,write("Nhap N:"),readint(N),ktnt(N,N) 28 Các nguyên tắc NN Prolog   Có nguyên tắc: đồng quay lui Đồng    Một quan hệ đồng với quan hệ tên, số lượng tham số, đại lượng đồng theo cặp Một đồng với Một biến đồng với nhận ln giá trị 29 Các nguyên tắc NN Prolog (tt)  Nguyên tắc quay lui (backtract, backtracting)    Cần chứng minh Goal : :- g1, g2, …, gj-1, gj, …, gn Kiểm chứng từ trái sang phải, đến gi sai, hệ thống cần phải qui lui lại gi-1 Man(x), Ví dụ child(Y,X)? man(son) man(an) child(hung,an) goal: man(X), child(Y,X)? 30 Cây hợp giải  Xét mệnh đề sau sister(X,Y) :- child(X,P),child(Y,P), woman(X), XY woman(hien) child(son,lan) child(hien,lan) child(son,hung) child(hien,hung) goal: sister(hien, F)? 31 32 Cây hợp giải   Trong ví dụ trên, tìm thấy câu trả lời giống hệt thưc đường khác (cha mẹ) Để tránh điều đó, viết lại sister(X,Y) :- mother(M,X), father(F,X), mother(M,Y), father(F,Y), woman(X), XY woman(hien) mother(lan,son) mother(lan,hien) father(hung,son) father(hung,hien) goal: sister(hien, P) 33 34 Bộ ký tự từ khóa  Prolog dùng ký tự sau:     Các chữ chữ số (A – Z, a – z, – 9); Các toán tử (+, -, *, /, ) Các ký hiệu đặc biệt Một vài từ khóa    Trace: Khi có từ khố đầu chương trình, chương trình thực bước để theo dõi Fail: Khi ta dùng goal nội, để nhận tất kết chạy goal nội, ta dùng toán tử Fail ! hay gọi nhát cắt, nhận kết từ goal ngoại, ta dùng ký hiệu ! 35 Kiểu liệu chuẩn      Kiểu prolog định nghĩa sẵn: char,integer, real string symbol char: ký tự, phải nằm dấu nháy: „a‟, „#‟ integer: -32768 đến 32767 real: số thực string: chuỗi ký tự, chuỗi ký tự nằm dấu nháy kép; ”prolog” 36 Kiểu người dùng định nghĩa  Kiểu mẩu tin  Cú pháp = tên mẩu tin (danh sách kiểu phần tử) Domains ten, tac_gia, nha_xb, dia_chi = string nam, thang, so_luong = integer dien_tich = real nam_xb = nxb(thang, nam) 37 Kỹ thuật đệ quy    Sử dụng đệ quy vị từ định nghĩa nhờ vào vị từ Trường hợp dừng thể kiện VD Predicates Facto (integer, integer) Clauses Facto(0,1):- ! Facto(N, Y) :- N>0,M = N–1, facto(M, Z), Y=N*Z 38 Các hàm xuất nhập chuẩn  Xuất hình    write( Arg1, Arg2, … ,Argn) in hình giá trị đối số writef(đinh_dang, Arg1, Arg2, … ,Argn) in hình giá trị đối số theo định_dạng Các định_dạng      “%d”: In số thập phân bình thường; đối số phải char integer “%c”: Đối số số integer, in ký tự có mã Ascci đối số đó, chẳng hạn writef(“%c”,65) A “%e”: In số thực dạng lũy thừa 10 “%x”: In số Hexa; đối số phải char integer “%s”: In chuỗi symbol 39 Các hàm xuất nhập chuẩn (tt)  Nhập vào từ bàn phím     Readln(X): Nhập chuỗi ký tự vào biến X ReadInt(X): Nhập số nguyên vào biến X ReadReal(X): Nhập số thực vào biến X ReadChar(X): Nhập vào ký tự vào biến X 40 Link demo & software  Clause Deduction   SWI-Prolog   AISpace www.swi-prolog.org GNU-Prolog  gnu-prolog.inria.fr 41 ... dung       Logic bậc (First Order Logic – FOL) Cú pháp ngữ nghĩa Các lượng từ Hợp giải với logic vị từ Dạng mệnh đề Lập trình logic Turbo Prolog Tại sử dụng logic vị từ    Logic mệnh đề... để mô tả kiện luật Sử dụng vị từ khai báo phần predicates Cú pháp () () ……… (

Ngày đăng: 10/05/2021, 00:38

Xem thêm:

TỪ KHÓA LIÊN QUAN

w