python图论floyd算法
时间: 2023-10-17 15:28:37 浏览: 99
基于Python实现图论.rar
Floyd算法是一种用于解决图论中最短路径问题的算法,它可以计算出图中任意两个节点之间的最短路径长度。在Python中,你可以使用邻接矩阵来表示图,并利用Floyd算法进行计算。以下是一个简单的示例代码:
```python
# 定义一个表示正无穷大的常量
INF = float('inf')
# 定义图的邻接矩阵
graph = [
[0, 5, INF, 10],
[INF, 0, 3, INF],
[INF, INF, 0, 1],
[INF, INF, INF, 0]
]
# Floyd算法实现
def floyd(graph):
n = len(graph) # 图中节点的个数
# 初始化距离矩阵
dist = [[0] * n for _ in range(n)]
for i in range(n):
for j in range(n):
dist[i][j] = graph[i][j]
# 计算最短路径
for k in range(n):
for i in range(n):
for j in range(n):
if dist[i][k] + dist[k][j] < dist[i][j]:
dist[i][j] = dist[i][k] + dist[k][j]
return dist
# 调用Floyd算法计算最短路径
result = floyd(graph)
# 输出最短路径矩阵
for row in result:
print(row)
```
在上述示例中,我们定义了一个4个节点的图的邻接矩阵表示。使用Floyd算法计算出的最短路径矩阵将会被输出。你可以根据自己的需求修改邻接矩阵,以解决不同的最短路径问题。
阅读全文