Có thể gõ lambda tính toán thể hiện * tất cả * thuật toán dưới một độ phức tạp nhất định không?


21

Tôi biết rằng độ phức tạp của hầu hết các loại tính toán lambda được gõ mà không có nguyên hàm tổ hợp Y bị giới hạn, nghĩa là chỉ có thể biểu thị các hàm phức tạp giới hạn, với giới hạn trở nên lớn hơn khi tính biểu cảm của hệ thống loại tăng lên. Tôi nhớ lại rằng, ví dụ, Tính toán công trình có thể biểu thị ở mức độ phức tạp theo cấp số nhân gấp đôi.

Câu hỏi của tôi liên quan đến việc liệu phép tính lambda có thể diễn đạt tất cả các thuật toán dưới một độ phức tạp nhất định hay chỉ một số? Ví dụ, có bất kỳ thuật toán thời gian theo cấp số nhân nào không thể biểu thị bằng bất kỳ chủ nghĩa hình thức nào trong Lambda Cube không? "Hình dạng" của không gian phức tạp được bao phủ hoàn toàn bởi các đỉnh khác nhau của Cube là gì?


Tôi nghĩ câu trả lời là có: chúng ta có thể diễn tả cỗ máy Turing phổ quát thời gian giới hạn.
Kaveh

3
Bạn có chắc chắn về giới hạn trên theo cấp số nhân? Nếu tôi nhớ không lầm thì các CoC là biểu cảm nhất "góc" của Lambda Cube, có nghĩa là nó bao gồm hệ thống F (tức là đa hình λ -calculus), mà đi cách xa hơn gấp đôi mũ ... Dù sao, câu trả lời chắc chắn là có , xem ví dụ câu trả lời của tôi ở đây . Tôi có thể gửi một câu trả lời chi tiết hơn nếu bạn muốn.
Damiano Mazza

1
Xin lỗi, tôi không nhận định câu hỏi của bạn, bạn sẽ không hỏi về một số -calculi nhưng đặc biệt về đánh máy λ -calculi của Lambda Cube. Tôi sợ không có độ phức tạp thú vị ở đó, họ là tất cả quá biểu cảm, mặc dù tôi biết câu trả lời chính xác chỉ cho Hệ thống F và hệ thống F ω . λλω
Damiano Mazza

4
Hàm Ackermann có thể được biểu thị trong phép tính của các công trình, do đó không thể đúng rằng người ta chỉ theo cấp số nhân.
Andrej Bauer

Tôi nghĩ rằng tôi đã đọc về điều đó bị ràng buộc trong cuốn sách Coq'Art nhưng tôi rất có thể nhầm. Cảm ơn!
jkff

Câu trả lời:


19

Tôi sẽ đưa ra một câu trả lời, tôi hy vọng những người khác sẽ điền vào chỗ trống.

Trong kiểu gõ -calculi, người ta có thể đưa ra một kiểu cho các biểu diễn dữ liệu thông thường ( N a t cho các số nguyên Church (unary), S t r cho các chuỗi nhị phân, B o o l cho Booleans) và tự hỏi sự phức tạp của các hàm là gì / vấn đề đại diện / quyết định bởi các điều khoản đánh máy. Tôi biết một asnwer chính xác chỉ trong một số trường hợp, và trong trường hợp được gõ đơn giản, nó phụ thuộc vào quy ước được sử dụng khi định nghĩa "đại diện / có thể quyết định". Nhưng dù sao, tôi không biết về bất kỳ trường hợp nào có giới hạn trên theo cấp số nhân.λNatStrBool

Đầu tiên, một bản tóm tắt ngắn gọn về Lambda Cube. 8 phép tính của nó có được bằng cách bật hoặc tắt 3 loại phụ thuộc sau trên đầu trang -calculus (STLC) được nhập đơn giản :λ

  • đa hình : các thuật ngữ có thể phụ thuộc vào các loại;
  • loại phụ thuộc : loại có thể phụ thuộc vào các điều khoản;
  • thứ tự cao hơn : các loại có thể phụ thuộc vào các loại.

(Sự phụ thuộc của các điều khoản luôn luôn có).

