12. Representación mediante matrices de incidencia

Una matriz de incidencia relaciona directamente vértices con aristas: cada fila representa un vértice y cada columna representa una conexión concreta del grafo.

12.1 Introducción

La matriz de adyacencia compara pares de vértices. La matriz de incidencia utiliza un enfoque diferente: sus filas representan vértices y sus columnas representan aristas.

Cada columna indica qué vértices participan en una conexión. Esta representación conserva la identidad individual de las aristas, por lo que puede resultar útil para multigrafos, redes de flujo y operaciones algebraicas.

12.2 Estructura de la matriz

Un grafo con n vértices y m aristas produce una matriz de n filas y m columnas.

Filas = vértices
Columnas = aristas
Dimensión = |V| × |E|

A diferencia de la matriz de adyacencia, no tiene por qué ser cuadrada.

12.3 Incidencia en grafos no dirigidos

En un grafo no dirigido simple, cada columna contiene un 1 en las filas correspondientes a los dos extremos de la arista y 0 en las demás.

e₁ e₂ e₃
A [ 1, 1, 0 ]
B [ 1, 0, 1 ]
C [ 0, 1, 1 ]

Si e₁ = {A, B}, su columna contiene un 1 en A y otro en B.

12.4 Incidencia en grafos dirigidos

En grafos dirigidos se utiliza con frecuencia una matriz orientada: el origen recibe −1 y el destino recibe +1.

Relación con el arcoValor
El vértice es el origen−1
El vértice es el destino+1
El vértice no participa0

Algunas fuentes utilizan la convención opuesta. Lo importante es documentar la elegida y aplicarla de forma consistente.

12.5 Simulación interactiva: vértices por aristas

Selecciona dos vértices para agregar o quitar una arista. Cada nueva conexión crea una columna. En modo dirigido, el primer vértice es el origen y el segundo es el destino.

Matriz de incidencia

1 = vértice incidente

Selecciona dos vértices.
TipoNo dirigido
Filas |V|4
Columnas |E|4
Dimensión4 × 4

Observa que agregar una arista aumenta el número de columnas, pero no el de filas. Al cambiar a modo dirigido, las conexiones mantienen sus extremos y muestran su orientación mediante signos.

12.6 Propiedades de las columnas

En un grafo simple no dirigido sin bucles, cada columna suma 2 porque posee exactamente dos valores 1.

Suma de una columna no dirigida = 2
Suma de una columna dirigida = −1 + 1 = 0

Estas propiedades permiten verificar rápidamente si una matriz respeta la convención utilizada.

12.7 Construir la matriz en JavaScript

Podemos crear una fila por vértice y una columna por arista, e indicar los extremos con 1.

function matrizIncidencia(vertices, aristas) {
  return vertices.map(vertice =>
    aristas.map(([a, b]) =>
      vertice === a || vertice === b ? 1 : 0
    )
  );
}

const vertices = ["A", "B", "C"];
const aristas = [["A", "B"], ["A", "C"]];
console.log(matrizIncidencia(vertices, aristas));

12.8 Matriz orientada en JavaScript

Para arcos dirigidos asignamos −1 al origen y +1 al destino.

function matrizOrientada(vertices, arcos) {
  return vertices.map(vertice =>
    arcos.map(([origen, destino]) => {
      if (vertice === origen) return -1;
      if (vertice === destino) return 1;
      return 0;
    })
  );
}

console.log(matrizOrientada(
  ["A", "B", "C"],
  [["A", "B"], ["C", "A"]]
));

12.9 Grados a partir de las filas

En un grafo no dirigido sin bucles, sumar la fila de un vértice produce su grado. En una matriz orientada, los signos permiten distinguir entradas y salidas.

MatrizOperación sobre una filaResultado
No dirigidaContar valores 1Grado
OrientadaContar valores −1Grado de salida
OrientadaContar valores +1Grado de entrada

12.10 Multigrafos y aristas paralelas

La matriz de incidencia conserva una columna independiente para cada arista. Por eso representa naturalmente varias conexiones entre los mismos vértices.

e₁ e₂
A [ 1, 1 ]
B [ 1, 1 ]

Las columnas pueden ser idénticas, pero siguen correspondiendo a aristas diferentes.

12.11 Comparación con otras representaciones

RepresentaciónFilasColumnasEspacio típico
Lista de adyacenciaVérticesNo aplicaO(V + E)
Matriz de adyacenciaVérticesVérticesO(V²)
Matriz de incidenciaVérticesAristasO(V × E)

12.12 Errores comunes

  • Confundir las columnas de aristas con columnas de vértices.
  • Suponer que la matriz de incidencia siempre es cuadrada.
  • Colocar un único 1 por arista no dirigida.
  • Usar signos para un grafo dirigido sin documentar la convención.
  • Confundir dos columnas iguales con una sola arista.
  • Olvidar que eliminar una arista elimina una columna completa.

12.13 Qué debes recordar de este tema

  • Las filas representan vértices y las columnas representan aristas.
  • La dimensión de la matriz es |V| × |E|.
  • Una arista no dirigida posee dos valores 1 en su columna.
  • Una convención dirigida habitual usa −1 en el origen y +1 en el destino.
  • La matriz conserva la identidad de cada arista.
  • Los multigrafos pueden tener columnas idénticas para aristas paralelas.

12.14 Conclusión

La matriz de incidencia describe qué vértices participan en cada arista. Aunque puede consumir más memoria que una lista de adyacencia, resulta valiosa cuando las conexiones deben tratarse como objetos independientes.

En el próximo tema estudiaremos con mayor profundidad el grado de un vértice y sus propiedades.