1. Trang chủ
  2. » Luận Văn - Báo Cáo

METRIC TỔNG QUÁT VÀ CHƯƠNG TRÌNH LOGIC XÁC ĐỊNH DUY NHẤT

19 433 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

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 731,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong bài báo này, chúng tôi chỉ ra cách sử dụng không gian metric tổng quát để tìm điểm bất động cho một số lớp của chương trình liên quan để hỗ trợ cho ngữ nghĩa mô hình và tìm ra mối

Trang 1

TRƯỜNG ĐẠI HỌC KHOA HỌC



-TIỂU LUẬN MÔN:

LẬP TRÌNH LOGIC

Đề tài:

METRIC TỔNG QUÁT VÀ CHƯƠNG TRÌNH

LOGIC XÁC ĐỊNH DUY NHẤT

Giáo viên hướng dẫn: PGS TS Trương Công Tuấn

Nhóm 4:

Thái Quang Hoàng Hoàng Hữu Chiến Đoàn Văn Cự Hoàng Tuấn Hưng Huyền Tôn Nữ Minh Ngọc

Lớp: Khoa Học Máy Tính K2011

Huế, 02/2013

Trang 2

MỤC LỤC

Trang

.2

Trang 3

ĐẶT VẤN ĐỀ

Sự ra đời của phủ định trong lập trình logic đã giúp tăng cường cú pháp nhưng đã tạo ra một số vấn đề về ngữ nghĩa Một số hàm vốn là đơn điệu thì trở nên không đơn điệu Trong bài báo này, chúng tôi chỉ ra cách sử dụng không gian metric tổng quát để tìm điểm bất động cho một số lớp của chương trình liên quan

để hỗ trợ cho ngữ nghĩa mô hình và tìm ra mối quan hệ giữa không gian cơ sở Phương pháp của chúng tôi cho phép phân tích các lớp của chương trình bao gồm những lớp không tuần hoàn và các loại chương trình khác và tìm ra điểm bất động

Trong những năm gần đây, vai trò của topo trong lập trình logic đã được công nhận với các ứng dụng của topo trong một số lĩnh vực của lập trình logic bao gồm: mô hình liên tục, mô hình hybrid, nguyên lý điểm bất động, lập trình logic quy nạp, kết nối giữa lập trình logic và mạng nơron và xây dựng các mô hình chuẩn của chương trình logic

Trang 4

NỘI DUNG

1 Giới thiệu

Trong nhưng năm gần đây, vài trò của topology (một môn hình học) trong lập trình logic đã được ghi nhận cùng với một số ứng dụng các phương pháp topology vào lập trình logic như: các mô hình tính toán liên tục (continuous models of computation), xây dựng các mô hình cho hệ thống Hybrid, điều biến các chương trình (modularity of programs), định lý điểm cố định, lập trình logic suy dẫn (inductive logic programming), các nghiên cứu về thuật ngữ, mối liên hệ giữa lập trình logic và mạng nơron, các ứng dụng về cơ sở dữ liệu rời rạc (disjunctive databases) và cấu trúc các mô hình lập trình logic chuẩn

(ở phần 7 của bài báo này sẽ giới thiệu ngắn về các vấn đề này) Nói riêng, các phương pháp topology có thể được sử dụng để nhận được ngữ nghĩa điểm cố định cho lập trình logic khi mà các phương pháp cũ hơn thất bại Trong bài báo này, chúng tôi khảo sát khá rộng việc sử dụng các định lý điểm cố định (mà) tận dụng các kiểu khác nhau của không gian metric tổng quát Thêm vào đó, chúng tôi cho thấy bằng cách nào các định lý này có thể được áp dụng với mục đích thiết lập các lớp chương trình được xác định duy nhất theo nghĩa mà mỗi thành viên của lớp

có một mô hình riêng

