เหตุใดจึงต้องใช้ภาษาในทฤษฎีความซับซ้อน


10

ฉันเพิ่งเริ่มเข้าสู่ทฤษฎีการคำนวณซึ่งศึกษาสิ่งที่สามารถคำนวณได้ว่าเร็วแค่ไหนโดยใช้หน่วยความจำและรูปแบบการคำนวณแบบไหน

ฉันมีคำถามพื้นฐานที่สวยงาม แต่ฉันหวังว่าพวกคุณบางคนสามารถช่วยฉันเข้าใจแนวคิดที่อยู่เบื้องหลัง:

ทำไมทุกอย่างมีศูนย์กลางอยู่ที่ความคิดและความหมายของภาษา (เช่นภาษาปกติและภาษาที่ไม่มีบริบท) และสิ่งเหล่านี้เกี่ยวข้องและอธิบายความซับซ้อนของอัลกอริทึมและตัวแบบการคำนวณที่เป็นไปได้สำหรับการแก้ปัญหาอย่างไร

ฉันอ่านคำถามที่เกี่ยวข้องเหล่านี้:

แต่ก็ยังไม่มีคำตอบสำหรับข้อสงสัยของฉันเนื่องจากพวกเขาให้เหตุผลที่สมเหตุสมผลว่าทำไมพวกเขาถึงมีความสำคัญ (ซึ่งฉันเข้าใจ) แต่ไม่ช่วยให้ฉันเข้าใจว่าทำไมทฤษฎีความซับซ้อนจึงยึดถือพวกเขา


1
นี่ไม่ครอบคลุมโดยคำถามอ้างอิงของเรา ?
Raphael

@ ราฟาเอล - ขอบคุณที่ชี้ให้ฉันเห็นถึงคำถามนั้นมันเป็นข้อมูลอ้างอิงที่ยอดเยี่ยม! ฉันกำลังอ่านผ่านมันตอนนี้ แต่ในขณะที่ผมเชื่อว่านี่อาจจะเป็นภาคผนวกกับคำถามcs.stackexchange.com/questions/13669/... ดูเหมือนว่าฉันจะไม่ได้รับคำตอบโปรดแจ้งให้เราทราบหากคุณผอมบางอย่าง
มัตเตโอ

3
ภาษาเป็นเพียงชุดของความยาว จำกัด ซึ่งเป็นฟังก์ชั่นที่แมปสตริง จำกัด เป็น 1 หรือ 0 ดังนั้นคุณถามจริง ๆ ว่า "ทำไมทฤษฎีความซับซ้อนมากมายเกี่ยวกับปัญหาการตัดสินใจ" และคำตอบก็คือ งานการคำนวณที่ง่ายที่สุด (ไม่ต้องทำ) และบ่อยครั้งที่งานการคำนวณที่ซับซ้อนมากขึ้นสามารถลดปัญหาการตัดสินใจลงได้
Sasho Nikolov

คำตอบ:


10

เป็นเพราะภาษาที่ดีที่สุด (เท่านั้น) วิธีที่เรามีในการทำให้แนวคิดของ "ปัญหา" เป็นระเบียบเรียบร้อย

อัลกอริธึม (Turing Machine) มีประสิทธิภาพซึ่งเราแสดงผ่านความซับซ้อนของบิ๊กโอ ปัญหา (ภาษา) เป็นของระดับความซับซ้อน สิ่งเหล่านี้มักจะถูกกำหนดโดยการมีอยู่: หากมีเครื่องที่ยอมรับภาษาซึ่งทำงานในประสิทธิภาพที่กำหนด (พื้นที่หรือเวลา) ภาษานั้นจะเป็นของคลาสความซับซ้อนที่สอดคล้องกันL

มีเหตุผลบางประการสำหรับเรื่องนี้ แรกคือภาษาที่เป็นอิสระจากแพลตฟอร์ม คุณไม่ต้องกังวลเกี่ยวกับว่าจำนวนเต็มเป็น 32 หรือ 64 บิตหรือว่าการดำเนินการจุดลอยตัวทำงานควบคู่กับการดำเนินการอื่น ๆ สิ่งเหล่านี้ให้ประสิทธิภาพการทำงานที่รวดเร็วในระดับไมโคร แต่การวิเคราะห์ความซับซ้อนมีความสนใจในระดับมหภาค เมื่อคุณปรับขนาดจาก 100 ถึงถึง10 9ถึง10 12อินพุตประสิทธิภาพของอัลกอริทึมจะเปลี่ยนไปอย่างไร มันเปลี่ยนจากการใช้เทปเซลล์ 1 ล้านเซลล์เป็น 1 พันล้านเซลล์หรือจาก 1 ล้านเซลล์เป็นมากกว่าเซลล์ในจักรวาล?1061091012

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

