Estoy buscando un método computacionalmente eficiente para generar una lista completa de los triángulos de un gráfico dado. A efectos de esta pregunta, damos a cada vértice un nombre de letra, y un triángulo se registra escribiendo las tres letras. Aunque el orden de las letras no importa, sólo se debe registrar uno de los posibles órdenes (es decir, se puede registrar "EFA", "FEA", "AFE", "FAE", "EAF" o "AEF", pero sólo uno de ellos).
Cada vértice tiene una referencia a todos los demás vértices. El algoritmo comienza con un solo vértice, que se supone que está conectado de alguna manera con todos los demás puntos del gráfico. Por ejemplo, si empezamos con E en la imagen de ejemplo, podríamos pasar a F, A o B y continuar hasta registrar todos los triángulos del gráfico.
Un triángulo se define como un grupo de tres vértices que están conectados entre sí, pero que no contienen ningún punto en su interior. En el gráfico del ejemplo, mientras que ABD, ACD y BDC son triángulos, ABC no lo es. (En este caso, el conjunto completo de triángulos es EAB, EAF, AFG, AGC, ADB, ADC, BDC).
Para mis propósitos particulares, el gráfico resulta tener la suposición de que cada La forma encerrada en el gráfico es un triángulo. Por ejemplo, en este ejemplo, la eliminación de la arista AB haría que el gráfico no fuera válido, ya que EBDA sería un cuadrilátero. Además, no hay aristas "colgantes": cada arista bordea al menos un triángulo. Un gráfico que no cumpla estas condiciones no necesita ser considerado.