การลดความยาวสายไฟ


10

ปัญหาของฉันเป็นเช่นนี้:

  1. ฉันมีรูปแบบทางกายภาพที่แสดงเป็นกราฟ โหนดแสดงถึง hooks / ducts ที่ลวดสามารถยึดและขอบเป็นการเชื่อมต่อที่เป็นไปได้ระหว่าง 2 โหนดจากที่ลวดสามารถไป

  2. มีโหนดพิเศษบางอย่างที่เรียกว่าตัวแยกซึ่งสามารถแยกลวดเส้นเดียวได้ถึง 2 เส้นหรือมากถึง k k สามารถคงที่ได้ในตอนนี้ แต่จะแตกต่างกันไปในแต่ละโหนด ไม่ใช่ทุกโหนดที่เป็นตัวแยก

  3. มีแหล่งพลังงานหนึ่งแหล่งที่สายจะเกิดขึ้น มันเป็นแหล่งที่มา ลวดจะต้องถูกนำไปที่อ่างล้างมือ n

  4. ขอบสามารถนำลวดจำนวนเท่าใดก็ได้ที่ผ่านเข้าไปในทิศทางใดก็ได้

  5. ความยาวลวดทั้งหมดจะต้องลดลง

  6. ธรรมชาติของกราฟระนาบหรือยูคลิดไม่เป็นที่รู้จัก

ตัวอย่าง : ด้านล่างเป็นเครือข่ายตัวอย่าง โหนดถูกตั้งชื่อเป็นตัวเลขและขอบมีน้ำหนักเท่ากับ 1 ที่มาคือ Node1 และ Sinks เป็น Node5, Node9 และ Node13 ในกรณีที่ 1 Node6 เป็นโหนดตัวแยก ในกรณีที่ 2 Node6 และ Node4 เป็นโหนดตัวแยก k = 3 ของโหนดตัวแยกสัญญาณคือสามารถใช้หนึ่งสายและแยกออกเป็น 3 สาย

กรณีที่ 1 โหนดตัวแยกสัญญาณเดียวเท่านั้น มันสมเหตุสมผลที่จะแยกที่ Node6 ป้อนคำอธิบายรูปภาพที่นี่

กรณีที่ 2 โหนดตัวแยกสองตัว มันเหมาะสมที่จะแยกที่ Node4 แทน Node6 ป้อนคำอธิบายรูปภาพที่นี่

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

กรณีที่ 3 โหนดตัวแยกสองตัว มันสมเหตุสมผลที่จะแยกที่ Node4 และ Node14 โปรดทราบว่ากรณีนี้มีการเปลี่ยนแปลงน้ำหนักขอบสำหรับ Edge 8-12, 6-10 และ 10-11 สิ่งที่สำคัญในกรณีนี้คือการดึงสายหลังจากแยกออกจาก Node14

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

คำตอบ:


7

ปัญหานี้เกิดจากปัญหา NP-hard

สมมติว่าจุดสุดยอดทุกจุดเป็นตัวแยกที่สามารถแยกได้หลายองศาแล้วปัญหาของคุณคือปัญหาทรีเนอร์บนกราฟซึ่งเซตของแหล่งที่มาและจุดยอดที่จมนั้นเป็นจุดยอดที่ต้องการ


2

ผมkผม

การทำให้เข้าใจง่ายคือคุณสามารถกำจัดโหนดระดับกลาง (สี่เหลี่ยม) ทั้งหมด สร้างกราฟที่มีเพียงโหนดต้นทาง, โหนด sink และโหนดตัวแยก

  1. ในกราฟต้นฉบับของคุณค้นหาเส้นทางที่สั้นที่สุดจากโหนดต้นทางไปยังแต่ละโหนดตัวแยกและเพิ่มขอบในกราฟใหม่จากโหนดต้นทางไปยังโหนดตัวแยกที่มีความยาวนั้น

  2. ผมJผมJผมJ

  3. ผมJผมJผมJ

ยังไม่มีข้อความผมkผม

kผม


หากคุณต้องการเชื่อมต่อชุดย่อยของกราฟเท่านั้นนี่เป็นปัญหาทรีเนอร์
Chao Xu

0

@Chao Xu ฉันยังพบว่า Steiner ใกล้เคียงกับปัญหาของฉันมากที่สุด ฉันกำลังสำรวจระบบที่ใช้ Ant เพื่อแก้ปัญหานี้

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