Bir grafikteki negatif ağırlık kenarlarının önemi nedir?


15

Dinamik programlama egzersizleri yapıyordum ve Floyd-Warshall algoritmasını buldum. Görünüşe göre, negatif ağırlık kenarlarına sahip olabilen, ancak negatif döngüleri olmayan bir grafik için tüm çiftleri en kısa yollar bulur.

Peki, negatif ağırlık kenarlarının gerçek dünyadaki önemi nedir acaba? Basit bir İngilizce açıklama yardımcı olacaktır.


3
Kenarların ağırlığı gerçek dünyadaki her şeyi temsil edebilir, örneğin bir hesaptan başka bir hesaba aktarılacak para miktarı pozitif veya negatif olabilir, o zaman örneğin, bir şey yapmak istiyorsanız, grafiğinizdeki a-> b'den gitmeniz gerektiği anlamına gelir. mümkün olduğunca düşük para kaybetmek (en kısa yol), o zaman negatif bir ağırlık düşünebilirsiniz .... örneğin bazı örnekler içeren bu kitap bölümüne bakın: informit.com/articles/article.aspx?p=169575&seqNum=8

eğer bir ---- (2) ----> b ---- (- 2) ----> c ve bir ----- (1) ----> c ve a'dan c'ye, toplam maliyet 0 olduğu için abc yolunu seçmeli miyim? çünkü en kısa yol. Eğer Yanlışsam beni düzelt !
c2h5oh

mesela sen iş yaparken eğer varsayalım devlet giden üzere a kadar b maliyeti 2 $ (örn iş defteri 2 maliyeti satın alıyor $ bazı proje yapabileceği (eğer 2 kazanın ardından) $ , araçlar maliyet fonksiyonudur - 2), o zaman amacınıza ulaştınız (profesyonel veya c), o zaman toplam maliyet 0'dır ve eyaletinizdedir. a - (+ 2) -> b - (- 2) -> c: +2 - 2 = 0 (a: acemi, c: profesyonel için toplam maliyet). e(ab)ab2$$$

bu yüzden varsayım doğru, 1 kenar daha seyahat etsek bile ac.am yerine abc'yi seçeceğiz.
c2h5oh

Evet kesinlikle, varsayımınız doğru. Biraz daha okuyabileceğinizi (sizin için verdiğim bağlantı gibi) veya tartışmamızla kendi sorunuza cevap verebileceğinizi ve kabul edilen cevap olarak işaretleyebileceğinizi unutmayın.

Yanıtlar:


16

Saeed Amiri zaten bir yorumda mükemmel bir örnek verdi: kenarlardaki ağırlık gerçek dünyada herhangi bir şeyi temsil edebilir, örneğin bir hesaptan başka bir hesaba aktarılacak para miktarı. Miktarlar pozitif veya negatif olabilir. Eğer gitmek istiyorsanız Örneğin, karşı b grafiğinizdeki sonra da negatif ağırlıkları dikkate edebilir mümkün (en kısa yolu) gibi daha az para olarak kaybetme iken. Daha fazla bilgi için bu kitap bölümüne bakın .ab

Bunun dışında çok daha fazla uygulama var. Negatif ağırlıklar, modellemenize bağlıdır. Örneğin, bu grafiği düşünün

resim açıklamasını buraya girin

  • euvvu4sa2at5st

  • stab

  • bsaatts


Merhaba, Cevabınız için teşekkürler. Birisi taş-kağıt-makas örneğini açıklayabilir mi? Onlar için 4, 2, -5 ağırlıklarını nasıl buldunuz?
Saurabh Goyal

3

Ben kimya adamı değilim ama yine de bu örneğin işlemci, ağ teorisi ve ilgili şeyleri düşünmenize yardımcı olmaya değeceğini düşünüyorum.

Kimyasal bir reaksiyondaki bir molekülün davranışını simüle eden bir grafiği düşünün, yani reaksiyon sırasında ve ağırlıkların geçiş sırasında emebileceği yolları temsil eder, bu nedenle reaksiyondan enerji almak istiyorsak, salınan enerjiyi + ve ağırlıklar ve absorbe ile temsil ederiz. -ve ile enerji.


