El algoritmo GYO [ 1 ] es un algoritmo que se aplica a hipergrafos . El algoritmo toma como entrada un hipergrafo y determina si este es α-acíclico . De ser 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.
Definición
Un hipergrafo es una generalización de un grafo . Formalmente, un hipergrafoConsta de 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 primal como el grafo no dirigido definido sobre el mismo conjunto de vértices, en el que colocamos una arista entre cualesquiera dos vértices que aparecen 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, existe 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.
Principio del algoritmo
El algoritmo elimina iterativamente las llamadas " orejas " del hipergrafo, hasta que este queda completamente descompuesto.
Formalmente, decimos que una hiperarista e de un hipergrafoSe considera una oreja si se cumple alguna de las dos condiciones siguientes:
- está aislado , es decir, para cada otro hiperborde, tenemos;
- está casi cubierto por otro hiperborde, es decir, existe otro hiperbordede tal manera que todos los vértices enocurren solo en.
En particular, cada arista que es un subconjunto de otra arista es una oreja.
El algoritmo GYO procede entonces de la siguiente manera:
- Encuentra una oreja e en H.
- Elimina e y elimina todos los vértices de H que estén solo en e .
Si el algoritmo elimina con éxito todos los vértices, entonces el hipergrafo es α-acíclico. De lo contrario, si el algoritmo llega a un hipergrafo no vacío que no tiene orejas, entonces el hipergrafo original no era α-acíclico.
Supongamos primero que el algoritmo GYO termina en el hipergrafo vacío, seasea la secuencia de orejas que ha encontrado, y deje quela secuencia de hipergrafos obtenidos (en particularyes el hipergrafo vacío). Está claro que, el hipergrafo vacío, es-acíclico. Entonces se puede comprobar que, sies-acíclico entoncestambién lo es-acíclico. Esto implica queDe hecho, es así.-acíclico.
Para la otra dirección, suponiendo quees-acíclico, se puede demostrar quetiene 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.
Referencias
- Abiteboul, Serge; Hull, Richard; Vianu, Victor (2 de diciembre de 1994). Fundamentos de las bases de datos: El nivel lógico (PDF) . Reading, Mass.: Pearson. ISBN 978-0-201-53771-0.Véase el algoritmo 6.4.4.
- Koutris, París. "Lección 4: Consultas conjuntivas acíclicas" (PDF) .
- Arenas, Marcelo; Barceló, Pablo; Libkin, Leonidas; Martens, Wim; Pieris, Andreas (19 de agosto de 2022). "Capítulo 18". Teoría de Bases de Datos (Versión Preliminar) .
- Tziavelis, Giorgos; Gatterbauer, Wolfgang; Riedewald, Mirek (2022). "Hacia sistemas de gestión de bases de datos responsivos: algoritmos de unión óptimos, enumeración, factorización, clasificación y programación dinámica" . Tutorial ICDE 2022 .Parte 3: Consultas acíclicas y enumeración. Diapositivas , vídeo de 20 minutos , página del tutorial .
Notas
- ↑ Yu, CT; Ozsoyoglu, MZ (1979). "Un algoritmo para la pertenencia a una consulta distribuida mediante árbol" . COMPSAC 79. Actas. Software informático y Tercera Conferencia Internacional de Aplicaciones de la IEEE Computer Society, 1979. págs. 306–312 . doi : 10.1109/CMPSAC.1979.762509 .
- ↑ Brault-Baron, Johann (27-03-2014). "Revisión de la aciclicidad de los hipergrafos". arXiv : 1403.7076 [ math.CO ].Consulte el Teorema 6 para la existencia de una oreja.
Véase también
- Algoritmos de bases de datos
- Algoritmos de grafos