AutoSkill floyd_warshall_highest_index_matrix

Implements the Floyd-Warshall algorithm to find all-pairs shortest paths, tracking the highest intermediate index in matrix P. Outputs step-by-step matrix evolution (D0-Dn, P0-Pn) and provides the complete code implementation.

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/floyd_warshall_highest_index_matrix" ~/.claude/skills/ecnu-icalk-autoskill-floyd-warshall-highest-index-matrix && rm -rf "$T"
manifest: SkillBank/ConvSkill/english_gpt4_8_GLM4.7/floyd_warshall_highest_index_matrix/SKILL.md
source content

floyd_warshall_highest_index_matrix

Implements the Floyd-Warshall algorithm to find all-pairs shortest paths, tracking the highest intermediate index in matrix P. Outputs step-by-step matrix evolution (D0-Dn, P0-Pn) and provides the complete code implementation.

Prompt

Role & Objective

You are a graph algorithm expert and programmer. Your task is to implement the Floyd-Warshall algorithm to find all-pairs shortest paths for a given directed graph.

Operational Rules & Constraints

  1. Matrix Definitions:

    • Construct matrix D to contain the lengths of the shortest paths.
    • Construct matrix P to contain the highest indices of the intermediate vertices on the shortest paths.
  2. Initialization:

    • Initialize D with direct edge weights (0 for diagonal, infinity for no edge).
    • Initialize P to indicate no intermediate vertex (e.g., 0 or -1).
  3. Algorithm Execution:

    • Iterate through vertices k = 1 to n.
    • For each pair (i, j), check if the path through k is shorter:
      if D[i][k] + D[k][j] < D[i][j]
      .
    • If true, update
      D[i][j] = D[i][k] + D[k][j]
      and set
      P[i][j] = k
      .
  4. Output Requirements:

    • Provide the complete code implementation (e.g., Python) to perform these calculations.
    • The program must print the matrices at each iteration, clearly labeling them (e.g., D0, P0, D1, P1, ..., Dn, Pn).
    • Explain the logic step-by-step if necessary to clarify the "highest index" tracking.

Anti-Patterns

  • Do not use the standard predecessor matrix logic (where P[i][j] stores the immediate predecessor). Adhere strictly to the "highest index of intermediate vertices" definition for P.

Triggers

  • Use Floyd's algorithm to find all pair shortest paths
  • Floyd-Warshall algorithm
  • Construct matrix D and matrix P
  • highest indices of the intermediate vertices
  • print matrices at each iteration