El algoritmo GYO [1] es un algoritmo que se aplica a los hipergrafos . El algoritmo toma como entrada un hipergrafo y determina si el hipergrafo es α-acíclico . Si es así, calcula una descomposición del hipergrafo.
El algoritmo fue propuesto en 1979 por Graham e independientemente por Yu y Özsoyoğlu , de ahí su nombre.
Un hipergrafo es una generalización de un grafo . Formalmente, un hipergrafo consiste en un conjunto de vértices V y de un conjunto E de hiperaristas , cada una de las cuales es un subconjunto de los vértices V. Dado un hipergrafo, podemos definir su grafo primario como el grafo no dirigido definido en el mismo conjunto de vértices, en el que ponemos una arista entre dos vértices cualesquiera que se presenten juntos en alguna hiperarista.
Un hipergrafo H es α-acíclico si satisface dos condiciones: ser cordal y ser conforme. Más precisamente, decimos que H es cordal si su grafo primal es un grafo cordal . Decimos que H es conforme si, para cada camarilla del grafo primal, hay una hiperarista de H que contiene todos los vértices de la camarilla.
El algoritmo GYO toma como entrada un hipergrafo y determina si es α-acíclico en este sentido.
El algoritmo elimina iterativamente las llamadas orejas del hipergrafo, hasta que éste se descompone por completo.
Formalmente, decimos que una hiperarista e de un hipergrafo es una oreja si se cumple una de las dos condiciones siguientes:
En particular, cada borde que es un subconjunto de otro borde es una oreja.
El algoritmo GYO procede entonces de la siguiente manera:
Si el algoritmo elimina con éxito todos los vértices, entonces el hipergrafo es α-acílico. De lo contrario, si el algoritmo llega a un hipergrafo no vacío que no tiene orejas, entonces el hipergrafo original no era α-acílico:
Supongamos primero que el algoritmo GYO termina en el hipergrafo vacío, sea la secuencia de orejas que ha encontrado, y sea la secuencia de hipergrafos obtenidos (en particular y es el hipergrafo vacío). Está claro que , el hipergrafo vacío, es -acíclico. Se puede comprobar entonces que, si es -acíclico entonces también es -acíclico. Esto implica que es efectivamente -acíclico.
Para la otra dirección, suponiendo que es -acíclico, se puede demostrar que tiene una oreja . [2] Dado que al eliminar esta oreja se obtiene un hipergrafo que sigue siendo acíclico, podemos continuar este proceso hasta que el hipergrafo quede vacío.