มีประโยชน์ใด ๆ ในการคำนวณความซับซ้อนของเวลาของอัลกอริทึมโดยใช้แลมบ์ดาแคลคูลัสหรือไม่? หรือมีระบบอื่นที่ออกแบบมาเพื่อการนี้?
การอ้างอิงใด ๆ จะได้รับการชื่นชม
มีประโยชน์ใด ๆ ในการคำนวณความซับซ้อนของเวลาของอัลกอริทึมโดยใช้แลมบ์ดาแคลคูลัสหรือไม่? หรือมีระบบอื่นที่ออกแบบมาเพื่อการนี้?
การอ้างอิงใด ๆ จะได้รับการชื่นชม
คำตอบ:
Ohad ค่อนข้างถูกต้องเกี่ยวกับปัญหาที่แลมบ์ดาแคลคูลัสเผชิญเป็นพื้นฐานสำหรับการพูดคุยเกี่ยวกับคลาสที่ซับซ้อน มีงานที่ทำขึ้นเล็กน้อยในการจำแนกลักษณะความซับซ้อนของการลดทอนซิลในแคลคูลัสแลมบ์ดาโดยเฉพาะงานเกี่ยวกับการลดการติดฉลากและการลดลงที่ดีที่สุดจากวิทยานิพนธ์ระดับปริญญาเอกของLèvy โดยทั่วไปแล้วแบบจำลองราคาที่ดีสำหรับแคลคูลัสแลมบ์ดาไม่ควรกำหนดน้ำหนักคงที่ให้กับการลดเบต้าทั้งหมด: โดยสังหรณ์ใจการแทนที่ subterm จำนวนมากในสถานที่ที่มีขอบเขตแตกต่างกันหลายแห่งควรมีค่าใช้จ่ายมากกว่า ของความไม่แน่นอนของต้นทุนภายใต้กลยุทธ์การเขียนที่แตกต่างกันสิ่งนี้กลายเป็นสิ่งจำเป็น
สองลิงก์:
มีผลลัพธ์เชิงปริมาณที่เกี่ยวข้องกับ -calculus ในรูปแบบของการวัดความยาวของการลดลงของ (lambda แคลคูลัส) (พิมพ์) แลมบ์ดา แต่แน่นอนว่ายังห่างไกลจากการพูดอะไรเกี่ยวกับความซับซ้อนของอัลกอริทึม (โดยเฉพาะอย่างยิ่งที่ขอบเขตที่ได้รับนั้นเติบโตอย่างรวดเร็ว) ดูตัวอย่าง: Arnold Beckmann ขอบเขตที่แน่นอนสำหรับความยาวของการลดลงในการพิมพ์ -calculus, วารสาร Symbolic Logic 2001, 66 (3): 1277-1285
สำหรับสิ่งที่ใกล้กับคำถามของคุณมีโครงการปัจจุบันที่พัฒนาและศึกษาระบบประเภท (ภาษาโปรแกรมการทำงาน) ซึ่งโดยการวิเคราะห์แบบคงที่สามารถกำหนดขอบเขต (พหุนาม) เวลาทำงานของโปรแกรม (เช่นเดียวกับทรัพยากรอื่น ๆ ที่ใช้โดย โปรแกรม) ดังนั้นในบางแง่สิ่งนี้อาจบ่งบอกว่าอาจมีข้อได้เปรียบบางอย่างในการใช้ฟังก์ชั่นการเขียนโปรแกรมสำหรับการวิเคราะห์ความซับซ้อนของเวลาทำงาน หน้าแรกของโครงการคือที่นี่
บทความที่น่าจะเป็นตัวแทนของโครงการนี้คือ: Jan Hoffmann, Martin Hofmann การวิเคราะห์ทรัพยากรตัดจำหน่ายด้วยศักยภาพพหุนาม - การอนุมานคงที่ของขอบเขตพหุนามสำหรับโปรแกรมเชิงฟังก์ชัน ในการดำเนินการของการประชุมวิชาการยุโรปที่ 19 เกี่ยวกับการเขียนโปรแกรม (ESOP'10) ลิงค์
การพัฒนาล่าสุดในหัวข้อนี้: U. dal Lago และ B. Accatoli พิสูจน์แล้วว่าความยาวของการลดลงซ้ายสุด - ด้านนอกสุด (LOr) ของ a -term เป็นรูปแบบราคาคงที่สำหรับ -calculus
พวกเขาแสดงให้เห็นว่าเครื่องจักรทัวริง (ที่มีราคา = เวลา) และ -terms (ที่มีราคา = ความยาวของ LOr) สามารถจำลองซึ่งกันและกันด้วยค่าใช้จ่ายพหุนามในเวลา ตัวอย่างเช่นคำจำกัดความของคลาส P ไม่ได้ขึ้นอยู่กับรูปแบบการคำนวณสองแบบที่คุณใช้เพื่อกำหนด
มีงานที่น่าสนใจอย่างมากบนพื้นฐานของลอจิกเชิงเส้นเรียกว่าทฤษฎีความซับซ้อนโดยปริยายซึ่งอธิบายลักษณะของคลาสที่ซับซ้อนต่าง ๆ โดยกำหนดให้สาขาวิชาประเภทต่างๆ IIRC งานนี้เริ่มเมื่อ Bellantoni และ Cook และ Leivant คิดหาวิธีใช้ระบบพิมพ์เพื่อผูกโยงการเรียกซ้ำแบบดั้งเดิมเพื่อจับภาพคลาสที่ซับซ้อนต่าง ๆ
โดยทั่วไปแล้วสิ่งที่ดึงดูดให้ทำงานกับแลมบ์ดานิคูนั้นคือบางครั้งมันเป็นไปได้ที่จะหาตัวละครที่มีมิติมากขึ้น ตัวอย่างเช่นความแตกต่างอย่างหนึ่งระหว่างทัวริงเครื่องและแคลคูลัสแลมบ์ดาบริสุทธิ์คือตั้งแต่ทัวริงได้รับรหัสของโปรแกรมลูกค้าสามารถใช้การหมดเวลาด้วยตนเองเพื่อใช้การประกบกัน - และด้วยเหตุนี้สามารถคำนวณแบบขนานหรือ อย่างไรก็ตามไทม์เอาต์ยังสามารถสร้างแบบจำลองเมตริกและ Escardo ได้คาดเดา (ฉันไม่ทราบสถานะ) ว่าโมเดลพื้นที่ตัวชี้วัดของแคลคูลัสแลมบ์ดานั้นเป็นนามธรรมอย่างสมบูรณ์สำหรับหมดเวลา PCF + พื้นที่วัดจะมากดีศึกษาวัตถุทางคณิตศาสตร์และมันเป็นสิ่งที่ดีมากที่จะสามารถที่จะทำให้การใช้งานของร่างกายของทฤษฎีที่ว่า
อย่างไรก็ตามความยากลำบากในการใช้แคลคูลัสแลมบ์ดานั้นคือการบังคับให้คุณเผชิญหน้ากับปรากฏการณ์ที่มีลำดับสูงกว่าจากประตูเริ่มต้น นี่อาจเป็นเรื่องที่ละเอียดอ่อนมากเนื่องจากวิทยานิพนธ์ของทัวริสต์ทัวริสต์ล้มเหลวในรูปแบบที่สูงกว่า - แบบจำลองธรรมชาติของการคำนวณแตกต่างกันไปในประเภทที่สูงกว่าเนื่องจากมันแตกต่างกันในสิ่งที่คุณได้รับอนุญาต (ขนานหรือเป็นตัวอย่างง่าย ๆ ของปรากฏการณ์นี้เนื่องจากมันแสดงให้เห็นถึงความแตกต่างระหว่าง LC และ TM) นอกจากนี้ยังไม่มีแม้แต่การรวมที่เข้มงวดระหว่างรุ่นที่แตกต่างกันเนื่องจากความแปรปรวนของพื้นที่ฟังก์ชั่นหมายถึงพลังที่แสดงออกมากขึ้น คำสั่งเดียวหมายถึงพลังที่แสดงออกน้อยกว่า
เท่าที่ฉันรู้แคลคูลัสแลมบ์ดานั้นไม่เหมาะสำหรับจุดประสงค์นี้เนื่องจากแนวคิดของเวลา / พื้นที่ซับซ้อนนั้นยากที่จะกำหนดในแคลคูลัสแลมบ์ดา
ความซับซ้อนของเวลา 1 หน่วยคืออะไร การลดลงของเบต้า? แล้วหน่วยของความซับซ้อนของอวกาศล่ะ? ความยาวของสตริง?
แลมบ์ดาแคลคูลัสเหมาะกว่าสำหรับการจัดการอัลกอริธึมที่เป็นนามธรรมเนื่องจากสามารถเรียบเรียงได้ง่ายกว่าเครื่องทัวริง
นอกจากนี้คุณยังสามารถค้นหาแคลคูลัสของการแทนที่อย่างชัดเจนซึ่งแยกการทดแทนเมตาระดับของแลมบ์ดาแคลคูลัสออกเป็นชุดของขั้นตอนการลดอย่างชัดเจน สิ่งนี้แตะที่ประเด็นของชาร์ลส์ว่าการทดแทนทั้งหมดไม่ควรพิจารณาเช่นเดียวกันเมื่อพิจารณาความซับซ้อนของเวลา
ดู Nils Anders Danielsson การวิเคราะห์ความซับซ้อนเชิงเวลาแบบกึ่งเวลาน้ำหนักเบาสำหรับโครงสร้างข้อมูลที่ใช้งานได้จริงซึ่งนำไปใช้เป็นห้องสมุดใน Agda การอ้างอิงที่ให้ไว้ในบทความก็ดูมีแนวโน้มมากเช่นกัน
สิ่งสำคัญอย่างหนึ่งสำหรับฉันก็คือมันมีความเหมาะสม / มีประโยชน์ / เหมาะสม / กึ่งอัตโนมัติเพื่อให้ได้มาซึ่งความซับซ้อนของเวลาในอัลกอริทึมในแคลคูลัสแลมบ์ดาที่พิมพ์ง่าย ๆ โดยเฉพาะถ้าอัลกอริธึมเหล่านั้น อัลกอริธึมใช้ประโยชน์อย่างมีนัยสำคัญเช่นอรรถศาสตร์การโทรตามชื่อ พร้อมกับสิ่งนี้เป็นจุดที่เห็นได้ชัดว่าไม่มีใครคำนวณความซับซ้อนเพียง "ในแคลคูลัสแลมบ์ดา" แต่ในแคลคูลัสแลมบ์ดาภายใต้กลยุทธ์การประเมินที่กำหนด