Estoy intentando calcular el polinomio de Tutte de un grafo como se describe en un artículo y en Wikipedia, pero no consigo apoyo experimental.
Papel p.9 y Wikipedia relacionan el polinomio de Tutte de un grafo con otro polinomio.
Si $(x-1)(y-1)=z$ , $$T(G;x,y)=F_G(z,y)/H(G)$$
Dónde $F_G(z,y)=\sum_{A \subseteq E}z^{c(G_A)}(y-1)^{|A|} $ donde $c(G)$ es el número de componentes conectados y $H(G)$ tiene simple forma cerrada.
Experimentalmente no puedo calcular el polinomio de Tutte utilizando este enfoque. Los resultados del polinomio de Tutte son erróneos. ¿Por qué?
Por ejemplo, para $K_3$ el código calcula $F_{K_3}=y^3 z-z+1$ y lo verifiqué a mano.
¿Algún error en este programa sagemath?
def tutte_to_hyper(g):
def ra(g): return g.order() - g.connected_components_number()
def cg(g): return g.connected_components_number()
def nu(g): return g.size() - ra(g)
SS=Subsets(g.edges(0))
K.<y,z>=QQ[]
su=0
rae=ra(g)
ve=list(g.vertices())
for S in SS:
S=list(S)
#if len(S)==0: continue
ve=uniq(flatten(S))
F=g.subgraph(ve,edges=S)
su += z**cg(F)*(y-1)**len(S)
return su,(y-1)**ra(g)*z**cg(g)