แลมบ์ดาแคลคูลัสสามารถพิมพ์อัลกอริธึม * all * ด้านล่างความซับซ้อนที่กำหนดได้หรือไม่?


21

ฉันรู้ว่าความซับซ้อนของแลมบ์ดาชนิดที่มีการพิมพ์ส่วนใหญ่โดยไม่มีแบบดั้งเดิม combinator Y ถูก จำกัด ขอบเขตนั่นคือสามารถแสดงเฉพาะฟังก์ชันของความซับซ้อนที่มีขอบเขต จำกัด ด้วยขอบเขตที่ใหญ่ขึ้นเมื่อการแสดงออกของระบบประเภทเติบโตขึ้น ฉันจำได้ว่าเช่นแคลคูลัสของสิ่งก่อสร้างสามารถแสดงความซับซ้อนที่ทวีคูณมากที่สุดเป็นสองเท่า

คำถามของฉันเกี่ยวข้องกับแลมบ์ดาที่พิมพ์ได้สามารถแสดงอัลกอริทึมทั้งหมดด้านล่างความซับซ้อนที่ถูกผูกไว้หรือมีเพียงบางส่วนเท่านั้น? ยกตัวอย่างเช่นมีอัลกอริธึมแบบเอกซ์โปเนนเชียลไทม์ที่ไม่สามารถแสดงออกได้อย่างเป็นทางการในแลมบ์ดาคิวบ์หรือไม่? "รูปร่าง" ของพื้นที่ความซับซ้อนซึ่งครอบคลุมโดยจุดยอดต่าง ๆ ของ Cube คืออะไร


ฉันคิดว่าคำตอบคือใช่: เราสามารถแสดงเครื่องทัวริงสากลแบบ จำกัด เวลาได้
Kaveh

3
คุณแน่ใจเกี่ยวกับขอบเขตบนเลขชี้กำลังสองเท่าหรือไม่ ถ้าผมจำไม่ผิด CoC เป็นแสดงออก "มุม" ที่สุดของแลมบ์ดา Cube ซึ่งหมายความว่ามันรวมถึงระบบ F (เช่น polymorphicแคลคูลัส) ซึ่งจะไปทางเกินทวีคูณชี้แจง ... อย่างไรก็ตามคำตอบคือแน่นอน ใช่ดูตัวอย่างของฉันตอบที่นี่ ฉันสามารถโพสต์คำตอบที่ละเอียดมากขึ้นถ้าคุณต้องการ λ
Damiano Mazza

1
ขอโทษนะฉันผิดคำถามของคุณคุณไม่ได้ถามเกี่ยวกับบางพิมพ์ -calculi แต่เฉพาะเกี่ยวกับการพิมพ์ -calculi ของแลมบ์ดา Cube ฉันเกรงว่าจะไม่มีความซับซ้อนที่น่าสนใจอยู่ที่นั่นพวกมันแสดงออกมากเกินไปแม้ว่าฉันจะรู้คำตอบที่แม่นยำสำหรับระบบ F และระบบ Fเท่านั้น λ โอห์มλλω
Damiano Mazza

4
ฟังก์ชัน Ackermann สามารถแสดงได้ในแคลคูลัสของสิ่งปลูกสร้างดังนั้นจึงไม่สามารถพูดได้ว่าฟังก์ชันนั้นเป็นเลขชี้กำลังสองเท่า
Andrej Bauer

ฉันคิดว่าฉันอ่านเกี่ยวกับเรื่องนั้นในหนังสือ Coq'Art แต่ฉันเข้าใจผิดมาก ขอบคุณ!
jkff

คำตอบ:


19

ฉันจะให้คำตอบบางส่วนฉันหวังว่าคนอื่นจะเติมในช่องว่าง

ในการพิมพ์ -calculi เราอาจพิมพ์ข้อมูลตามปกติ (สำหรับคริสตจักร (เอกภาพ) จำนวนเต็มสำหรับสตริงไบนารีสำหรับ Booleans) และสงสัยว่า คือความซับซ้อนของฟังก์ชั่น / ปัญหาที่สามารถแทน / ถอดรหัสได้โดยคำที่พิมพ์ ฉันรู้แอสเวิร์กที่แม่นยำในบางกรณีเท่านั้นและในกรณีที่พิมพ์อย่างง่ายมันขึ้นอยู่กับการประชุมที่ใช้เมื่อกำหนด "ตัวแทน / decidable" อย่างไรก็ตามฉันไม่ทราบว่ามีกรณีใดบ้างที่มีขอบเขตบนเลขชี้กำลังสองเท่าN ทีเอสทีอาร์B o o ลิตรλNatStrBool

