Lammda แคลคูลัสเลียนแบบสามารถแก้ปัญหาทุกปัญหาใน P ได้หรือไม่?


10

ในหัวข้อขั้นสูงในประเภทและภาษาการเขียนโปรแกรมถูกกล่าวถึงในบทเกี่ยวกับระบบย่อยโครงสร้างว่า "แลบด้าแคลคูลัสเลียนแบบ" ที่ออกแบบมาอย่างดีเพื่อเลียนแบบแลมบ์ดาด้วย combinator แบบเรียกซ้ำสำหรับรายการสามารถพิมพ์คำที่มีพหุนามวิ่งได้ แสดงหลักฐานเนื่องจากความซับซ้อน) นี่จะน่าสนใจมากถ้าเราสามารถแก้ปัญหาทุกอย่างใน P. ฉันสามารถลองหาวิธีแก้ปัญหาแบบ P-Complete โดยใช้แคลคูลัสที่นำเสนอโดยฉันไม่แน่ใจว่านี่จะพิสูจน์อะไรได้จริง ฉันไม่ได้หมายความว่ามันสามารถ preform ลดทั้งหมดที่จำเป็นในการใช้วิธีการแก้ปัญหา P-Complete (แม้ว่ามันจะดูเหมือนว่ามีโอกาส)

หากแคลคูลัสแลมบ์ดาเลียนแบบไม่ทราบว่าสามารถแก้ไขปัญหาได้อย่างแน่นอนใน P มีแคลคูลัสรู้จักใด ๆ ที่สามารถแก้ปัญหาใน P ได้หรือไม่?


1
แก้ตัวไม่รู้ของฉัน แต่สิ่งที่เป็นตัวอย่างของปัญหาสมบูรณ์และที่สำคัญกว่าคุณใช้ความคิดในการลดอะไร? P
Andrej Bauer

ผมพบว่าบางอย่างเกี่ยวกับวิกิพีเดีย: en.wikipedia.org/wiki/P-complete#P-complete_problems สิ่งที่น่าสนใจคือปัญหาค่าวงจรและ horn-SAT การเขียนโปรแกรมเชิงเส้นก็เห็นได้ชัดว่า - สมบูรณ์ ภาพนิ่งเหล่านี้อธิบายค่าวงจรปัญหา preety ดีcs.cornell.edu/courses/CS6820/2012sp/Handouts/cvp.pdf มันดูเหมือนว่าทั้งลดหรือมีการใช้ลดลงเป็นที่อ่อนแอกว่าลด ฉันจะพอใจกับทั้ง; ฉันไม่แน่ใจว่าผลที่ตามมาของการใช้ vsคืออะไรกันแน่ L N C L N C L N CPLยังไม่มีข้อความLยังไม่มีข้อความLยังไม่มีข้อความ
Jake

6
มีภาษาเส้นตรงที่สมบูรณ์สำหรับ P สิ่งที่น่าสนใจคือภาษาเหล่านั้นมักจะมีปัญหา แต่ไม่ใช่สำหรับอัลกอริธึม นั่นคือคุณสามารถเขียนโปรแกรมเวลาโพลีสำหรับทุกปัญหาใน P แต่ไม่ใช่ทุกโพลีไทม์อัลกอริทึมที่สามารถแสดงออกได้
Neel Krishnaswami

คำกล่าวนั้นจะเทียบเท่ากับ "โดยทั่วไปแล้วจะสมบูรณ์สำหรับ P แต่ไม่ใช่สำหรับ FP" นอกจากนี้หากคุณสามารถให้ตัวอย่างบางส่วนนี่จะเป็นคำตอบที่น่าอัศจรรย์
Jake

3
Neel Krishnaswami คุณสามารถให้การอ้างอิงได้หรือไม่? ฟังดูน่าสนใจ
Mateus de Oliveira Oliveira

คำตอบ:


12

แก้ไข: การเดาของฉันในวรรคแรกด้านล่างผิด! Ugo Dal Lago ชี้ให้ฉันเห็นกระดาษในภายหลังโดย Martin Hofmann (ปรากฏใน POPL 2002) ซึ่งฉันไม่รู้การแสดง (เป็นข้อพิสูจน์ของผลลัพธ์ทั่วไปเพิ่มเติม) ว่าระบบจากหนังสือ ATTPL นั้นสมบูรณ์จริง ๆ สำหรับ ( แม้จะไม่สามารถคำนวณทุกฟังก์ชั่นในF P ) ดังนั้นเพื่อประหลาดใจของฉันคำตอบสำหรับคำถามหลักคือใช่PFP


