Có thể tính toán lambda giải quyết mọi vấn đề trong P?


10

Trong các chủ đề nâng cao về các loại và ngôn ngữ lập trình, nó đã được đề cập, trong chương về các hệ thống kiểu cấu trúc phụ, một phép tính lambda "được chế tạo cẩn thận" với một tổ hợp đệ quy cho các danh sách chỉ có thể gõ các thuật ngữ có thời gian chạy đa thức (nó không trình bày bằng chứng do sự phức tạp). Điều này sẽ rất thú vị nếu chúng ta cũng có thể giải quyết mọi vấn đề trong P. Tôi có thể cố gắng tìm giải pháp cho vấn đề hoàn chỉnh P bằng cách sử dụng phép tính được trình bày bởi tôi không chắc điều này thực sự sẽ chứng minh điều gì. Tôi dường như không có nghĩa là nó có thể tạo ra tất cả các mức giảm cần thiết để sử dụng giải pháp cho vấn đề hoàn chỉnh P (mặc dù điều đó có vẻ có khả năng).

Nếu một phép tính lambda affine không được biết là có thể giải quyết chính xác các vấn đề trong P, thì có bất kỳ phép tính đã biết nào có thể giải quyết chính xác các vấn đề trong P không?


1
Xin lỗi vì sự thiếu hiểu biết của tôi, nhưng ví dụ về vấn đề -complete, và quan trọng hơn, bạn đang sử dụng khái niệm giảm nào? P
Andrej Bauer

Tôi tìm thấy một số trên wikipedia: en.wikipedia.org/wiki/P-complete#P-complete_probols . Quan tâm là vấn đề giá trị mạch và sừng-SAT. Lập trình tuyến tính cũng rõ ràng là -complete. Các slide này mô tả vấn đề giá trị mạch preety well cs.cornell.edu/cifts/CS6820/2012sp/Handouts/cvp.pdf . Có vẻ như giảm L hoặc N C được sử dụng, giảm L yếu hơn so với giảm N C. Tôi sẽ hài lòng với một trong hai; Tôi không chắc chắn chính xác những hậu quả của việc sử dụng L vs N C là chính xác. PLNCLNCLNC
Jake

6
Có những ngôn ngữ tuyến tính hoàn chỉnh cho P. Thật thú vị, chúng thường hoàn chỉnh cho các vấn đề, nhưng không phải cho các thuật toán. Nghĩa là, bạn có thể viết chương trình đa thời gian cho mọi vấn đề trong P, nhưng không phải mọi thuật toán đa thời gian đều có thể biểu thị được.
Neel Krishnaswami

Câu nói đó có tương đương với "chúng thường hoàn thành cho P nhưng không phải cho FP" không? Ngoài ra nếu bạn có thể cung cấp một số ví dụ thì đây sẽ là một câu trả lời tuyệt vời.
Jake

3
Neel Krishnaswami, bạn có thể cung cấp một tài liệu tham khảo? Điều này nghe có vẻ thú vị.
Mateus de Oliveira Oliveira

Câu trả lời:


12

Chỉnh sửa: dự đoán của tôi trong đoạn đầu tiên dưới đây là sai! Ugo Dal Lago đã chỉ cho tôi một bài báo sau của Martin Hofmann (xuất hiện trong POPL 2002), trong đó tôi không biết, cho thấy (như một hệ quả của kết quả tổng quát hơn) rằng hệ thống từ cuốn sách ATTPL trên thực tế đã hoàn thành cho ( mặc dù không thể tính toán mọi hàm trong F P ). Vì vậy, tôi ngạc nhiên, câu trả lời cho câu hỏi chính là có.PFP


Liên quan đến hệ thống mà bạn đang đề cập đến (từ cuốn sách ATTPL), tôi khá chắc chắn nó không thể quyết định tất cả các ngôn ngữ trong . Nó chắc chắn không thể tính toán mọi hàm trong F P : như đã đề cập trong phần ghi chú của chương đó, hệ thống đó được lấy từ bài báo LICS 1999 của Martin Hofmann ("Kiểu tuyến tính và tính toán thời gian đa thức không tăng kích thước"), trong đó nó được hiển thị các hàm đại diện là đa thời gian và không tăng kích thướcPFP, loại trừ rất nhiều hàm polytime. Nó dường như cũng đưa ra một giới hạn nghiêm trọng về kích thước băng của các máy Turing mà bạn có thể mô phỏng bằng ngôn ngữ đó. Trong bài báo, Hofmann cho thấy bạn có thể mã hóa tính toán không gian tuyến tính; Tôi đoán là bạn sẽ không thể làm được gì nhiều, tức là , lớp tương ứng với hệ thống đó đại khái là các vấn đề có thể giải quyết đồng thời trong không gian đa tuyến và tuyến tính.

