Atualmente, estou lendo a introdução aos algoritmos e vim pelo algoritmo de Johnson, que depende de garantir que todos os caminhos sejam positivos.
o algo depende de encontrar uma nova função de peso (w ') que seja positiva para todas as arestas e mantenha a correção das relações de caminhos mais curtos.
Isso é feito calculando os valores de h (s), h (d) a serem adicionados ao valor original de w.
Minha pergunta é: por que não encontrar o menor w no gráfico e adicioná-lo a todas as arestas? isso satisfará ambas as condições e exigirá menos cálculo.
Respostas:
A adição de um peso a cada aresta adiciona mais peso a caminhos longos do que caminhos curtos. (Longo no sentido de ter muitas arestas.)
Por exemplo, suponha que a aresta de menor custo tenha peso e há dois caminhos de a : uma única aresta de peso e um caminho com duas arestas, cada uma com peso . O caminho de duas arestas tem o menor peso. No entanto, se você adicionar a cada borda, o caminho de uma borda terá peso mas o caminho de duas arestas agora terá peso , para obter a resposta errada.- 2 uma b 3 1 1 2 5 6
fonte
Aumentar cada peso de borda na mesma quantidade não aumenta necessariamente todos os caminhos na mesma quantidade de distância. Em vez disso, o aumento dos caminhos costuma ser desproporcional, o que depende de quantas arestas o caminho possui.
fonte