Thêm polymorphism sản lượng hệ thống F. Ở đây, bạn có thể gõ các số nguyên Giáo Hội với , và tương tự cho các chuỗi nhị phân và Booleans. Girard đã chứng minh rằng các thuật ngữ Hệ thống F loại N a tN a t đại diện chính xác cho các hàm số có tổng số có thể chứng minh được theo số học Peano thứ hai. Đó là toán học hàng ngày khá nhiều (mặc dù không có bất kỳ hình thức lựa chọn nào), vì vậy lớp học rất lớn, hàm Ackermann là một loại vi khuẩn nhỏ trong đó, chứ đừng nói đến hàm 2 2Nat:=X.(XX)XXNatNat . Tôi không biết bất kỳ hàm số "tự nhiên" nào không thể biểu diễn trong Hệ thống F. Các ví dụ thường được xây dựng bằng đường chéo hoặc mã hóa tính nhất quán của PA bậc hai hoặc các thủ thuật tự tham chiếu khác (như quyết địnhβ-equality trong Hệ thống Bản thân F). Tất nhiên trong Hệ thống F, bạn có thể chuyển đổi giữa các số nguyên đơn vịNatvà biểu diễn nhị phân của chúngStr, và sau đó kiểm tra xem bit đầu tiên có phải là 1 hay không, do đó, loại vấn đề có thể quyết định (theo thuật ngữ loạiStrBool) cũng lớn không kém.22nβNatStrStrBool

Do đó, 3 sỏi khác của Lambda Cube trong đó bao gồm đa hình là ít nhất là biểu cảm như hệ thống F. Chúng bao gồm hệ thống F ω (polymorphism + bậc cao), có thể diễn tả chính xác tổng provably chức năng trong bậc cao PA, và Calculus của Cấu trúc (CoC), là phép tính biểu cảm nhất của Cube (tất cả các phụ thuộc đều được bật). Tôi không biết một đặc điểm của tính biểu cảm của CoC về mặt lý thuyết số học hoặc lý thuyết tập hợp, nhưng nó phải khá đáng sợ :-)ω

Tôi không biết nhiều về các phép tính thu được bằng cách chỉ cho phép các loại phụ thuộc (về cơ bản là lý thuyết loại Martin-Löf không có đẳng thức và số tự nhiên), các loại bậc cao hơn hoặc cả hai. Trong các phép tính này, các loại rất mạnh nhưng các thuật ngữ không thể truy cập vào sức mạnh này, vì vậy tôi không biết bạn nhận được gì. Về mặt tính toán, tôi không nghĩ bạn có được tính biểu cảm cao hơn nhiều so với các kiểu đơn giản, nhưng tôi có thể bị nhầm.

Vì vậy, chúng tôi còn lại với STLC. Theo như tôi biết, đây là phép tính duy nhất của Cube với giới hạn trên phức tạp thú vị (nghĩa là không lớn). Có một câu hỏi chưa được trả lời về vấn đề này trên TCS.SE, và trên thực tế tình hình hơi tinh tế.

Đầu tiên, nếu bạn sửa một nguyên tử và xác định N a t : = ( X X ) X X , có kết quả của Schwichtenberg (tôi biết có bản dịch tiếng Anh của bài báo đó ở đâu đó trên web nhưng tôi không thể tìm thấy nó bây giờ) cho bạn biết rằng các hàm của loại N a tN a t chính xác là các đa thức mở rộng (với if-then-other). Nếu bạn cho phép một số "chùng", tức là bạn cho phép tham số X được khởi tạo theo ý muốn và xem xét các điều khoản của loại N a t [XNat:=(XX)XXNatNatX với A tùy ý, có thể biểu diễn nhiều hơn nữa. Ví dụ: bất kỳ tháp hàm mũ nào (vì vậy bạn có thể vượt xa hàm mũ đôi) cũng như hàm tiền thân, nhưng vẫn không có phép trừ (nếu bạn xem xét các hàm nhị phân và cố gắng nhập chúng bằng N a t [ A ] N a t [ A ] N a t ). Vì vậy, lớp các hàm số có thể biểu thị trong STLC hơi lạ, nó là một tập hợp con nghiêm ngặt của các hàm cơ bản nhưng không tương ứng với bất kỳ thứ gì được biết đến.Nat[A]NatANat[A]Nat[A]Nat

MNat[A]BoolAMnM

222n,
StrMM

CSTStr[A]BoolACSTCSTLINTIME(thời gian tuyến tính xác định). Cả sự ngăn chặn và thực tế là nghiêm ngặt có thể được thể hiện bằng các đối số ngữ nghĩa rất gọn gàng (sử dụng ngữ nghĩa biểu thị tiêu chuẩn của STLC trong danh mục các tập hữu hạn). Cái trước được Terui thể hiện gần đây . Thứ hai về cơ bản là một sự cải tổ các kết quả cũ của Statman. Một ví dụ về vấn đề trong là MAJORITY (được cung cấp một chuỗi nhị phân, cho biết liệu nó có chứa đúng 1s hơn 0 không).LINTIMECST


(Phần lớn) Sau đó add-on: Tôi vừa phát hiện ra rằng cuộc gọi lớp I trên thực tế không có một đặc tính chính xác, đó là hơn nữa cực kỳ đơn giản. Trong bài báo tuyệt đẹp năm 1996 này , Hillebrand và Kanellakis chứng minh, trong số những thứ khác, rằngCST

Định lý. (ngôn ngữ thông thường trên ).CST=REG{0,1}

(Đây là Định lý 3.4 trong bài báo của họ).

Tôi thấy điều này đáng ngạc nhiên gấp đôi: Tôi ngạc nhiên với chính kết quả đó (tôi chưa bao giờ nghĩ rằng có thể tương ứng với một cái gì đó "gọn gàng") và bởi nó ít được biết đến. Điều thú vị là bằng chứng của Terui về giới hạn trên sử dụng các phương pháp tương tự được sử dụng bởi Hillebrand và Kanellakis (diễn giải -calculus được gõ đơn giản trong danh mục các tập hữu hạn). Nói cách khác, Terui (và bản thân tôi) có thể dễ dàng phát hiện lại kết quả này vì thực tế là chúng tôi không hài lòng với việc là một lớp "kỳ lạ" :-)CSTLINTIMEλCST

(Tình cờ, tôi đã chia sẻ sự ngạc nhiên của mình trong câu trả lời này cho câu hỏi MO về "các định lý chưa biết").


3
Đọc xong câu trả lời chỉ để thấy cái tên đó một lần nữa. Tôi nghĩ rằng bạn đã dạy tôi nhiều hơn các giáo sư của riêng tôi. Internet là một điều tốt đẹp. Cảm ơn.
MaiaVictor

@Damiano Mazza. Thích câu trả lời của bạn, nhưng khái niệm "đồng nhất" không quá tầm thường, phải không?
Andrea Asperti

Xin chào @Andrea, cảm ơn bạn. "Tính đồng nhất" ở đây chỉ là việc bạn quyết định một ngôn ngữ sử dụng một chương trình duy nhất làm việc cho tất cả các đầu vào có thể, trái ngược với việc quyết định một ngôn ngữ bằng một họ chương trình vô hạn, mỗi ngôn ngữ chỉ hoạt động trên các đầu vào có độ dài cố định (hoặc, tệ hơn, một chương trình cho mỗi đầu vào, như trong bài viết của Mairson). Thống nhất là chuẩn mực trong -calculus ( -terms là quá mạnh mẽ để được sử dụng cho người không thống nhất phương pháp tiếp cận, trừ khi người ta xem xét hạn chế như tuyến tính / ái lực) như vậy trong một cảm giác đó là "tầm thường". Nhưng có lẽ tôi không hiểu bình luận của bạn ...λλ
Damiano Mazza

12

Một câu trả lời cho một câu hỏi Damiano nêu lên trong câu trả lời xuất sắc của mình:

Tôi không biết nhiều về các phép tính thu được bằng cách chỉ cho phép các loại phụ thuộc (về cơ bản là lý thuyết loại Martin-Löf không có đẳng thức và số tự nhiên), các loại bậc cao hơn hoặc cả hai. Trong các phép tính này, các loại rất mạnh nhưng các thuật ngữ không thể truy cập vào sức mạnh này, vì vậy tôi không biết bạn nhận được gì.

Thêm các loại phụ thuộc không làm thay đổi cường độ nhất quán của lý thuyết. Các loại phụ thuộc đơn giản có cường độ nhất quán giống như lambda được gõ đơn giản và phép tính của các cấu trúc có cường độ nhất quán giống như Hệ thống Fω .

λPλPω

Tôi không biết sức mạnh của tính toán dự phòng của các công trình là gì, nếu bạn thêm các loại quy nạp và loại bỏ lớn.


Cảm ơn @Neel! Tôi đoán rằng bây giờ chúng ta có hình ảnh đầy đủ.
Damiano Mazza

7

Tôi sẽ cố gắng bổ sung cho câu trả lời tuyệt vời của Damiano.

λF HA2

TLTL

L

  • FHA2

  • TPAF

λPTIME

Nói chung đây là một con đường nghiên cứu lớn, vì vậy tôi sẽ chỉ đề cập đến một trong những câu trả lời trước đây của tôi .


3
Cf. " Giải thích chức năng của số học xây dựng khả thi " của Stephen Cook và Alasdair Urquhart , năm 1993, cho một biến thể lý thuyết phức tạp.
Kaveh
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.