Qual é o significado das arestas de peso negativo em um gráfico?


15

Eu estava fazendo exercícios de programação dinâmica e encontrei o algoritmo de Floyd-Warshall. Aparentemente, ele encontra os caminhos mais curtos de todos os pares para um gráfico que pode ter arestas de peso negativas, mas sem ciclos negativos.

Então, eu me pergunto qual é o significado real das arestas de peso negativo? Uma explicação simples em inglês seria útil.


3
O peso das arestas pode representar tudo no mundo real, por exemplo, a quantia de dinheiro a ser transferida de uma conta para outra conta pode ser positiva ou negativa; por exemplo, se você quiser fazer algo, precisará ir de a-> b em seu gráfico com perdendo o mínimo de dinheiro possível (caminho mais curto), você pode considerar pesos negativos ... por exemplo, consulte este capítulo do livro que contém algumas amostras: informit.com/articles/article.aspx?p=169575&seqNum=8

Então, se a ---- (2) ----> b ---- (- 2) ----> ce um ----- (1) ----> ce sair de a a c, devo escolher o caminho abc, pois o custo total é 0? porque é o caminho mais curto. corrija-me se eu estiver errada !
C2h5oh 10/09/2013

por exemplo, suponha que se você fazer o trabalho para ir de estado uma a b custa 2 $ (eg trabalho está comprando livro custa 2 $ ), após o que você pode fazer algum projeto (você ganha 2 $ , a função de meio custo é - 2), então você alcançou seu objetivo (sendo profissional ou c), o custo total é 0 e você está em seu estado. a - (+ 2) -> b - (- 2) -> c: +2 - 2 = 0 (custo total de a: novato, a c: profissional). e(ab)ab2$$$

então minha suposição está certa, mesmo que tenhamos que percorrer mais uma borda, escolheremos abc em vez de ac.am, certo?
C2h5oh 10/09/2013

Sim, exatamente, sua suposição está certa. Observe que você pode ler um pouco mais (como o link que eu forneci para você) ou, através da nossa discussão, você pode responder sua própria pergunta e marcá-la como resposta aceita.

Respostas:


16

Saeed Amiri já deu um excelente exemplo em um comentário: o peso nas bordas pode representar qualquer coisa no mundo real, por exemplo, a quantidade de dinheiro a ser transferida de uma conta para outra. Os valores podem ser positivos ou negativos. Por exemplo, se você quiser ir de para b no gráfico e perder o mínimo de dinheiro possível (caminho mais curto), poderá considerar pesos negativos. Para mais, consulte este capítulo do livro .ab

Além disso, há muito mais aplicativos. Os pesos negativos dependem de como você o modela. Por exemplo, considere este gráfico

insira a descrição da imagem aqui

  • Química: Os pesos podem ser usados ​​para representar o calor produzido durante uma reação química. (Modos: compostos, borda : se o composto v puder ser obtido ("quimicamente reduzido") de u . Neste gráfico: você produz 4 kJ para converter s - a e 2 kJ para converter a em t . Você precisa de 5 kJ para recuperar s de t .euvvu4sa2at5st

  • Vida Real: Pense de um motorista, que é pago para conduzir o seu empregador de para t , mas ele paga entre um e bstab (dizem viajar entre sua casa e seu local de trabalho).

  • bsaatts


Oi, obrigado pela resposta. Alguém pode explicar o exemplo da pedra-papel-tesoura? Como você criou os pesos 4, 2, -5 para eles?
Saurabh Goyal

3

Eu não sou um cara de química, mas ainda acho que esse exemplo valerá a pena para ajudá-lo a pensar em processador, teoria de redes e coisas relacionadas.

Considere um gráfico simulando o comportamento de uma molécula em uma reação química, ou seja, quais caminhos ela pode seguir durante a reação e os pesos representam a energia absorvida ou liberada na transição; portanto, se queremos energia fora da reação, representamos a energia liberada com pesos + ve e absorvidos energia com -ve.


1

insira a descrição da imagem aqui

Uma aresta negativa é simplesmente uma aresta com um peso negativo. Pode estar em qualquer contexto pertencente ao gráfico e a que bordas se referem. Por exemplo, o CD da aresta no gráfico acima é uma aresta negativa. O Floyd-Warshall funciona minimizando o peso entre cada par do gráfico, se possível. Portanto, para um peso negativo, você pode simplesmente executar o cálculo como faria para as bordas do peso positivo.

O problema surge quando há um ciclo negativo. Dê uma olhada no gráfico acima. E faça a si mesmo a pergunta - qual é o caminho mais curto entre A e E? Você pode inicialmente sentir como se o seu ABCE estivesse custando 6 (2 + 1 + 3). Mas, na verdade, olhando mais profundamente, você observaria um ciclo negativo, que é o BCD. O peso do BCD é 1 + (- 4) +2 = (-1). Ao atravessar de A a E, eu poderia continuar andando de bicicleta dentro do BCD para reduzir meu custo em 1 a cada vez. Assim, o caminho A (BCD) BCE custa 5 (2 + (- 1) + 1 + 3). Agora, repetir o ciclo infinitos vezes continuaria reduzindo o custo em 1 a cada vez. Eu poderia conseguir um caminho mais curto infinito negativo entre A e E.

O problema é evidente para qualquer ciclo negativo em um gráfico. Portanto, sempre que um ciclo negativo está presente, o peso mínimo não é definido ou é infinito negativo, portanto, Floyd-Warshall não pode funcionar nesse caso.

Além disso, você pode dar uma olhada no algoritmo de Bellman-Ford, que detecta se um gráfico tem ciclo negativo ou não e, de outra forma, retorna o caminho mais curto entre dois nós.


4
Eu não acho que isso responda à pergunta. A questão não é "por que um ciclo negativo é um problema", mas "por que alguém teria bordas com pesos negativos na vida real"?
Juho 10/09

0

Por exemplo, imagine uma rede logística em que o peso w (i, j) de uma aresta ij seja o custo para ir do vértice i ao vértice j. Se você fez um acordo comercial com outras empresas para transportar seus produtos, w (i, j) seria um lucro em vez de um custo, para que você possa interpretar esse peso como um custo negativo.


-2

Congestionamento de tráfego em um mapa:

Um outro exemplo do mundo real de associação de pesos a uma borda pode ser o peso que representa as condições de tráfego em um mapa (mais negativo, mais desfavorável) - poderíamos então usar essa representação para calcular distâncias ideais.

Podemos realmente usar a metáfora "peso" para representar qualquer coisa de valor positivo / negativo entre quaisquer dois pontos em um gráfico


Bem vindo ao site! Eu não acho que este seja um exemplo muito bom. No caso de congestionamento de tráfego, parece mais natural ponderar as bordas no mapa pelo tempo que leva para viajar ao longo da estrada; portanto, um congestionamento alto levaria a um alto peso. Afinal, o objetivo geralmente é chegar rapidamente ao destino e, em geral, prefere-se pegar uma estrada curta, mas congestionada, em vez de uma estrada muito mais descongestionada. Além disso, normalmente queremos usar o menor custo como métrica: isso funciona bem com a ponderação sugerida e muito ruim com a sugerida.
David Richerby
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.