คลาสความซับซ้อนที่เกี่ยวข้องกับการแสดงรายการโซลูชันทั้งหมดหรือไม่


15

ฉันอ่านคำถามที่ Stack Overflow ถามว่ามันเป็นNP -hard หรือไม่ที่จะเขียนรายการวงจรที่เรียบง่ายทั้งหมดในกราฟที่มีโหนดหนึ่งและมันเกิดขึ้นกับฉันว่าฉันไม่สามารถนึกถึงความซับซ้อนที่มีอยู่ในปัจจุบันที่เหมาะสำหรับ พูดคุยเกี่ยวกับปัญหาของแบบฟอร์ม "แสดงวิธีแก้ไขปัญหาทั้งหมด" คลาสNPในแง่หนึ่งประกอบด้วยปัญหาที่ถามว่ามีวิธีแก้ปัญหาอย่างน้อยหนึ่งรายการหรือไม่คลาสFNPขอให้สร้างโซลูชันเดียวและคลาส# Pขอให้นับจำนวนวิธีแก้ปัญหาที่มี แต่ยังไม่มีการจัดการที่ซับซ้อนเหล่านี้ ของการแจกแจงโซลูชันที่เป็นไปได้ทั้งหมดอย่างละเอียดถี่ถ้วน

มีคลาสที่ซับซ้อนสำหรับการอธิบายปัญหาที่อยู่ในรูปแบบ "กำหนดพหุนามคำนวณเวลาและสตริงx , แจกแจงทั้งหมดyที่P ( x , y )เป็นเรื่องจริง [แทรกบางอย่าง ข้อ จำกัด ด้านความซับซ้อนที่เหมาะสม]? " ฉันเข้าใจว่าอาจเป็นเรื่องยากที่จะกำหนดข้อ จำกัด เนื่องจากจำนวนโซลูชันอาจมีขนาดใหญ่กว่าขนาดของอินพุทxแทนแบบเลขชี้กำลังแม้ว่ามันจะดูไม่ผ่านไม่ได้P(x,y)xyP(x,y)x


น่าสนใจ บางทีในทางปฏิบัติปัญหาที่เกี่ยวข้องจำนวนมากเกินไปมักจะมีวิธีแก้ปัญหาแบบเลขชี้กำลังหากมี อินสแตนซ์สำหรับ SAT และ CLIQUE โดยทั่วไปมีพื้นที่โซลูชันขนาดใหญ่
Chi

3
ที่นี่เป็นอีกสถานที่สำหรับการทำแบบนี้ ปัญหาอยู่ในX E (สำหรับ X-enumerable) หากมี X-algorithm A ที่ให้A ( x , i )ส่งคืนผลเฉลยที่i (เช่นI th yกับP ( x , y ) ) wrt บางคำสั่ง สังเกตว่านี่คล้ายกับที่บางครั้งกำหนด RE วิธีนี้จะลดขนาดของพื้นที่โซลูชันและมุ่งเน้นไปที่การหาวิธีแก้ไขปัญหาต่อไปอย่างหนัก แน่นอนว่าค่าใช้จ่ายทั้งหมดนั้นรวมอยู่ในการสรุปรวม PXEAA(x,i)iIyP(x,y)
กราฟิลส์

3
(ผมไม่เคยเห็นมันกำหนดเป็นระดับแต่คุณตระหนักถึงแนวคิดของการแจกแจงพหุนามที่มีความล่าช้า ?)

@ ราฟาเอลนี่อาจไม่ใช่สิ่งที่เรากำลังมองหา ตัวอย่างเช่นหากอัลกอริทึมที่ดีที่สุดสำหรับจะต้องทำซ้ำมากกว่าโซลูชันทั้งหมดจนกว่าจะพบiของพวกเขาและทำงานในเวลาΘ ( f ( | x | ) )แล้วความซับซ้อนที่เรากำลังมองหาคือΘ ( ( | x | ) )แต่ผลรวมจะแนะนำซับซ้อนΘ ( F ( | x | ) 2 ) A(x,i)iΘ(f(|x|))Θ(f(|x|))Θ(f(|x|)2)
Lieuwe Vinkhuijzen

@RickyDemer นั่นคือสิ่งที่ฉันกำลังสั่นคลอนจากทาสของฉันใช่ไหม? เป็นการดีที่จะรู้ว่ามีระเบียบแบบแผนที่จัดตั้งขึ้นแล้ว
กราฟิลส์

คำตอบ:


10

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

ขั้นตอน precomputationดำเนินงานบางอย่างที่เป็นสิ่งที่จำเป็นก่อนที่จะแก้ปัญหาแรกคือการแจกแจง สิ่งนี้อาจเกี่ยวข้องกับการค้นหาโซลูชันเองหรือการเริ่มต้นโครงสร้างข้อมูลขนาดใหญ่ที่จะช่วยลดความล่าช้าโดยรวมระหว่างแต่ละโซลูชัน

ล่าช้าคือต้นทุนการใช้ทรัพยากรที่เกี่ยวข้องกับการคำนวณที่จำเป็นในระหว่างการแก้ปัญหาโดยพลการแจกแจง ในคำอื่น ๆ ล่าช้าเป็นตัวชี้วัดของพื้นที่และเวลาที่จำเป็นในการผลิตแก้ปัญหาหลังจากที่ฉันทีเอชหนึ่ง ปัญหาของวิธีแก้ปัญหาที่ใช้เวลาO ( 1 )ในการแจงนับแต่ละครั้งมีความล่าช้าคงที่ ข้อกำหนดของเวลาO ( p o l y ( n ) )มีการกล่าวถึงว่ามีความล่าช้าพหุนามi+1thithO(1)O(poly(n))

