Ir al contenido principal

Introducción a la teoría de grafos

Explora los conceptos básicos de la teoría de grafos con esta guía para principiantes. Aprende sobre vértices, aristas y tipos de grafos para entender redes complejas y sus aplicaciones.
Actualizado 17 sept 2026  · 10 min leer

Explorar con IA

ChatGPTClaudePerplexity

¿Cómo modelar conexiones por pares entre objetos? 

Con una estructura matemática llamada grafo. Y de esto trata, en esencia, la teoría de grafos: el estudio de los grafos.  

Los elementos fundamentales de la teoría de grafos son los vértices (también llamados nodos) y las aristas (también llamadas enlaces). Un vértice representa una entidad o punto dentro de un grafo, mientras que una arista denota una conexión o relación entre dos vértices. Conjuntamente, estos componentes conforman la estructura de un grafo, que puede ser dirigido o no dirigido, ponderado o no ponderado, según la naturaleza específica de las relaciones que se modelen.

En informática, la teoría de grafos sustenta muchos algoritmos y estructuras de datos usadas para representar redes como internet, redes sociales y sistemas de comunicación. También proporciona herramientas para resolver problemas relacionados con la conectividad, la búsqueda de caminos y la optimización de redes, y es fundamental para comprender diversas estructuras y conceptos matemáticos como árboles, ciclos y grafos planares.

En este artículo, vamos a enseñarte lo necesario para empezar con la teoría de grafos.  

Creado por el autor con Midjourney

¿Qué es la teoría de grafos?

La teoría de grafos es una rama de las matemáticas que estudia las propiedades y aplicaciones de los grafos. Un grafo define un conjunto de objetos llamados vértices (o nodos) conectados por aristas (o enlaces). 

El objetivo principal de la teoría de grafos es entender la estructura de estos grafos y explorar problemas relacionados con la conectividad, la búsqueda de caminos y la optimización de redes.

Analizando estas relaciones, la teoría de grafos nos permite obtener información sobre numerosos problemas reales en múltiples ámbitos.

¿De dónde viene la teoría de grafos?

Los orígenes de la teoría de grafos se remontan al siglo XVIII con el trabajo del matemático suizo Leonhard Euler. La solución de Euler al problema de los puentes de Königsberg en 1736 se considera uno de los primeros problemas de la teoría de grafos. Este problema consistía en encontrar un recorrido por la ciudad de Königsberg que cruzara cada uno de sus siete puentes exactamente una vez. El enfoque de Euler sentó las bases de lo que más tarde se convertiría en el estudio formal de los grafos.

En los siglos XIX y XX, la teoría de grafos se desarrolló notablemente con aportaciones de matemáticos como Carl Friedrich Gauss, que exploró las propiedades de los poliedros, y de investigadores posteriores que formalizaron conceptos y desarrollaron algoritmos para problemas relacionados con grafos. 

El auge de la informática a mediados del siglo XX aceleró aún más el crecimiento de la teoría de grafos, lo que llevó a su aplicación generalizada en algoritmos, análisis de redes y estructuras de datos.

Conceptos fundamentales de la teoría de grafos

Comprender los fundamentos de la teoría de grafos sienta las bases para explorar temas más avanzados. Para empezar, asentemos algunos conceptos... 

Grafos como pares ordenados

Formalmente, un grafo se define como un par ordenado G = (V, E), donde:

  • V es un conjunto de vértices (o nodos), que representan las entidades individuales del grafo.
  • E es un conjunto de aristas (o enlaces), que representan las conexiones entre pares de vértices.

Vértices (V) y aristas (E)

  • Vértices (V): son las unidades o puntos fundamentales de un grafo. Cada vértice representa una entidad o ubicación en la estructura que se está modelando.
  • Aristas (E): son las conexiones o relaciones entre pares de vértices. Cada arista une dos vértices, indicando una relación o un camino entre ellos.

Tipos de aristas

  • Aristas dirigidas: en un grafo dirigido (o dígrafo), las aristas tienen dirección, es decir, van de un vértice a otro vértice específico. Esta dirección suele representarse con una flecha. Las aristas dirigidas son útiles para modelar relaciones asimétricas, como el flujo de tráfico o las precedencias en la planificación de tareas.
  • Aristas no dirigidas: en un grafo no dirigido, las aristas no tienen dirección y simplemente conectan dos vértices. Este tipo de grafo se usa para representar relaciones simétricas, como amistades mutuas o conexiones en una red donde la dirección no es relevante.

Terminología y conceptos básicos en teoría de grafos

Ahora, definamos algunos términos y conceptos básicos: 

Vértice (nodo)

Este concepto representa una entidad individual o punto dentro de la estructura del grafo. Por ejemplo, en un grafo de red social, cada persona puede representarse como un vértice.

Grado de un vértice

El grado de un vértice es el número de aristas que inciden en él. Esto ofrece información sobre su conectividad e importancia dentro del grafo. La mejor forma de visualizarlo es imaginar a una persona, representada como un vértice, en una red social. Si hay muchas aristas saliendo del vértice, diríamos que tiene un «grado alto», lo que también indica una persona muy influyente. Si estuviéramos modelando una red de transporte, un nodo de alto grado señalaría que es un punto neurálgico de la red, conectado directamente con la mayoría de ubicaciones.

Camino

Un camino en un grafo es una secuencia de vértices donde cada par adyacente está conectado por una arista. Pueden ser simples (sin vértices repetidos) o generales (permitiendo repeticiones). Por ejemplo, en un grafo con vértices A, B, C y D, un camino podría ser A → B → C → D, donde cada vértice está conectado con el siguiente por una arista.

Ciclo

Un ciclo es un camino que empieza y termina en el mismo vértice, sin otras repeticiones de vértices ni aristas. Los ciclos pueden ser simples (sin repetir aristas ni vértices salvo el inicio y el final) o generales. Por ejemplo, en un grafo con vértices A, B, C y D, un ciclo simple podría ser A → B → C → D → A.

Grafos conexos

Un grafo es conexo si existe un camino entre cada par de vértices. Es decir, en un grafo conexo cualquier vértice puede alcanzar a cualquier otro mediante alguna secuencia de aristas. Un buen ejemplo sería una red social en la que todo el mundo es alcanzable desde cualquier otra persona.

Tipos de grafos

La teoría de grafos abarca distintos tipos de grafos, cada uno adecuado para aplicaciones y análisis concretos. En esta sección exploraremos estos tipos, comentaremos sus estructuras básicas y daremos ejemplos de uso. Así sabrás cuándo utilizar cada tipo para resolver problemas específicos y modelar escenarios reales con precisión.

Grafo simple

Visualización de un grafo simple Fuente: Wikipedia

Un grafo simple no tiene múltiples aristas (más de una arista entre cualquier par de vértices) ni bucles (aristas que conectan un vértice consigo mismo). Cada arista en un grafo simple conecta dos vértices distintos.

Ejemplos:

  • Una red social básica donde cada amistad se representa con un único enlace entre dos personas.
  • Un mapa de ciudades conectadas por carreteras directas únicas, sin rutas múltiples ni autoconecciones.

Multigrafos

Visualización de un multigrafo con múltiples aristas en rojo y varios bucles en azul Fuente: Wikipedia

Un multigrafo permite múltiples aristas (aristas paralelas) entre el mismo par de vértices y puede incluir bucles. Este tipo de grafo puede representar situaciones donde existen varias interacciones o conexiones entre entidades.

Ejemplos:

  • Una red de transporte donde varias aerolíneas operan vuelos entre las mismas ciudades.
  • Una red de comunicaciones con múltiples canales conectando el mismo par de nodos.

Grafos ponderados

Visualización de un grafo ponderado Fuente: Hyperskill

En un grafo ponderado, cada arista tiene un peso o coste asociado, que representa una medida cuantitativa como distancia, tiempo o capacidad. Los grafos ponderados se usan para modelar problemas donde las aristas tienen distintas intensidades o costes.

