Кирсанов М.Н. Графы в 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}}