私は Sage でいくつかのコードを書いて、ファインマン グラフを使っていくつかの計算を行います。ファインマン グラフは、エッジ ラベルを持つ有限で無指向のマルチグラフです。クラスに不思議なことに欠けているエッジ縮小などのメソッドを実装する必要がありますsage.graphs.graph.Graph
。しかし、既存のすべてのグラフ メソッドも継承したいと考えていis_tree
ます。
これは、新しいクラスをアタッチするモジュール Feynman.sage の先頭です。
from sage.graphs.graph import Graph
class FeynmanGraph(Graph):
"""An unoriented multi-graph with labeled edges"""
def __init__(self, E=[]):
self._edges = len(E)
def __repr__(self):
return 'A Feynman graph with ' + str(self._edges) + ' edges.'
私は正しいことをしていません。クラスのインスタンス化によりメソッドの正しいディレクトリが生成されますが、それらの多くは機能しません。
'FeynmanGraph' object has no attribute '_backend'
これは、Sage が他のグラフ理論パッケージの単なる Python ラッパーであることと関係があると思います。
お知らせ下さい。