Кирсанов М.Н. Графы в Maple M.: Физматлит 2007
> | #Программа 33 c, 143 |
Фундаментальные циклы
> | restart: |
> | with(networks): |
> | with(LinearAlgebra): |
> | with(plots): |
> | new(G):n:=7: |
> | addvertex(seq(i,i=1..n),G): |
> | 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([4],[5,3],[7],[6,2],[1]),G); |
e1, e2, e3, e4, e5, e6, e7, e8, e9, e10
> | T := spantree(G): |
> | Ed:=edges(T); add(eweight(Ed[i],T),i=1..6); |
> | draw(Linear([4],[5,3],[7],[6,2],[1]),T): |
Ed := {e10, e5, e6, e7, e8, e9}
104
> | n1 := nops(edges(G) minus Ed);# Число хорд |
> | for i to n1 do |
> | e := op(i,edges(G) minus Ed): # i - я хорда |
> | print(e,fundcyc(Ed union { e }, G)): od: |
n1 := 4
e1, {e1, e5, e7}
e2, {e2, e6, e8}
e3, {e10, e3, e8}
e4, {e10, e4, e7, e9}
> | cyclebase(G); |
{{e1, e5, e7}, {e10, e3, e8}, {e2, e6, e8}, {e10, e4, e7, e9}}