Trong tiếp cận cổ điển với ngữ nghĩa lập trình logic, người ta kết hợp mỗi toán tử chương trình xác định (dương) với một toán tử Tp được gọi là toán tử bước đơn (single-step) hay toán tử hệ quả tức thời (immediate consequence operator) Toán tử này trở thành là một toán tử liên tục Scott(Scott-continuous) Một ứng dụng về định lý điểm cố định đối với các toán tử liên tục An application of the well-known fixed-point theorem for continuous operators on complete partial orders yields a least fixed point of Tp Thông thường, người ta đưa điểm cố định ít nhất này thành ngữ nghĩa ký hiệu hay nghĩa của một chương trình dạng hỏi (program in question) và trong trường hợp nhất định, ngữ nghĩa này phù hợp tốt với cách giải thích thủ tục và logic của chương trình Tuy nhiên khi cú pháp này

mở rộng bằng cách đưa vào phủ của lớp thì nhận được các chương trình logic gọi

là chuẩn (normal), toán tử bước đơn trở thành toán tử non-monotonic và do vậy nói chung không phải là toán tử liên tục Scott (scott-continuous) Thực tế này có hệ quả không may đó là tiếp cận cổ điển mô tả ở trên sử dụng định lý điểm cố định cho ánh xạ scott-continuous là không đúng và các phương thức khác phải được tìm Đến bây giờ, các phương thức này bao gồm:

(1) sự hạn chế cú pháp của chương trình dạng hỏi,

(2) sử dụng các toán tử thay thế,

(3) việc áp dụng các định lý điểm cố định thay thế mà có sử dụng các toán

tử non-monotinic Đây là điểm sau cùng (3) mà chúng tôi đề cập ở đây

Sự khác biệt chủ yếu đối với định lý Knaster-Tarski và các hệ quả của nó, cũng như địnhlý điểm cố định đã đề cập ở trên, là định lý ánh xạ rút gọn Banach cgo các không gian metric đầy đủ Trong một vài trường hợp ví dụ đối với các

Trang 5

chương trình acyclic, định lý Banach có thể được ápdụng Tuy nhiên các chương trình acyclic là một lớp khá hạn chế và do vậy, các không gian topo mà đề cập trong lãnh vực ngữ nghĩa ký hiệu thường không phải là không gian metric Do vậy, người ta quan tâm đến việc tìm các định lý điểm cố định cho các không gian kém metric hơn theo nghĩa Topo Sự lựa chọn bao gồm: (a) Quasi-metrics (xuất hiện rất .trong lý thuýet miền) (b) Các không gian siêu metric tổng quát có các tập sắp thứ

tự từng phần tùy ý

Ở đây, chúng ta sẽ thấy định lý Priess-Crampe và Ribenboim về không gian siêu metric tổng quát, định lý điểm cố định của Matthews về không gian metric bất định và một định lý mà được nhận bới hòa trộn hai định lý trên có thể sử dụng để phân tích các chương trình logic từ quan điểm ngữ nghĩa ký hiệu Các kết quả sơ bộ về các vấn đề này đã được công bố bới một số tác giả [22 – 26] và đã được giới thiệu trong các hội nghị, hội thảo Trong bài báo này, các kết quả này được đặt trinhg bày chung và cùng với các kết quả và chứng minh mới Ở nơi các chứng minh đã có thì chỉ có các tham chiếu để bài báo là một phần sự khảo sát các kết quả của chúng tôi trong lĩnh vực này Cấu trúc của bài báo là như sau.Sau sự khởi đầu sơ bộ ở phần 2, cấu trúc cơ bản của không gian metric tổng quát đựoc giới thiẹu ở phần 3 và áp dụng cho cả chương trình acyclic và chương trình phân cấp cục bộ sử dụng định lý ánh xạ rút gọn Banach tiưpưng ứng định lý Priess-Crampe và Ribenboim Những suy nghĩ này tiếp tục được mở rộng ở phần 4 và 5 cho phép nghiên cứu lớp các chương trình rộng hơn, trứoc hết, bằng việc sử dụng không gian metric bất định và định lý điểm cố định Matthew và rồi bằng cách hòa trộn các không gian bất định và không gian siêu metric tổng quát

