Найти - Пользователи
Полная версия: MST (Minimum spanning tree)
Начало » Python для новичков » MST (Minimum spanning tree)
1
r_mihyil
Добрый день! Помогите, пожалуйста, ищу кусок кода/функцию из библиотеки на python, которая сможет найти сумму веса ребер минимального оставного дерева (Minimum spanning tree), имея из данных координаты вершин графа, и считая что «вес» ребра равен длине между вершинами. Если кто-то умеет такое прогать и сделает, также большое спасибо!
xam1816
  
from scipy.sparse import csr_matrix
from scipy.sparse.csgraph import minimum_spanning_tree
import numpy as np
# пример координат вершин графа
vertices = np.array([
    [0, 0],
    [0, 1],
    [1, 0],
    [1, 1],
    [2, 2]
])
# расстояния между вершинами
distances = np.linalg.norm(vertices[:, np.newaxis] - vertices, axis=2)
# создание разреженной матрицы для поиска минимального остовного дерева
sparse_graph = csr_matrix(distances)
# поиск минимального остовного дерева
mst = minimum_spanning_tree(sparse_graph)
# сумма веса ребер минимального остовного дерева
sum_of_weights = mst.sum()
print(sum_of_weights)

это из gpt, проверяйте, или в этой области ищите
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB