Кирсанов М.Н. Графы в Maple Физматлит 2007
> | #Программа 30 c.139 |
Остов наименьшего веса
> | restart: with(networks):with(LinearAlgebra): |
> | new(G): # Новый граф |
> | addvertex(seq(i,i=1..7),G): # 7 вершин |
> | r:=[4],[5,3],[7],[6,2],[1]: |
> | addedge([{3,7},{1,2},{6,1},{5,6}, {3,4},{2,7},{4,7},{1,7},{4,5},{6,7}], weights=[27,19,24,29,21,14,16,13,22,18],G); |
> | draw(Linear(r),G); # Рисунок исходного графа |
> | In:=incidence(G):# Матрица инцидентности |
> | A:=adjacency(G): # Матрица смежности |
> | B:=In.Transpose(In)-2*A;# Матрица Кирхгофа |
> | m:=Minor(B,1,1);# Число остовов (в старых версиях необходимо подкючить еще и Determinant(m);) |