Tính toán công trình: nén biểu thức về dạng nhỏ nhất của nó


11

Tôi biết rằng Công thức xây dựng đang bình thường hóa mạnh mẽ, có nghĩa là mọi biểu thức đều có bình thường không thể là beta, giảm hơn nữa. Vì vậy, trên thực tế đây là biểu thức hiệu quả nhất tính toán cùng giá trị với biểu thức ban đầu.

Nhưng trong một số trường hợp nhất định, chuẩn hóa có thể giảm một biểu thức nhỏ thành một biểu thức lớn (về kích thước).

Có một hình thức biểu thức nhỏ nhất? Một hình thức tính toán cùng giá trị với kích thước nhỏ nhất.

Nói cách khác, thay vì dạng bình thường hiệu quả về thời gian, dạng không gian hiệu quả.

Câu trả lời:


8

Có một chút tự do trong cái mà chúng ta coi là "cùng một giá trị". Hãy để tôi chỉ ra rằng không có thuật toán nào như vậy nếu "cùng một giá trị" có nghĩa là "tương đương quan sát". Tôi sẽ sử dụng một phần của Giải tích các công trình, cụ thể là Hệ thống T của Gôdel (đơn giản là gõ -calculus, số tự nhiên và đệ quy nguyên thủy trên chúng), vì vậy đối số đã áp dụng cho phép tính yếu hơn nhiều.λ

Cho một số , chúng ta hãy ¯ n là số tương ứng đại diện cho nó, tức là n ứng dụng của s u c c đến 0 . Cho một Turing mahcine M , chúng ta hãy M được mã hóa số M trong một số cách hợp lý.nn¯nsucc0MMM

Nói rằng hai nhiệm kỳ khép kín được tương đương , được viết t u , khi cho tất cả n N , tt,u:natnattunNstn¯ cả bình thường hóa đến chữ số giống nhau (họ bình thường để một số bởi vì chúng tôi đang ở trong một claculus mạnh bình thường).sn¯

Giả sử chúng ta có một thuật toán, đưa ra bất kỳ thuật ngữ đóng nào thuộc loại tính toán một thuật ngữ tương đương tối thiểu. Sau đó, chúng ta có thể giải quyết lời sấm truyền như sau.natnat

Có một thuật ngữ như vậy mà, cho tất cả n N và tất cả các máy Turing M , S ( M , ¯ n ) bình thường hóa để ¯ 1 nếu T tạm dừng trong vòng n bước và nó bình thường hóa thành ¯ 0 nếu không. Điều này được biết đến, vì mô phỏng của máy Turing cho một số bước cố định n là đệ quy nguyên thủy.S:nat×natnatnNMS(M,n¯)1¯Tn0¯n

Có rất nhiều thuật ngữ hữu hạn đóng mà là những thuật ngữ tối thiểu tương đương với λ x : n một t .Z1,,Zk . Thuật toán tối thiểu hóa của chúng tôi trả về một trong số chúng khi chúng tôi cung cấp cho nó λ x : n a t .λx:nat.0 , và thậm chí có thể là trường hợp λ x : n a t .λx:nat.0 thực tế là thuật ngữ tối thiểu duy nhất như vậy. Tất cả điều này không quan trọng, điều duy nhất quan trọng là có rất nhiều thuật ngữ tối thiểu tương đương với λ x : n a t .λx:nat.0 .λx:nat.0

Bây giờ, với bất kỳ máy , hãy xem xét thuật ngữ u : = λ x : n a t .M Nếu M chạy mãi mãi sau đó u ¯ n bình thường hóa để ¯ 0 cho mỗi n và tương đương với λ x : n một t .

u:=λx:nat.S(M,x)
Mun¯0¯nλx:nat.0MuZ1,,ZkMZ1,,Zk

β


Làm thế nào để bạn tính toán Z1, .. Zk?
dùng47376

Bạn không cần phải làm vậy. Đó là, thuật toán mà tôi đang mô tả ở ngoài đó, và chúng tôi không biết chính xác nó là gì, nhưng điều đó không liên quan. Tôi không thực sự cố gắng chạy thuật toán, tôi chỉ cần sự tồn tại của nó để cho thấy thuật toán của bạn không tồn tại.
Andrej Bauer

Có, nhưng đối số của bạn nói rằng nếu thuật toán của tôi tồn tại hơn chúng ta có thể giải quyết vấn đề tạm dừng. Để xác định xem máy Turing có dừng thuật toán của bạn bình thường hóa u không và kiểm tra xem đó có phải là một trong Z1 không, .. Zk. Vì vậy, nó cần phải có khả năng liệt kê những thứ đó, nếu không nó có thể không dừng lại.
dùng47376

Z1,,ZkkZkZ[i]

7

(λx:T.C x x) uβC u u
u

Theo nghĩa này, người ta đã biết làm thế nào để giảm các thuật ngữ chưa được kiểm tra một cách tối ưu, giảm chia sẻ càng nhiều càng tốt. Điều này được giải thích ở đây: /programming//a/41737550/2059388 và trích dẫn có liên quan là thuật toán của J. Lamping để giảm tính toán lambda tối ưu . Có rất ít nghi ngờ rằng định lý cho phép tính không được đánh dấu có thể được mở rộng cho CIC.

Một câu hỏi khác có liên quan là lượng thông tin loại có thể bị xóa khi thực hiện chuyển đổi loại hoặc thực sự làm thế nào để thực hiện chuyển đổi hiệu quả, là một lĩnh vực nghiên cứu tích cực, xem ví dụ luận án của Mishra-Linger .


6

Hãy để tôi nhấn mạnh vào quan điểm chạm vào câu trả lời của cody.

λλλλ

Mf

Mx¯l(|x|)f(x)¯
l(|x|)l(n)=O(nk)kf

λΘ(n)Θ(2n)λλ

λλ

λ

Cú pháp tương tự này có thể được sử dụng để chứng minh rằng, trái với trực giác ngây thơ, câu trả lời cho câu hỏi trên là có, thực sự: số bước ngoài cùng bên trái đến dạng bình thường một thước đo chi phí hợp lý, ngay cả khi kích thước phát nổ, bởi vì trong thực tế, có một cách khác để biểu diễn cùng một tính toán (sử dụng thay thế rõ ràng tuyến tính) trong đó:

  1. kích thước không nổ;
  2. λ

Tất cả điều này được giải thích trong bài báo "Giảm Beta là bất biến" của Accattoli và Dal Lac (LICS 2014 và sau đó tôi nghĩ có một phiên bản tạp chí gần đây hơn).

λ


Những gì tôi có trong đầu là ví dụ một thuật ngữ thực hiện một triệu bước để tạo ra một danh sách triệu phần tử. Điều này bình thường hóa vào danh sách thực tế, đó là biểu diễn hiệu quả nhất của giá trị đó (đó là kết quả cuối cùng thực tế, không cần thêm bước nào nữa). Nhưng bản thân thuật ngữ mở ra có thể rất nhỏ.
dùng47376

β

Phải, không thể như Andrej nói. Điều đó đã trả lời câu hỏi của tôi.
dùng47376
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.