# 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.

- Skill: `ecnu-icalk/floyd-warshall-highest-index-matrix` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ecnu-icalk/floyd-warshall-highest-index-matrix`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ecnu-icalk/floyd-warshall-highest-index-matrix/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ECNU-ICALK (https://skillmd.com/u/ecnu-icalk)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/ecnu-icalk/floyd-warshall-highest-index-matrix

---


# 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

