การนับจำนวนเส้นทางง่าย ๆ ระหว่างสองโหนดในกราฟที่กำกับนั้นยากเพียงใด


29

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

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

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

ดังนั้นฉันถาม

  • การนับจำนวนเส้นทางง่าย ๆ ระหว่างจุดยอดสองจุดนั้นยากไหม?
  • ถ้าเป็นเช่นนั้นมันเป็น NP-complete หรือไม่? (ฉันพูดชนิดเพราะในทางเทคนิคไม่ใช่ปัญหาการตัดสินใจ ... )
  • มีปัญหาอื่น ๆ ใน P ที่มีเวอร์ชันที่นับยากเช่นนี้อีกหรือไม่? **

BTW ฉันจริง ๆ แล้วรู้คำตอบสำหรับคำถามนี้ตอนนี้ แต่ฉันอยากรู้เกี่ยวกับชนิดของคำตอบที่ฉันจะได้รับถ้าฉันถามกลับเมื่อฉันมากับมันครั้งแรก
hugomg


@Suresh: ฉันรู้วิธีรหัสการค้นหากำลังดุร้าย คำถามของฉันหากว่ามีอัลกอริทึมที่มีประสิทธิภาพมากขึ้นหรือไม่ ไม่ว่าในกรณีใด ๆคำถาม SO นี้จะคล้ายกันมากขึ้นและยังรวมถึงคำตอบของฉันถ้าคุณมีความสนใจในสปอยเลอร์
hugomg

คำตอบ:


18

ส่วนใหญ่ที่พบระดับความซับซ้อนที่เกี่ยวข้องกับปัญหาที่เกิดขึ้นนับเป็น#P การตัดสินใจว่ามีเส้นทางแบบง่ายจากโหนดที่กำหนดไปยังอีกโหนดหนึ่งนั้นจะชัดเจนใน NP การนับพวกมันจะอยู่ใน #P

n!

คำตอบที่สองทั้งสองคำถามแรกของคุณคือ: ใช่มันเป็นเรื่องยากก็คือ # P-สมบูรณ์ (อ้างอิง)

บทความ Wikipedia ให้ข้อเท็จจริงที่เกี่ยวข้อง: 1) อัลกอริธึมน่าจะเป็นประโยชน์กับฟังก์ชัน # P-complete โดยประมาณและนั่นเป็นอัลกอริทึมที่ใช้สำหรับการประมาณในบทความก่อนหน้า 2) มีปัญหาง่าย ๆ อื่น ๆ เกี่ยวกับการนับรุ่นยาก (# P-complete):

  • การค้นหา (เชิงเส้น) เทียบกับการนับการมอบหมายทั้งหมดที่เป็นไปตามสูตร DNFหรือตัวอย่างของ2-SAT
  • การค้นหา (เชิงเส้น) กับการนับการเรียงลำดับทอพอโลยี
  • การค้นหา (O (VE)) เทียบกับการนับการจับคู่ที่สมบูรณ์แบบในกราฟสองส่วน

คุณรู้อยู่แล้วว่าหากคุณลบข้อ จำกัด "เส้นทางที่เรียบง่าย" ปัญหาก็จะกลายเป็น P (คุณต้องผูกความยาวของเส้นทางด้วยพหุนามของขนาดของกราฟหรือให้ขอบเขตที่เป็นเอกภาพ)

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