Reconstrucción de gráficos a partir de la distribución de grados

12

Dada una distribución de grados, ¿qué tan rápido podemos construir un gráfico que siga la distribución de grados dada? Un enlace o un bosquejo de algoritmo sería bueno. El algoritmo debe informar un "no" en caso de que no se pueda construir un gráfico y cualquier ejemplo si se pueden construir varios gráficos.

Singhsumit
fuente
¡Bienvenido! ¿Cómo se da la "distribución de grados"? Como distribución estocástica, como lista de grados, ...?
Raphael
1
Vea el ejercicio 2.6 aquí . Se proporciona un algoritmo para crear un gráfico a partir de una secuencia de grados dada.
utdiscant
2
Para aclarar el comentario de Raphael, cuando leo la distribución de grados , pienso en una distribución probabilística de grados. Como menciona utdiscant, la secuencia de grados es probablemente lo que quieres. Si te refieres al sentido probabilístico, probablemente estés buscando algún algoritmo de construcción aleatorio que intente "aproximar" la distribución. Sin embargo, no tiene mucho sentido para mí "informar un no" en esta configuración, porque creo que la mayoría de los gráficos serán un poco atípicos.
Lucas Cook
Y si realmente desea generar un gráfico con una distribución de grados dada, entonces este artículo parece tener el truco. Parece que el algoritmo descrito en mi comentario anterior es en realidad el algoritmo Havel-Hakimi en la respuesta de Wu Yin.
utdiscant

Respuestas:

9

Si te refieres a cómo construir un gráfico tan simple (sin auto-bucles y sin bordes paralelos), tal vez el teorema de Havel-Hakimi es lo que estás buscando. Puede buscarlo en Google usted mismo, y la página wikipedia Grado (teoría de grafos) también es útil.

Wu Yin
fuente
Gracias. sí, la página wiki es útil en este caso ..
singhsumit
11

nd1,...,dn

KnnviKndivividi=0vij1jdi

N=d1+...+dnHHM

MMH1indivi1,...,vidiuiG

O(Nω)ω2.373O(n2ω)

Artem Kaznatcheev
fuente
De su explicación (bastante clara) no está nada claro por qué la multiplicación de matrices entra en la ecuación.
Raphael
2
O(|V||E|)O(N2.5)H