Un gráfico mixto es un gráfico que puede tener bordes tanto dirigidos como no dirigidos. Su gráfico subyacente no dirigido se obtiene olvidando las orientaciones de los bordes dirigidos, y en la otra dirección se obtiene una orientación de un gráfico mixto al asignar una dirección a cada borde no dirigido. Un conjunto de aristas forma un ciclo en un gráfico mixto si puede orientarse para formar un ciclo dirigido. Un gráfico mixto es acíclico si y solo si no tiene ciclos.
Todo esto es estándar y hay muchos artículos publicados que mencionan gráficos mixtos acíclicos. Por lo tanto, se debe conocer el siguiente algoritmo para probar la aciclicidad de gráficos mixtos:
Repita los siguientes pasos:
- Elimine cualquier vértice que no tenga bordes dirigidos entrantes y sin bordes incidentes no dirigidos, ya que no puede ser parte de ningún ciclo.
- Si algún vértice no tiene bordes dirigidos entrantes pero tiene exactamente un borde incidente no dirigido, entonces cualquier ciclo que use el borde no dirigido debe entrar en ese borde. Reemplace el borde no dirigido por un borde dirigido entrante.
Deténgase cuando no se puedan realizar más pasos. Si el resultado es un gráfico vacío, entonces el gráfico original necesariamente debe haber sido acíclico. De lo contrario, comenzando desde cualquier vértice que quede, uno puede retroceder a través del gráfico, en cada paso siguiendo hacia atrás a través de un borde entrante o siguiendo un borde no dirigido que no es el utilizado para alcanzar el vértice actual, hasta ver un vértice repetido. La secuencia de aristas seguida entre la primera y la segunda repetición de este vértice (en orden inverso) forma un ciclo en el gráfico mixto.
El artículo de Wikipedia sobre gráficos mixtos menciona gráficos mixtos acíclicos, pero no menciona cómo probarlos, por lo que me gustaría agregarle algo sobre este algoritmo, pero para eso necesito una referencia publicada. ¿Alguien puede decirme dónde aparece (o cualquier otro algoritmo para probar la aciclicidad) aparece en la literatura?