Trang 6

2 Mở đầu

2.1 Ngữ nghĩa mô hình hỗ trợ

Một chương trình logic (bình thường) là một tập hữu hạn các mệnh đề lượng từ quát có dạng

∀ (A ← L1∧ ∧ Ln),

Ở đây A là một nguyên tử (Atom) và tất cảc Li là các literal Người ta thường viết đơn giản

A ← L1 Ln

Chúng ta gọi A là đầu (head) của mệnh đề và L1 Ln (kýhiệu cho L1 ∧

∧ Ln) là thân của mệnh đề Mỗi Li được gọi là literal thân của mệnh đề Một chương trình được gọi là xác định (definite) nếu không có ký hiệu phủ định bên trong Nếu p là một vị từ trong P, thế thì definite của p bao gồm tất cả các mềnh đề

P phần đầu có chứa p

Với một chương trình logic P đã cho, chúng ta ký hiệu cơ sở Herbrand (là tập tất các các nguyên tử nền của ngôn ngữ bật nhất) là Bp Thông thường, các thể hiể hiện Herbrand của P sẽ được xác định bằng tập con của Bp sao cho tập lũy thừa

Ip = 2Bp là tập của tất cả các thể hiện của P Tập tất cả các thực thể nền của mỗi mệnh đề trong P được ký hiệu là ground(P) Ánh xạ mức (Level mapping) là một hàm l: Bp → α, ở đây α số thứ tự bất kỳ (đếm được): chúng ta gọi giá trị l(A) là mức nguyên tố A của Bp Chúng ta luôn cho rằng ánh xạ mức được mở rộng đến các literal nền bằng cách thiết đặt l(¬ A) = l(A) với mỗi A ∈ Bp Nếu α = ω, số thứ

tự vô hạn nhỏ nhất, chúng ta gọi l là một ánh xạ mức ω Chúng ta đồng nhất ω

bằng tập các số tự nhiên N

Một cách tiếp cận chuẩn ngữ nghĩa chương trình logic (tức là gán một nghĩa hợp lý cho một chương trình logic) là đồng nhất các mô hình của chương trình có các thuộc tính thêm vào (additional) nào đó Ở đây, chúng ta sẽ tập trung vào ngữ nghĩa mô hình hỗ trợ hay ngữ nghĩa đầy đủ Clark (Clark complete semantics) Để là điều này chúng ta định nghĩa một toán tử dãy trung gian (immediate consequence operator) hay toán tử bước đơn giản (simple step operator), Tp (đối với một chương trình logic đã cho) là một ánh xạ

Tp: Ip → Ip của các thể hiện đến các thể hiện Tp(I) là tập tất cả A ∈ Bp ở đó

có tồn tại một nguyên tố A ← L1 Ln của ground(P) với đầu A thỏa mãn I = L1∧

∧ Ln Chú ý rằng, nói chung, Tp không phải là monotonic Do vậy, các mô hình

P chính xác là các điểm đặt trước của Tp và là các thể hiện I thỏa điều kienẹ Tp(I)

⊆ I Một mô hình hỗ trợ (hay mô hình đầy đủ Clark) của P là điểm cố định của Tp

Một chương trình đầy đủ Clark đã được giới thiệu Clark đã nghiên cứu mối quan hệ giữa tính đầy đủ và thể hiện phủ định như một thất bại (failure) hữu hạn, đó là cách phủ định đã được coi như là ví dụ trong Prolog Trước hết, một chương trình P là đầy đủ nhận một tập comp(P) các công thức logic Thế rồi, các

mô hình comp(P) được coi là ngữ nghĩa khai báo của P Điều này không chỉ cho

Trang 7

thấy phủ định (như một failure) là đúng với ngữ nghĩa này mà còn cho thấy các mô hình copmp(P) có thể được nhận, bằng cách sử dụng một sự đồng nhất đơn giản, như là các điểm cố định của toán tử Tp đã giới thiệu trên

2.2 Các chương trình xác định thống nhất

