ความสำคัญของขอบน้ำหนักเชิงลบในกราฟคืออะไร?


15

ฉันทำแบบฝึกหัดการเขียนโปรแกรมแบบไดนามิกและพบอัลกอริทึม Floyd-Warshall เห็นได้ชัดว่าพบเส้นทางที่สั้นที่สุดของคู่ทั้งหมดสำหรับกราฟที่สามารถมีขอบน้ำหนักติดลบ แต่ไม่มีรอบลบ

ดังนั้นฉันสงสัยว่าโลกแห่งความจริงมีความสำคัญต่อน้ำหนักเชิงลบอย่างไร? คำอธิบายภาษาอังกฤษแบบธรรมดาจะเป็นประโยชน์


3
น้ำหนักของขอบสามารถแสดงทุกอย่างในโลกแห่งความเป็นจริงเช่นจำนวนเงินที่โอนจากบัญชีหนึ่งไปยังอีกบัญชีหนึ่งอาจเป็นค่าบวกหรือลบจากนั้นถ้าคุณต้องการทำอะไรก็หมายความว่าคุณต้องไปจาก a-> b ในกราฟด้วย สูญเสียเงินเท่าที่จะทำได้ (เส้นทางที่สั้นที่สุด) จากนั้นคุณสามารถพิจารณาน้ำหนักเชิงลบ .... เช่นดูบทหนังสือเล่มนี้ซึ่งมีตัวอย่าง: informit.com/articles/article.aspx?p=169575&seqNum=8

ดังนั้นถ้า a ---- (2) ----> b ---- (- 2) ----> c และ a ----- (1) ----> c และไปจาก a ถึง c ฉันควรเลือก path abc เนื่องจากต้นทุนทั้งหมดเป็น 0 หรือไม่ เพราะมันเป็นเส้นทางที่สั้นที่สุด แก้ไขฉันถ้าฉันผิด!
c2h5oh

เช่นสมมติว่าถ้าคุณทำงานไปจากสถานะถึงค่าใช้จ่าย (เช่นงานกำลังซื้อหนังสือราคา 2 ) หลังจากนั้นคุณสามารถทำโครงการได้ (คุณได้รับ 2หมายถึงฟังก์ชันต้นทุน คือ -2) จากนั้นคุณบรรลุวัตถุประสงค์ (เป็นมืออาชีพหรือค) จากนั้นค่าใช้จ่ายทั้งหมดคือ 0 และคุณอยู่ในสถานะของคุณ a - (+ 2) -> b - (- 2) -> c: +2 - 2 = 0 (ค่าใช้จ่ายทั้งหมดจาก a: newbie, c: professional) a b 2 $ $ $e(ab)ab2$$$

ดังนั้นสมมติฐานของฉันถูกต้องแม้ว่าเราจะต้องเดินทางอีก 1 ขอบเราจะเลือก abc แทน ac.am ฉันใช่ไหม?
c2h5oh

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

คำตอบ:


16