Aplicaciones:

  • En un mapa de ciudades conectadas por carreteras, los pesos podrían representar distancias o tiempos de viaje entre ciudades.
  • En un problema de optimización de redes, los pesos pueden representar ancho de banda o coste de los enlaces de comunicación.

Grafos dirigidos (dígrafos)

Visualización de un grafo dirigido Fuente: Wikipedia

Un grafo dirigido, o dígrafo, tiene aristas con una dirección específica, lo que significa que cada arista va de un vértice a otro vértice distinto. La dirección suele representarse con una flecha, indicando el flujo o una relación unidireccional.

Casos de uso:

  • Un diagrama de flujo de trabajo donde las tareas deben completarse en un orden específico.
  • La estructura de enlaces de páginas web, donde los hipervínculos apuntan de una página a otra, representando una conexión unidireccional.

Grafos no dirigidos

Visualización de un grafo no dirigido Fuente: Baeldung

En un grafo no dirigido, las aristas no tienen dirección. Una arista simplemente conecta dos vértices y la relación es mutua o bidireccional. El orden de los vértices en una arista no importa.

Ejemplos:

  • Una red de amistades donde la relación es mutua y las conexiones son bidireccionales.
  • Un mapa vial no dirigido en el que las carreteras conectan ciudades en ambos sentidos sin especificar dirección.

Teoría de grafos de árboles

Un árbol es un tipo de grafo conexo y acíclico, es decir, no contiene ciclos. Un árbol con $$n$$ vértices tiene exactamente $$n−1$$ aristas. Cada par de vértices en un árbol está conectado por un único camino, lo que garantiza que existe una ruta única entre cualquier par de vértices.

Aquí tienes un resumen rápido de las propiedades de un grafo árbol: 

  • Conexo. Existe un camino entre cualquier par de vértices.
  • Acíclico. No hay ciclos, lo que asegura que no existen bucles cerrados.
  • Camino único. Hay exactamente un camino entre cualquier par de vértices, lo que implica conectividad mínima.
  • Número de aristas. Un árbol con $$n$$ vértices tiene $$n−1$$ aristas.
  • Subárbol: cualquier subconjunto de un árbol, incluido un único vértice, es en sí mismo un árbol, denominado subárbol.
  • Hojas. Los vértices con exactamente una arista se llaman hojas o nodos hoja. Son los extremos del árbol.

¿En qué se diferencian los árboles de otros grafos? 

A diferencia de los grafos generales, los árboles no contienen ciclos. Esto significa que cualquier grafo con ciclos no puede clasificarse como árbol. 

Un árbol con $$n$$ vértices tiene exactamente $$n−1$$ aristas, mientras que los grafos generales pueden tener un número variable de aristas, incluidas múltiples aristas y bucles. Otra diferencia es que los árboles siempre son conexos, mientras que los grafos generales pueden ser no conexos y constar de varios componentes, que podrían ser cada uno un árbol. 

Además, en un árbol existe exactamente un camino entre cualquier par de vértices, a diferencia de otros grafos donde pueden existir múltiples caminos entre vértices, especialmente en aquellos que contienen ciclos o aristas múltiples.

Aplicaciones

Los árboles son fundamentales tanto en los aspectos teóricos como prácticos de la computación y la organización de datos. Ofrecen soluciones muy eficientes para muchos problemas estructurales y algorítmicos. Por ejemplo: 

Estructuras de datos

  • Árboles binarios: se usan en informática para organizar datos jerárquicamente. Ejemplos: árboles binarios de búsqueda, que facilitan la recuperación y ordenación rápida de datos.
  • Heaps: un tipo de árbol binario usado en colas de prioridad para gestionar y recuperar eficientemente el elemento máximo o mínimo.
  • B-Trees: utilizados en bases de datos y sistemas de archivos para un almacenamiento y recuperación eficientes, admitiendo operaciones como inserciones, eliminaciones y búsquedas.

Diseño de redes

  • Enrutamiento: los árboles se emplean en protocolos de enrutamiento de redes (como árboles de expansión) para determinar el camino más eficiente para transmitir datos por la red.
  • Difusión: en el diseño de redes, las estructuras en árbol ayudan a difundir datos con eficiencia, garantizando que lleguen a todos los nodos con mínima redundancia.