Tiếp theo, chúng ta làm việc chi tiết với các lớp chương trình logic Sau

đó, chúng ta sẽ thấy rằng tất cả các chương trình này được xác định thống nhất trong đó mỗi chương trình có một có một mô hình hỗ trợ duy nhất

2.1 Định nghĩa Cho P là một chương trinhg logic và P, q là các ký hiệu có

ở trong P

1 p suy ra (refer to) q nếu có một mệnh đề trong P với p nằm ở đầu và q nằm ở thân

2 p phụ thuộc vào q nếu (p,q) thuộc bao đóng phản xạ bắc cầu của quan hệ suy ra

3 Negp biểu diễn tập các ký hiệu có từ phủ định nằm ở phần thân của P

4 Neg*

p biểu diễn tập tất cả các ký hiệu trong P mà các ký hiệu trong Negp

phụ thuộc

2.2 Định nghĩa Một chương trình trong P được gọi là Φ*-accessible nếu

và chỉ nếu tồn tại một ánh xạ mức l cho P và một mô hình I cho P thỏa mãn điều kiện sau

Với mỗi mệnh đề A ←L1, , Ln trong ground(P) chúng ta có hoặc là I ⊨ L1

∧ ∧Ln và l(A) > l(Li) với mọi i = 1, , n hoặc là tồn tại i ∈ {1, , n} sao cho I ⊭

Li và l(A) > l(Li) Hơn nữa P được gọi là Φ*

ω-accessible nếu nó là Φ*-accessible và

l có thể trở thành một ánh xạ mức ω

Tiếp theo, P được gọi là Φ-accessible nếu và chỉ nếu tồn tại một ánh xạ mức l cho P và một mô hình I cho P sao cho điều kiện sau đây thỏa Mỗi A ∈ Bp

thỏa hoặc là (i) hoặc (ii)

(i) Tồn tại mệnh đề A ←L1, , Ln trong ground(P) với đầu A sao cho I ⊨

L1 ∧ ∧Ln và l(A) > l(Li) với mọi i = 1, , n

(ii) I ⊭ A và với mỗi mệnh đề A ←L1, , Ln trong ground(P) với đầu A tồn tại i ∈ {1, , n} sao cho I ⊭ Li và l(A) > l(Li)

Ngược lại, P được gọi là Φω -accessible nếu nó là Φ-accessible và l có thể trở thành một ánh xạ mức ω

Cuối cùng một chương trình P được gọi là phân cấp cục bộ (locally hierarchical), nếu tồn tại ánh xạ mức l: Bp→ α sao cho với mỗi mệnh đề A ←L1, ,

Ln trong ground(P) và với mọi i = 1, , n chúng ta có l(A) > > l(Li) Nếu α được chọn là ω thế thì P được gọi là acyclic (xoắn)

Chúng ta chú ý rằng nếu một chương trình là Φ-accessible đối với mô hình

I và ánh xạ ức l thế thì I được hỗ trợ

Trang 8

Mối liên hệ giữa các lớp chương trình được biểu diễn bởi hình saụ

Các ví dụ

Chúng ta minh họa các định nghĩa trên bằng một chương trình ví dụ có thể chạy bằng Prolog Ngôn ngữ mà chúng ta khảo sát chứa ký hiệu hằng 0 và ký hiệu hàm s Ý nghĩa của các ký hiệu này đó là 0 thay cho số 0 tự nhiên và s thay thế cho hàm số tiếp theo của số tự nhiên Chúng ta rút gọn ặ (s(0)) ), trong đó s xuất hiện n lần bằng ký hiệu sn(0) và chúng ta xem nó như một số tự nhiên Các biến được biểu diễn bằng chữ các viết hoa như ngôn ngữ prolog

Chương trình even sau là một acyclic (xoắn):

even(0)

even(s(X)) ← ¬ even(X)

