ค้นหาอย่างน้อยสองเส้นทางที่มีความยาวเท่ากันในกราฟกำกับ


20

สมมติว่าเรามีที่กำกับกราฟและสองโหนดและBฉันต้องการทราบว่ามีอัลกอริทึมสำหรับคำนวณปัญหาการตัดสินใจต่อไปนี้หรือไม่:A BG=(V,E)AB

มีอย่างน้อยสองเส้นทางระหว่างและที่มีความยาวเท่ากันหรือไม่?BAB

แล้วความซับซ้อนล่ะ? ฉันจะแก้มันในเวลาพหุนามได้หรือไม่?


ฉันต้องการเพิ่มข้อ จำกัด ใหม่บนกราฟบางทีปัญหาอาจแก้ไขได้มากกว่า ในเมทริกซ์คำคุณศัพท์ทุกคอลัมน์ไม่ว่างเปล่า ดังนั้นทุกโหนดมีลูกศรอย่างน้อยหนึ่งลูกที่อินพุตและมีอย่างน้อยหนึ่งโหนดที่เชื่อมต่อกับตัวเอง ดังนั้นถ้าโหนดคือโหนด th ดังนั้นคือขอบในกราฟ( ฉัน, ฉัน)i(i,i)


คุณหมายถึงเส้นทางง่าย ๆ ? (การเยี่ยมชมแต่ละโหนดในครั้งเดียว) พวกเขาจะได้รับอนุญาตให้มีโหนดภายในที่เหมือนกันหรือไม่

1
ไม่ไม่มีข้อ จำกัด ในเส้นทาง คุณอาจวนรอบหากคุณต้องการ
เปาโล Parisen ต.

การสังเกตอย่างง่ายคือ: ถ้ามีเพียงหนึ่งเส้นทางที่เรียบง่ายระหว่างและเส้นทางที่เรียบง่ายนี้เชื่อมต่อกับวงเดียวมากที่สุดคุณสามารถบอกว่าถ้ามีความยาวต่างกันอย่างน้อยสองลูปที่เชื่อมต่อกับเส้นทางที่เรียบง่ายนี้ คุณสามารถบอกว่าใช่, .... (ฉันคิดว่าสิ่งที่คล้ายกันมีประโยชน์และคุณสามารถพิสูจน์ได้), แต่ในกรณีที่มีการแบ่งเส้นทางอย่างง่าย (ถ้าในระหว่างการพิสูจน์สิ่งนี้คุณพบว่ามีการแยกทางเส้นทางธรรมดา) นั่นคือ NPC N oA,BNo

1
@mrm: ฉันไม่เห็นว่าสิ่งนี้ซ้ำซ้อน ขอให้ทุกคนเดินคือการดำเนินการอย่างหนาแน่นใช้เวลานาน (โดยทั่วไปมีจำนวนอนันต์ของการเดิน) ในขณะที่สหกรณ์จะขอสอง (ง่าย) เส้นทางไม่ได้ทุกเพศทุกวัย
Dave Clarke

คำตอบ:


10

พิจารณากราฟเราต้องการทราบว่ามีสองเส้นทางที่แตกต่างจากถึงที่มีความยาวเท่ากันหรือไม่ จะทำอย่างไร? ง่าย: โค้ดสองเส้นทางในหนึ่งเดียว กำหนดกราฟมีจุด\} คุณทำขั้นตอนในโดยทำสองขั้นตอนอิสระใน ' บิตเพิ่มเติมจะบอกคุณว่าสองพา ธ ได้แยกจากกันหรือไม่A B G V × V × { 0 , 1 } G GGABGV×V×{0,1}GG

