Talk:Floyd–Warshall algorithm

message: The pseudocode contains end-ifs but no end-fors:
I think it makes sense to have it be consistent:
either
no end-fors and no end-ifs
or
every for-loop terminated with an end-for and every if-statement terminated with end-if
 1 let dist be a |V| × |V| array of minimum distances initialized to ∞ (infinity)
 2 for each edge (u,v)
 3    dist[u][v] ← w(u,v)  // the weight of the edge (u,v)
 4 for each vertex v
 5    dist[v][v] ← 0
 6 for k from 1 to |V|
 7    for i from 1 to |V|
 8       for j from 1 to |V|
 9          if dist[i][j] > dist[i][k] + dist[k][j] 
 10             dist[i][j] ← dist[i][k] + dist[k][j]
 11         end if  — Preceding unsigned comment added by 2601:282:8001:2E4A:845:D12F:594F:7A77 (talk) 22:43, 4 October 2018 (UTC)
thread_title:  Pseudocode contains end-ifs but no end-fors 

message: The Floyd-Warshall algorithm only finds shortest paths if there are no negative cycles.
It is illustrative to see what happens if there is a negative cycle,
so the existing example provided in the article is useful.
However, it would also be nice to have a graph not containing any negative-cycles.
Below are some notes on a step-through of the algorithm for
the given example:
upper-bound on cost from node 2 to node 1 is +4.
upper-bound on cost from node 1 to node 3 is -2.
cost on the path from 2 to 3 (going through 1 has) new upper bound of -2.
old upper-bound on cost from node 2 to 3 was +3
Next path: (4 --> 2 --> 3)
OBSERVE  cost(4, 2) <= -1
OBSERVE  cost(2, 3) <= -2
UPDATE   cost(4, 3) <= -3
old      cost(4, 3) was +inf
Next path: (1 --> 3 --> 4)
OBSERVE  cost(1, 3) <= -2
OBSERVE  cost(3, 4) <= +2
UPDATE   cost(1, 4) <= 0
Next path: (2 --> 3 --> 4)
OBSERVE  cost(2, 3) <= -2
OBSERVE  cost(3, 4) <= +2
UPDATE   cost(2, 4) <= 0
Next path: (4 --> 3 --> 4)
OBSERVE  cost(4, 3) <= -3
OBSERVE  cost(3, 4) <= +2
UPDATE   cost(4, 4) <= -1
Negative cycle found. can leave 4 and return to 4 with net negative cost
:This comment needs a signature and date.  128.226.2.54 (talk) 19:58, 23 January 2024 (UTC)
thread_title:  Could Use an Example Graph Not Containing a Negative Cycle 

message: The names are justified by the assertion that "it is essentially the same as".  No justification is given for this assertion.  I suspect it conceals some nontriviality.
Also, the citation to MathWorld is unwise.  MathWorld is notably unreliable.  A citation to a real publication is needed.  128.226.2.54 (talk) 20:01, 23 January 2024 (UTC)
replies: text: The transitive closure and shortest path algorithms are all using a dynamic program to compute aggregate information about the same subsets of paths of a graph, in the same order. They differ only in what aggregate information they compute: whether it is the existence of a path or whether it is the minimum weight of the path. That is, where one has an OR, the other has a MIN. That is the only difference. The regular expression conversion algorithm has the same structure but replaces the OR of Boolean values or the MIN of numbers with the OR of regular expressions. The fact that these algorithms are really doing the same thing with different operations was formalized in the late 1960s and early 1970s using the theory of semirings; the semiring article has two relevant footnotes and I think this can also be sourced to the textbook of Aho, Hopcroft, and Ullman. —David Eppstein (talk) 21:02, 23 January 2024 (UTC)
thread_title:  Attribution