เราคิดว่าน้ำหนักยอดสามารถเป็นจำนวนเต็มบวกโดยพลการหรืออย่างแม่นยำมากขึ้นพวกเขาสามารถเป็นจำนวนเต็มบวกที่มากที่สุด 2 n จากนั้นงานปัจจุบันจะไม่สามารถดำเนินการได้แม้ในเวลาที่ จำกัด น้อยกว่าเล็กน้อย O ( n 2 ) เว้นแต่ว่าการคำนวณสกรรมกริยาของกราฟกำกับที่กำหนดเองสามารถคำนวณได้ในเวลา O ( n 2 ) โดยที่nหมายถึงจำนวนของจุดยอด (โปรดทราบว่าอัลกอริทึมO ( n 2 ) - เวลาสำหรับการปิด transitive จะเป็นการฝ่าฝืน) นี่คือการโต้แย้งของการอ้างสิทธิ์ต่อไปนี้:
ข้อเรียกร้อง หากงานปัจจุบันสามารถดำเนินการในเวลา O ( n 2 ), การปิดสกรรมกริยาของกราฟกำกับโดยพลการที่กำหนดเป็นเมทริกซ์ adjacency ของมันสามารถคำนวณได้ในเวลา O ( n 2 ) (สมมติว่ารูปแบบการคำนวณที่เหมาะสมบางอย่าง)
พิสูจน์ ในฐานะที่เป็น preprocessing เราคำนวณสลายองค์ประกอบที่เชื่อมต่ออย่างยิ่งของการให้กำกับกราฟGในเวลา O ( n 2 ) เพื่อให้ได้ DAG G ' โปรดทราบว่าถ้าเราสามารถคำนวณการปิดสกรรมกริยาของG 'เราสามารถสร้างปิดสกรรมกริยาของG
ตอนนี้กำหนดน้ำหนักที่ 2 ผมจะจุดสุดยอดในแต่ละฉันของ DAG G 'และใช้อัลกอริทึมสำหรับปัญหาในปัจจุบัน จากนั้นการแทนเลขฐานสองของผลรวมที่กำหนดให้กับแต่ละจุดสุดยอดฉันจะอธิบายถึงชุดบรรพบุรุษของฉันในคำอื่น ๆ เราได้คำนวณการปิด transitive ของG ′ QED
การสนทนาของการเรียกร้องยังคงมีอยู่: หากคุณสามารถคำนวณการปิดสกรรมกริยาของ DAG ที่กำหนดได้ง่ายต่อการคำนวณจำนวนเงินที่ต้องการโดยการทำงานเพิ่มเติมในเวลา O ( n 2 ) ดังนั้นในทางทฤษฎีคุณสามารถบรรลุงานปัจจุบันในเวลา O ( n 2.376 ) โดยใช้อัลกอริทึมสำหรับการปิดสกรรมกริยาขึ้นอยู่กับขั้นตอนวิธีการคูณเมทริกซ์ทองแดง-Winograd
แก้ไข : การแก้ไข 2 และรุ่นก่อนหน้าไม่ได้ระบุสมมติฐานเกี่ยวกับช่วงของน้ำหนักจุดสุดยอดอย่างชัดเจน ต่อ Vognsen ชี้ให้เห็นในความคิดเห็นว่าข้อสันนิษฐานนี้อาจไม่สมเหตุสมผล (ขอบคุณ!) และฉันเห็นด้วย แม้ว่าจะไม่จำเป็นต้องใช้น้ำหนักตามอำเภอใจในแอปพลิเคชั่น แต่ฉันเดาว่าคำตอบนี้อาจแยกแยะวิธีการบางอย่างด้วยการให้เหตุผลต่อไปนี้:“ หากวิธีนี้ใช้ได้ผลมันจะให้อัลกอริธึมสำหรับน้ำหนักตามอำเภอใจ สามารถคำนวณการปิดได้ในเวลา O ( n 2 )”
แก้ไข : การแก้ไข 4 และก่อนหน้านี้ระบุทิศทางของขอบอย่างไม่ถูกต้อง