Tengo un gráfico no dirigido. Un borde en ese gráfico es especial. Quiero encontrar todos los otros bordes que son parte de un ciclo par que contiene el primer borde.algoritmo de gráfico para detectar ciclos pares
No necesito enumerar todos los ciclos, eso sería inherentemente NP, creo. Solo necesito saber, para cada borde, si cumple las condiciones anteriores.
Una búsqueda de fuerza bruta funciona, por supuesto, pero es demasiado lenta y estoy luchando por encontrar algo mejor. Cualquier ayuda apreciada.
No hay información suficiente aquí para proporcionar una respuesta de la calidad que está buscando. ¿Qué tan adelantado sabe usted qué borde es especial? ¿Se le permite preprocesar los datos? ¿Cuánto toca los datos de antemano (por ejemplo, cargarlos) y puede modificar la forma en que preprocesa los datos? – ninjagecko
Además, posiblemente debas consultar todos los ciclos ** si ** no puedes abusar del preprocesamiento, aunque no puedo pensar en una prueba de esa afirmación de una forma u otra. – ninjagecko
@ninjagecko El gráfico representa una estructura química, es decir, los vértices son átomos y los bordes son enlaces químicos entre esos átomos. La estructura química está siendo continuamente editada por el usuario y se espera que este algoritmo se ejecute en tiempo real a medida que el usuario realiza ediciones. Usamos una estructura de lista de adyacencia simple para el gráfico, aunque también mantenemos algunas otras estructuras (por ejemplo, sabemos en todo momento si un borde es parte de un ciclo o no). Si entiendo bien, el preprocesamiento no es una opción, ya que el gráfico (y el borde especial) siempre cambian. – john