¿Cómo construir prácticamente gráficos de expansión regulares?

14

Necesito construir un gráfico expansor d-regular para algunos pequeños d fijos (como 3 o 4) de n vértices.

¿Cuál es el método más fácil para hacer esto en la práctica? ¿Construir un gráfico d-regular aleatorio, que se ha demostrado que es un expansor?

También leí sobre las construcciones de Margulis y los gráficos de Ramanujan que son expansores y una construcción que usa un producto en zig-zag. Wikipedia ofrece una descripción general agradable pero muy breve: http://en.wikipedia.org/wiki/Expander_graph#cite_note-10 ¿ Pero qué método elijo en la práctica?

Para mí, estos métodos parecen muy complicados de implementar y, en particular, de comprender y quizás bastante específicos. ¿No existen métodos más fáciles, tal vez basados ​​en permutaciones o algo así, para generar prácticamente una secuencia de gráficos de expansores d-regulares?

¿Es quizás más fácil construir gráficos expansores bipartitos d-regulares?

También tengo otra pregunta: ¿qué pasa con las familias de expansores d-regulares malos? ¿Tiene sentido tal noción? ¿Se puede construir una familia de gráficos d-regulares (que por supuesto estén conectados) que sea tan mala como sea posible en el sentido de un expansor?

Gracias por adelantado.

usuario2145167
fuente
2
Hay construcciones explícitas más fáciles que las que enumeró, pero los gráficos aleatorios deberían hacer el truco y tener mejores parámetros.
Yuval Filmus
¿Puede dar nombres o referencias de las construcciones? Por mejores parámetros, ¿te refieres a una mejor expansión (borde), supongo?
user2145167
1
András dio el ejemplo que tenía en mente, pero en general, los gráficos aleatorios son (casi siempre) mejores que las construcciones explícitas. La expansión del borde no solo es más grande, sino que cualquier otra propiedad similar que sea útil para su algoritmo probablemente se satisface automáticamente mediante gráficos aleatorios.
Yuval Filmus
Ok, para el grado 3, el ejemplo de András o los gráficos aleatorios parecen ser lo suficientemente buenos para mi aplicación. Sería interesante, en particular con respecto a los gráficos aleatorios, construir una familia de gráficos de 3 registros que no sea un expansor. ¿Pero esto es probablemente muy difícil o imposible?
user2145167
3
Tome una unión de s. Si desea un gráfico conectado, elimine un borde de cada K 4 (formando un gráfico conocido como gráfico de diamante) y conéctelos en un ciclo. K4 4K4 4
Yuval Filmus

Respuestas:

9

Si no le importan los gráficos con bucles automáticos, la familia de expansores "más fáciles" es probablemente esta, que proporciona expansores que son 3-regulares.

Comience con algún número primo , y construya vértices numerados de 0 a p - 1 . Para cada vértice u 0 , conecte T a T - 1 y T + 1 , módulo p . También conecte u al vértice único v de modo que u v 1pag0 0pag-1tu0 0tutu-1tu+1pagtuv .tuv1modificaciónpag

Como ejemplo, el gráfico de 7 vértices en la familia es un ciclo de 7 con vértices numerados secuencialmente alrededor del ciclo; hay self-loops en , 0 y 1 ; finalmente, hay acordes que unen 3 y 5 , y 2 y 46 60 0135 524 4 .

Ver /mathpro/124708/an-expander-graph para más discusión y referencias. Hay muchos punteros más detallados buscando "expansor" en CSTheory , Math.SE y MO .

Como señala Yuval Filmus, es probable que la construcción aleatoria dé mejores resultados en general, pero, por supuesto, puede que no produzca un expansor (especialmente para gráficos pequeños).

András Salamon
fuente
Gracias por el comentario. Había buscado expansores antes en los otros sitios pero no en MO, realmente parece haber más resultados.
user2145167