ก่อนอื่นให้สรุปสั้น ๆ เกี่ยวกับ Lambda Cube แคลคูลัส 8 อันได้มาจากการเปิดใช้งานหรือปิดใช้งานการพึ่งพา 3 ชนิดต่อไปนี้ที่ด้านบนของ -calculus (STLC) ที่พิมพ์ได้อย่างง่ายดาย:λ

  • ความแตกต่าง : เงื่อนไขอาจขึ้นอยู่กับประเภท;
  • ประเภทที่พึ่งพา : ประเภทอาจขึ้นอยู่กับเงื่อนไข;
  • ลำดับที่สูงกว่า : ประเภทอาจขึ้นอยู่กับประเภท

(การพึ่งพาข้อกำหนดในข้อกำหนดมักมีอยู่เสมอ)

การเพิ่มความหลากหลายทำให้ระบบ F ที่นี่คุณสามารถพิมพ์จำนวนเต็มของคริสตจักรด้วยและในทำนองเดียวกันสำหรับสตริงไบนารีและ Booleans ราร์ดพิสูจน์ให้เห็นว่าเงื่อนไขของระบบประเภท Fเป็นตัวแทนของฟังก์ชันตัวเลขซึ่งสามารถพิสูจน์ได้ในลำดับที่สอง Peano เลขคณิต นั่นเป็นคณิตศาสตร์ในชีวิตประจำวันที่ค่อนข้างมาก (แม้ว่าจะไม่มีรูปแบบใด ๆ ก็ตาม) ดังนั้นชั้นเรียนมีขนาดใหญ่มากฟังก์ชั่น Ackermann เป็นจุลชีพเล็ก ๆ ในนั้นฟังก์ชั่นN a tN a t 2 2 n β N a t S t r S t rB o o lNat:=X.(XX)XXNatNat22n. ฉันไม่รู้เกี่ยวกับฟังก์ชันตัวเลข "ธรรมชาติ" ใด ๆ ที่ไม่สามารถแสดงใน System F ตัวอย่างมักจะถูกสร้างขึ้นโดย diagonalization หรือการเข้ารหัสความสอดคล้องของลำดับที่สอง PA หรือเทคนิคการอ้างอิงตัวเองอื่น ๆ (เช่นการตัดสินใจ -equality ภายใน ระบบ F เอง) แน่นอนใน System F คุณสามารถแปลงระหว่างจำนวนเต็มและการแทนเลขฐานสองของพวกเขาจากนั้นทำการทดสอบเช่นว่าบิตแรกคือ 1 ดังนั้นคลาสของปัญหาที่ถอดรหัสได้ (ตามประเภทของ ) มีขนาดใหญ่เท่ากันβNatStrStrBool

อีก 3 แคลคูลัสของแลมบ์ดาคิวบ์ซึ่งรวมถึง polymorphism จึงแสดงออกอย่างน้อยที่สุดเท่าที่ระบบ F เหล่านี้รวมถึงระบบ F (polymorphism + ลำดับสูงกว่า) ซึ่งสามารถแสดงฟังก์ชั่นทั้งหมดที่พิสูจน์ได้ในลำดับ PA ที่สูงขึ้นและ แคลคูลัสของการก่อสร้าง (CoC) ซึ่งเป็นแคลคูลัสที่แสดงออกมากที่สุดของ Cube (เปิดใช้งานการอ้างอิงทั้งหมด) ฉันไม่รู้ลักษณะของความหมายของ CoC ในแง่ของทฤษฎีเกี่ยวกับคณิตศาสตร์หรือตั้งทฤษฎี แต่มันต้องน่ากลัว :-)ω

ฉันไม่รู้เกี่ยวกับแคลคูลัสที่ได้รับเพียงแค่เปิดใช้งานแบบพึ่งพา (โดยหลักแล้วทฤษฎีการพิมพ์แบบมาร์ติน - โลฟไม่มีความเสมอภาคและจำนวนธรรมชาติ), ประเภทคำสั่งที่สูงกว่าหรือทั้งสองอย่าง ในแคลคูลัสประเภทนี้มีประสิทธิภาพ แต่คำศัพท์ไม่สามารถเข้าถึงพลังนี้ได้ดังนั้นฉันไม่รู้ว่าคุณได้อะไรมา ฉันไม่คิดว่าคุณจะได้รับการแสดงออกมากไปกว่าแบบง่าย ๆ แต่ฉันอาจเข้าใจผิด

