Warshall algorithm reference
This commit is contained in:
+30
@@ -0,0 +1,30 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
"""
|
||||||
|
File: adj2con.py
|
||||||
|
Author: Nina Chloe Kassandra Reiß <nina.reiss@nickr.eu>
|
||||||
|
Created on: Sa 18. Jul 11:30:03 CEST 2026
|
||||||
|
Description: Turn adjacency matrices into boolean connectivity matrix
|
||||||
|
"""
|
||||||
|
adjacency = [[1, 0, 1, 0, 0, 0], [0, 0, 0, 0, 1, 0], [1, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 1, 0], [0, 0, 0, 1, 0, 0], [0, 0, 0, 1, 1, 0]]
|
||||||
|
|
||||||
|
|
||||||
|
def warshall(adj):
|
||||||
|
n = len(adj)
|
||||||
|
|
||||||
|
# Kopie erzeugen
|
||||||
|
R = [row[:] for row in adj]
|
||||||
|
|
||||||
|
# Jeder Knoten ist von sich selbst erreichbar
|
||||||
|
for i in range(n):
|
||||||
|
R[i][i] = 1
|
||||||
|
|
||||||
|
for k in range(n):
|
||||||
|
for i in range(n):
|
||||||
|
for j in range(n):
|
||||||
|
R[i][j] = R[i][j] or (R[i][k] and R[k][j])
|
||||||
|
|
||||||
|
return R
|
||||||
|
|
||||||
|
|
||||||
|
print(warshall(adjacency))
|
||||||
Reference in New Issue
Block a user