เป็นทางการมีขอบใน iff ,ในและ(เจเจ)G ฉันฉัน j j G e = e ((i,j,e)(i,j,e)GiijjGe=e(i,i)(j,j)

ขั้นตอนวิธีการตรวจสอบหากมีเส้นทางเพื่อในซึ่งเป็นหรือสิ่งที่ต้องการ2)( B , B , 1 ) G O ( V 4(A,A,0)(B,B,1)GO ( ( V + E ) 2 )O(V4)O((V+E)2)

หากคุณยอมรับว่าอัลกอริทึมนี้ถูกต้องดังนั้นเส้นทางในมีความยาวไม่เกินดังนั้น "การชนกันของเส้นทาง" ที่อาจเกิดขึ้นจะต้องเกิดขึ้นล่าสุดในระยะเวลานั้น คุณสามารถรับอัลกอริทึมจากการสังเกตนี้โดยที่คือความซับซ้อนในการคูณเมทริกซ์ (ถามว่าคุณต้องการสปอยเลอร์ ... ) 2 n 2G2n2ωO(VωlogV)ω

ฉันรู้สึกว่ามีอัลกอริทึมซึ่งใช้โครงสร้างของปัญหามากขึ้นO(V+E)


3
นั่นคือสง่างาม
กราฟิลส์

4

อาจเป็นคำตอบสำหรับปัญหานี้ แต่ฉันไม่แน่ใจว่ามันใช้งานได้

มันไม่สำคัญที่จะ "ค้นหา" ทั้งสองเส้นทางสิ่งเดียวที่สำคัญคือ "รู้" ถ้าพวกมันมีอยู่จริงหรือไม่ ฉันไม่คิดว่านี่เป็นปัญหาที่สมบูรณ์ของปัญหา

ดังนั้นใช้ถ้อยคำเมทริกซ์เราสามารถสมมติว่ามันเต็มไปด้วยค่า 0,1 (0 = ไม่มีขอบ; 1 = มีขอบ) ลองใช้พีชคณิตต่อไปนี้กับ 3 ค่า (0,1,2) ซึ่งทุกอย่างทำงานได้ตามปกติยกเว้น: ; 2 + <something> = 2 2 <อะไรก็ตามที่มากกว่า 0> = 2A2+<something>=22<whatever greater than 0>=2

ดังนั้นถ้ามีสองเส้นทางของความยาวเดียวกันจากผมคาดหวังว่าจะมีค่าเช่นว่า2พีi,jp(Ap)i,j=2

ให้คือจำนวนจุดยอดในกราฟ (หรือสมมุติว่ามีส่วนข้อมูล ) ฉันไม่รู้คุณค่าของแต่ถ้าฉันทำซ้ำโดยคูณกับตัวมันเองเป็นอย่างมากฉันควรหาคำตอบ (ดังนั้น ) (ความรู้สึกคือฉันตรวจสอบจากนั้นฉันตรวจสอบจากนั้นฉันตรวจสอบและอื่น ๆ ... )A n × n p A n 2 p < n 2 A A 2 A 3nAn×npAn2p<n2AA2A3

นี่คือการโต้แย้งของฉัน:

  • หากทั้งสองเส้นทางเป็นเส้นทางที่เรียบง่ายก็ใช้งานได้; ถ้ามีอย่างมากฉันต้องทำซ้ำครั้งn
  • หากมีอย่างน้อยหนึ่งรอบ neasted หรือมีเส้นทางที่มีสองรอบดีฉันต้องค้นหาตัวคูณร่วมน้อย (LCM) เป็นค่าที่มากขึ้นอย่างแน่นอนและในเวลาน้อยกว่าn 2ครั้งหากมีฉันควรจะต้องหามันn2n2
  • หากทั้งสองเส้นทางเป็นสองเส้นทางที่แตกต่างกันทั้งสองมีรอบเดียวมันมากหรือน้อยคล้ายกับการหาทางออกสำหรับสมการนี้สอง: โดยที่mและkเป็นความยาวของทั้งสองที่แตกต่างกัน รอบ คูณเมทริกซ์คิวตามที่ระบุไว้ข้างต้นว่า "มีเส้นทางจากฉันไปมีความยาว ?" ดังนั้นถ้าคือกระต่ายขูดกว่าก็หมายความว่ามีเส้นทางอื่น ๆ ชั้นนำจากไปเจโดยทำซ้ำเมทริกซ์α+βm=γ+δkmkAqiคิวQ 1 ฉันเจn 2 δ บีตาL C M ( , ) ( * ) / G C D ( , ) njqAq1ijn2ครั้งที่เราผ่านทั้งหมดรวมกันเป็นไปได้ของและ\แท้จริงถูกกำหนดให้เป็นและไม่มีวงจรสามารถมีค่ามากกว่าnδβLCM(a,b)(ab)/GCD(a,b)n

ฉันหยุดที่จะย้ำเมื่อฉันพบ2(Ap)i,j=2

ฉันผิดหรือเปล่า


ฉันลองแบบเดียวกันและพบปัญหา / ความไม่แน่นอน: 1) จะเกิดอะไรขึ้นถ้าเส้นทางเชื่อมต่อกับมากกว่าหนึ่งรอบ คุณต้อง "ตรวจสอบ" ชุดค่าผสมทั้งหมด (ในกรณีที่เลวร้ายที่สุดทุกโหนดอยู่ในหลาย ๆ รอบแทน!) ระเบิดขอบเขตบนหรือเพียงพอที่จะพิจารณาเพียงข้อเดียวเท่านั้น? 2) เนื่องจากการชดเชยคงที่และ LCM เป็นขอบเขตจริง ๆ หรือไม่? แกมมาαγ
กราฟิลส์

ไม่จำเป็นต้องมีพีชคณิตขี้ขลาดเพียงแค่หยุดช่วงเวลาที่คุณคำนวณเป็นรายการเมทริกซ์ 2
กราฟิลส์

@Raphae 1) หากมีเส้นทางที่มีสองรอบแล้วมีเส้นทางที่ยาวสองเส้นที่แน่นอน อันที่วนรอบแรกและวนรอบที่สอง พวกเขาต้องห่วงมากแค่ไหน? LCM ที่แน่นอนของความยาวของทั้งสองรอบ สิ่งนี้ล้อมรอบด้วยโดยที่คือจำนวนจุดยอดในกราฟ 2) LCM เป็นขอบเขตบน (ในกรณีที่ 1)) เนื่องจาก LCM (a, b) ถูกล้อมรอบด้วย a * b plusและ offsets; ดังนั้นในทั้งหมดที่เรามี\ เรารู้ว่าดังนั้นน้อยกว่า 2 n α γ L C M ( , B ) + α + γ < * B + α + γ α + γ + + < n * B + α + γ n 2n2nαγLCM(a,b)+α+γ<ab+α+γα+γ+a+b<nab+α+γn2
เปาโล Parisen ต.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.