เกี่ยวกับระบบที่คุณจะหมายถึง (จากหนังสือ ATTPL) ที่ผมค่อนข้างมั่นใจว่ามันไม่สามารถตัดสินใจในทุกภาษาPแน่นอนว่ามันไม่สามารถคำนวณทุกฟังก์ชั่นในF P : ดังที่ได้กล่าวไว้ในบันทึกของบทที่ว่าระบบนั้นนำมาจากกระดาษ LICS 1999 ของ Martin Hofmann ("ประเภทเชิงเส้นและการคำนวณเวลาแบบพหุนามแบบไม่เพิ่มขนาด") ฟังก์ชั่นที่สามารถแทนค่าได้คือ polytime และไม่เพิ่มขนาดPFPซึ่งไม่รวมฟังก์ชัน polytime จำนวนมาก ดูเหมือนว่าจะมีข้อ จำกัด ร้ายแรงเกี่ยวกับขนาดของเทปของเครื่องจักรทัวริงที่คุณสามารถจำลองในภาษานั้นได้ ในกระดาษ Hofmann แสดงให้เห็นว่าคุณสามารถเข้ารหัสการคำนวณพื้นที่เชิงเส้น ฉันเดาว่าคุณจะไม่สามารถทำอะไรได้มากกว่านี้เช่นคลาสที่สอดคล้องกับระบบนั้นเป็นปัญหาที่แก้ไขได้พร้อมกันใน polytime และ linear space

เกี่ยวกับคำถามที่สองของคุณมีหลาย -calculi ที่สามารถแก้ปัญหาที่เกิดขึ้นว่าในP บางส่วนของพวกเขาได้รับการกล่าวถึงในบันทึกของบท ATTPL คุณกำลังหมายถึง (นิกาย 1.6.) Leivant ของฉัตรλแคลคูลัส (ดู popl 1993 เขากระดาษหรือกระดาษที่มี Jean-Yves แมเรียน "แลมบ์ดาแคลคูลัสลักษณะเฉพาะของโพลี-Time ", Fundamenta Informaticae 19 (1/2): 167-184, 1993) ซึ่งเกี่ยวข้องกับ Bellantoni และลักษณะของ Cook ของF P ; และλ -calculi มาจากตรรกะเชิงเส้นแสงราร์ด ( สารสนเทศและการคำนวณ 143: 175-204, 1998) หรือจากตรรกะเชิงเส้น Lafont อ่อน ( ทฤษฎีวิทยาการคอมพิวเตอร์λPλFPλ318 (1-2): 163-180, 2004) พิมพ์ระบบที่เกิดขึ้นจากระบบลอจิคัลสองระบบหลังนี้และตรวจสอบให้แน่ใจว่ามีการเลิกจ้างโพลีไทม์ (ในขณะที่ยังคงเพลิดเพลินกับความสมบูรณ์) อยู่ใน:

Patrick Baillot, Kazushige Terui ประเภทแสงสำหรับการคำนวณเวลาแบบพหุนามในแคลคูลัสแลมบ์ดา สารสนเทศและการคำนวณ 207 (1): 41-62, 2009

Marco Gaboardi, Simona Ronchi Della Rocca จาก logics แสงเพื่อพิมพ์การมอบหมาย: กรณีศึกษา วารสารตรรกะของ IGPL 17 (5): 499-530, 2009

คุณจะพบการอ้างอิงอื่น ๆ อีกมากมายในเอกสารสองฉบับนี้

เพื่อสรุปให้ฉันขยายคำพูดของ Neel Krishnaswami สถานการณ์ค่อนข้างบอบบาง จากทั้งหมด -calculi อาจถูกมองว่าเป็นข้อ จำกัด ของแคลคูลัสทั่วไปซึ่งคุณสามารถคำนวณได้มากกว่าฟังก์ชั่น polytime ตัวอย่างเช่นระบบ F กล่าวอีกนัยหนึ่งคือคุณกำหนดคุณสมบัติΦของระบบ F โปรแกรมP : stringboolเช่นนั้น:λΦP:เชือกบูล

ความสมบูรณ์: แปลว่าภาษาที่Pตัดสินใจใช้คือP ;Φ(P)PP

ครบถ้วน:ทุก , มีระบบ F โปรแกรมPตัดสินใจLดังกล่าวว่าΦ ( P )LPPLΦ(P)