Representación de jerarquías

  • Sistemas de archivos: los sistemas de archivos suelen usar árboles para representar directorios y subdirectorios, reflejando la organización jerárquica de los ficheros.
  • Organigramas: los árboles se usan para modelar jerarquías organizativas, mostrando líneas de reporte y relaciones entre roles.

Análisis sintáctico y de parsing

  • Árboles de sintaxis abstracta (AST): se usan en compiladores e intérpretes para representar la estructura sintáctica del código fuente. Los AST facilitan la comprobación de sintaxis y la optimización del código.

Aplicaciones de la teoría de grafos

La teoría de grafos tiene aplicaciones muy amplias en diversos campos. Desempeña un papel clave a la hora de resolver problemas complejos y optimizar sistemas. Algunos ejemplos se ven en las siguientes aplicaciones: 

Informática: redes, algoritmos y estructuras de datos

La teoría de grafos es fundamental para diseñar y analizar sistemas de red, desarrollar algoritmos y estructurar datos en informática. Por ejemplo, las redes dependen en gran medida de la teoría de grafos para modelar y gestionar conexiones entre dispositivos. En concreto, las topologías de red se representan como grafos para optimizar la transmisión de datos y el enrutamiento. 

Algoritmos como Dijkstra y Kruskal se emplean para resolver, respectivamente, el problema del camino más corto y el del árbol de expansión mínima. Además, la teoría de grafos sustenta estructuras de datos como listas y matrices de adyacencia, esenciales para manipular y recuperar datos con eficiencia.

Biología: modelado de redes biológicas

La teoría de grafos también es muy útil en biología. Se usa para modelar y analizar redes biológicas complejas, como: 

  • Redes de interacción proteína-proteína
  • Vías metabólicas
  • Redes de regulación génica

Estas redes se representan como grafos donde los vértices denotan entidades biológicas (p. ej., proteínas, genes) y las aristas representan interacciones o relaciones entre ellas. 

Este enfoque ayuda a los investigadores a entender las complejas relaciones de los sistemas biológicos, predecir resultados funcionales e identificar posibles dianas para el desarrollo de fármacos.

Ciencias sociales: análisis de redes sociales

En las ciencias sociales, la teoría de grafos se usa para analizar redes sociales, donde los individuos se representan como vértices y sus interacciones o relaciones como aristas. 

Este análisis ayuda a comprender las estructuras sociales, los patrones de influencia y la dinámica de las comunidades. Aplicando conceptos como centralidad y conectividad, los investigadores pueden identificar personas clave, estudiar la difusión de información y analizar comportamientos sociales.

Transporte: flujo de tráfico y planificación urbana 

Aunque no suele saberse, las carreteras, intersecciones y rutas de transporte se modelan como grafos para: 

  • Optimizar el flujo de tráfico
  • Reducir la congestión
  • Mejorar la planificación de rutas. 

Los algoritmos basados en grafos ayudan a diseñar redes de transporte eficientes, gestionar sistemas de transporte público y planificar infraestructuras urbanas. Analizar estas redes permite a los planificadores tomar decisiones informadas para mejorar la movilidad y la conectividad en las ciudades.

Guía paso a paso para construir y analizar un grafo simple

Ya dominas lo básico y entiendes las aplicaciones de la teoría de grafos. 

Ahora estás listo para crear y analizar tu propio grafo simple. Para mayor claridad, hemos dividido esta guía paso a paso en dos partes: 

  • Construcción 
  • Análisis

Lo lógico es empezar por la construcción: vamos a ello... 

Construir un grafo simple

Paso 1: define el problema. 

Supongamos que queremos modelar una pequeña red de amistades en una red social. 

Podemos usar la librería NetworkX en Python, creada para el análisis de redes, para modelarlo. 

Empecemos creando un grafo: 

# Importar librerías 
import networkx as nx # Análisis de redes
import matplotlib.pyplot as plt # Visualización de datos
import pydot # Interfaz de Python para Graphviz
from networkx.drawing.nx_pydot import graphviz_layout
# Crear un grafo
graph = nx.Graph() 

