P-ครบถ้วนและการคำนวณแบบขนาน


23

ผมเพิ่งอ่านเกี่ยวกับขั้นตอนวิธีการในการตรวจสอบและอ่าน bisimilarity ว่าปัญหาคือP-สมบูรณ์ นอกจากนี้ผลที่ตามมาก็คือปัญหานี้หรือปัญหา P-Complete ใด ๆ ไม่น่าจะมีอัลกอริทึมแบบขนานที่มีประสิทธิภาพ

สัญชาตญาณที่อยู่เบื้องหลังคำพูดสุดท้ายนี้คืออะไร?


สิ่งนี้เกี่ยวข้องกับ NC (ดูคำตอบ) ซึ่ง imho เป็นวิธีที่น่ากลัวในการทำให้เป็นระเบียบ "ขนานได้อย่างมีประสิทธิภาพ"
ราฟาเอล

คำตอบ:


17

ใด ๆPปัญหาที่สมบูรณ์ไม่น่าจะมีขั้นตอนวิธีการแบบคู่ขนานที่มีประสิทธิภาพ ทำไม

การมีอยู่ของปัญหาที่สมบูรณ์แบบPเป็นเงื่อนงำที่สำคัญที่สุด(PPOLYLOGSPACE)P. คำถามคือทำไมการคาดเดานี้เกี่ยวข้องกับการคำนวณแบบขนาน? เริ่มจากทรัพยากรที่ใช้ในการคำนวณกันก่อน สำหรับการคำนวณตามลำดับ: เวลาและพื้นที่ สำหรับการคำนวณแบบขนาน: เวลาและฮาร์ดแวร์ (จำนวนโปรเซสเซอร์) มีความสัมพันธ์หรือไม่? ใช่ พื้นที่ต่อเนื่อง time เวลาขนาน ลำดับเวลา↔ฮาร์ดแวร์แบบขนาน การติดต่อระหว่างพื้นที่ตามลำดับและเวลาขนานดูเหมือนว่าจะเป็นอิสระจากรูปแบบการคำนวณแบบขนานที่นำมาใช้; สิ่งนี้นำไปสู่สิ่งต่อไปนี้ที่เรียกว่าวิทยานิพนธ์การคำนวณแบบขนานซึ่งไม่ได้รับการพิสูจน์

(Chandra และ Stockmeyer) การคำนวณ TM ทุกอันมีความซับซ้อนของพื้นที่ สามารถจำลองในแบบจำลองการคำนวณแบบขนานในเวลา T ( n ) = O ( S ( n ) O ( 1 ) )และการคำนวณแบบขนานทั้งหมด แบบจำลองที่มีความซับซ้อนของเวลา T ( n )สามารถจำลองโดย TM ที่มีความซับซ้อนของพื้นที่ S ( n ) = O ( T ( n ) OS(n)T(n)=O(S(n)O(1))T(n) )S(n)=O(T(n)O(1))

ชั้นของการแก้ไขปัญหาที่เกิดขึ้นตามลำดับในพื้นที่พหุนามคือและชุดของปัญหาแก้ไขได้ในเวลาพหุนามคือPตั้งแต่ปีP S P C Eคิดว่าจะเป็นชั้นขนาดใหญ่กว่าของปัญหากว่าPวิทยานิพนธ์ ปริมาณการปรับปรุงที่มีประสิทธิภาพทำไปได้โดยการขนาน ผลของวิทยานิพนธ์นี้คือพรีมสามารถแก้ปัญหาที่ไม่สมบูรณ์ของพีเอ็นในเวลาพหุนาม ... แต่น่าเสียดายที่ไม่มี! วิทยานิพนธ์การคำนวณแบบขนานหมายความว่าเราสามารถจัดการกับปัญหาที่เป็นของP S P A C E ได้จริงPSPACEPPSPACEPNPPSPACE… แต่สิ่งนี้ต้องการตัวประมวลผลจำนวนมาก! การแลกเปลี่ยนพื้นที่เวลากำลังทำงาน: เวลาเอ็กซ์โพเนนเชียลของโมเดลการคำนวณแบบลำดับจะถูกเปลี่ยนเป็นจำนวนเอ็กซ์โพเนนเชียลของตัวประมวลผลในแบบจำลองการคำนวณแบบขนานในขณะที่พื้นที่พหุนามบนแบบจำลองการคำนวณแบบอนุกรมจะเปลี่ยนเป็นเวลา รูปแบบการคำนวณ

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

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

