微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在稀疏矩阵中找到最短路径的权重

如何解决如何在稀疏矩阵中找到最短路径的权重

我需要在稀疏矩阵中找到从一个节点到其他节点的最短路径(基于边的数量),然后计算最短路径上边的权重之和。 我正在使用 scipy.sparse 但我不知道如何计算路径的权重。

from scipy.sparse import csr_matrix
from scipy.sparse.csgraph import shortest_path
...
graph = csr_matrix(graph)
...
dist_matrix,predecessors = shortest_path(csgraph=graph,directed=False,indices=0,return_predecessors=True)

def _get_path_length(predecessors,target):
    lngth = 1
    end = target 
    while predecessors[end] != -9999:
        lngth = 1 + lngth
        end = predecessors[end]
    return lngth

for idx,val in enumerate(lngth):
        path_length = _get_path_length(predecessors,idx)
        lngth[idx] = path_length
        path_weighs [idx] = dist_matrix[idx] / path_length

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。