k

ฉันเดาว่านี่คือความท้าทายสำหรับคุณ: หาวิธีอธิบายปัญหาทางคณิตศาสตร์ที่ไม่ใช่ภาษา ฉันไม่รู้ว่าภาษานั้นพิเศษหรือไม่ แต่ฉันคิดว่ามันเป็นเครื่องมือที่ง่ายที่สุดที่เรามี


7
ภาษาไม่ใช่วิธีเดียวในการกำหนดปัญหา ตัวอย่างเช่นคุณสามารถจัดระเบียบบางอย่างเช่นหมายเลขสีเป็นฟังก์ชันจากกราฟไปยังหมายเลขธรรมชาติ และที่จริงแล้วมีปัญหาเกี่ยวกับฟังก์ชั่นและการเพิ่มประสิทธิภาพค่อนข้างมาก
David Richerby

2
จริง แต่คุณจะจัดการกับความซับซ้อนของการคำนวณหมายเลขรงค์โดยไม่มีแนวคิดของภาษาหรือเครื่องได้อย่างไร
jmite

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

3
@jmite คุณต้องการเครื่องจักรใช่ แต่ไม่ใช่ภาษา
Raphael

2
@ ราฟาเอลมีคลาสความซับซ้อนมากมายที่มักกำหนดไว้ในรูปแบบของเวลาที่ใช้ในการทำงานของเครื่องจักรสามารถกำหนดได้ในรูปของความซับซ้อนเชิงพรรณนา
Sasho Nikolov

7

มีสองคำตอบพื้นฐานสำหรับคำถามของคุณ:

  1. มีทฤษฎีความซับซ้อนมากกว่าภาษาเช่นคลาสฟังก์ชั่นความซับซ้อนทางคณิตศาสตร์และ subareas ของอัลกอริทึมการประมาณและความไม่สามารถประมาณได้

  2. เหตุผลทางประวัติศาสตร์: หนึ่งในเอกสารขั้นพื้นฐานในทฤษฎีการคำนวณได้กล่าวถึง Entscheidungsproblem ของ Hilbert (รูปแบบของปัญหาการหยุดชะงัก)

น่าเสียดายที่ฉันไม่ค่อยรู้เรื่องหลังนี้มากนัก แต่ขอให้ฉันขยายไปในอดีต

ความซับซ้อนเกินกว่าภาษา

LMMxMM(x)L.

ความซับซ้อนของวงจรเลขคณิต (หรือทฤษฎีความซับซ้อนเชิงพีชคณิต ) เกี่ยวข้องกับความซับซ้อนของการคำนวณพหุนามหลายชนิด คลาสความซับซ้อนที่สำคัญที่นี่คือ VP และ VNP และทฤษฎีความซับซ้อนทางเรขาคณิตเป็นโครงการสำคัญที่พยายามแยก VP และ VNP (และภายหลัง P และ NP) โดยใช้เรขาคณิตเชิงพีชคณิตและทฤษฎีการเป็นตัวแทน

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

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

LNn


3

ลองดูคำถามนี้จากมุมมองของทฤษฎีหมวดหมู่ ปัญหาการตัดสินใจ (หรือภาษา) จะสอดคล้องกับวัตถุของหมวดหมู่และการอนุญาตที่ลดลงระหว่างสองปัญหาจะสอดคล้องกับ morphisms (ลูกศร) ของหมวดหมู่

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

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


ดูเหมือนจะไม่ตอบคำถาม เรายังสามารถพูดถึง morphisms ระหว่างปัญหาต่าง ๆ ที่สิ่งหนึ่งใช้เป็นวัตถุในประเภทที่สอดคล้องกัน
David Richerby

@DavidRicherby จุดที่ฉันต้องการนำมาใช้ก็คือการกำจัด morphisms ที่เหมาะสมนั้นมีความท้าทายมากกว่าการกำจัดวัตถุที่เหมาะสม (= ภาษา) (โดยเฉพาะอย่างยิ่งเนื่องจากปกติแล้วจะมีความคิดเกี่ยวกับมอร์ฟิซึ่มส์มากกว่าหนึ่งข้อ) หากปราศจากมอร์ฟิซึ่มส์คุณไม่สามารถพูดคุยเกี่ยวกับปัญหาของไอโซมอร์ฟิค (หรืออัลกอริทึม) อย่างไรก็ตามภาษาให้วิธีการที่คุณยังคงพูดคุยเกี่ยวกับความเท่าเทียมกันของปัญหา บางทีฉันไม่ได้อธิบายอย่างถูกต้อง แต่ (สำหรับฉัน) นี่เป็นเหตุผลที่ดีสำหรับ "การใช้ภาษาในทฤษฎีความซับซ้อน"
Thomas Klimpel
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.