Qual è il significato dei bordi di peso negativo in un grafico?


15

Stavo facendo esercizi di programmazione dinamica e ho trovato l'algoritmo Floyd-Warshall. Apparentemente trova i percorsi più brevi di tutte le coppie per un grafico che può avere bordi di peso negativi, ma nessun ciclo negativo.

Quindi, mi chiedo qual è il significato del mondo reale dei bordi di peso negativo? Una semplice spiegazione in inglese sarebbe utile.


3
Il peso dei bordi può rappresentare tutto nel mondo reale, ad esempio la quantità di denaro da trasferire da un conto a un altro conto può essere positiva o negativa, ad esempio se si desidera fare qualcosa significa che si deve passare da a-> b nel grafico con perdendo il minor costo possibile (percorso più breve), quindi puoi considerare un peso negativo .... ad esempio, vedi questo capitolo del libro che contiene alcuni esempi: informit.com/articles/article.aspx?p=169575&seqNum=8

quindi se a ---- (2) ----> b ---- (- 2) ----> c e a ----- (1) ----> c e andare da da a a c, devo scegliere il percorso abc poiché il costo totale è 0? perché è il percorso più breve. correggimi se sbaglio!
c2h5oh,

ad esempio supponiamo che se stai facendo un lavoro per passare dallo stato a a b costa 2 $ (ad esempio il lavoro sta acquistando il libro costa 2 $ ), dopodiché puoi fare qualche progetto (guadagni 2 $ , significa che la funzione di costo è - 2), quindi hai raggiunto il tuo scopo (essere professionale o c), quindi il costo totale è 0 e sei nel tuo stato. a - (+ 2) -> b - (- 2) -> c: +2 - 2 = 0 (costo totale da a: novizio, a c: professionale). e(ab)ab2$$$

quindi il mio presupposto è giusto, anche se dobbiamo viaggiare 1 bordo in più sceglieremo abc invece di ac.am, giusto?
c2h5oh,

Sì, esattamente, il tuo presupposto è giusto. Nota che puoi leggere altro (come il link che ti ho fornito) o dalla nostra discussione puoi rispondere alla tua domanda e contrassegnarla come risposta accettata.

Risposte:


16

Saeed Amiri ha già fornito un eccellente esempio in un commento: il peso sui bordi può rappresentare qualsiasi cosa nel mondo reale, ad esempio la quantità di denaro da trasferire da un conto a un altro. Gli importi possono essere positivi o negativi. Ad esempio, se si desidera passare dalla alla b nel grafico perdendo il minor numero possibile di denaro (percorso più breve), è possibile considerare pesi negativi. Per di più, vedi questo capitolo del libro .ab

A parte questo, ci sono molte più applicazioni. I pesi negativi dipendono da ciò che si modella per essere. Ad esempio, considera questo grafico

