Definiciones básicas de teoría de grafos
Grafo
Un grafo \( G = (V, E) \) es una estructura matemática formada por:
- \( V \) (conjunto de vértices): un conjunto finito de elementos llamados vértices o nodos.
- \( E \) (conjunto de aristas): un conjunto de pares de vértices que representan las conexiones entre los vértices. Estos pares pueden ser:
- No dirigidos: si no importa el orden de los vértices en el par.
- Dirigidos: si importa el orden, indicando que la relación tiene una dirección.
Vértice (o nodo)
Un vértice es uno de los elementos individuales que componen el conjunto \( V \) de un grafo. Los vértices representan los objetos o entidades que están conectados mediante las aristas.
Arista
Una arista es una conexión entre dos vértices en un grafo. Si el grafo es no dirigido, la arista simplemente conecta dos vértices sin dirección; si el grafo es dirigido, la arista tiene una dirección, apuntando de un vértice a otro.
Grafo no dirigido
Un grafo no dirigido es un tipo de grafo donde las aristas no tienen una dirección asignada. En este caso, una arista entre los vértices \( u \) y \( v \) se denota como \( \{u, v\} \), y no importa el orden de los vértices.
Grafo dirigido (o dígrafo)
Un grafo dirigido (o dígrafo) es un grafo donde las aristas tienen una dirección, es decir, la conexión entre los vértices \( u \) y \( v \) se denota como \( (u, v) \) y representa una relación que va de \( u \) a \( v \). En este caso, el orden importa.
Grado de un vértice
El grado de un vértice es el número de aristas que inciden en él. En un grafo dirigido, se distingue entre:
- Grado de entrada: el número de aristas que llegan al vértice.
- Grado de salida: el número de aristas que salen del vértice.
Camino
Un camino en un grafo es una secuencia de vértices conectados por aristas. Un camino entre los vértices \( v_1 \) y \( v_k \) es una secuencia de vértices \( v_1, v_2, \dots, v_k \) donde cada par consecutivo de vértices está conectado por una arista.
Ciclo
Un ciclo es un camino cerrado, es decir, una secuencia de vértices donde el vértice inicial y el vértice final coinciden. En un ciclo, no se repiten aristas ni vértices, excepto por el vértice inicial/final.
Grafo conexo
Un grafo es conexo si existe un camino entre cualquier par de vértices en el grafo. Si no existe tal camino, el grafo es disconexo.
Subgrafo
Un subgrafo de un grafo \( G \) es un grafo que contiene un subconjunto de los vértices y aristas de \( G \). Es decir, se obtiene eliminando algunos vértices o aristas de \( G \), pero manteniendo la estructura de grafo.
Grafo completo
Un grafo completo es un grafo en el que cada par de vértices está conectado por una arista. Si hay \( n \) vértices en el grafo completo, el número total de aristas es \( \frac{n(n-1)}{2} \) en el caso de un grafo no dirigido.
Grafo bipartito
Un grafo bipartito es un grafo cuyos vértices se pueden dividir en dos conjuntos disjuntos \( V_1 \) y \( V_2 \), tales que todas las aristas conectan un vértice de \( V_1 \) con uno de \( V_2 \), y no hay aristas entre vértices dentro de un mismo conjunto.
Isomorfismo de grafos
Dos grafos \( G_1 \) y \( G_2 \) son isomorfos si existe una correspondencia biunívoca entre sus conjuntos de vértices y aristas que conserva las conexiones entre vértices. Es decir, los grafos tienen la misma estructura, aunque los vértices puedan tener nombres diferentes.
Estas definiciones básicas forman la base de la teoría de grafos y permiten el estudio de estructuras complejas en muchas áreas de las matemáticas y otras disciplinas.
Matriz de adyacencia y matriz de incidencia
Matriz de adyacencia
La **matriz de adyacencia** es una representación de un grafo en forma de una matriz cuadrada que describe las conexiones entre los vértices. Para un grafo \( G = (V, E) \) con \( n \) vértices, la matriz de adyacencia \( A \) es una matriz de tamaño \( n \times n \) donde cada elemento \( A_{ij} \) indica si existe o no una arista entre los vértices \( i \) y \( j \).
- En un **grafo no dirigido**, la matriz de adyacencia es simétrica, es decir, \( A_{ij} = A_{ji} \). El valor \( A_{ij} = 1 \) si existe una arista entre los vértices \( i \) y \( j \), y \( A_{ij} = 0 \) si no existe tal arista.
- En un **grafo dirigido**, el valor \( A_{ij} \) indica si existe una arista que va del vértice \( i \) al vértice \( j \). En este caso, la matriz no tiene por qué ser simétrica.
Ejemplo de matriz de adyacencia para un grafo no dirigido con 4 vértices:
\[
A =
\begin{pmatrix}
0 & 1 & 0 & 1 \\
1 & 0 & 1 & 0 \\
0 & 1 & 0 & 1 \\
1 & 0 & 1 & 0
\end{pmatrix}
\]
En este caso, los valores 1 indican que hay una conexión entre los vértices correspondientes.
Matriz de incidencia
La **matriz de incidencia** es otra representación de un grafo, pero en este caso describe la relación entre vértices y aristas. Si un grafo \( G = (V, E) \) tiene \( n \) vértices y \( m \) aristas, la matriz de incidencia \( M \) es una matriz de tamaño \( n \times m \), donde \( n \) es el número de vértices y \( m \) el número de aristas.
- En un **grafo no dirigido**, cada columna de la matriz de incidencia corresponde a una arista, y cada fila a un vértice. Si la arista \( e_k \) conecta los vértices \( v_i \) y \( v_j \), entonces la columna correspondiente a \( e_k \) tiene un valor 1 en las posiciones correspondientes a \( v_i \) y \( v_j \), y 0 en todas las demás posiciones.
- En un **grafo dirigido**, si una arista \( e_k \) va del vértice \( v_i \) al vértice \( v_j \), entonces la columna correspondiente a \( e_k \) tiene un valor \( 1 \) en la fila correspondiente a \( v_j \) (vértice de llegada) y un valor \( -1 \) en la fila correspondiente a \( v_i \) (vértice de salida).
Ejemplo de matriz de incidencia para un grafo no dirigido con 4 vértices y 3 aristas:
\[
M =
\begin{pmatrix}
1 & 1 & 0 \\
1 & 0 & 1 \\
0 & 1 & 1 \\
0 & 0 & 0
\end{pmatrix}
\]
Aquí, la primera columna indica que la arista 1 conecta los vértices 1 y 2, la segunda columna que la arista 2 conecta los vértices 1 y 3, y la tercera que la arista 3 conecta los vértices 2 y 3.
Caminos, ciclos y conectividad
Caminos
Un camino en un grafo es una secuencia de vértices donde cada par consecutivo de vértices está conectado por una arista. Formalmente, un camino entre los vértices \( v_1 \) y \( v_k \) en un grafo \( G = (V, E) \) es una secuencia de vértices \( v_1, v_2, \dots, v_k \) tal que para cada \( i \), existe una arista \( (v_i, v_{i+1}) \in E \). El número de aristas en el camino es la longitud del camino.
- Un camino es **simple** si no repite vértices ni aristas.
- En un **grafo no dirigido**, el orden de los vértices en las aristas no importa, mientras que en un **grafo dirigido**, el orden de los vértices en las aristas debe seguir la dirección de las aristas.
Ciclos
Un ciclo es un camino cerrado, es decir, un camino que comienza y termina en el mismo vértice. Formalmente, un ciclo en un grafo \( G \) es un camino \( v_1, v_2, \dots, v_k \) tal que \( v_1 = v_k \) y el resto de los vértices son distintos entre sí.
- Un ciclo es **simple** si no repite vértices ni aristas, excepto el vértice inicial/final.
- En un **grafo dirigido**, se requiere que las aristas sigan la dirección definida por el ciclo.
Ejemplo: si un ciclo tiene los vértices \( v_1, v_2, v_3 \) y \( v_1 \), el ciclo sería \( v_1 \to v_2 \to v_3 \to v_1 \).
Conectividad
La conectividad de un grafo describe si es posible encontrar caminos entre los vértices del grafo. Un grafo \( G = (V, E) \) puede clasificarse en términos de su conectividad de la siguiente manera:
- Un grafo es **conexo** si existe un camino entre cualquier par de vértices. Es decir, no hay vértices que estén aislados o desconectados del resto del grafo.
- Si el grafo es dirigido, se puede hablar de **conectividad fuerte** y **conectividad débil**:
- El grafo es **fuertemente conexo** si existe un camino dirigido entre cualquier par de vértices, tanto de \( u \) a \( v \) como de \( v \) a \( u \).
- El grafo es **débilmente conexo** si, al ignorar las direcciones de las aristas, el grafo resultante es conexo, pero puede no haber caminos en ambas direcciones en el grafo original.
Si un grafo no es conexo, se puede dividir en **componentes conexos**, donde cada componente es un subgrafo conexo. Para un grafo dirigido, estos componentes se denominan **componentes fuertemente conexos** si se cumplen las condiciones de la conectividad fuerte.
La conectividad es un aspecto crucial en el análisis de redes, asegurando que la estructura del grafo permite la interacción entre los vértices.