Chương trình này có thể được sử dụng để kiểm tra số hạng sn(0) có biểu diễn một số chẵn không, nhúng nó không thể dùng để sinh ra các số chẵn bởi vì lệnh ?-even(X) là sai vì đích suy dẫn ?¬even(Y) là saị Để phát sinh các số chẵn,

chúng ta sử dụng sơ đồ phát sinh và kiểm tra (generate and test scheme) như

chương trình getEven saụ

nn(s(X)) nn(X) getEven(X) nn(X), even(X)

Trong chương trình này, khẳng định nn được dùng để phát sinh tất cả các

số tự nhiên Ngay khi một các số được phát sinh Nó sẽ kiểm tra là số chẵn không bởi lời gọi đến even Chương trình gọi ?-getEven(X) phát sinh tất cả các số chẵn

Chương trình getEven cònlà một acyclic đối với ánh xạ mức ánh xạ một nguyên tủe nền thành một số tự nhiên bằng số lần xuất hiện ký hiệu hàm s trong nguyên tử Chương trình existsEven sau không phải là acyclic nhưng nó là một chương trình phân cấp cục bộ Nó bao gồm các định nghĩa even, nn và mệmh đề sau:

existsEven ← nn(X), even (X)

Trang 9

Về mặt thủ tục, lời gọi ?-existsEven là thành công nếu và chỉ nếu có tồn tại một số chẵn Ví dụ này chỉ minh họa tại sao nó được xem là một chương trình phân cấp cục bộ chứ không phải là một acyclic Với ví dụ này, khẳng định nn không thể thay thế bởi bộ phát sinh cấu trúc dữ liệu phức tạp

Chúng ta sử dụng chương trình trò chơi sau như một ví dụ về chương trình

Φ*

ω -accessible Giả sử G là một độ thị hữu hạn acyclic

win(X) move(X,Y), ¬win(Y) move(a,b) for all (a,b) ∈ G

Trò chơi là chấp nhận được và việc chứng minh dẫn đến việc chỉ ra rằng nó

là một Φ*

ω -accessible

Các chương trình acyclic luôn là kết thúc Chúng ta xem thêm một vài ví

dụ liên quan đến việc tối thiểu hóa các bước để cài đặt các hàm đệ qui riêng phần Chương trình kết quả sẽ trở thành Φ* -accessible

Giả sử g là một hàm đệ qui riêng phần (trên các số tự nhiên liên tiếp) với n+1 đối số và hàm đệ qui riêng phần f được định nghĩa bởi f (x1, ., xn) =

µy(g(x1, , xn, y) = 0), tức là f (x1, , xn) là số y tối thiểu sao cho g(x1, , xn, y) =

0 và g(x1, , xn, z) không bất định đối với z <y , nếu một số y như thế tồn tại và ngược lại g là không xác định Hơn nữa, giả sử rằng Py là một chương trình Φ* -accessible định nghĩa (n-2) khẳng định pg sao cho lời gọi ?-pg(x1, , xn,y, U) không được kết thúc nếu g(x1, , xn, y) là không xác định Bây giờ hãy khảo sát chương trình pf sau chứa py và các mệnh đề sau:

Chương trình pf là phỏng theo chương trình được sử dụng trong [32, Theorem 9.6]7 cho thấy rằng mỗi một hàm đệ qui riêng có thể được cài đặt bằng một chương trình xác định Sử dụng chứng minh đac ó sẵn [32], dễ dàng thấy rằng

pf thật sự cài đặt f và chi tiết vấn đề này là không thảo luận ở đây Thay vì vậy, chúng tôi chỉ ra rằng pf là Φ*-accessible (truy cập được) theo một số giả định trên chương trình Tuy nhiên, chúng tôi dành sự thảo luận này cuối phần 5.2, vì việc phân tích chương trình pf là dễ dàng hơn nên ngay lập tức chúng ta nhận được bản chất của các chương trình Φ*-accessible Các khảo sát dẫn ngay đến một thựctế đã được trình bày trong [21] là mỗi hàm đệ qui riêng biệt được cài đặt theo ngôn ngữ Prolog bằng một chương trình Φ*-accessible Chúng tôi biết chưa có công trình nào mô tả lớp nhỏ hơn các chương trình với thuộc tính này

