1. Trang chủ
  2. » Văn Hóa - Nghệ Thuật

Tài liệu PROLOG FAST FOOT pdf

31 1,1K 8

Đ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

Thông tin cơ bản

Định dạng
Số trang 31
Dung lượng 468,44 KB

Nội dung

Prolog Fast Foot Prolog Fast Foot . NỘI DUNG HƯỚNG DẪN 2 ĐẶC ĐIỂM CỦA PROLOG 5 CẤU TRÚC CỦA CHƯƠNG TRÌNH PROLOG 6 DOMAINS 7 PREDICATES 9 CLAUSES 10 GOAL 13 ĐẶC ĐIỂM CỦA BIẾN 14 BẢN CHẤT ĐỆ QUI 15 KIỂU DANH SÁCH 17 NGUYÊN TẮC TRẢ LỜI GOAL 20 CƠ CHẾ HOẠT ĐỘNG CỦA PROLOG 23 LẬP TRÌNH LUẬN LÝ − MÔ TẢ 30 LẬP TRÌNH LUẬN LÝ − ĐỆ QUI 34 TẠP LUẬN 45 LỊCH SỬ 59 TÀI LIỆU THAM KHẢO 62  HƯỚNG DẪN Thức ăn nhanh giúp người ta nhanh chân hơn trong việc giành lấy cơ hội. Nhưng cũng rất nguy hiểm - nếu lạm dụng. Hãy thận trọng và ý thức. Mọi tấm huy chương đều có mặt trái. Nhưng tốt nhất là đừng lật mặt trái của nó lên. Hãy nhớ rằng ngôn ngữ là phương tiện, bất kể nó là loại ngôn ngữ nào. Nội dung truyền đạt quan trọng hơn là cách thức truyền đạt. Tài liệu này cung cấp một số kiến thức cơ bản, giúp cho người đọc hiểu được quan điểm lập trình luận lý (logic programming). Cung cách lập trình này có khác với loại lập trình cấu trúc thường gặp trong các ngôn ngữ Pascal, C, Fortran, … . Vì vậy việc làm quen với một phong cách mới cần phải có thời gian. Thời gian để quên cái cũ. Do đó tài liệu này cố tránh né việc trình bày dưới góc độ cấu trúc. Tuy nhiên cũng đã có đôi lúc vì sự cám dỗ của người đọc mà lại sa đà vào. Và cũng hy vọng rằng, đây cũng như là sự cám dỗ cuối cùng của chúa. Một bài toán từ khi đặt ra cho đến khi có được lời giải phải thực hiện một khối lượng công việc là M. Dù bài toán được giải bằng ngôn ngữ lập trình nào thì khối lượng vẫn là M. Ai sẽ đảm nhiệm khối lượng này ?. Người lập trình đương nhiên sẽ phải đảm nhiệm một phần, phần còn lại do hệ thống gánh vác. Như vậy người lập trình trong hệ thống phải biết phần việc nào mình làm và phần việc nào mình không làm. Đây chính là hành vi cần phải nhận thức. Sự phân chia này sẽ rất khác nhau ở các ngôn ngữ lập trình. Người lập trình trong hệ thống Prolog luôn là một ông chủ nhàn hạ vì hệ thống Prolog là một người thích ôm lấy công việc. Còn lập trình cấu trúc thì không như vậy, hệ thống của các ngôn ngữ cấu trúc luôn “thụ động”. Nó chỉ làm việc với sự chỉ bảo của người lập trình. N.T. Son 1 2 N.T. Son Vậy người lập trình Prolog sẽ làm gì ?. Họ chỉ cần mô tả bài toán theo qui định của luận lý (logic). Nghĩa là dùng các câu khai báo để mô tả Prolog Fast Foot Prolog Fast Foot . bài toán. Ngoài ra không cần làm thêm gì cả, hệ thống Prolog sẽ đảm nhiệm hết phần còn lại. Phải quên đi một thói quen là một hành vi thường gặp trong các hoạt động nghiên cứu khoa học. Đây chính là xóa bỏ định kiến. Học tập ngoài mặt tốt của nó còn có một khía cạnh khác là hình thành định kiến. Như vậy định kiến là điều không thể tránh khỏi trong quá trình học tập. Vì vậy hãy chọn lựa phương pháp học tập sao cho phần định kiến được giảm thiểu. Lập trình luận lý sẽ phần nào giúp chúng ta giải quyết được bài toán này. N.T. Son 3 4 N.T. Son Prolog Fast Foot Prolog Fast Foot . ĐẶC ĐIỂM CỦA PROLOG • Prolog không phân biệt giữa khái niệm Data và Program như trong Pascal. • Sức mạnh của Prolog là đệ qui. • Toàn bộ chương trình được xem như một cơ sở tri thức (knowledgebase). • Chương trình Prolog là một tập hợp các luật (rules). • Prolog là ngôn ngữ được thiết kế chủ yếu cho các suy luận, không coi trọng tính toán. • Kowalski nói Algorithm = logic+control. Logic là phát biểu về cái gì bài toán phải giải quyết. Control phát biểu về làm thế nào bài toán được giải quyết. • Người lập trình luận lý chỉ phải thực hiện phần logic còn phần control hệ thống sẽ đảm nhiệm. CẤU TRÚC CỦA CHƯƠNG TRÌNH PROLOG • Domains, Predicates, Clauses, Goal. • Hệ thống prolog cung cấp sẵn một số tập hợp để người lập trình sử dụng : Integer, Char, Real, Symbol, String, … . • Hệ thống prolog cũng cung cấp cho người lập trình khả năng tạo ra các tập hợp mới phù hợp với bài toán cần giải. • Domains là nơi để người lập trình định nghĩa những tập hợp mới (hoặc đặt tên lại). • Predicates là phần khai báo các quan hệ giữa các domains. • Clauses là phần định nghĩa các quan hệ đã khai báo trong phần predicates. • Clauses gồm các rule. Rule được dùng để biểu diễn cho câu khai báo có dạng điều kiện - if nguyên_nhân then hậu_quả. Nếu rule không có nguyên nhân thì được gọi là sự kiện (fact). Do đó fact là hậu quả tất yếu xảy ra không không cần một nguyên nhân nào. • Goal là phần đặt câu hỏi đối với hệ thống. DOMAINS • Nơi tạo tập hợp mới có cùng kiểu với tập hợp có sẵn. Thí dụ : Domains Tên = symbol Tuổi = integer NghềNghiệp = symbol Chú thích : 1. Một số kiểu (tập hợp) cơ bản : integer : kiểu số nguyên, N.T. Son 5 6 N.T. Son Prolog Fast Foot Prolog Fast Foot . real : kiểu số thực, char : kiểu ký tự, string : kiểu chuỗi, gồm chuỗi các ký tự có chiều dài ‘tuỳ ý’ được đặt giữa hai dấu nháy. symbol : là kiểu gồm những ký hiệu, mỗi ký hiệu có chiều dài tối đa 255 ký tự, bắt đầu bằng ký tự thường. 2. Dù miền Tên và miền NghềNghiệp có cùng kiểu symbol nhưng chúng không so sánh hoặc đồng nhất được với nhau. Nói chung là các tập hợp trong Domains nếu không cùng tên thì sẽ không tương thích với nhau. • Tạo tập hợp là tích các tập hợp. Thí dụ : Domains Ấnphẩm = Tạpchí(symbol, symbol) TiểuSử = LýLịch(symbol, integer, symbol, symbol) • Tạo tập hợp là hội các tập hợp. Thí dụ : Domains Tên = symbol Tàiliệu = Book(Tên,Tên) or Magazine(Tên,Tên) Dấu = âm ; dương ; Kýsố(integer) Hội hai tập hợp bằng ký hiệu OR hoặc CHẤM PHẨY. Tập hợp thành phần của hội có thể là tập hợp có một phần tử. Thí dụ âm, dương là hai tập hợp có một phần tử. N.T. Son 7 8 N.T. Son Prolog Fast Foot Prolog Fast Foot . PREDICATES • Tạo quan hệ giữa các tập hợp. Thí dụ : Domains Tên = symbol Nghềnghiệp = string Tuổi = integer Predicates Lýlịch(Tên, Tuổi, Nghềnghiệp) • Tạo quan hệ trống. Thí dụ : Predicates Repeat() Khôngmàu Repeat và Khôngmàu là tên của hai quan hệ. Tập hợp mà nó quan hệ là tập trống. Quan hệ Repeat() còn có thể viết là Repeat. Quan hệ Khôngmàu có thể viết là Khôngmàu(). CLAUSES • Biến và hằng Turbo Prolog qui định biến có ký tự bắt đầu là ký tự in (upppercase) hoặc ký tự gạch dưới (underscore). Hằng có ký tự bắt đầu là ký tự thường (lowercase). Thí dụ : Minh, X, Người, _minh, _x, _người … là 6 biến. minh, x, người, … là 3 hằng. • Fact Fact là một quan hệ trên các tập hợp đã xác định (có sẵn hoặc đã được xác định trong Domains). Đây là cách xác định tập hợp bằng liệt kê. Thí dụ : Predicates Chơi(symbol, symbol) Biết(symbol, symbol) Clauses Chơi(sơ, piano). Chơi(kính, violon). Chơi(tân, keyboard). Chơi(trang, guitare). Chơi(sơ, guitare). Chơi(kính, piano). Biết(sơ, vẽtranh). Biết(kính, làmthơ). Biết(kính, điêukhắc). Biết(kính, soạnnhạc). • Rule Rule là quan hệ được định nghĩa từ nhiều quan hệ khác. Đây là cách xác định tập hợp bằng phương pháp trưng tính. N.T. Son 9 10 N.T. Son Prolog Fast Foot Prolog Fast Foot . Rule có dạng của câu điều kiện, nghĩa là gồm nguyên nhân và hậu quả (nguyên nhân → hậu quả). Tuy nhiên Rule là câu điều kiện được trình bày theo dạng thức : Hậu quả ← nguyên nhân. Các dạng sau đây tương đương : Hậu quả ← Nguyên nhân hay Hậu quả if Nguyên nhân hay Hậu quả :- Nguyên nhân. Do đó Fact có thể được xem là một loại rule đặc biệt - rule không có điều kiện. Nếu mệnh đề nguyên nhân gồm 3 mệnh đề nguyên nhân ngnh1, ngnh2 và ngnh3 kết hợp lại thì được biểu diễn như sau : Nguyên nhân = Ngnh1 and Ngnh2 and Ngnh3. Hoặc Nguyên nhân = Ngnh1, Ngnh2, Ngnh3. Thí dụ : Predicates Chơi(symbol, symbol) /* định nghĩa ở trên */ Biết(symbol, symbol) /* định nghĩa ở trên */ Đanăng(symbol) Clauses Đanăng(X) :- Biết(X, Y), Chơi(X, Z). Một học sinh X đa năng nếu biết ít nhất một môn nghệ thuật Y và chơi được một môn thể thao Z. Thí dụ : Chuyển đổi tam đoạn luận sang Prolog : Mọi người đều phải chết. Socrates là người. Vậy Socrates phải chết. Predicates Làngười(symbol) Chết(symbol) Clauses Làngười(socrates). Chết(Ai) :- Làngười(Ai). Nhận xét : Một predicates được định nghĩa trong clauses bằng nhiều fact hoặc nhiều rule hoặc kết hợp vừa fact vừa rule. Thí dụ : Xác định tập hợp A = {1,2,3,4,5,6,8,10,12,14, … } Predicates PtửA(integer) Clauses N.T. Son 11 12 N.T. Son PtửA(1). Prolog Fast Foot Prolog Fast Foot . PtửA(3). PtửA(5). PtửA(X) :- (X mod 2) = 0. Vị từ PtửA được định nghĩa gồm 3 fact và 1 rule. GOAL • Goal là nơi đặt câu hỏi với hệ thống và hệ thống sẽ cho câu trả lời. • Goal gồm một hay nhiều predicates cùng với thông số. Nếu goal gồm nhiều thành phần thì mỗi thành phần được gọi là subgoal. Thí dụ : Cho hệ thống tam đoạn luận như thí dụ ở trên. Khi đó có thể đặt 1 trong 5 câu hỏi sau : Goal Chết(Ai). Goal Chết(socates). Goal Làngười(Ai). Goal Làngười(socrates). Goal Chết(Ai), Làngười(socrates). Bốn Goal đầu có 1 subgoal. Nhưng goal cuối có 2 subgoal là Chết(Ai) và Làngười(socrates). ĐẶC ĐIỂM CỦA BIẾN TRONG TURBO PROLOG • Biến trong mỗi clauses phải xuất hiện ít nhất 2 lần. • Nếu biến chỉ xuất hiện một lần trong clauses thì phải thay nó bằng biến rỗng (anonymous). Ngoài ra một thông số nào của vị từ trong clauses mà ta không quan tâm cũng có thể thay nó bằng biến rỗng. • Biến rỗng được biểu diễn bằng ký hiệu gạch dưới _ (underscore). Thí dụ : Clauses Đanăng(X) :- Biết(X, Y), Chơi(X, Z). Biến Y và Z chỉ xuất hiện 1 lần nên phải đổi thành biến rỗng. Do đó : Clauses Đanăng(X) :- Biết(X, _ ), Chơi(X, _ ). • Các trạng thái của biến là : tự do (free), bị trói (bound), được cởi (unbound). Các trạng thái này do hệ thống thực hiện. Người lập trình không có bất kỳ tác động nào lên biến để thay đổi trạng thái. Do đó Prolog không có hành động gán (assignment) giá trị cho biến như trong ngôn ngữ Pascal. N.T. Son 13 14 N.T. Son Prolog Fast Foot Prolog Fast Foot . BẢN CHẤT ĐỆ QUI Vì Prolog không phân biệt giữa dữ liệu và chương trình như Pascal nên vấn đề đệ qui được thực hiện cả trong domains và clauses. Nền tảng toán học của đệ qui là định lý truy chứng. Việc áp dụng đệ qui trong Prolog sử dụng cả 2 dạng truy chứng. Dạng 1 : P 1 . P n → P n+1 . Dạng 2 : P 1 . P m → P n+1 , với m ∈ [1, n]. Trong thực tế mệnh đề P 1 của truy chứng tương ứng với một tập hợp các mệnh đề sự kiện (fact). Mệnh đề P n → P n+1 cũng tương ứng với một tập hợp các mệnh đề qui luật (rule). • Đệ qui trong khai báo Domains Thí dụ : Domains Cây = Tree(symbol, Cây); Trống Miền Cây là hội của hai tập hợp. Tập hợp thứ nhất chỉ có một phần tử là Trống và tập hợp thứ hai là tập hợp đệ qui Tree(symbol, Cây). • Đệ qui trong phần clauses Thí dụ : Tính giai thừa của một số nguyên. Giai thừa của 5 là 5 ! = 1×2×3×4×5. Như vậy để tính giai thừa của 5 thì tính giai thừa của 4 (=5–1). Sau đó lấy kết quả nhân với 5. Vậy 5 ! = 4! × 5. Predicates Giaithừa (real, real) Clauses Giaithừa(1,1). Giaithừa(N,T) :- M=N–1, Giaithừa(M,S), T=S*N. Tập hợp thứ nhất gồm một mệnh đề sự kiện là Giaithừa(1,1) và tập hợp một mệnh đề đệ qui là Giaithừa(N,T) :- M=N –1, Giaithừa(M, S), T = S*N. N.T. Son 15 16 N.T. Son Prolog Fast Foot Prolog Fast Foot . KIỂU DANH SÁCH Đây là một loại tập hợp có bản chất đệ qui. Do đó những thao tác trên danh sách cần khai thác tính đệ qui triệt để. • Danh sách là một loại tập hợp có phần tử là chuỗi các phần tử của một tập hợp trong miền Domains. • Kiểu danh sách của Prolog được định nghĩa bằng cách thêm ký tự * vào tên kiểu phần tử. Thí dụ : Domains Họtên = symbol DsSV = Họtên* DsSố = integer* DsTên = symbol* DsNghềnghiệp = string* DsSV là danh sách các phần tử mà mỗi phần tử có kiểu Hotên. DsSố là danh sách các phần tử mà mỗi phần tử là số nguyên. • Dạng thức của một biến kiểu danh sách : − Liệt kê : các phần tử của danh sách đặt cách nhau bằng dấu phẩy. Tất cả đặt ở giữa 2 dấu móc vuông. Thí dụ : Domains Dssố = integer* Biến X có kiểu Dssố là một danh sách 4 số nguyên 1, 2, 3, 4, được viết như sau : X = [1,2,3,4] − Đệ qui : Danh sách được biểu diễn gồm 2 phần, phần Head gồm 1 phần tử đầu của biểu diễn liệt kê và phần Tail gồm những phần tử còn lại của biểu diễn liệt kê. Phần Tail được biểu diễn bằng một danh sách liệt kê khác. Head và Tail đặt cách nhau dấu sổ xuống. Head và Tail được đặt trong dấu móc vuông. Thí dụ : Domains Dssố = integer* Biến X có kiểu Dssố là một danh sách 4 số nguyên 1, 2, 3, 4, được viết như sau : X = [1|[2,3,4]]. − Một số danh sách đặc biệt : a. Danh sách trống [] có head và tail không được định nghĩa. b. Danh sách [1,2,3,4] = [1|[2,3,4]] có head là 1, tail là [2,3,4]. c. Danh sách [1] = [1|[] ] có head là 1, tail là danh sách trống []. N.T. Son 17 18 N.T. Son Prolog Fast Foot Prolog Fast Foot . d. Danh sách [[1,2,3], [2,3,4,5], [6]] = [[1,2,3]|[[2,3,4,5], [6]]] có head là [1,2,3] và tail là [[2,3,4,5],[6]]. NGUYÊN TẮC TRẢ LỜI GOAL CỦA PROLOG • Tuần tự từ trên xuống : hệ thống sẽ trả lời cho subgoal đầu tiên, kế đến là subgoal thứ 2, thứ 3, … cho đến subgoal cuối cùng. N.T. Son 19 20 N.T. Son • So trùng (matching) : để trả lời cho từng subgoal hệ thống dò subgoal tuần tự theo từng dòng trong clauses. Việc dò tìm sẽ dừng khi subgoal trùng với một dòng clause nào đó, nếu không trùng thì dò tiếp cho đến dòng cuối cùng của clauses. Thí dụ : Tháp Hà Nội. Đừng cố tìm hiểu ý nghĩa của chương trình này, chỉ cần quan sát hình thức của nó. Các ký hiệu ! và nl là các subgoal. Domains Cột = symbol Predicates Hanoi Hanoi(integer) Dời(integer, Cột, Cột, Cột) Msg(Cột, Cột) Clauses Hanoi :- Hanoi(5). (1) Hanoi(N) :- Dời(N, trái, giữa, phải). (2) Dời(1, A, _, C) :- Msg(A, C), !. (3) Dời(N, A, B, C) :- (4) M = N-1, Dời(M, A, C, B), Msg(A, C), !, Dời(M, B, A, C). Msg(Loc1, Loc2) :- (5) write("Dời đĩa từ ", Loc1, " vào", Loc2), nl, !. Goal Hanoi. Mô tả cấu trúc chương trình : 1. Sử dụng 2 miền : Cột và integer. 2. Khai báo 4 vị từ : vị từ Hànội không có thông số, vị từ Hànội có 1 thông số, vị từ Dời có 4 thông số, vị từ Msg có 2 thông số. 3. Phần định nghĩa của các vị từ trong clauses : vị từ Hànội có 1 mệnh đề, vị từ Hànội(_) có 1 mệnh đề, [...]... | Z], E, Y) :- Reverse3(Z, [X|E], Y) d Sublist(X, PXS) :- Append(PX, _ , PXS), Append(_ , X, PX) N.T Son 39 40 N.T Son Prolog Fast Foot Prolog Fast Foot Chú thích : Tạo một vị từ trung gian Reverse3 có thêm một thông số trung gian N.T Son 41 42 N.T Son Prolog Fast Foot Prolog Fast Foot Ta có ý định nghĩa Append với dạng (in, in, out) nhưng các TẠP LUẬN • Trật tự của các rule trong phần clauses sẽ... N.T Son Prolog Fast Foot Dạng Clausal form : A1 ∨ … ∨ An ← B1 ∧ … ∧ Bm Prolog Fast Foot 8 Turbo Prolog Reference guide V.2.0 ? Borland 9 Nguyễn Thanh Sơn Luận lý toán học 1996 NXB KHKT Thí dụ : Đàn_ông(X) ∨ Đàn_Bà(X) ← Người(X) 10 Nguyễn Thanh Sơn Lý thuyết tập hợp 1999 NXB KHKT Horn clause là dạng Clausal form với 0 ≤ n ≤ 1 Mathematical Logic First Order Logic PROLOG FAST FOOT Clausal Form TÀI LIỆU... X là phần tử của L[n] thì X là phần tử của L[n] Về việc nhận dạng các câu khai báo có thể đọc thêm ở tài liệu thêm phần tử A ở đầu tham khảo [9] Về các kỹ thuật chuyển một câu sang dạng truy chứng có thể xem phụ chương 4 của tài liệu tham khảo [10] N.T Son 31 32 N.T Son Prolog Fast Foot Prolog Fast Foot = Nếu X là phần tử của L[n] thì X là phần tử của b Pn = X[n] là prefix của L [A|L[n]] c X[0] =... Prolog programming for artificial intelligence 1990 AddisonWesley Publishing 6 Deyi Li A prolog database 1984 John Wiley & Sons 7 Keith Weiskamp, Terry Hengl Artificial intelligence programming with turbo prolog 1988 John Wiley &Sons, Inc N.T Son 57 58 N.T Son Prolog Fast Foot Prolog Fast Foot FFLIB’s 1999 Tủ sách FAST- FOOT : Chủ biên Nguyễn Thanh Sơn Mọi liên hệ xin theo các địa chỉ sau : Nguyễn Thanh... Repeat :- Repeat Chọn Nhập_kýtự :- Clauses Repeat Côngviệc(1) :- write(“Nhập số liệu ) Côngviệc(2) :- write(“Hiệu chỉnh số liệu ) Côngviệc(3) :- write(“Thoát”) Write(X), Côngviệc(_) :- Chọn N.T Son Readchar(X), Char_int(X,13) 53 54 N.T Son Prolog Fast Foot Prolog Fast Foot LỊCH SỬ [1] số ý tưởng sau này được sử dụng trong Prolog 1969 C 1 Logic được phát sinh ở Hylạp trước Thiên Chúa giáng sinh Green... các địa chỉ sau : Nguyễn Thanh Sơn, Cử nhân giáo khoa Toán Giảng viên Khoa CNTT Email : ntson@dit.hcmut.edu.vn Tel : 8658689 Khoa CNTT Đại Học Kỹ Thuật N.T Son 59 60 N.T Son Prolog Fast Foot Prolog Fast Foot N T SON PROLOG FAST FOOT FFLIB’s 1999 N.T Son 61 62 N.T Son .. .Prolog Fast Foot Prolog Fast Foot vị từ Dời(_,_,_,_) có 2 mệnh đề, vị từ Msg(_,_) có 1 mệnh đề CƠ CHẾ HOẠT ĐỘNG CỦA PROLOG • Đồng nhất (unification) Khi so trùng subgoal với các Để thỏa mãn Goal Hanoi, hệ thống sẽ dò tuần tự từ mệnh đề đầu tiên đến mệnh đề thứ 5 trong phần clauses dòng của clauses hệ thống prolog áp dụng cơ chế đồng Goal Hanoi trùng với... subgoal diên tả điều kiện Nhận xét : có trong mệnh đề đó Sự khác biệt giữa rule của Prolog và if … then của Pascal Thí dụ : If Điềukiện then Kếtquả = lệnh điều kiện của Pascal N.T Son 23 24 N.T Son Prolog Fast Foot Prolog Fast Foot − Bị trói (bound) : Khi biến được đồng nhất thì nó bị Kếtquả if Điềukiện = Rule của Prolog Hệ thống Pascal khi thực hiện lệnh if-then sẽ kiểm tra điều buộc giá trị được... thực hiện được nhờ cơ Đanăng(X) chế thối lui của Prolog Để goal thỏa thì 2 subgoal Biết(X,_) và Chơi(X,_) phải • Các trạng thái của biến thỏa − Tự do (free) : Trước khi bị buộc thì biến được gọi là tự do N.T Son 25 26 N.T Son Prolog Fast Foot Prolog Fast Foot Subgoal Biết(X, _ ) sẽ được duyệt trên clauses và sẽ lấy bất lợi hơn là thuận lợi Lập trình prolog có thể hình dung giá trị là Biết(tân, vẽtranh)... X) Do đó điều kiện của mệnh đề 3 Msg(A, C) cũng Prolog sẽ trả lời bằng cách dò trên 3 mệnh đề của phải được thỏa phần clauses Quá trình này diễn tiến cho đến khi không còn điều Với mệnh đề 1 Chếtạo(minh, tênlửa) : kiện nào đòi hỏi thì hệ thống dừng tên vị từ phù hợp cùng là Chếtạo, cùng có 2 thông số, N.T Son 21 22 N.T Son Prolog Fast Foot Prolog Fast Foot nhưng thông số thứ 1 của goal là thư khác với . Prolog Fast Foot Prolog Fast Foot . ĐẶC ĐIỂM CỦA PROLOG • Prolog không phân biệt giữa khái niệm Data và Program như trong Pascal. • Sức mạnh của Prolog. Prolog Fast Foot Prolog Fast Foot . NỘI DUNG HƯỚNG DẪN 2 ĐẶC ĐIỂM CỦA PROLOG 5 CẤU TRÚC CỦA CHƯƠNG TRÌNH PROLOG 6 DOMAINS 7

Ngày đăng: 16/01/2014, 22:20

TỪ KHÓA LIÊN QUAN

w