ได้รับปัญหาที่ kและเอชจะคงที่วิทยานิพนธ์การคำนวณแบบขนานหมายถึงการดำรงอยู่ของอัลกอริทึมแบบขนานสำหรับ Rกับ ความซับซ้อนของเวลา O ( ( l o g n ) k )โดยที่ k RTIME_SPACETM(nk,(logn)h)khRO((logn)k)kเป็นค่าคงที่ การเปรียบเทียบระหว่างเวลาตามลำดับและเวลาแบบขนานช่วยให้การจำแนกเป็นปัญหาแบบขนานได้สูง (จากมุมมองเวลา)R

จากวิทยานิพนธ์การคำนวณแบบขนานมันเป็นไปตามที่เป็นปัญหาที่เกิดขึ้นแบบขนานกันมาก P O L Y L O G S P A C Eไม่มีปัญหาที่สมบูรณ์เกี่ยวกับการลดพื้นที่การบันทึก นี้หมายถึง P O L Y L O G S P C E P ดูเหมือนว่าPOLYLOGSPACEPOLYLOGSPACEPOLYLOGSPACEP

  1. POLYLOGSPACEP
  2. PPOLYLOGSPACE

มีปัญหาที่สามารถแก้ไขได้ในเวลาพหุนามโดยใช้พื้นที่โพลี Pปัญหาที่สมบูรณ์อาจจะเป็น P - ( P P O L Y L O G S P C E )PPOLYLOGSPACEPP(PPOLYLOGSPACE)

(คลาสของ Nick - เรียกว่าเพื่อเป็นเกียรติแก่ Nicholas Pippenger คนแรกที่ระบุและอธิบายลักษณะในปี 1979) เป็นชั้นของปัญหาที่สามารถแก้ไขได้ในเวลา polylogarithmic (กล่าวคือมีความซับซ้อนของเวลาNCด้วยจำนวนโพลิโนเมียลของตัวประมวลผล (เช่นล้อมรอบด้วย O ( f ( n ) )สำหรับฟังก์ชันพหุนาม fโดยที่ nคือขนาดของปัญหา) การคำนวณแบบขนานหมายถึง N C ( P P OO((logn)k))O(f(n))fn )NC(PPOLYLOGSPACE)

อย่างไรก็ตามโชคไม่ดีที่นิยามยังรวมถึงปัญหามากมายที่ไม่สามารถปรับเทียบได้อย่างมีประสิทธิภาพ ตัวอย่างที่น่าอับอายที่สุดคือการค้นหาแบบไบนารีขนาน ปัญหาคือปัญหานี้มีความซับซ้อนของเวลาแบบ polylogarithmic แม้จะเป็นp = 1 ก็ตามอัลกอริธึมลำดับที่ต้องการเวลาลอการิทึมส่วนใหญ่ในกรณีที่แย่ที่สุดคือในN Cโดยไม่คำนึงถึงความเป็นไปได้แบบขนาน!NCpNC