Paso 2: identifica los vértices. 

En nuestra red social ficticia hay cuatro personas: Alice, Bob, Carol y Dave. Estas personas se representarán como vértices en el grafo; recuerda, representan una entidad o una ubicación en la estructura que modelamos.

Así crearíamos los vértices en Python:

# Añadir nodos 
# graph.add_node("Alice") --> Añadir un nodo cada vez
graph.add_nodes_from([
    "Alice","Bob", "Carol", "Dave"
]) # Añadir varios nodos

Paso 3: determina las aristas. 

Supongamos que las conexiones de amistad son las siguientes:

  • Alice es amiga de Bob y de Carol.
  • Bob es amigo de Alice y de Dave.
  • Carol es amiga de Alice.
  • Dave es amigo de Bob.

Esto significa que estas relaciones forman las aristas:

  • Alice-Bob
  • Alice-Carol
  • Bob-Dave

Así definiríamos las aristas en Python: 

# Añadir aristas
# graph.add_edge("Alice", "Bob") --> Añadir una arista cada vez
graph.add_edges_from([("Alice", "Bob"), 
                      ("Alice", "Carol"),
                      ("Bob", "Dave"),
                      ("Bob", "Alice")  # Asegurando que se incluyen todas las aristas descritas
                     ]) # Añadir varias aristas

Paso 4: dibuja el grafo.

Una vez definidos los vértices y las aristas, podemos dibujar el grafo para visualizar las relaciones. El siguiente fragmento de código crea una representación gráfica de la red con vértices y aristas etiquetados:

# Visualizar el grafo
pos = graphviz_layout(graph, prog="dot")
nx.draw(graph, 
        pos, 
        with_labels=True, 
        node_size=1000, 
        node_color=["pink", "yellow", "tan", "orange"])
plt.show()

Salida: se generará un grafo que muestra las conexiones entre Alice, Bob, Carol y Dave tal y como se describió.

Este código produce el siguiente grafo: 

Un grafo simple que modela una red social [creado por el autor]

Si quieres modelar tu propia red social, haz una copia de este DataLab Notebook y modifica lo que necesites. 

Análisis del grafo simple

Paso 1: comprueba la conectividad. 

Como podemos desplazarnos de cualquier vértice a cualquier otro mediante alguna secuencia de aristas, el grafo es conexo. 

Para visualizarlo mejor, estos son los caminos entre cada par de vértices: 

  • Alice a Bob: arista directa.
  • Alice a Carol: arista directa.
  • Alice a Dave: pasando por Bob.
  • Bob a Carol: pasando por Alice.
  • Bob a Dave: arista directa.
  • Carol a Dave: pasando por Alice y Bob.

Paso 2: determina el grado de cada vértice. 

Recuerda que definimos el grado de un vértice como «el número de aristas que inciden en él». Aplicándolo a nuestro ejemplo, obtendremos: 

  • Alice = grado 2 (conectada con Bob y Carol)
  • Bob = grado 2 (conectado con Alice y Dave)
  • Carol = grado 1 (conectada con Alice)
  • Dave = grado 1 (conectado con Bob)

Cada grado se determina contando el número de aristas asociadas a cada vértice, según las amistades indicadas.

Paso 3: identifica caminos y ciclos.

Un camino entre Alice y Dave podría ser Alice → Bob → Dave.

El grafo no tiene ciclos, ya que no hay recorridos que regresen al vértice inicial sin desandar pasos.

Paso 4: encuentra la centralidad.

Alice y Bob son centrales en esta red, ya que cada uno conecta con tres otros vértices. Carol y Dave son menos centrales, cada uno conecta solo con un vértice.

Conclusión

La teoría de grafos ofrece un marco sólido para examinar y resolver relaciones y estructuras complejas presentes en distintos ámbitos. Al dominar conceptos clave como vértices, aristas y los diferentes tipos de grafos, y explorar sus aplicaciones prácticas, podrás obtener información valiosa para optimizar sistemas y resolver problemas reales.

