Para un gráfico no dirigido,
A continuación se presentan algunas propiedades interesantes de gráficos no dirigidos con una ruta y ciclo euleriano. Podemos usar estas propiedades para encontrar si un gráfico es euleriano o no.
- Ciclo de Euler: un gráfico no dirigido tiene un ciclo de Euleriano si se cumplen dos condiciones siguientes.
- Todos los vértices con grados distintos de cero están conectados. No nos interesan los vértices con cero grados porque no pertenecen al Ciclo o Camino Euleriano (solo consideramos todos los bordes).
- Todos los vértices tienen un grado par.
- Ruta de Eulerian: Un gráfico no dirigido tiene Ruta de Eulerian si se cumplen las dos condiciones siguientes.
- Igual que la condición 1 para el Ciclo Euleriano.
- Si cero o dos vértices tienen un grado impar y todos los demás vértices tienen un grado par. Tenga en cuenta que solo un vértice con grado impar no es posible en un gráfico no dirigido (la suma de todos los grados siempre es par en un gráfico no dirigido)
Para un gráfico dirigido,
- ¿Por qué el problema P = NP es el "gran problema" en la complejidad computacional?
- ¿Necesito ser bueno en matemáticas para hacer una programación competitiva?
- ¿Cuál es la mejor manera de aprender geometría algebraica si uno no está interesado en usarlo para propósitos teóricos numéricos, sino más bien para aplicaciones en física teórica e informática teórica?
- ¿Cómo es tomar CS 154 (Introducción a los autómatas y la teoría de la complejidad) en Stanford?
- ¿Qué significa esta notación de satisfacción de proposiciones compuestas para resolver un rompecabezas de Sudoku dado en matemáticas discretas?
Un gráfico dirigido tiene un ciclo euleriano si se cumplen las siguientes condiciones. (Fuente: Wiki)
- Todos los vértices con un grado distinto de cero pertenecen a un único componente fuertemente conectado.
- El grado de entrada y salida de cada vértice es el mismo.
Podemos detectar componentes conectados individualmente usando la implementación basada en DFS de Kosaraju.
Para comparar en grado y fuera de grado, necesitamos almacenar en grado y fuera de grado de cada vértice. El grado de salida se puede obtener por tamaño de la lista de adyacencia. En grados se puede almacenar creando una matriz de tamaño igual al número de vértices.
Para ambos, la complejidad del tiempo es O (| V | + | E |)
Espero que esto ayude