Các chương trình xác định duy nhất trong ngữ cảnh

Trang 10

Một số lớp chương trình thỏa mãn định nghĩa 2.2 đã được công bố, vì các ánh xạ mức cung cấp một công cụ tiện ích cho việc nghiên cứu các thuộc tính kết thúc (termination) Bezem trong [3] cho thấy các chương trình acyclic chính là các chương trình kết thúc theo một vài qui tắc chọn Apt và Pedreschi trong [2] đã nới lỏng khái niệm acyclicity và đã nhận được lớp các chương trình chấp nhận (acceptable) được tương ứng với thuộc tính kết thúc bên trái, túc là, kết thúc theo qui tắc chọn từ trái qua phải được cài đặt trong Prolog Cả hai lớp được chứa trong lớp tất cả các chương trình Φ*ω-accessible Thật vậy, mỗi chương trình Φ*ω -accessible là một môdun chấp nhận được sắp theo thứ tự các literal thân (body literals) (trong ground(P)) và do vậy có thể được hiểu như một chương trình kết thúc theo qui tắc chọn không được xác định (a don’t know non-deterministic selection rule) Chúng tôi không nghiên cứu các chương trình chấp nhận được ở đây, vì chúng được gộp đầy đủ bởi nhiều lớp tổng quát mà chúng tôi đã giới thiệu trong định nghĩa 2.2 Các chương trình Φ-accessible chính là các chương trình có ngữ nghĩa Kripke— Kleene đầy đủ được giới thiệu bởi Fitting trong [15] Điều này suy ra từ các kết quả được giới thiệu trong [21] ở đó các tác giả đã trình bày quan điểm thống nhất về các lớp chương trình nhất định, bao gồm các chương trình đã được định nghĩa ở trên, dựa trên logic 3 giá trị (three-valued logics) Từ [21], chúng tôi tiếp tục cho thấy trong [25, 27] mỗi chương trình Φ-accessible được phân tầng yếu theo nghĩa Przymusinska và Przymusinski [36]

Thực tế này củng cố một điều theo kết quả từ [17] đó là, mỗi chương trình

Φ-accessible có ngữ nghĩa hoàn toàn đáng tin cậy và do vậy có một mô hình ổn định duy nhất [18], mặc dù thuật ngữ “Φ-accessible” dĩ nhiene không được sử dụng trong các cônng trình trước đây Chúng tôi chú thích rằng định nghĩa 2.2 là

hơ khác với định nghĩa đã được sử dụng trong [21, 25, 27], nhưng sự tương đương giữa các định nghĩa tuơng ứng dễ dàng được thiết lập

Việc nghiên cứu các thuộc tính kết thúc và mối liên hệ đã đề cập trong phần này đã có tài liệu và bây giờ chúng ta tiến hành nghiên cứu các metric tổng quát trong lập trình Logic

2.3 Các metric tổng quát

Các Metric và các phiên bản tổng quát của chúng được giới thiệu dưới đây, cung cấp một phép đo định lượng trừu tượng khoảng cách giữa các điểm trong không gian Trong phần sau đây, chúng tôi tập hợp các định nghĩa khác nhau của các metric tổng quát mà sẽ được sử dụng trong phần tiếp theo

2.3 Định nghĩa: Giả sử X là tập và d: X x X → R+

0 là hàm được gọi là hàm khoảng cách ở đó R+

0 ký hiệu tập các số thực không âm Xét các điều kiện sau:

(Mi) ∀ x ∈ X, d(x,x) = 0

(Mii) ∀ x, y ∈ X, nếu d(x,y) = 0 thế thì x = y

(Miii) ∀ x, y ∈ X, nếu d(x,y) = d(y,x)

(Miv) ∀ x, y, z ∈ X, d (x,y) ≤ d(x,z) + d(z,y)

Ngày đăng: 02/06/2015, 11:08

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w