Về câu hỏi thứ hai của bạn, có một số -calculi rằng có thể giải quyết một cách chính xác các vấn đề trong P . Một số trong số họ được đề cập trong các ghi chú của chương ATTPL bạn đang đề cập đến (phái 1.6.): Leivant của tầng λ -calculus (xem giấy POPL 1993 của mình, hoặc các giấy với Jean-Yves Marion "Lambda Calculus tả những đặc điểm của Poly-Time ", Fundamenta Informaticae 19 (1/2): 167-184, 1993), liên quan đến đặc tính của F P của Bellantoni và Cook ; và λ -calculi bắt nguồn từ logic ánh sáng tuyến tính của Girard ( Thông tin và tính toán , 143: 175-204, 1998) hoặc từ logic tuyến tính mềm Lafont của ( lý thuyết Khoa học Máy tínhλPλFPλ318 (1-2): 163-180, 2004). Loại hệ thống phát sinh từ hai hệ thống logic sau này và đảm bảo chấm dứt đa thời gian (trong khi vẫn tận hưởng tính đầy đủ) có thể được tìm thấy trong:

Patrick Baillot, Kazushige Terui. Các loại ánh sáng để tính toán thời gian đa thức trong phép tính lambda. Thông tin và tính toán 207 (1): 41-62, 2009.

Marco Gaboardi, Simona Ronchi Della Rocca. Từ logic nhẹ đến bài tập loại: một trường hợp nghiên cứu. Tạp chí Logic của IGPL 17 (5): 499-530, 2009.

Bạn sẽ tìm thấy rất nhiều tài liệu tham khảo khác trong hai bài báo.

Để kết luận, hãy để tôi mở rộng về nhận xét của Neel Krishnaswami. Tình hình hơi tinh tế. Tất cả những điều trên -calculi có thể được xem như những hạn chế của sỏi tổng quát hơn, trong đó bạn có thể tính toán nhiều hơn chỉ là chức năng polytime, nói cho hệ thống ví dụ F. Nói cách khác, bạn xác định một tài sản Φ của hệ thống F chương trình P : chuỗibool sao cho:λΦP:stringbool

lành mạnh: ngụ ý rằng ngôn ngữ bằng cách quyết định PP ;Φ(P)PP

tính đầy đủ: với mỗi , có một hệ thống F chương trình P quyết định L sao cho Φ ( P ) .LPPLΦ(P)

Sự quan tâm là tài sản thể hiện bởi là hoàn toàn cú pháp và, đặc biệt, decidable. Do đó, tính đầy đủ chỉ có thể giữ theo nghĩa mở rộng: nếu L là ngôn ngữ yêu thích của bạn trong P và nếu P là thuật toán yêu thích của bạn để quyết định L được biểu thị trong hệ thống F, thì có thể là Φ ( P ) không giữ. Tất cả những gì bạn biết là có một số chương trình F hệ thống khác P quyết định L và sao cho Φ ( P ) giữ. Thật không may, nó có thể xảy ra rằng P 'ΦLPPLΦ(P)PLΦ(P)Plà nhiều hơn so với của bạn . Trên thực tế, đầy đủ được chứng minh bằng cách mã hóa máy Turing đa thức-tốc độ xử lý như về hệ thống F thỏa mãn Φ . Do đó, cách duy nhất để đảm bảo giải L bằng thuật toán yêu thích của bạn là triển khai thuật toán đó trên máy Turing và sau đó dịch nó trong hệ thống F bằng cách sử dụng mã hóa được đưa ra trong bằng chứng hoàn chỉnh (mã hóa của riêng bạn có thể không hoạt động!). Không hẳn là giải pháp thanh lịch nhất về lập trình ... Tất nhiên, trong nhiều trường hợp chương trình "tự nhiên" P không thỏa mãn Φ . Tuy nhiên, trong nhiều trường hợp khác thì không: trong bài báo LICS 1999 đã đề cập ở trên, Hofmann đưa ra cách sắp xếp chèn làm ví dụ.PΦLPΦ

Các hệ thống loại hoàn toàn có chủ ý , có thể nhập chính xác các chương trình đa thời gian của ngôn ngữ rộng hơn (hệ thống F trong ví dụ của tôi ở trên) tồn tại. Tất nhiên, họ là không thể nói chung. Xem

Ugo Dal Lac, Marco Gaboardi. Các loại phụ thuộc tuyến tính và tính đầy đủ tương đối. Phương pháp logic trong khoa học máy tính 8 (4), 2011.


1
Tôi không hiểu những gì bạn đang cố gắng nói trong nửa thứ hai. Dựa trên mô tả của bạn, có một bản dịch cú pháp của các máy Turing có đồng hồ nhiều thời gian cho các chương trình F giải quyết cùng một vấn đề. Theo như tôi có thể thấy, đây là điều tốt nhất có thể hy vọng khi dịch từ mô hình tính toán này sang mô hình tính toán khác.
Emil Jeřábek

3
ΦNat:=X.(XX)XXλmNat.λnNat.ΛX.λsXX.mX(nXs)

3
for

Tôi nghĩ rằng điều này là ok. Tôi chủ yếu quan tâm đến tìm kiếm chức năng (tìm các chức năng tối đa hóa một thuộc tính nhất định) vì vậy tôi không phải là lập trình viên, máy tính cũng vậy. Tối nay tôi sẽ có đôi khi để xem mặc dù những tài liệu tham khảo. Cảm ơn!
Jake
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.