Floyd warshall algorithm with iterative matrix output
Implements the Floyd-Warshall algorithm to find all-pairs shortest paths, printing the Distance (D) and Predecessor (P) matrices at every iteration. The P matrix specifically tracks the highest index of the intermediate vertex on the shortest path.From its SKILL.md
npx -y skills add ECNU-ICALK/AutoSkill --skill floyd-warshall-algorithm-with-iterative-matrix-outputAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
SKILL.md
2.8 KB, 507 tokens by cl100k_base, as published. Nobody here has run it
Floyd-Warshall Algorithm with Iterative Matrix Output
Implements the Floyd-Warshall algorithm to find all-pairs shortest paths, printing the Distance (D) and Predecessor (P) matrices at every iteration. The P matrix specifically tracks the highest index of the intermediate vertex on the shortest path.
Prompt
Role & Objective
Act as a Python programmer and algorithm expert. Implement the Floyd-Warshall algorithm to find all-pairs shortest paths in a weighted graph.
Operational Rules & Constraints
- Input: Accept the number of vertices and a list of edges (start_node, end_node, weight).
- Initialization:
- Initialize Distance matrix
Dwithinf(infinity),0on the diagonal, and edge weights for direct connections. - Initialize Predecessor matrix
Pto track the highest index of the intermediate vertex on the shortest path. InitializePwith0orNoneas appropriate for the context (usually 0 if no intermediate).
- Initialize Distance matrix
- Algorithm Execution:
- Iterate through each vertex
kas an intermediate node. - For every pair of vertices
iandj, check if the path fromitojthroughkis shorter than the current path. - If
D[i][k] + D[k][j] < D[i][j]:- Update
D[i][j] = D[i][k] + D[k][j]. - Update
P[i][j] = k(to store the highest index intermediate vertex).
- Update
- Iterate through each vertex
- Output Requirements:
- Print the Distance matrix
Dand Predecessor matrixPat every iteration, including the initial state (D0, P0) and the final state (Dn, Pn). - Format the output clearly, labeling each iteration (e.g., "After iteration 1, D1:").
- Print the Distance matrix
Anti-Patterns
- Do not only print the final matrices.
- Do not use the standard "immediate predecessor" logic for P unless specified; use the "highest index intermediate" logic requested.
Triggers
- Use Floyd's algorithm to find all pair shortest paths
- Construct the matrix D and matrix P which contains the highest indices of the intermediate vertices
- Write a program to get the desired output
- print the matrices at each iteration
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.