ดังนั้นเราจึงเหลือ STLC เท่าที่ฉันรู้นี่เป็นแคลคูลัสเพียงหนึ่งเดียวของ Cube ที่มีขอบเขตความซับซ้อนที่น่าสนใจ (เช่นไม่ใหญ่โต) มีคำถามที่ยังไม่ได้ตอบเกี่ยวกับเรื่องนี้ใน TCS.SE และในความเป็นจริงแล้วสถานการณ์นั้นค่อนข้างบอบบาง

ก่อนอื่นถ้าคุณแก้ไขอะตอมและกำหนดN a t : = ( X X ) X Xจะมีผลลัพธ์ของ Schwichtenberg (ฉันรู้ว่ามีการแปลภาษาอังกฤษของกระดาษนั้นอยู่ที่ไหนสักแห่งบนเว็บ แต่ฉันไม่สามารถหามันได้ ตอนนี้) ที่จะบอกคุณว่าฟังก์ชั่นของชนิดN a tN a tเป็นพหุนามที่ขยายเพิ่มขึ้นอย่างแน่นอน หากคุณอนุญาตให้ "หย่อน" บางอย่างนั่นคือคุณอนุญาตให้พารามิเตอร์Xเป็นอินสแตนซ์ที่จะและพิจารณาเงื่อนไขของประเภทN a t [XNat:=(XX)XXNatNatXด้วย Aโดยพลการสามารถแสดงได้มากกว่านี้ ตัวอย่างเช่นหอคอยใด ๆ ของเลขชี้กำลัง (ดังนั้นคุณอาจไปได้ดีกว่าเลขชี้กำลังสองเท่า) เช่นเดียวกับฟังก์ชั่นรุ่นก่อน แต่ก็ยังไม่มีการลบ (ถ้าคุณพิจารณาฟังก์ชันเลขฐานสองและลองพิมพ์ด้วย N a t [ A ] N a t [ A ] N a t ) ดังนั้นคลาสของฟังก์ชันตัวเลขที่แสดงใน STLC ค่อนข้างแปลกมันเป็นเซตย่อยที่เข้มงวดของฟังก์ชันพื้นฐาน แต่ไม่ตรงกับสิ่งที่รู้จักกันดีNat[A]NatANat[A]Nat[A]Nat

ในความขัดแย้งที่เห็นได้ชัดกับข้างต้นมีบทความนี้โดย Mairson ซึ่งแสดงให้เห็นถึงวิธีการเข้ารหัสฟังก์ชั่นการเปลี่ยนแปลงของพลเครื่องทัวริงจากการที่คุณได้รับคำประเภทN T [ ] B o o ลิตร (สำหรับบางชนิดขึ้นอยู่กับM ) ซึ่งได้รับจำนวนเต็มโบสถ์nเป็น input จำลองการดำเนินการของMเริ่มต้นจากการกำหนดค่าเริ่มต้นคงที่สำหรับจำนวนของขั้นตอนของรูปแบบ ที่ 2 2 2 n ,MNat[A]BoolAMnM

222n,
แก้ไขความสูงของหอคอย สิ่งนี้ไม่ได้แสดงให้เห็นว่าปัญหาระดับประถมศึกษาทุก ๆ ค่าสามารถถอดรหัสได้โดย STLC เพราะใน STLC ไม่มีทางที่จะแปลงสตริงไบนารี่ (ประเภท ) ที่เป็นตัวแทนของอินพุตของMเป็นประเภทที่ใช้แทนการกำหนดค่าของMใน การเข้ารหัสของ Mairson ดังนั้นการเข้ารหัสจึงเป็น "ไม่สม่ำเสมอ": คุณสามารถจำลองการประมวลผลที่มีความยาวเป็นองค์ประกอบจากอินพุตคงที่โดยใช้คำที่แตกต่างกันสำหรับแต่ละอินพุต แต่ไม่มีคำใดที่จัดการอินพุตโดยพลการStrMM

ในความเป็นจริง STLC นั้นอ่อนแออย่างมากในสิ่งที่สามารถตัดสินใจได้ว่า "สม่ำเสมอ" ขอให้เราโทรระดับของภาษา decidable ตามเงื่อนไขพิมพ์เพียงชนิดS T R [ ] B o o ลิตรสำหรับบาง(เหมือนข้างต้นคุณอนุญาตให้พล "หย่อน" ในการพิมพ์) เท่าที่ฉันรู้ลักษณะที่แม่นยำของC S Tหายไป อย่างไรก็ตามเรารู้ว่าC S TL ฉันN T ฉันM ECSTStr[A]BoolACSTCSTLINTIME(เวลาเชิงเส้นแบบกำหนดเวลา) ทั้งการกักกันและความจริงที่ว่ามันเข้มงวดอาจถูกแสดงโดยการโต้แย้งความหมายที่ประณีตมาก (ใช้ความหมาย denotational semantics ของ STLC ในหมวดหมู่ของชุด จำกัด ) อดีตก็แสดงให้เห็นเร็ว ๆ นี้โดยTerui หลังเป็นหลักการปฏิรูปของผลลัพธ์เก่าของ Statman ตัวอย่างของปัญหาในคือ MAJORITY (ที่ได้รับจากสตริงไบนารีบอกว่ามันมีมากกว่า 1 วินาทีอย่างน้อย 0 วินาที)LINTIMECST


(มาก) ต่อมา add-on:ฉันเพิ่งค้นพบว่าชั้นที่ผมเรียกเหนือจริงไม่ได้มีลักษณะที่แม่นยำซึ่งเป็นยิ่งกว่านั้นง่ายมาก ในบทความปี 1996 ที่สวยงาม Hillebrand และ Kanellakis ได้พิสูจน์สิ่งอื่น ๆCST

ทฤษฎีบท. (ภาษาปกติใน{ 0 , 1 } )CST=REG{0,1}

(นี่คือทฤษฎีบท 3.4 ในบทความของพวกเขา)

CSTLINTIMEλCST

(โดยบังเอิญฉันแบ่งปันความประหลาดใจของฉันในคำตอบของคำถาม MO เกี่ยวกับ "ทฤษฎีบทที่ไม่รู้จัก")


3
อ่านคำตอบเพื่อดูชื่อนั้นอีกครั้งเท่านั้น ฉันคิดว่าคุณสอนฉันมากกว่าอาจารย์ของฉันแล้ว อินเทอร์เน็ตเป็นสิ่งที่สวยงาม ขอบคุณ
MaiaVictor

@Damiano Mazza ชอบคำตอบของคุณ แต่ความคิดเรื่อง "ความเท่าเทียม" นั้นไม่น่ารำคาญเลยใช่ไหม
Andrea Asperti

λλ

12

คำตอบสำหรับคำถามที่ Damiano ยกมาในคำตอบที่ยอดเยี่ยมของเขา:

ฉันไม่รู้เกี่ยวกับแคลคูลัสที่ได้รับเพียงแค่เปิดใช้งานแบบพึ่งพา (โดยหลักแล้วทฤษฎีการพิมพ์แบบมาร์ติน - โลฟไม่มีความเสมอภาคและจำนวนธรรมชาติ), ประเภทคำสั่งที่สูงกว่าหรือทั้งสองอย่าง ในแคลคูลัสประเภทนี้มีประสิทธิภาพ แต่คำศัพท์ไม่สามารถเข้าถึงพลังนี้ได้ดังนั้นฉันไม่รู้ว่าคุณได้อะไรมา

ω

λPλPω

ฉันไม่ทราบว่าความแข็งแกร่งของแคลคูลัสที่สร้างความต้านทานนั้นคืออะไรถ้าคุณเพิ่มประเภทอุปนัยและการกำจัดขนาดใหญ่


ขอบคุณ @Neel! ฉันเดาว่าตอนนี้เรามีภาพเต็มแล้ว
Damiano Mazza

7

ฉันจะพยายามเติมเต็มคำตอบที่ยอดเยี่ยมของ Damiano

λF HA2

TLTL

L

  • FHA2

  • TPAF

λPTIME

โดยทั่วไปนี้เป็นถนนที่มีขนาดใหญ่ของการวิจัยดังนั้นฉันจะดูที่หนึ่งของคำตอบก่อน


3
cf เลย Stephen Cook และ Alasdair Urquhart's " การตีความเชิงฟังก์ชันของเลขคณิตเชิงสร้างสรรค์ที่เป็นไปได้ ", 1993, สำหรับตัวแปรเชิงทฤษฎีที่ซับซ้อน
Kaveh
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.