Apa signifikansi tepi bobot negatif dalam grafik?


15

Saya sedang melakukan latihan pemrograman yang dinamis dan menemukan algoritma Floyd-Warshall. Tampaknya ia menemukan semua-pasangan jalur terpendek untuk grafik yang dapat memiliki tepi bobot negatif, tetapi tidak ada siklus negatif.

Jadi, saya bertanya-tanya apa arti dunia nyata dari tepi bobot negatif? Penjelasan bahasa Inggris yang sederhana akan sangat membantu.


3
Bobot tepi dapat mewakili segala sesuatu di dunia nyata, mis. Jumlah uang yang akan ditransfer dari satu akun ke akun lain dapat positif atau negatif, lalu mis. Jika Anda ingin melakukan sesuatu berarti Anda harus pergi dari a-> b dalam grafik Anda dengan kehilangan uang serendah mungkin (jalur terpendek), maka Anda dapat mempertimbangkan bobot negatif .... mis. lihat bab buku ini yang berisi beberapa sampel: informit.com/articles/article.aspx?p=169575&seqNum=8

jadi jika a ---- (2) ----> b ---- (- 2) ----> c dan a ----- (1) ----> c dan pergi dari a to c, haruskah saya memilih jalur abc karena total biaya adalah 0? karena itu jalan terpendek. koreksi saya jika saya salah!
c2h5oh

misalnya kira jika Anda melakukan pekerjaan untuk pergi dari negara satu ke b biaya 2 $ (misalnya pekerjaan adalah membeli buku biaya 2 $ ), setelah itu Anda dapat melakukan beberapa proyek (Anda mendapatkan 2 $ , fungsi biaya berarti adalah - 2), maka Anda mencapai tujuan Anda (menjadi profesional atau c), maka total biaya adalah 0, dan Anda berada di negara Anda. a - (+ 2) -> b - (- 2) -> c: +2 - 2 = 0 (total biaya dari: pemula, hingga c: profesional). e(ab)ab2$$$

jadi anggapan saya benar, bahkan jika kita harus melakukan 1 edge lagi kita akan memilih abc daripada ac.am saya benar?
c2h5oh

Ya persis, anggapan Anda benar. Perhatikan bahwa Anda dapat membaca lebih banyak (seperti tautan yang saya berikan untuk Anda) atau dengan diskusi kami, Anda dapat menjawab pertanyaan Anda sendiri, dan menandainya sebagai jawaban yang diterima.

Jawaban:


16

Saeed Amiri telah memberikan contoh yang sangat baik dalam komentar: bobot pada sisi dapat mewakili apa pun di dunia nyata, misalnya, jumlah uang yang akan ditransfer dari satu akun ke akun lain. Jumlahnya bisa positif atau negatif. Misalnya, jika Anda ingin beralih dari ke b dalam grafik Anda sambil kehilangan uang seminimal mungkin (jalur terpendek), maka Anda dapat mempertimbangkan bobot negatif. Untuk lebih lanjut, lihat bab buku ini .Sebuahb

Selain itu, ada banyak lagi aplikasi. Bobot negatif tergantung pada apa yang Anda modelkan. Sebagai contoh, perhatikan grafik ini

