การใช้แลมบ์ดาแคลคูลัสเพื่อหาเวลาที่ซับซ้อน?


43

มีประโยชน์ใด ๆ ในการคำนวณความซับซ้อนของเวลาของอัลกอริทึมโดยใช้แลมบ์ดาแคลคูลัสหรือไม่? หรือมีระบบอื่นที่ออกแบบมาเพื่อการนี้?

การอ้างอิงใด ๆ จะได้รับการชื่นชม

คำตอบ:


22

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

สองลิงก์:

  1. Lawall & Mairson, 1996, การเพิ่มประสิทธิภาพและความไร้ประสิทธิภาพ: แบบจำลองต้นทุนของแคลคูลัสแลมบ์ดาไม่ใช่อะไร? (.ps.gz) - การสำรวจปัญหาที่มีผลต่อการเลือกรูปแบบค่าใช้จ่ายและสาเหตุที่แนวคิดที่เป็นไปได้จำนวนมากไม่ทำงาน
  2. Dal Lago & Martini, 2008, แคลคูลัสแลมบ์ดาที่อ่อนแอในฐานะเครื่องจักรที่สมเหตุสมผล - เสนอรูปแบบราคาสำหรับแคลคูลัสแลมบ์ดาตามมูลค่าการโทรพร้อมด้วยการอภิปรายวรรณกรรมที่ดี

1
ข้อมูลอ้างอิงที่น่าสนใจฉันไม่รู้เกี่ยวกับผลงานเหล่านี้
Iddo Tzameret

1
สถานการณ์เปลี่ยนไปเมื่อเร็ว ๆ นี้ในหัวข้อนี้ ดูคำตอบของฉันด้านล่าง
Marc

23

มีผลลัพธ์เชิงปริมาณที่เกี่ยวข้องกับ -calculus ในรูปแบบของการวัดความยาวของการลดลงของ (lambda แคลคูลัส) (พิมพ์) แลมบ์ดา แต่แน่นอนว่ายังห่างไกลจากการพูดอะไรเกี่ยวกับความซับซ้อนของอัลกอริทึม (โดยเฉพาะอย่างยิ่งที่ขอบเขตที่ได้รับนั้นเติบโตอย่างรวดเร็ว) ดูตัวอย่าง: Arnold Beckmann ขอบเขตที่แน่นอนสำหรับความยาวของการลดลงในการพิมพ์ -calculus, วารสาร Symbolic Logic 2001, 66 (3): 1277-1285λλ

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

บทความที่น่าจะเป็นตัวแทนของโครงการนี้คือ: Jan Hoffmann, Martin Hofmann การวิเคราะห์ทรัพยากรตัดจำหน่ายด้วยศักยภาพพหุนาม - การอนุมานคงที่ของขอบเขตพหุนามสำหรับโปรแกรมเชิงฟังก์ชัน ในการดำเนินการของการประชุมวิชาการยุโรปที่ 19 เกี่ยวกับการเขียนโปรแกรม (ESOP'10) ลิงค์


20

การพัฒนาล่าสุดในหัวข้อนี้: U. dal Lago และ B. Accatoli พิสูจน์แล้วว่าความยาวของการลดลงซ้ายสุด - ด้านนอกสุด (LOr) ของ a -term เป็นรูปแบบราคาคงที่สำหรับ -calculusλλ

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

http://arxiv.org/abs/1405.3311


18

มีงานที่น่าสนใจอย่างมากบนพื้นฐานของลอจิกเชิงเส้นเรียกว่าทฤษฎีความซับซ้อนโดยปริยายซึ่งอธิบายลักษณะของคลาสที่ซับซ้อนต่าง ๆ โดยกำหนดให้สาขาวิชาประเภทต่างๆ IIRC งานนี้เริ่มเมื่อ Bellantoni และ Cook และ Leivant คิดหาวิธีใช้ระบบพิมพ์เพื่อผูกโยงการเรียกซ้ำแบบดั้งเดิมเพื่อจับภาพคลาสที่ซับซ้อนต่าง ๆ

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

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


12

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

ความซับซ้อนของเวลา 1 หน่วยคืออะไร การลดลงของเบต้า? แล้วหน่วยของความซับซ้อนของอวกาศล่ะ? ความยาวของสตริง?

แลมบ์ดาแคลคูลัสเหมาะกว่าสำหรับการจัดการอัลกอริธึมที่เป็นนามธรรมเนื่องจากสามารถเรียบเรียงได้ง่ายกว่าเครื่องทัวริง


7

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


7

ดู Nils Anders Danielsson การวิเคราะห์ความซับซ้อนเชิงเวลาแบบกึ่งเวลาน้ำหนักเบาสำหรับโครงสร้างข้อมูลที่ใช้งานได้จริงซึ่งนำไปใช้เป็นห้องสมุดใน Agda การอ้างอิงที่ให้ไว้ในบทความก็ดูมีแนวโน้มมากเช่นกัน

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

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