Software para probar el homomorfismo gráfico


8

Tengo graficas Gk y Hk con |V(Gk)|=|V(Hk)|2k=n2k con kNque pasan controles de cordura como el lema de no homomorfismo. ¿Existen herramientas gratuitas y fáciles de usar para probar el homomorfismo gráfico deG a H?

Respuestas:


7

La mejor manera (en términos de pereza) es utilizar la herramienta Sage, disponible gratuitamente, que tiene el mejor soporte para la teoría de grafos.

Ejemplo

sage: G = graphs.PetersenGraph()
sage: G.has_homomorphism_to(graphs.CycleGraph(5))
False
sage: G.has_homomorphism_to(graphs.CompleteGraph(5))
{0: 0, 1: 1, 2: 0, 3: 1, 4: 2, 5: 1, 6: 0, 7: 2, 8: 2, 9: 1}

5

Un enfoque sería utilizar un solucionador SAT.

Introducir una variable booleana xt,v para cada vértice t desde G y cada vértice v desde H. La intuición es quext,v será cierto si los mapas de homomorfismo tv. (Por supuesto, si tiene un conjunto de vértices candidato más pequeño quetpodría correlacionarse, quizás reducirse utilizando consideraciones de grado u otros criterios locales, y luego puede reducir el número de variables booleanas en consecuencia. Este tipo de preprocesamiento podría mejorar significativamente la eficiencia de este enfoque).

A continuación, agregue dos tipos de cláusulas / restricciones:

  • Agregue algunas cláusulas para exigir que este mapeo forme un homomorfismo gráfico. En particular, para cada borde(t,u)E(G), agregue la restricción

    (v,w)E(H)(xt,vxu,w).

    (Puede convertir esto a 3CNF usando la transformación estándar de Tseitin).

  • Agregue algunas cláusulas para exigir que cada vértice t desde G asigna exactamente a un vértice v desde H. Existen varios métodos estándar para codificar esta restricción. Una forma simple es, para cada vérticetV(G), agregue la cláusula

    vV(H)xt,v

    y la cláusula

    v,wV(H)(¬xt,v¬xt,w).

Luego, puede usar cualquier solucionador SAT estándar. No sé qué tan bien funcionará en la práctica, pero podrías intentarlo y ver cómo funciona.


En la literatura de investigación, el problema del homomorfismo gráfico se ha estudiado ampliamente para gráficos con propiedades especiales (por ejemplo, donde H es una camarilla Hha acotado el ancho del árbol, y así sucesivamente). Si sabe algo especial sobre la estructura de sus gráficos, puede ser posible encontrar mejores algoritmos para su problema. Para gráficos generales, se sabe que este problema es NP-hard.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.