วงจรที่ยาวที่สุดมีสองรอบ


11

ปัญหาต่อไปนี้เป็น NP-complete หรือไม่ (ฉันคิดว่าใช่)

อินพุต: กราฟที่ไม่ได้บอกทิศทางซึ่งชุดของขอบสามารถแบ่งออกเป็นสองวงจรแบบง่าย ๆ ซึ่งแบ่งเป็นสองส่วน (นี่ไม่ใช่ส่วนหนึ่งของอินพุต)kN,G=(V,E)

คำถาม:แบบง่าย ๆ ที่มีความยาวมากกว่าหรือไม่?Gk

เห็นได้ชัดว่าปัญหาอยู่ใน NP และระดับสูงสุดในคือแต่ดูเหมือนจะไม่ช่วยG4


1
ฉันไม่คิดว่าคุณพูดถูก "มากที่สุด 4 เส้นทางที่เชื่อมต่อคู่ใด ๆ " ดู: i.imgur.com/mYL4n1V.png
svinja

1
@svinja คุณพูดถูกฉันควรจะพูดว่ามี 4 ส่วนของจำนวนคู่ที่มีจุดเชื่อมต่อระหว่างจุดยอดสองจุดใด ๆ
รายชื่อ

ชื่อของคุณทำให้เข้าใจผิดเนื่องจากวัฏจักรที่ง่ายที่สุดที่ยาวที่สุดอาจไม่เป็นสองรอบในการสลายตัวของ (ในการย่อยสลายใด ๆ ) E
เดนิส

@dkuper มันสามารถจริงดูสหภาพสองจุดสุดยอดร่วมกันรอบง่าย
รายการ

ประเด็นของฉันไม่ใช่ว่ามันไม่สามารถเป็นหนึ่งในนั้นได้ แต่บางครั้งมันก็ไม่ใช่หนึ่งในนั้น ดังนั้นปัญหาไม่ได้รับการค้นหาที่ใหญ่กว่าของทั้งสอง
เดนิส

คำตอบ:


2

ความพยายามลดลง ....

ลดจากเส้นทาง Hamiltonian บน digraph มีองศาสูงสุด 3 ซึ่งคือ NPC [G&J]G=(V,E)

  • ละเว้นทิศทางของขอบและใช้การสแกนความลึกครั้งแรก (ไม่ระบุทิศทาง) จากโหนดโดยพลการแบ่งขอบของในสองชุดของเส้นทางที่แตกต่างกัน (undirected) (แดงและเขียวในรูป);G
  • เข้าร่วมเส้นทางสีแดงเพิ่มพิเศษ "เชื่อมโยงโหนด" (โหนดสีม่วงในรูป B) และทำให้วงจรสีแดงไม่ได้กำหนดทิศทาง; เข้าร่วมเส้นทางสีเขียวเพิ่ม "เชื่อมโยงโหนด" พิเศษ (โหนดสีม่วงในรูป) และสร้างวงจรสีเขียวที่ไม่ได้กำหนดทิศทาง
  • แปลงแต่ละโหนดดั้งเดิมของ indegree 1 และ outdegree 2 (รูป C), เพิ่มโหนดสีเหลืองkบนขอบสีแดงขาเข้าa b , และเพิ่มโหนดเหลืองkบนขอบสีแดงขาออกแรกb c ; ในที่สุดก็เพิ่มโหนดสีเหลืองk "สู่" ขอบสีเขียวที่สองb dโดยใช้เส้นทาง "พัน" รอบbที่สัมผัสกับโหนดสีเหลืองด้านนอกสุดของขอบสีแดง (รูป D)bVkabkbckbdb

ในกราฟที่เกิดขึ้นโหนดสีเหลืองทั้งหมดสามารถถูก traversed โดยเส้นทางแบบง่ายเฉพาะในสองวิธีที่แสดงในรูป E และรูป F ซึ่งสอดคล้องกับการสำรวจเส้นทางที่ถูกต้องสองจุดของโหนดดั้งเดิมb V ; อย่างไม่เป็นทางการถ้าขอบต่อพิเศษ "การเชื่อมโยง" โหนดสีม่วงจะใช้kต่อมน้ำเหลืองไม่สามารถเดินทางข้าม3kbVk

  • แปลงแต่ละโหนดดั้งเดิมของ V ของ indegree 2 และ outdegree 1 ในวิธีที่คล้ายกัน

k|V|G3k(|V|1)G|V|1

ป้อนคำอธิบายรูปภาพที่นี่

สามารถดาวน์โหลดภาพขนาดใหญ่ได้ที่นี่


นี่เป็นข้อพิสูจน์ที่สวยงามมากบางทีคุณควรกำหนดขอบในรูป 'A' เพื่อให้ง่ายต่อการเข้าใจวิธีการหาเส้นทาง (ฉันคิดว่าฉันเข้าใจมันแล้ว)
รายชื่อ

@ รายการ: การสร้างเส้นทางไม่ได้ขึ้นอยู่กับขอบกำกับ (แน่นอนฉันเขียนการค้นหา "undirected" ในคำตอบ) คุณควรเริ่มจากโหนดที่กำหนดให้ทำการสแกนความลึกก่อนจากนั้นทำการระบายสีด้วยขอบสีแดงที่ผ่านมาจากนั้นย้อนกลับไปที่โหนดระดับ 3 แรกที่พบและดำเนินการต่อในระดับความลึกครั้งแรกจากการสแกน .. บางทีมันอาจจะมีคำจำกัดความที่เป็นทางการมากกว่า แต่ก็ไม่ได้อยู่ในใจฉัน แจ้งให้เราทราบหากคุณต้องการรายละเอียดเพิ่มเติม
Vor

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

0

แรงบันดาลใจจากคำตอบของ Vor ฉันต้องการให้คำตอบที่เรียบง่ายกว่า

เริ่มต้นด้วยปัญหาวัฏจักรแฮมิลตันสำหรับปัญหากราฟกริดซึ่งได้รับการพิสูจน์อย่างหนักจาก Itai

จะเห็นได้อย่างง่ายดายว่าชุดขอบของกราฟกริดสามารถแบ่งพาร์ติชันออกเป็น 2 ชุดย่อยซึ่งแยกจากกัน: แนวนอนและแนวตั้ง

ดังนั้นตอนนี้เราจำเป็นต้องสานวงจรแนวนอนทั้งหมดเป็นวงจรเดียวอย่างง่ายและสานวงจรแนวตั้งทั้งหมดเป็นวงจรง่ายๆ

นี่เป็นงานที่ง่ายมาก: สำหรับคนในแนวตั้งกวาดจากซ้ายไปขวาสุดเพียงแค่เชื่อมต่อช่องว่างแนวตั้งใด ๆ จากนั้นเชื่อมต่อเส้นแนวตั้ง x ที่มีการประสานกันติดต่อกันจากนั้นเชื่อมต่อจุดสุดยอดซ้ายสุดต่ำสุด ทำเช่นเดียวกันสำหรับขอบแนวนอน

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

kk2k|V|

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