ทีนี้เราก็สามารถอธิบายได้ว่าทำไมปัญหาที่สมบูรณ์แบบคือปัญหาขนานที่ยากที่สุด รับปัญหาP-สมบูรณ์Q - ปัญหาที่สมบูรณ์ในทางกลับกันนี้จะหมายความว่าทุกปัญหาในPสามารถแก้ไขได้ในพื้นที่บันทึกโพลี: ( P P O L YPPQมันไม่น่าเป็นไปได้มากที่การมีอัลกอริธึมแบบขนานที่มีประสิทธิภาพ: ถ้าอัลกอริธึมแบบขนานจะมีอยู่กับความซับซ้อนของเวลาจากนั้นการคำนวณแบบขนาน ของอัลกอริทึมตามลำดับที่มีความซับซ้อนของพื้นที่O ( ( l o g n ) k )สำหรับปัญหาเดียวกัน ตั้งแต่QคือPO((logn)k)O((logn)k)QPP P ดังที่คุณทราบแล้วเราเชื่อว่า ( P P O L Y L O G S P A C E ) instead Pแม้ว่าเราจะยังไม่สามารถพิสูจน์ได้(PPOLYLOGSPACE)=P(PPOLYLOGSPACE)P

หนึ่งการสังเกตการณ์ขั้นสุดท้ายเกี่ยวกับข้อกำหนดของตัวประมวลผลพหุนาม นั่นคือคำสั่งทางทฤษฎี ในทางปฏิบัติ: ข้อกำหนดของตัวประมวลผลที่เติบโตเร็วกว่าขนาดของปัญหาอาจไม่มีประโยชน์จริง ๆ


10

เพราะ "คู่ขนานที่มีประสิทธิภาพ" ตกอยู่ภายในNC (“นิค Class” ปัญหา decidable ในเวลา polylogarithmic มีจำนวนพหุนามของโปรเซสเซอร์) และมันก็เป็นกันอย่างแพร่หลายเชื่อว่าNCPP ดังนั้นใด ๆมีปัญหาไม่เชื่อว่าจะมีขั้นตอนวิธีการแบบคู่ขนานที่มีประสิทธิภาพ (ตั้งแต่ที่จะบ่งบอกว่า P = N C )P-completeP=NC

แน่นอนทั้งหมดนี้ขึ้นอยู่กับการคาดเดาว่าที่คุณรู้ว่ามันเป็นปัญหาที่เปิดที่ Pไม่ได้อยู่ในระดับแรกของ N Cคือเราไม่ได้รู้ว่าถ้าไม่มีC 1 PNCPPNCNC1P

ยิ่งกว่านั้นเราไม่รู้ด้วยซ้ำว่าคุณไม่สามารถแก้ปัญหาในในA C 0 [ 6 ] , นั่นคือความลึกคงที่ (= เวลาคงที่ขนาน) วงจรบูลีนที่มีPAC0[6]ประตูmod6

สำหรับข้อมูลเพิ่มเติมดูที่หนังสือต่อไปนี้:

Raymond Greenlaw, H. James Hoover, Walter L. Ruzzo, " ข้อ จำกัด ในการคำนวณแบบขนาน: ทฤษฎีความสมบูรณ์แบบ P ", 1995


NC ยังรวมถึงปัญหามากมายที่ไม่สามารถเทียบเคียงได้อย่างมีประสิทธิภาพ ดูคำตอบของฉันสำหรับรายละเอียด
Massimo Cafaro

คุณอาจต้องการอย่างชัดเจนกล่าวว่า "ถ้ามีปัญหาอยู่ในN Cแล้วยังไม่มีข้อความP-completeNC " NC=P
Alex สิบ Brink

1
@ สำหรับที่มามีความคิดเห็นต่าง ๆ เกี่ยวกับชั้นเรียนที่ถูกต้องจับ "อัลกอริธึมที่มีประสิทธิภาพ" สำหรับเหตุผลที่ฉันใช้คลาสที่ถือว่าเป็นส่วนบน ฉันคิดว่า P vs. NC เป็นสาเหตุทั่วไปที่ผู้คนคิดว่าปัญหา P-Complete ไม่มีอัลกอริทึมแบบขนานที่มีประสิทธิภาพแม้ว่าจะมีรายละเอียดที่น่าสนใจตามที่ระบุไว้ในคำตอบของคุณ ฉันเพิ่มการอ้างอิงไปยังคำตอบของฉัน
Kaveh

1
@ Kaveh ฉันเห็นด้วยกับคุณ คนส่วนใหญ่คิดเกี่ยวกับสิ่งนี้อย่างแน่นอนในแง่เหล่านี้ นั่นคือเหตุผลที่ฉันต้องการเสนอมุมมองที่แตกต่างออกไปเล็กน้อยตามวิทยานิพนธ์การคำนวณแบบขนาน ข้อมูลอ้างอิงที่คุณให้ไว้นั้นยอดเยี่ยมและแสดงถึงการรักษาที่ดีที่สุดของเรื่องที่ฉันเคยอ่าน
Massimo Cafaro

6

คำตอบของ Kaveh ครอบคลุมคำจำกัดความปกติของ "parallelism" ซึ่งก็คือ NC คำถามที่ว่า P NC เป็นหนึ่งในคำถามที่ยากขึ้นในทฤษฎีความซับซ้อน (และในบางวิธีที่เกี่ยวข้องกับคำถามP < NP) หรือไม่<<

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

แก้ไข:เพื่อให้ชัดเจนสำหรับความคิดเห็นประเด็นของคำตอบนี้คือการพูดว่าทำไม (บางคน) ไม่คิดว่า P และ NC เหมือนกัน เหมือนกับ P และ NP ไม่มีใครรู้วิธีพิสูจน์ว่าทั้งสองแตกต่างกันหรือไม่ แต่มีบางอย่างเกี่ยวกับปัญหาที่ทำให้นักวิทยาศาสตร์คอมพิวเตอร์ (บางคน) คิดว่าพวกเขาเป็น

อีกสิ่งหนึ่งคือNCคือ "เวลาโพลีล็อกในโพลีโนมิลโปรเซสเซอร์หลายตัว" ซึ่งขอให้มีการเร่งความเร็วอย่างมาก แต่ให้หน่วยประมวลผลจำนวนมาก ดังนั้นจึงอาจไม่เหมาะกับแนวความคิดในการใช้งานของแบบคู่ขนาน

โดยเฉพาะถ้าคุณคิดว่าพี <


PP

แต่ประเด็นของหลุยส์ควรถูกมองว่าเป็นสัญชาตญาณและไม่ผิดทั้งหมด อะไรที่มีปัญหาว่าเป็นที่ P-ครบถ้วนของ DFS จะเปราะบางมาก - คุณต้อง lexicographics DFS และก็ยังอยู่ใน RNC ฯลฯ เป็นต้น
Suresh

@Suresh: ใช่ ฉันหมายความว่าฉันไม่รู้ว่าจะพิสูจน์ lex นั้นได้อย่างไร คำสั่งซื้อ DFS นั้นไม่สามารถจำลองแบบกำหนดเองได้ในวิธีที่ดีกว่าการทำเพียงอย่างเดียว แต่ผู้คนไม่ "รู้สึก" เหมือนที่เป็นไปได้โดยไม่มีการสุ่ม (หากเรื่อง "ศาสนา" ของฉันคือว่าจำนวนมากของการสุ่มมีอำนาจบางอย่าง.)
หลุยส์

@Kaveh: "เส้นทางวิกฤติ" (หรือที่เรียกว่า "ความลึกของการทำงาน") ไม่ใช่คุณสมบัติของอัลกอริทึม แต่เป็นปัญหา นั่นเป็นเหตุผลที่ยากที่จะแสดง มันเป็นลำดับที่ยาวที่สุดของ "pieves งาน" ที่ได้รับการตรวจสอบในลำดับ (โดยอัลกอริทึมใด ๆ )
กราฟิลส์

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

3

จงระวังให้ดีว่าใครใช้ "อัลกอริธึมขนานที่มีประสิทธิภาพ" เพื่อให้ได้ความหมายอะไร

O(f(n))O(g(n))

โดยเฉพาะอย่างยิ่ง class NC ที่มักจะมีชื่อ มีเป็น

ชุดของปัญหาการตัดสินใจที่สามารถตัดสินใจได้ในเวลาโพลีโลจีทิกส์บนคอมพิวเตอร์แบบขนานที่มีตัวประมวลผลพหุนามจำนวนมาก

สิ่งนี้ได้ อะไรจะทำอย่างไรกับว่ามีขั้นตอนวิธีการแบบคู่ขนานสำหรับปัญหาเหล่านี้ที่มีประสิทธิภาพในการปฏิบัติมากขึ้นterms¹:

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

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

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


  1. Tp:NR0T1(n)/Tp(n)pT1(n)T(n)T

  2. สิ่งนี้ไม่จริงเสมอไป ลำดับชั้นของหน่วยความจำและฮาร์ดแวร์อาจอนุญาตให้มีการเพิ่มความเร็วได้เร็วขึ้นอย่างน้อยในบางครั้ง แม้ว่าจะมีค่าคงที่อีกค่าคงที่


0

สมมติว่าพรุ่งนี้มีคนค้นพบหลักฐานว่า P = NC ผลของการวิจัยทางวิทยาศาสตร์คอมพิวเตอร์และการใช้งานจริงจะเป็นอย่างไร

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

เรารู้ว่า NC! = PSPACE ดังนั้นหลักฐานที่ P = NC จะพิสูจน์ P! = PSPACE นั่นอาจไม่ฟังดูเป็นเรื่องใหญ่ แต่เป็นสิ่งสำคัญอย่างหนึ่งสำหรับการวิจัยทางวิทยาศาสตร์คอมพิวเตอร์

ทำไมเราถึงรู้จัก NC! = PSPACE ทีนี้เรารู้ NC k ⊆ DSPACE (O (log k )) ดังนั้นเราสามารถใช้ทฤษฎีลำดับชั้นของอวกาศได้


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

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