สำหรับปัญหาการแจงนับที่คุณกล่าวถึงในคำถามของคุณคุณควรศึกษาในชั้นและพี่น้องที่เกี่ยวข้องในหัวข้อ 2.1 ของ "การแจงนับ: อัลกอริทึมและความซับซ้อน" โดย Johannes Schmidt (เชื่อมโยงที่ด้านล่าง)ENUMNP


ทำไมเราถึงต้องคำนึงถึงเวลาและความล่าช้าในการคำนวณล่วงหน้า

ความล่าช้าเป็นกุญแจสำคัญในการทำความเข้าใจความซับซ้อนที่แท้จริงของปัญหาการแจงนับ แจงองค์ประกอบของ (ขึ้นอยู่กับขนาดn ) และ{ x : φ ( x ) }ที่φ ( x )เป็นสูตรบูลีน (เช่น SAT) ทั้งสองใช้เวลาในการชี้แจง อย่างไรก็ตามการแจกแจงถึงΣ Σn{x:ϕ(x)}ϕ(x)Σต้องการการหน่วงเวลาคงที่เท่านั้นเนื่องจากคุณสามารถผ่านองค์ประกอบต่าง ๆ ตามลำดับ สำหรับทุกสิ่งที่เรารู้ความล่าช้าในการแจกแจงวิธีแก้ปัญหาไปยังอินสแตนซ์ 3SAT อาจอธิบายได้ งานของเราในฐานะนักทฤษฎีความซับซ้อนคือการเข้าใจว่าทำไมปัญหาหลังจึงยากกว่าเดิม (ซับซ้อนกว่า) กว่าเดิม ความล่าช้าทำงานได้ค่อนข้างดีในการจัดแสดงความแตกต่างนี้

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

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

เท่าที่ฉันรู้ชั้นเรียนเหล่านี้มักจะไม่มีฉลากที่รัดกุม (คล้ายกับและN P ) เราไม่สามารถคาดหวังได้ว่าจะสามารถทำสิ่งนี้ได้เนื่องจากคลาสความซับซ้อนของการแจงนับกำลังเล่นปาหี่ประมาณ 3 หรือมากกว่าทรัพยากร (precomputation / เวลาทั้งหมดพื้นที่ความล่าช้าและเอนโทรปี) มีการรวมกันของขอบเขตทรัพยากรจำนวนมากเกินไปที่จะแจกชื่อพิเศษ สิ่งนี้ไม่ได้ทำให้ชั้นเรียนเหล่านี้น่าสนใจน้อยลงและยังไม่หยุดนักวิจัยไม่ให้พยายามPNP


ทรัพยากร

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

การแจงนับ: อัลกอริทึมและความซับซ้อน (Johannes Schmidt, 2009)

https://www.thi.uni-hannover.de/fileadmin/forschung/arbeiten/schmidt-da.pdf

สำหรับการแจงนับผลลัพธ์ในความซับซ้อนของการแจงนับให้ตรวจสอบการรวบรวมนี้รวบรวมโดย Kunihiro Wasa เนื่องจากมีการแบ่งประเภทตามประเภทของปัญหาคุณสามารถค้นหาเอกสารจำนวนหนึ่งที่ทุ่มเทให้กับการแจกแจงรอบกราฟ มันควรจะง่ายในการปรับเปลี่ยนอัลกอริทึมที่เกี่ยวข้องเพื่อพิจารณารอบกับโหนดที่กำหนด

http://www-ikn.ist.hokudai.ac.jp/~wasa/enumeration_complexity.html


Σ* * * * ขึ้นกับขนาด n กับ O(1)ความล่าช้าจะต้องให้พวกเขาจะออกในการสั่งซื้อรหัสสีเทา? หรือเป็นปกติทึกทักเอาว่าในพื้นที่ของความซับซ้อนของการแจงนับที่ใช้วิธีแก้ปัญหาเดียวO(1)เวลาแม้ว่าพื้นที่ที่ต้องการสำหรับการจัดเก็บโซลูชันจะใหญ่กว่านั้นหรือไม่?
j_random_hacker

1
@j_random_hacker ฉันไม่คิดว่าคุณคิดผิด แต่คำตอบที่แท้จริงสำหรับคำถามของคุณคือ "มันขึ้นอยู่กับ" ผู้เขียนของเอกสารเหล่านี้มักจะระบุรูปแบบการคำนวณ (ปกติเทป TM กับ RAM และ Word RAM) พวกเขากำลังใช้ ตัวเลือกนี้จะเปลี่ยนแปลงสิ่งที่ถือเป็นการดำเนินการเวลาคงที่และสิ่งที่ไม่สามารถทำได้ (เช่นการเพิ่มตัวเลขหรือสร้างเอาต์พุต) ความแตกต่างนี้จะถูกสันนิษฐานว่าจะหายไปทันทีที่ความล่าช้าของคุณกลายเป็นพหุนามเนื่องจากวิทยานิพนธ์ทัวริงของโบสถ์
mdxn
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.