11 votos

Buscar ciclos en gráficos que no contienen otros ciclos

Intro: Estoy trabajando en una ingeniería del mundo real problema que puede ser traducido a un grafo no dirigido. Soy un ingeniero aeroespacial, así que quizás yo no sé/el uso correcto de los términos matemáticos para describir mi problema, lo siento por eso :)

Problema: En este gráfico necesito para detectar todos 'el más pequeño de los ciclos", es decir, todos los ciclos que no contienen otros ciclos. Mi aplicación no es de tiempo crítico, o más específicamente en el gráfico la voy a cargar en son pequeños (<1000 nodos con ~4 bordes por nodo), y se analizan sólo una vez, así que el tiempo de procesamiento no es un problema real. Tengo dos preguntas.

1 - En el ciclo de detección

He encontrado ya cómo detectar todos los ciclos en un gráfico, haciendo un DFS para encontrar el ciclo de base para la gráfica, a partir de la cual todos los demás ciclos se pueden encontrar por XOR-ción de la incidencia de los vectores.

En esta imagen he de empezar con el gráfico 1. Quiero que mi algoritmo para volver finalmente subdiagramas (ciclos) 2 y 3, pero no de 4.

Aquí está una foto, no estoy permitido a publicar como una imagen sin embargo, debido a que yo sea un usuario nuevo :( https://www.dropbox.com/s/xwwpve2j1tncwy4/graph_question.jpg

Si ese enlace no funciona: http://s9.postimage.org/6o0idbt27/graph_question.jpg

Creo que necesitan esencialmente una forma de detectar si un nodo está contenida en una región que se describen por un ciclo, por ejemplo, que el centro de nodo " en mi dibujo está contenida en el ciclo 4 ¿algún consejo?

Edit: estoy buscando Circuitos aparentemente, la cual me enteré gracias a Hans Engler la respuesta!

2 - Bono: borde intersecciones

En los modelos que voy a analizar es improbable pero posible que el borde de las intersecciones que existen. Me di cuenta de que al escribir el anterior, y no tengo idea pero si esto representa un problema para la descomposición de la gráfica en los ciclos. ¿No es así?

8voto

Amr Puntos 12840

El término más pequeño ciclo no está definido. Informalmente, los gráficos se utilizan cuando sólo nos preocupa acerca de las relaciones entre los vértices (si hay bordes o no). Mira los gráficos que he publicado. Para ustedes, son estos gráficos diferentes ?enter image description here

En el gráfico de la izquierda, imaginar rotación de los puntos 5,6 alrededor de la imaginaria línea que une los vértices 2,4 180 grados. Ahora tenemos el gráfico de la derecha. De hecho, estos dos grafos son isomorfos. Ahora en la gráfica derecha supongo que tendría que seleccionar el ciclo 12643 y dejar 12543. En la gráfica derecha, usted haría lo contrario . Pero los dos gráficos son en realidad la misma.

Por lo tanto, su definición de la menor de los ciclos no es un gráfico de la propiedad, ya que dos grafos isomorfos no puede satisfacer juntos.

Nota: Si no se considera la derecha y a la izquierda los objetos de la misma, entonces no es posible tratarlos como gráficos para su aplicación. Tal vez usted necesita hablar acerca de las coordenadas de los vértices.

3voto

UberBit Puntos 21

Creo que el problema es un poco incorrectamente especificado. Y amr es completamente a la derecha..

Usted podría obtener un criterio como este:

Para un ciclo particular no hay ningún otro más corto(menos los bordes) ciclos en su subconjunto de vértices. (Si esto es cierto, que ese ciclo es "simple")

Verificación de que la matriz de resultado círculos, los cuales forman parte de los más pequeños y eliminarlos.

Sin embargo, eso no va a lidiar con el problema de isomorfismo, y te sería de 3 subdiagramas de amr imagen

3voto

David-W-Fenton Puntos 16613

Un mínimo de ciclos (aquellos que no contienen ciclos como el estricto subconjuntos) son llamados circuitos.

Itai y Rodeh dio un algoritmo de 1977 en el que se encuentra un circuito de menor tamaño.

Boros et alii en 2006 dio un algoritmo general que se encuentra (enumera) todos los circuitos con a $k$ nodos incremental polinomio tiempo, para más general de la situación (en matroids). El grado del polinomio depende de $k$. Así que la tarea de encontrar todos los circuitos de tamaño $\le k = 10$ para un gráfico con $n = 1000$ nodos pueden ser computacionalmente imposible. Creo que hay excepciones para ciertos tipo de gráficos, tal vez las planas.

2voto

R C E Mortimer Puntos 11

Ahora que finalmente los términos correctos para buscar, he encontrado mi problema exacto en desbordamiento de pila, con una solución publicada así. ¡Gracias todos por sus respuestas! http://stackoverflow.com/Questions/4022662/Find-All-chordless-Cycles-in-an-undirected-Graph

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X