A medida que sigas profundizando, recuerda que sus principios no son solo teóricos: resultan esenciales para abordar retos reales, mejorar la conectividad y aumentar la eficiencia de los sistemas. Una base sólida en teoría de grafos potenciará tu capacidad para resolver problemas y te dará una perspectiva más amplia sobre los sistemas interconectados que nos rodean.

Para afianzar tu comprensión de la teoría de grafos, echa un vistazo a estos recursos más avanzados que amplían lo que hemos tratado en este artículo: 

Preguntas frecuentes sobre teoría de grafos

¿Por qué es importante la teoría de grafos?

La teoría de grafos ofrece un marco fundamental para analizar y optimizar redes complejas y ayuda a resolver problemas prácticos relacionados con la conectividad, la búsqueda de caminos y la eficiencia de los sistemas.

¿Cuáles son algunas aplicaciones de la teoría de grafos?

Algunas aplicaciones son: optimización de rutas en redes, análisis de redes sociales, modelado de sistemas biológicos, mejora de la planificación del transporte, etc.

¿Cómo empiezo con la teoría de grafos?

Familiarízate con conceptos fundamentales como vértices y aristas, y luego explora los tipos básicos de grafos y sus propiedades. Comienza con ejemplos sencillos para construir una base sólida antes de abordar temas y aplicaciones más complejos.

¿Cuál es el propósito de la teoría de grafos?

El propósito de la teoría de grafos es estudiar las relaciones entre objetos representados como vértices conectados por aristas, lo que permite analizar y optimizar redes y estructuras complejas en distintos campos.


Kurtis Pykes 's photo
Author
Kurtis Pykes
LinkedIn
Temas
Visualización de datos

Los mejores cursos de DataCamp

programa

Fundamentos de Datos en Python

28 h
Desarrolla tus habilidades con los datos, descubre cómo manipularlos y visualizarlos, y aplica análisis avanzados para tomar decisiones basadas en datos.
Ver detallesRight Arrow
Iniciar Curso
Ver másRight Arrow
Relacionado

blog

¿Qué es una base de datos de grafos? Guía para principiantes

Explora el intrincado mundo de las bases de datos de grafos con nuestra guía para principiantes. Comprende las relaciones entre datos, profundiza en la comparación entre bases de datos de grafos y relacionales, y explora casos prácticos de uso.
Kurtis Pykes 's photo

Kurtis Pykes

11 min

blog

¿Qué es el data wrangling? Guía práctica con ejemplos

Aprende los conceptos y teorías fundamentales del data wrangling con ejemplos prácticos. Aplica estas habilidades en tu trabajo diario de data science para generar datos limpios y útiles para tus modelos.
Tim Lu's photo

Tim Lu

12 min

blog

28 proyectos de análisis de datos para todos los niveles en 2026

Explora nuestra lista de proyectos de análisis de datos para principiantes, estudiantes de último curso y profesionales. La lista consta de proyectos guiados/no guiados y tutoriales con código fuente.
Abid Ali Awan's photo

Abid Ali Awan

13 min

blog

¿Qué es el análisis de datos? Una guía experta con ejemplos

Explora el mundo del análisis de datos con nuestra completa guía. Conoce su importancia, proceso, tipos, técnicas, herramientas y principales carreras en 2023
Matt Crabtree's photo

Matt Crabtree

10 min

GNN

Tutorial

Introducción completa a las redes neuronales gráficas (GNN)

Aprenda todo sobre las redes neuronales gráficas, incluyendo qué son las GNN, los diferentes tipos de redes neuronales gráficas y para qué se utilizan. Además, aprenda a crear una red neuronal gráfica con Pytorch.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Tutorial

Tipos de gráficos de datos y cómo crearlos en Python

Explore varios tipos de gráficos de datos, desde los más comunes hasta los más avanzados y poco convencionales, qué muestran, cuándo utilizarlos, cuándo evitarlos y cómo crearlos y personalizarlos en Python.
Elena Kosourova's photo

Elena Kosourova

15 min

Ver MásVer Más