1

resim açıklamasını buraya girin

Negatif kenar basitçe negatif ağırlığa sahip bir kenardır. Grafiğe ve kenarlarının neye işaret ettiği herhangi bir bağlamda olabilir. Örneğin, yukarıdaki grafikteki kenar CD'si negatif bir kenardır. Floyd-Warshall mümkünse grafiğin her çifti arasındaki ağırlığı en aza indirerek çalışır. Yani, negatif ağırlık için hesaplamayı pozitif ağırlık kenarlarında yaptığınız gibi yapabilirsiniz.

Sorun, negatif bir döngü olduğunda ortaya çıkar. Yukarıdaki grafiğe bir göz atın. Ve kendinize şu soruyu sorun - A ve E arasındaki en kısa yol nedir? İlk başta ABCE'sinin 6 (2 + 1 + 3) olduğunu düşünebilirsiniz. Ama aslında, daha derin bir bakışla, BCD olan negatif bir döngüyü gözlemlersiniz. BCD'nin ağırlığı 1 + (- 4) +2 = (-1) 'dir. A'dan E'ye geçerken, her seferinde maliyetimi 1 azaltmak için BCD içinde bisiklet sürmeye devam edebilirim. Mesela, A (BCD) yolu BCE'nin maliyeti 5 (2 + (- 1) + 1 + 3). Şimdi döngüyü sonsuz kez tekrarlamak, her seferinde maliyeti 1 oranında azaltmaya devam edecektir. A ve E arasında negatif sonsuz bir en kısa yol elde edebilirim.

Sorun, grafikteki herhangi bir negatif döngü için açıktır. Bu nedenle, negatif bir döngü olduğunda, minimum ağırlık tanımlanmaz veya negatif sonsuzdur, bu nedenle Floyd-Warshall böyle bir durumda çalışamaz.

Ek olarak, bir grafiğin negatif döngüye sahip olup olmadığını tespit eden ve aksi takdirde iki düğüm arasındaki en kısa yolu döndüren Bellman-Ford Algoritmasına bakmak isteyebilirsiniz .


4
Bunun soruyu cevapladığını sanmıyorum. Soru "negatif bir döngü neden bir sorundur" değil, "neden gerçek hayatta negatif ağırlıklara sahip kenarlar olsun" sorusudur.
Juho

0

Örneğin, bir kenar ij'nin w (i, j) ağırlığının, köşe i'den köşe j'ye gitmenin maliyeti olduğu bir lojistik ağ düşünün. Ürünlerini taşımak için diğer şirketlerle iş anlaşması yaptıysanız, w (i, j) maliyet yerine kâr olur, bu nedenle bu ağırlığı negatif bir maliyet olarak yorumlayabilirsiniz.


-2

Haritadaki trafik sıkışıklığı:

Ağırlıkları bir kenarla ilişkilendirmenin bir başka gerçek dünya örneği, ağırlıklar bir haritadaki trafik koşullarını (daha olumsuz, daha olumsuz) temsil edebilir - bu temsili en uygun mesafeleri hesaplamak için kullanabiliriz.

Bir grafikteki herhangi iki nokta arasında pozitif / negatif değerli herhangi bir şeyi temsil etmek için gerçekten "ağırlık" metaforunu kullanabiliriz


Siteye Hoşgeldiniz! Bunun çok iyi bir örnek olduğunu düşünmüyorum. Trafik sıkışıklığı durumunda, yol boyunca seyahat etmek için geçen süre boyunca haritadaki kenarların ağırlıklandırılması daha doğal görünmektedir, bu nedenle yüksek tıkanıklık yüksek ağırlığa yol açacaktır. Sonuçta, amaç genellikle hedefe hızlı bir şekilde ulaşmaktır ve genellikle çok daha uzun bir soruşturulmamış yol yerine kısa ama sıkışık bir yol almayı tercih eder. Ayrıca, genellikle metrik olarak en az maliyeti kullanmak istiyoruz: bu, önerdiğim ağırlıklandırma ile iyi çalışıyor ve önerdiğiniz ağırlıkla çok kötü.
David Richerby
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.