Contar grafos etiquetados
Grafos etiquetados
Sea el número de vértices de un grafo. Hay que calcular el número de grafos etiquetados con vértices (etiquetados significa que los vértices están marcados con los números de a ). Las aristas de los grafos se consideran no dirigidas, y se prohíben bucles y aristas múltiples.
Consideramos el conjunto de todas las aristas posibles del grafo. Para cada arista podemos asumir que (porque el grafo es no dirigido, y no hay bucles). Por lo tanto el conjunto de todas las aristas tiene cardinalidad , es decir .
Como cualquier grafo etiquetado queda unívocamente determinado por sus aristas, el número de grafos etiquetados con vértices es igual a:
Grafos etiquetados conexos
Aquí, además imponemos la restricción de que el grafo tiene que ser conexo.
Denotemos el número pedido de grafos conexos con vértices como .
Primero discutiremos cuántos grafos disconexos existen. Entonces el número de grafos conexos será menos el número de grafos disconexos. Más aún, contaremos el número de grafos disconexos enraizados. Un grafo enraizado es un grafo en el que enfatizamos un vértice etiquetándolo como raíz. Obviamente tenemos posibilidades de enraizar un grafo con vértices etiquetados, por lo tanto al final necesitaremos dividir el número de grafos disconexos enraizados por para obtener el número de grafos disconexos.
El vértice raíz aparecerá en una componente conexa de tamaño . Hay grafos tales que el vértice raíz está en una componente conexa con vértices (hay formas de elegir vértices para la componente, estos se conectan de una de formas, el vértice raíz puede ser cualquiera de los vértices, y los vértices restantes se pueden conectar/desconectar de cualquier manera, lo que da un factor de ). Por lo tanto el número de grafos disconexos con vértices es:
Y por último el número de grafos conexos es:
Grafos etiquetados con componentes conexas {data-toc-label=“Grafos etiquetados con k componentes conexas”}
Basándonos en la fórmula de la sección anterior, aprenderemos a contar el número de grafos etiquetados con vértices y componentes conexas.
Este número se puede calcular usando programación dinámica. Calcularemos — el número de grafos etiquetados con vértices y componentes — para cada y .
Discutamos cómo calcular el siguiente elemento si ya conocemos los valores anteriores. Usamos un enfoque común: tomamos el último vértice (índice ). Este vértice pertenece a alguna componente. Si el tamaño de esta componente es , entonces hay formas de elegir tal conjunto de vértices, y formas de conectarlos. Después de quitar esta componente del grafo nos quedan vértices con componentes conexas. Por lo tanto obtenemos la siguiente relación de recurrencia: