Blog
Grafos en Python
- mayo 19, 2019
- 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’)]

