quiero implementar el algoritmo de Kruskal en python, ¿cómo puedo representar el árbol/gráfico y qué enfoque debo seguir para detectar los ciclos?cómo representar gráficos/árboles en python y cómo detectar ciclos?
Respuesta
La forma más sencilla de representar a ella (en mi opinión) es mediante el uso de un diccionario de matrices Listas:
graph = {}
graph[node_id] = [other_node_id for other_node_id in neighbors(node_id)]
Una forma sencilla de encontrar ciclos es mediante el uso de una BF o búsqueda DF:
def df(node):
if visited(node):
pass # found a cycle here, do something with it
visit(node)
[df(node_id) for node_id in graph[node]]
Descargo de responsabilidad: se trata en realidad de un boceto; neighbors()
, visited()
y visit()
son simplemente tontos para representar cómo debería ser el algoritmo.
Python Graph API es un buen lugar para comenzar.
Por ejemplo, NetworkX tiene una implementación de algoritmo de Kruskal para encontrar el árbol de expansión mínimo.
Si desea reinventar la rueda y hacerlo usted mismo, también es posible.
sí, estoy tratando de reinventar la rueda al menos esta primera vez. –
- 1. Cómo representar matrices en python
- 2. algoritmo de gráfico para detectar ciclos pares
- 3. ¿Cómo romper múltiples ciclos foreach?
- 4. Ciclos en excepciones encadenadas
- 5. ¿Cómo organizar paquetes (y evitar ciclos de dependencia)?
- 6. Java: ¿cómo representar gráficos?
- 7. referencias débiles en bloques y ciclos retener
- 8. Detectar y grabar audio en Python
- 9. Python: cómo detectar el intérprete de depuración
- 10. Implementar y representar operaciones polyadic
- 11. Cómo representar 0.1 en punto flotante Aritmética y decimal
- 12. cómo representar árboles y su contenido en MySQL?
- 13. Detectar cuando HTML ha terminado de cargar Y representar en la página
- 14. Detectar ciclos en un gráfico de genealogía durante una búsqueda de profundidad en primer lugar
- 15. ¿Cómo representar los siguientes datos en XML?
- 16. ¿Cómo puedo representar intervalos enteros en Java?
- 17. cómo representar un campo vacío en yaml
- 18. ¿Cómo detectar la sobrecarga de métodos en subclases en python?
- 19. Cómo representar ecuaciones matemáticas en Android
- 20. ¿Cómo puedo representar conjuntos en Perl?
- 21. ¿Cómo representar la negación en BNF?
- 22. ¿Cómo activar los informes de ciclos en instrumentos bajo ARC?
- 23. Ciclos de puntero en clojure
- 24. ¿Cómo puedo detectar SIGINT en el programa de threading python?
- 25. Cómo detectar gestos en OpenKinect (con envoltorios de Python)
- 26. Datos básicos y ciclos de retención
- 27. ¿Cómo encontrar todos los ciclos de una cadena en Ruby?
- 28. Implementación simple para detectar ciclos en un gráfico dirigido en C#
- 29. ¿Cómo detectar el idioma predeterminado del sistema operativo en python?
- 30. Mejores prácticas de Django: Cómo limpiar y representar un formulario
por diccionario de matrices u significa diccionario de listas? –
@Bunny Rabbit erm .. sí. Lo siento, he usado mal el nombre>< –