Blog
Grafos en Python
- Publicado por: Rafael Fernandez
- Categoría: Blog Principiante Python
Un grafo es un conjunto de objetos llamados “nodos” unidos por enlaces llamados “aristas” o “arcos” que permiten representar relaciones binarias entre elementos de un conjunto. Si tiene flechas se llama grafo dirigido o digrafo. Si no tiene flechas se llama grafo no dirigido.
Grafo
Grafo Dirigido
Python no tiene definido un tipo de dato para Grafos. Para poder utilizarlos, se puede utilizar un módulo como ‘networkx’ o se pueden implementar manualmente.
Grafos en Python
Un grafo dirigido puede definirse de la siguiente forma:
grafo = {'A':['E','I'], 'E':['I','A'], 'I':['O'], 'O':['A']}
Grafos utilizando ‘networkx’ en Python
El modulo ‘networkx’ de python tiene en sus funciones soporte para crear y manipular grafos. En caso de no tener el módulo networkx instalado, con el comando ‘pip install networkx’ Python 2 o ‘pip3 install networkx’ para Python 3 se instalará el modulo.
import networkx as nx Grafo = nx.Graph() Grafo.add_node("A") # add_node("n") agrega "n" como nodo del grafo Grafo.add_node("E") Grafo.add_node("I") Grafo.add_edge("A","E") # add_edge("e") agrega "e" como borde de un nodo Grafo.add_edge("E","I") Grafo.add_edge("I","U")
Se generará un grafo con la siguiente configuración:
Nodos: [‘A’,’E’,’I’]
Bordes: [(‘A’, ‘E’),(‘E’, ‘I’), (‘I’, ‘U’)]