私はフロイドのアルゴリズムを編集しているので、k が最高の中間頂点である各 Dk の代わりに、k が最大パス長です。最終的にはフロイドのものと同じ出力になりますが、すべてのサブイテレーションは異なる可能性があります。たとえば、0、1、2、3 の 4 つの頂点がある場合、最大長が K である 0 から 3 までの最も安価なパスを見つけたいとします。グラフは有向であると想定されます。
したがって、k=2 の場合、すべての矢印がエッジ/パスを示す 0->3...0->1->3...0->2->3 しかチェックできません。k=3 の場合、0->3...0->1->3...0->1->2->3...0->2->3... しかチェックできません。 0->2->1->3 など...
0 1 2 3
0 0 4 9 12
1 9 0 3 11 // the adj matrix I'm referencing for 1 example
2 9 10 0 2
3 1 99 6 0
これの実装を理解するのに助けが必要で、フロイドのアルゴリズムは別として、どこから始めればよいかわかりません。