Esto parece algo que la computación podría arrojar algo de luz sin demasiado esfuerzo:
Así que tenemos que calcular la media, sobre todos los árboles etiquetados, del número máximo de vecinos de hoja de un vértice en T.
Comienza con un par de funciones de Sage: la primera sólo calcula el valor $D(T)$ para un árbol pasado como argumento. Comprueba cada vértice por turnos y, si es una hoja, aumenta el contador asociado a su único vecino.
def maxleafNeighbours(t):
leafcount = [0 for i in range(t.num_verts())]
for l in t.vertices():
nb = t.neighbors(l)
if len(nb) == 1:
leafcount[nb[0]] = leafcount[nb[0]]+1
return max(leafcount)
El segundo recorre todos los árboles no etiquetados $T$ en $n$ vértices, calculados por geng
dentro de SageMath, calcula $D(T)$ y añade $n!/|Aut(T)|$ al recuento de árboles etiquetados con ese $D(T)$ .
def maxleafData(nv):
data = [0 for i in range(nv)]
nvfactorial = factorial(nv)
nauty_args = "-c " + str(nv) + " " + str(nv-1)
for t in graphs.nauty_geng(nauty_args):
val = maxleafNeighbours(t)
data[val] = data[val] + nvfactorial/t.automorphism_group().order()
return data
Así que si ejecutamos maxLeafData(6)
la salida es [0, 720, 450, 120, 0, 6]
mostrando que 0 árboles etiquetados en 6 vértices tienen $D(T) = 0$ pero $720$ los árboles etiquetados en 6 vértices tienen $D(T) = 1$ y así sucesivamente.
¿Cuál es el valor medio de todos los árboles etiquetados en 6 vértices?
data = maxleafData(6)
float(sum([i*data[i] for i in range(len(data))]) / sum(data))
1.5509259259259258
Así, el valor medio de $D(T)$ es 1,55 tomado sobre todos los árboles etiquetados en 6 vértices. Probemos con valores mayores de 6.
datapoints = []
for v in range(6,18):
data = maxleafData(v)
avg = float(sum([i*data[i] for i in range(len(data))]) / sum(data))
print (v,avg)
datapoints.append((v,avg))
(6, 1.5509259259259258)
(7, 1.601832569762599)
(8, 1.615203857421875)
(9, 1.6481679057505914)
(10, 1.6749189)
(11, 1.7038043317645422)
(12, 1.7314162738607985)
(13, 1.7585077425737015)
(14, 1.7846671875609421)
(15, 1.8099355316779862)
(16, 1.8342600346899551)
(17, 1.8576535568845751)
¿Qué aspecto tiene esta función?
sage.plot.scatter_plot.scatter_plot(datapoints)