masukkan deskripsi gambar di sini

  • Kimia: Bobot dapat digunakan untuk mewakili panas yang dihasilkan selama reaksi kimia. (Mode: senyawa, ujung : jika senyawa v dapat diperoleh ("dikurangi secara kimia") dari u . Dalam grafik ini: Anda menghasilkan 4 kJ untuk mengonversi s - a dan 2 kJ untuk mengonversi a ke t . Anda perlu 5 kJ untuk mendapatkan kembali s dari t .ekamuvvkamu4s-Sebuah2Sebuaht5st

  • Kehidupan Nyata: Pikirkan seorang pengemudi, yang dibayar untuk mengusir atasannya dari ke t tetapi ia membayar antara a dan b (katakanlah bepergian antara rumah dan tempat kerjanya).stSebuahb

  • Game: Misalkan Anda bermain gunting kertas batu untuk uang. Node: batu, kertas, gunting. Tepi: hubungan apa pun (klik). Bobot: taruhan. Dalam grafik ini: (lupakan tentang ), di sini, s beat a , a beat be dan t beats s , dan masing-masing menang 4,2, -5.bsSebuahSebuahtts


Hai, Terima kasih atas jawabannya. Dapatkah seseorang menjelaskan contoh batu-kertas-gunting? Bagaimana Anda menghasilkan bobot 4, 2, -5 untuk mereka?
Saurabh Goyal

3

Saya bukan orang kimia tetapi saya pikir contoh ini akan berguna untuk membantu Anda berpikir tentang prosesor, teori jaringan dan hal-hal terkait ..

Pertimbangkan perilaku simulasi grafik dari molekul dalam reaksi kimia yaitu jalur mana yang dapat diambil selama reaksi dan bobot mewakili energi yang diserap atau dilepaskan dalam transisi, jadi jika kita ingin energi keluar dari reaksi, kita mewakili energi yang dilepaskan dengan + ve berat dan diserap energi dengan -ve.


1

masukkan deskripsi gambar di sini

Tepi negatif hanyalah tepi yang memiliki bobot negatif. Bisa dalam konteks apa pun yang berkaitan dengan grafik dan apa yang dimaksud tepi. Sebagai contoh, CD tepi pada grafik di atas adalah tepi negatif. Floyd-Warshall bekerja dengan meminimalkan bobot di antara setiap pasangan grafik, jika memungkinkan. Jadi, untuk bobot negatif Anda cukup melakukan perhitungan seperti yang Anda lakukan untuk bobot positif.

Masalah muncul ketika ada siklus negatif. Lihatlah grafik di atas. Dan tanyakan pada diri Anda pertanyaan - apa jalan terpendek antara A dan E? Anda mungkin pada awalnya merasa seakan-akan ABCE harganya 6 (2 + 1 + 3). Tetapi sebenarnya, dengan melihat lebih dalam, Anda akan mengamati siklus negatif, yaitu BCD. Berat BCD adalah 1 + (- 4) +2 = (-1). Sambil melintasi dari A ke E, saya bisa terus bersepeda di dalam BCD untuk mengurangi biaya saya sebesar 1 setiap kali. Seperti, jalur A (BCD) BCE biaya 5 (2 + (- 1) + 1 + 3). Mengulangi siklus kali tak terbatas akan terus mengurangi biaya sebesar 1 setiap kali. Saya bisa mencapai jalur terpendek negatif tak terbatas antara A dan E.

Masalahnya jelas untuk setiap siklus negatif dalam grafik. Oleh karena itu, setiap kali siklus negatif hadir, bobot minimum tidak ditentukan atau infinity negatif, sehingga Floyd-Warshall tidak dapat bekerja dalam kasus seperti itu.

Sebagai tambahan, Anda mungkin ingin melihat pada Algoritma Bellman-Ford yang mendeteksi apakah grafik memiliki siklus negatif atau tidak dan mengembalikan jalur terpendek antara dua node.


4
Saya tidak berpikir ini menjawab pertanyaan. Pertanyaannya bukanlah "mengapa siklus negatif menjadi masalah", melainkan "mengapa seseorang memiliki kelebihan dengan bobot negatif dalam kehidupan nyata".
Juho

0

Sebagai contoh, bayangkan sebuah jaringan logistik di mana bobot w (i, j) dari edge ij adalah biaya untuk berpindah dari vertex i ke vertex j. Jika Anda membuat perjanjian bisnis dengan perusahaan lain untuk mengangkut produk mereka, w (i, j) akan lebih menguntungkan daripada biaya, sehingga Anda dapat mengartikan bobot ini sebagai biaya negatif.


-2

Kemacetan lalu lintas di peta:

Salah satu contoh dunia nyata lain dari mengaitkan bobot ke tepian dapat berupa bobot yang mewakili kondisi lalu lintas di peta (lebih negatif, lebih tidak menguntungkan) - kita kemudian dapat menggunakan representasi ini untuk menghitung jarak optimal.

Kita benar-benar dapat menggunakan metafora "bobot" untuk mewakili sesuatu yang bernilai positif / negatif antara dua titik dalam grafik


Selamat datang di situs ini! Saya rasa ini bukan contoh yang bagus. Dalam kasus kemacetan lalu lintas, tampaknya lebih alami untuk menentukan tepi pada peta pada waktu yang diperlukan untuk melakukan perjalanan di sepanjang jalan, sehingga kemacetan yang tinggi akan menyebabkan bobot yang tinggi. Lagipula, tujuannya biasanya adalah untuk mencapai tujuan dengan cepat dan orang biasanya lebih memilih untuk mengambil jalan yang pendek tetapi padat daripada jalan yang tidak lagi panjang. Juga, kami biasanya ingin menggunakan paling sedikit biaya sebagai metrik: yang berfungsi baik dengan bobot yang saya sarankan, dan sangat buruk dengan yang Anda sarankan.
David Richerby
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.