SageMathとグラフ理論(連結グラフ)

introduction to graph theory by wilsonのp.11のFig.2.9は頂点が5個までの連結グラフ(connected unlabelled graph)で、31個ある。

これを作る。

(なぜならテキストの練習問題で何度も使われるから。例えば、この内、ツリーはどれとどれか。とか。)

 

sage: len (filter (lambda G: G.is_connected(), list(graphs(1)) + list(graphs(2))
....: + list(graphs(3)) + list(graphs(4)) + list(graphs(5))))
31

 

数は合っているみたいなので、これからグラフを描いてみる。

 

sage: glist = filter (lambda G: G.is_connected(), list(graphs(1)) + list(graphs(
....: 2)) + list(graphs(3)) + list(graphs(4)) + list(graphs(5)))
sage: p0=plot(Graph(0))
sage: gplotlist = map (plot, glist)
sage: graphics_array( (gplotlist + [p0]*4), 7, 5)

f:id:niming538:20170924180256p:plain

こうしておけば、この内ツリーはどれとどれかというのは次のように解けます。

sage: len(filter (lambda G: G.is_tree(), glist))
8

sage: glist2=filter (lambda G: G.is_tree(), glist)
sage: gplotlist2= map(plot, glist2)
sage: graphics_array(gplotlist2, 2)

f:id:niming538:20170924180954p:plain