Saeed Amiri ได้ให้ตัวอย่างที่ดีเยี่ยมในการแสดงความคิดเห็น: น้ำหนักบนขอบสามารถแสดงอะไรในโลกแห่งความเป็นจริงตัวอย่างเช่นจำนวนเงินที่จะโอนจากบัญชีหนึ่งไปยังบัญชีอื่น จำนวนเงินสามารถบวกหรือลบ ตัวอย่างเช่นถ้าคุณต้องการที่จะไปจากเพื่อในกราฟของคุณในขณะที่การสูญเสียเป็นเงินน้อยที่สุดเท่าที่ทำได้ (เส้นทางที่สั้นที่สุด) แล้วคุณสามารถพิจารณาน้ำหนักเชิงลบ สำหรับข้อมูลเพิ่มเติมโปรดดูบทหนังสือเล่มนี้ab

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

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

  • เคมี: ตุ้มน้ำหนักสามารถใช้แทนความร้อนที่เกิดขึ้นระหว่างปฏิกิริยาเคมี (โหมด: สารประกอบขอบถ้าสารประกอบสามารถรับได้ ( "ลดสารเคมี") จาก . ในกราฟนี้: คุณผลิตกิโลจูลการแปลงและกิโลจูลการแปลงไปคุณต้อง.กิโลจูล จะได้รับกลับจากเสื้อวียู4euvvu42 T 5 s Tsa2at5st

  • ชีวิตจริง: คิดของคนขับที่ได้รับเงินที่จะขับรถนายจ้างของเขาจากไปแต่เขาจ่ายระหว่างและ (บอกว่าการเดินทางระหว่างบ้านและสถานที่ทำงานของเขา)T stab

  • เกม: สมมติว่าคุณเล่นด้วยกรรไกรหินสำหรับเงิน โหนด: หินกระดาษกรรไกร ขอบ: ความสัมพันธ์ใด ๆ (กลุ่ม) น้ำหนัก: เดิมพัน ในกราฟนี้: (ลืมเกี่ยวกับ ), ที่นี่, beats , beatsและ beats , และชนะ 4,2, -5 ตามลำดับs a a t t sbsaatts


สวัสดีขอบคุณสำหรับคำตอบ บางคนสามารถอธิบายตัวอย่างกรรไกรหินได้หรือไม่ คุณคิดน้ำหนัก 4, 2, -5 อย่างไร?
Saurabh Goyal

3

ฉันไม่ใช่นักเคมี แต่ฉันคิดว่าตัวอย่างนี้จะคุ้มค่าที่จะช่วยให้คุณนึกถึงตัวประมวลผลทฤษฎีเครือข่ายและสิ่งที่เกี่ยวข้อง ..

ลองพิจารณาพฤติกรรมการจำลองกราฟของโมเลกุลในปฏิกิริยาทางเคมีนั่นคือเส้นทางที่สามารถใช้ระหว่างปฏิกิริยาและน้ำหนักหมายถึงพลังงานที่ดูดซับหรือปล่อยออกมาในช่วงการเปลี่ยนภาพดังนั้นหากเราต้องการพลังงานออกจากปฏิกิริยาเราจะแสดงพลังงานที่ปล่อยออกมา พลังงานด้วย -ve


1

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

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

ปัญหาเกิดขึ้นเมื่อมีวัฏจักรลบ ลองดูกราฟด้านบน และถามตัวเองว่าอะไรคือเส้นทางที่สั้นที่สุดระหว่าง A และ E ในตอนแรกคุณอาจรู้สึกราวกับว่า ABCE คิดต้นทุน 6 (2 + 1 + 3) แต่ที่จริงแล้วเมื่อมองลึกลงไปคุณจะสังเกตรอบการลบซึ่งก็คือ BCD น้ำหนักของ BCD คือ 1 + (- 4) +2 = (-1) ในขณะที่เคลื่อนที่จาก A ถึง E ฉันสามารถปั่นไปรอบ ๆ ด้านใน BCD เพื่อลดค่าใช้จ่ายลงได้ 1 ครั้ง เช่นเดียวกับเส้นทาง A (BCD) BCE ราคา 5 (2 + (- 1) + 1 + 3) ตอนนี้การทำซ้ำรอบเวลาที่ไม่มีที่สิ้นสุดจะช่วยลดค่าใช้จ่ายโดย 1 ในแต่ละครั้ง ฉันสามารถบรรลุเส้นทางที่สั้นที่สุดที่ไม่มีที่สิ้นสุดติดลบระหว่าง A และ E

ปัญหานี้เกิดขึ้นจากรอบการลบใด ๆ ในกราฟ ดังนั้นเมื่อใดก็ตามที่มีวัฏจักรติดลบน้ำหนักขั้นต่ำจะไม่ถูกกำหนดหรือเป็นค่าลบอนันต์ดังนั้น Floyd-Warshall จึงไม่สามารถทำงานในกรณีดังกล่าวได้

นอกจากนี้คุณอาจต้องการดูอัลกอรึทึมของ Bellman-Fordซึ่งตรวจพบว่ากราฟมีวัฏจักรเชิงลบหรือไม่และส่งคืนเส้นทางที่สั้นที่สุดระหว่างสองโหนด


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

0

ตัวอย่างเช่นลองนึกภาพเครือข่ายโลจิสติกส์ที่น้ำหนัก w (i, j) ของ edge ij คือค่าใช้จ่ายที่จะไปจากจุดยอด i ถึงจุดสุดยอด j หากคุณทำข้อตกลงทางธุรกิจกับ บริษัท อื่น ๆ เพื่อขนส่งผลิตภัณฑ์ของพวกเขา w (i, j) จะเป็นกำไรแทนที่จะเป็นต้นทุนดังนั้นคุณสามารถตีความน้ำหนักนี้เป็นต้นทุนติดลบได้


-2

ความแออัดของการจราจรบนแผนที่:

อีกตัวอย่างหนึ่งในโลกแห่งความเป็นจริงของการเชื่อมโยงน้ำหนักกับขอบอาจเป็นน้ำหนักที่แสดงถึงสภาพการจราจรในแผนที่ (เชิงลบมากขึ้นและไม่เอื้ออำนวยมากขึ้น) - จากนั้นเราสามารถใช้การแสดงนี้เพื่อคำนวณระยะทางที่เหมาะสม

เราสามารถใช้คำอุปมา "น้ำหนัก" เพื่อแสดงค่าบวก / ลบระหว่างจุดสองจุดใด ๆ ในกราฟ


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