inserisci qui la descrizione dell'immagine

  • Chimica: i pesi possono essere utilizzati per rappresentare il calore prodotto durante una reazione chimica. (Modalità: composti, bordo : se il composto v può essere ottenuto ("ridotto chimicamente") da u . In questo grafico: si producono 4 kJ per convertire s - a e 2 kJ per convertire a in t . Sono necessari 5 kJ per tornare s da t .euvvu4sa2at5st

  • Real Life: Pensate ad un pilota, che viene pagato a guidare il suo datore di lavoro da a t ma paga tra un e b (diciamo in viaggio tra la sua casa e il suo posto di lavoro).stab

  • Giochi: supponete di giocare con le forbici di carta rock per soldi. Nodi: roccia, carta, forbici. Bordi: qualsiasi relazione (cricca). Pesi: scommessa. In questo grafico: (dimentica di ), qui, s batte a , a batte t e t batte s , e vince rispettivamente 4,2, -5.bsaatts


Ciao, grazie per la risposta. Qualcuno può spiegare l'esempio delle forbici di roccia? Come hai creato i pesi 4, 2, -5 per loro?
Saurabh Goyal

3

Non sono un ragazzo di chimica, ma penso comunque che questo esempio varrà per aiutarti a pensare a processore, teoria della rete e cose correlate.

Considera un grafico che simula il comportamento di una molecola in una reazione chimica, ovvero quali percorsi può prendere durante la reazione e i pesi rappresentano l'energia assorbita o rilasciata nella transizione, quindi se vogliamo energia dalla reazione rappresentiamo l'energia rilasciata con + ve pesi e assorbiti energia con -ve.


1

enter image description here

Un bordo negativo è semplicemente un bordo con un peso negativo. Potrebbe essere in qualsiasi contesto pertinente al grafico e a cosa si riferiscono i suoi bordi. Ad esempio, il CD edge nel grafico sopra è un bordo negativo. Floyd-Warshall funziona minimizzando il peso tra ogni coppia del grafico, se possibile. Quindi, per un peso negativo potresti semplicemente eseguire il calcolo come avresti fatto per i bordi del peso positivo.

Il problema sorge quando c'è un ciclo negativo. Dai un'occhiata al grafico sopra. E poniti la domanda: qual è il percorso più breve tra A ed E? All'inizio potresti pensare che il suo ABCE abbia un costo di 6 (2 + 1 + 3). Ma in realtà, osservando più a fondo, osserveresti un ciclo negativo, che è BCD. Il peso di BCD è 1 + (- 4) +2 = (-1). Mentre attraversavo da A a E, potevo continuare a pedalare all'interno del BCD per ridurre il mio costo di 1 ogni volta. Ad esempio, il percorso A (BCD) BCE costa 5 (2 + (- 1) + 1 + 3). Ora ripetere il ciclo infiniti tempi continuerebbe a ridurre il costo di 1 ogni volta. Potrei ottenere un percorso breve infinito negativo tra A ed E.

Il problema è evidente per qualsiasi ciclo negativo in un grafico. Quindi, ogni volta che è presente un ciclo negativo, il peso minimo non è definito o è infinito negativo, quindi Floyd-Warshall non può funzionare in questo caso.

In aggiunta, potresti voler dare un'occhiata all'Algoritmo Bellman-Ford che rileva se un grafico ha un ciclo negativo o meno e altrimenti restituisce il percorso più breve tra due nodi.


4
Non credo che questo risponda alla domanda. La domanda non è "perché un ciclo negativo è un problema", ma piuttosto "perché uno dovrebbe mai avere bordi con pesi negativi nella vita reale".
Juho,

0

Ad esempio, immagina una rete logistica in cui il peso w (i, j) di un bordo ij è il costo per passare dal vertice i al vertice j. Se stipulassi un accordo commerciale con altre aziende per il trasporto dei loro prodotti, w (i, j) sarebbe un profitto anziché un costo, quindi puoi interpretare questo peso come un costo negativo.


-2

Congestione del traffico su una mappa:

Un altro esempio del mondo reale di associazione dei pesi a un bordo potrebbe essere rappresentato dai pesi che rappresentano le condizioni del traffico in una mappa (più negativa, più sfavorevole): potremmo quindi utilizzare questa rappresentazione per calcolare le distanze ottimali.

Possiamo davvero usare la metafora del "peso" per rappresentare qualsiasi cosa di valore positivo / negativo tra due punti qualsiasi in un grafico


Benvenuti nel sito! Non penso che questo sia un ottimo esempio. Nel caso di congestione del traffico, sembra più naturale appesantire i bordi sulla mappa quando ci vuole per percorrere la strada, quindi un'elevata congestione porterebbe ad un peso elevato. Dopotutto, l'obiettivo è di solito raggiungere rapidamente la destinazione e di solito si preferisce prendere una strada breve ma congestionata piuttosto che una strada molto più lunga non congestionata. Inoltre, in genere vogliamo utilizzare il costo minimo come metrica: funziona bene con la ponderazione che ho suggerito e molto male con quella che hai suggerito.
David Richerby,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.