Кирсанов М.Н. Графы в Maple Физматлит 2007

>    #Программа 31 c.140

Остов наименьшего веса

>    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);

e1, e2, e3, e4, e5, e6, e7, e8, e9, e10

>    draw(Linear(r),G);  # Рисунок исходного графа

[Maple Plot]

>    In:=incidence(G):# Матрица инцидентности

>    A:=adjacency(G):# Матрица смежности

>    B:=In.Transpose(In)-2*A:# Матрица Кирхгофа

>    m:=Minor(B,1,1);# Число остовов

>    tuttepoly(G,1,1);

m := 79

79

>    T := spantree(G):# Остов минимального веса

>    Ed:=edges(T);    # Ребра остова

>    MinWeight=add(eweight(Ed[i],T),i=1..6);# Сумма весов

>    draw(Linear(r),T);

Ed := {e10, e5, e6, e7, e8, e9}

MinWeight = 104

[Maple Plot]