สิ่งที่น่าสนใจก็คือทรัพย์สินที่แสดงออกโดยนั้นเป็นวากยสัมพันธ์และโดยเฉพาะอย่างยิ่งสามารถถอดรหัสได้ ดังนั้นความสมบูรณ์สามารถถือได้เฉพาะในมิติ: ถ้าLเป็นภาษาที่คุณชื่นชอบในPและถ้าPเป็นอัลกอริทึมที่คุณชื่นชอบสำหรับการตัดสินใจL ที่แสดงในระบบ F อาจเป็นได้ว่าΦ ( P )ไม่ถือ สิ่งที่คุณรู้คือมีบางโปรแกรมระบบ F อื่น ๆ ที่P ตัดสินใจLและนั่นคือΦ ( P ) ที่ถืออยู่ น่าเสียดายที่มันอาจเกิดขึ้นที่P ΦLPPLΦ(P)P'LΦ(P')P'มีการวางแผนไว้มากขึ้นกว่าที่คุณPอันที่จริงครบถ้วนถูกพิสูจน์โดยการเข้ารหัสเครื่องจักรทัวริง polynomially-clocked เป็นระบบแง่ความพึงพอใจ F Φ ดังนั้นวิธีเดียวที่รับประกันการแก้ไขLโดยใช้อัลกอริทึมที่คุณชื่นชอบคือการใช้อัลกอริทึมนั้นบนเครื่องทัวริงแล้วแปลมันในระบบ F โดยใช้การเข้ารหัสที่ให้ไว้ในการพิสูจน์ความสมบูรณ์ (การเข้ารหัสของคุณเองอาจไม่ทำงาน!) ไม่ว่าวิธีการแก้ปัญหาส่วนใหญ่ที่สง่างามในแง่ของการเขียนโปรแกรม ... แน่นอนในหลาย ๆ กรณี "ธรรมชาติ" โปรแกรมPไม่พอใจΦ อย่างไรก็ตามในหลายกรณีมันไม่ได้: ในกระดาษ LICS 1999 ที่กล่าวถึงข้างต้น Hofmann ให้เรียงลำดับการแทรกเป็นตัวอย่างPΦLPΦ

สมบูรณ์จงใจระบบการพิมพ์ที่มีความสามารถที่จะพิมพ์ว่าโปรแกรม polytime ของภาษาที่กว้างขึ้น (ระบบ F ในตัวอย่างของฉันข้างต้น) ทำอยู่ แน่นอนพวกเขาไม่สามารถตัดสินใจได้โดยทั่วไป ดู

Ugo Dal Lago, Marco Gaboardi ประเภทขึ้นอยู่กับเส้นตรงและความสมบูรณ์สัมพัทธ์ วิธีการเชิงตรรกะในวิทยาการคอมพิวเตอร์ 8 (4), 2011


1
ฉันไม่เข้าใจสิ่งที่คุณพยายามจะพูดในช่วงครึ่งหลัง จากคำอธิบายของคุณมีการเปลี่ยนโครงสร้างทางไวยากรณ์ของเครื่องทัวริงแบบตอกบัตรลงเวลาไปยังโปรแกรม F ที่แก้ปัญหาเดียวกัน เท่าที่ฉันเห็นนี่เป็นสิ่งที่ดีที่สุดที่จะหวังได้เมื่อแปลจากการคำนวณแบบหนึ่งไปอีกแบบหนึ่ง
Emil Jeřábek

3
@ EmilJeřábek: ฉันพยายามที่จะพูดว่าค่อนข้าง จำกัด และมันปฏิเสธโปรแกรม "ธรรมชาติ" แบบ polytime F หลายอย่าง ถ้ามีสิ่งดังกล่าวเป็นระบบ F โปรแกรมเมอร์และคุณเป็นหนึ่งและถ้าผมขอให้คุณเขียนลงโปรแกรมสำหรับการคูณจำนวนเต็มเอก (ประเภทN T : = X . ( X X ) X X ) คุณอาจจะเขียนλ เมตรNที λ n Nที Λ X λ s X Φยังไม่มีข้อความaเสื้อ=X.(XX)XX) จากนั้นคุณอาจผิดหวังในการพบว่าคำของคุณถูกปฏิเสธและคุณต้องตั้งโปรแกรมการคูณด้วยการทำซ้ำ (ต่อ)λม.ยังไม่มีข้อความaเสื้อ.λnยังไม่มีข้อความaเสื้อ.ΛX.λsXX.ม.X(nXs)
Damiano Mazza

3
โอR

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