แคลคูลัสของสิ่งก่อสร้าง: บีบอัดนิพจน์ลงในรูปแบบที่เล็กที่สุด


11

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

แต่ในบางกรณีการปรับสภาพอาจลดขนาดเล็กลงเป็นนิพจน์ใหญ่ (ในแง่ของขนาด)

มีรูปแบบที่เล็กที่สุดของการแสดงออกหรือไม่? แบบฟอร์มที่คำนวณค่าเดียวกันกับขนาดที่เล็กที่สุด

กล่าวอีกนัยหนึ่งแทนที่จะเป็นรูปแบบปกติที่ประหยัดเวลาและประหยัดพื้นที่

คำตอบ:


8

มีอิสระในสิ่งที่เราพิจารณาว่า "คุณค่าเดียวกัน" ให้ฉันแสดงให้เห็นว่าไม่มีอัลกอริทึมดังกล่าวถ้า "ค่าเดียวกัน" หมายถึง "เทียบเท่าเชิงสังเกตการณ์" ฉันจะใช้ส่วนของแคลคูลัสของสิ่งก่อสร้างคือGödel's System T (พิมพ์เพียง -calculus จำนวนธรรมชาติและการเรียกซ้ำแบบดั้งเดิม) ดังนั้นการโต้แย้งจึงมีผลกับแคลคูลัสที่อ่อนแอกว่ามากλ

ได้รับหมายเลขให้¯ nเป็นตัวเลขที่สอดคล้องกันเป็นตัวแทนของมันคือnประยุกต์s ยูเพื่อ0 ให้ทัวริง mahcine Mปล่อยให้M เป็นตัวเลขการเข้ารหัสMด้วยวิธีที่สมเหตุสมผลnn¯nsucc0MMM

บอกว่าสองคำปิดจะเทียบเท่าเขียนทียูเมื่อสำหรับทุกn N , Tt,u:natnattunNและstn¯ทั้งปกติจะเลขเดียวกัน (พวกเขาจะปกติเลขเพราะเราอยู่ใน claculus normalizing อย่างยิ่ง)sn¯

สมมติว่าเรามีอัลกอริทึมซึ่งให้คำที่ปิดใด ๆ ของประเภทคำนวณคำที่เทียบเท่าน้อยที่สุด จากนั้นเราก็สามารถแก้ปัญหา Halting oracle ได้ดังนี้natnat

มีระยะคือดังกล่าวว่าสำหรับทุกn Nและทุกเครื่องทัวริงM , S ( M , ¯ n ) normalizes เพื่อ¯ 1ถ้าTหยุดภายในnขั้นตอน และมันจะ normalizes ¯ 0มิฉะนั้น สิ่งนี้เป็นที่รู้จักกันดีเนื่องจากการจำลองเครื่องทัวริงสำหรับจำนวนคงที่ของขั้นตอนnเป็นแบบเรียกซ้ำS:nat×natnatnNMS(M,n¯)1¯Tn0¯n

มีแง่ปิดหลายขีดเป็นซึ่งเป็นคำที่น้อยที่สุดเทียบเท่ากับλ x : nทีZ1,,Zk . อัลกอริทึมของเราลดผลตอบแทนที่หนึ่งของพวกเขาเมื่อเราจะให้มัน λ x : nทีλx:nat.0และก็อาจเป็นกรณีที่ λ x : nทีλx:nat.0ในความเป็นจริงแล้วคำศัพท์เพียงเล็กน้อยเท่านั้น ทั้งหมดนี้ไม่ได้เรื่องสิ่งเดียวที่สำคัญก็คือว่ามีเงื่อนไขน้อยที่สุดขอบเขตหลายที่เทียบเท่ากับ λ x : nทีλx:nat.0 .λx:nat.0

ตอนนี้ได้รับเครื่องใดพิจารณาคำ U : = λ x : nทีM ถ้า Mวิ่งตลอดไปแล้วยู¯ n normalizes การที่จะ ¯ 0สำหรับทุก nและเทียบเท่ากับ λ x : nที

u:=λx:nat.S(M,x)
Mun¯0¯n . ในการตัดสินใจว่า Mจะทำงานตลอดไปหรือไม่เราป้อน uในขั้นตอนวิธี minimzation ของเราและตรวจสอบว่าอัลกอริทึมส่งคืนหนึ่งใน Z 1 , , Z kหรือไม่ ถ้าเป็นเช่นนั้น Mจะทำงานตลอดไป หากไม่เป็นเช่นนั้นก็หยุด (หมายเหตุ: อัลกอริทึมไม่จำเป็นต้องคำนวณ Z 1 , , Z kด้วยตัวเองสิ่งเหล่านี้สามารถเข้ารหัสลงในอัลกอริทึมได้)λx:nat.0MuZ1,,ZkMZ1,,Zk

มันจะเป็นการดีที่จะรู้ว่าข้อโต้แย้งที่ทำงานร่วมกับความคิดที่อ่อนแอของความเท่าเทียมเช่นเพียงแค่น่าเชื่อถือβ


คุณคำนวณ Z1, .. Zk อย่างไร
user47376

คุณไม่จำเป็นต้อง นั่นคืออัลกอริทึมที่ฉันกำลังอธิบายอยู่ข้างนอกนั่นและเราไม่รู้ว่ามันคืออะไร แต่นั่นไม่เกี่ยวข้อง ฉันไม่ได้พยายามเรียกใช้อัลกอริทึมจริง ๆ ฉันแค่ต้องมีอยู่เพื่อแสดงว่าอัลกอริทึมของคุณไม่มีอยู่
Andrej Bauer

ใช่ แต่ข้อโต้แย้งของคุณบอกว่าถ้าอัลกอริทึมของฉันมีมากกว่าที่เราสามารถแก้ปัญหาการหยุด ในการพิจารณาว่าเครื่องทัวริง M หยุดทำงานอัลกอริทึมของคุณเป็นปกติหรือไม่และตรวจสอบว่าเป็นหนึ่งใน Z1, .. Zk ดังนั้นจึงจำเป็นต้องสามารถระบุสิ่งเหล่านั้นมิฉะนั้นมันอาจไม่หยุด
user47376

Z1,,ZkkZkZ[i]

7

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

ในแง่นี้เป็นที่ทราบกันว่าจะลดคำที่ไม่พิมพ์ลงในวิธีที่เหมาะสมที่สุดได้อย่างไรลดการแบ่งปันให้มากที่สุด นี่คือคำอธิบายที่นี่: https://stackoverflow.com/a/41737550/2059388และการอ้างอิงที่เกี่ยวข้องคือเจ Lamping ของอัลกอริทึมสำหรับการลดแคลคูลัสแลมบ์ดาที่ดีที่สุด มีข้อสงสัยเล็กน้อยว่าทฤษฎีบทของแคลคูลัสที่ไม่ได้พิมพ์สามารถขยายไปยัง CIC ได้

คำถามอื่น ๆ ที่เกี่ยวข้องเป็นจำนวนของข้อมูลประเภทที่สามารถลบเมื่อดำเนินการแปลงชนิดจริงหรือวิธีการดำเนินการแปลงที่มีประสิทธิภาพซึ่งเป็นสนามที่ใช้งานของการวิจัยเห็นเช่นวิทยานิพนธ์ Mishra-อิทธิพลของ


6

ให้ฉันยืนยันในมุมมองที่สัมผัสโดยคำตอบของโคดี้

λλλλ

Mf

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

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

λλ

λ

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

  1. ขนาดไม่ระเบิด
  2. λ

ทั้งหมดนี้อธิบายไว้ในกระดาษของ Accattoli และ Dal Lago "การลดเบต้าคือไม่แปรเปลี่ยนแน่นอน" (LICS 2014 และจากนั้นฉันคิดว่ามีวารสารฉบับล่าสุดมากกว่า)

λ


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

β

ใช่มันเป็นไปไม่ได้อย่างที่ Andrej พูด นั่นตอบคำถามของฉัน
47376
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.