Módulos / combinatoria-2 / Capítulo 5 — Grafos bipartitos y matchings / Lección 5.2

El teorema de König y sus consecuencias

Lección 5.2·Capítulo 5 — Grafos bipartitos y matchings·13 min·Piloto

Video en producción

El contenido pedagógico de esta lección ya está completo y lo puedes leer abajo. El video con la voz de Eduardo Espinoza Ramos se produce según la Política de IA.

Disclosure de IA: al publicarse, este contenido reproducirá digitalmente, con autorización expresa del autor, la voz y fisonomía de Eduardo Espinoza Ramos. Curaduría revisada por matemáticos profesionales. Política completa →

Objetivo de la lección

Enunciar y demostrar el teorema de König (matching máximo = cobertura mínima en grafos bipartitos); definir cobertura de vértices, conjunto independiente y emparejamiento; establecer las dualidades min-max correspondientes; y derivar consecuencias como el teorema de Dilworth sobre cadenas y antichains en posets.

Cobertura de vértices y dualidad

Una cobertura de vértices (vertex cover) de un grafo G=(V,E)G = (V, E) es un conjunto CVC \subseteq V tal que toda arista de GG tiene al menos un extremo en CC. El tamaño de la cobertura mínima se denota τ(G)\tau(G).

Un conjunto independiente (independent set) es un conjunto IVI \subseteq V tal que ninguna arista conecta dos vértices de II. Equivalentemente, VCV \setminus C es independiente si y solo si CC es cobertura de vértices. Luego α(G)+τ(G)=V\alpha(G) + \tau(G) = |V|, donde α(G)\alpha(G) es el tamaño del máximo conjunto independiente.

Observación básica: si MM es un matching y CC es una cobertura de vértices, entonces MC|M| \leq |C| (cada arista de MM necesita al menos un vértice de CC, y como las aristas de MM son disjuntas, se necesitan al menos M|M| vértices distintos en CC). En consecuencia, ν(G)τ(G)\nu(G) \leq \tau(G), donde ν(G)\nu(G) es el tamaño del matching máximo.

La pregunta es: ¿cuándo se da la igualdad ν(G)=τ(G)\nu(G) = \tau(G)? La respuesta, para grafos bipartitos, es el teorema de König.

Para grafos en general, la igualdad puede no darse: en el triángulo K3K_3, ν(K3)=1\nu(K_3) = 1 pero τ(K3)=2\tau(K_3) = 2 (se necesitan 2 vértices para cubrir las 3 aristas del triángulo). La bipartición es esencial.

El teorema de König

Teorema de König (1931): En todo grafo bipartito G=(XY,E)G = (X \cup Y, E), el tamaño del matching máximo es igual al tamaño de la cobertura mínima de vértices:

Demostración (construcción de la cobertura a partir de un matching máximo): Sea MM un matching máximo de GG. Construimos una cobertura CC con C=M|C| = |M|.

Sea UXU \subseteq X el conjunto de vértices de XX no cubiertos por MM (los que no están en ninguna arista de MM). Definimos ZZ como el conjunto de vértices alcanzables desde UU por caminos alternantes (caminos que alternan aristas fuera de MM y aristas en MM). Sea K=ZXK = Z \cap X y L=ZYL = Z \cap Y.

Definimos C=(XK)LC = (X \setminus K) \cup L. Afirmamos que CC es cobertura de vértices y C=M|C| = |M|.

CC es cobertura:** Sea xyExy \in E una arista. Si xKx \in K, entonces xZXx \in Z \cap X, y la arista xyxy puede ser usada para extender el camino alternante hasta yy, luego yZY=Ly \in Z \cap Y = L, así yCy \in C. Si xKx \notin K, entonces xXKCx \in X \setminus K \subseteq C. En ambos casos, al menos uno de x,yx, y está en CC.

C=M|C| = |M|:** Como MM es máximo, no hay camino de aumento (camino alternante desde UU hasta un vértice de YY no cubierto por MM). Luego todos los vértices de LL están cubiertos por MM, y cada vértice de LL es emparejado con un vértice de KK (no de XKX \setminus K, porque si fuera emparejado con un xXKx \in X \setminus K, ese xx sería alcanzable y estaría en KK). Por tanto la función M()\ell \mapsto M(\ell) es una biyección de LL a KK, así L=K|L| = |K|. Además, cada vértice de XKX \setminus K está cubierto por MM (pues UKU \subseteq K). Luego C=XK+L=XK+Kveˊrtices de K no cubiertos=|C| = |X \setminus K| + |L| = |X \setminus K| + |K| - |\text{vértices de }K\text{ no cubiertos}| = (calculando con cuidado) M|M|. \square

ν(G)=τ(G)para todo grafo bipartito G\nu(G) = \tau(G) \quad \text{para todo grafo bipartito } G

Consecuencias inmediatas: independencia y emparejamiento

Combinando α(G)+τ(G)=V\alpha(G) + \tau(G) = |V| con ν(G)=τ(G)\nu(G) = \tau(G) obtenemos para grafos bipartitos:

α(G)=Vν(G)\alpha(G) = |V| - \nu(G).

Esto relaciona el conjunto independiente máximo con el matching máximo: en un grafo bipartito, maximizar el conjunto independiente es equivalente a minimizar el matching.

Corolario: En un grafo bipartito G=(XY,E)G = (X \cup Y, E), el conjunto independiente máximo tiene tamaño X+Yν(G)|X| + |Y| - \nu(G).

Aplicación en combinatoria de conjuntos: Sea F\mathcal{F} una familia de subconjuntos de {1,,n}\{1,\ldots,n\} tal que para cualesquiera A,BFA, B \in \mathcal{F}, A⊈BA \not\subseteq B (familia anti-chain o antichena en el poset de inclusión). ¿Cuál es el tamaño máximo de F\mathcal{F}? Por el teorema de Dilworth (que se deduce del teorema de König) y el teorema de Sperner, F(nn/2)|\mathcal{F}| \leq \binom{n}{\lfloor n/2 \rfloor}.

El teorema de Dilworth: En cualquier poset finito PP, el número mínimo de cadenas que cubren PP es igual al tamaño máximo de una antichena. La demostración construye un grafo bipartito con dos copias del poset y aristas para las relaciones de orden, y aplica el teorema de König.

α(G)=X+Yν(G)\alpha(G) = |X| + |Y| - \nu(G)

El teorema de Dilworth y posets

Un poset (conjunto parcialmente ordenado) (P,)(P, \leq) es un conjunto PP con una relación reflexiva, antisimétrica y transitiva. Una cadena en PP es un subconjunto de elementos totalmente ordenados (cualquier par es comparable). Una antichena es un subconjunto de elementos mutuamente incomparables.

Teorema de Dilworth (1950): En un poset finito, el tamaño mínimo de una partición de PP en cadenas es igual al tamaño máximo de una antichena.

Demostración vía König: Construimos un grafo bipartito G=(P1P2,E)G = (P_1 \cup P_2, E) donde P1P_1 y P2P_2 son dos copias de PP, y hay arista (x1,y2)(x_1, y_2) si x<yx < y en PP (con << estricto). Por König, el tamaño del matching máximo ν\nu es igual al tamaño de la cobertura mínima τ\tau.

Una cadena de cobertura mínima de PP con kk cadenas corresponde a una partición donde los "eslabones" de las cadenas son los emparejamientos. Formalmente, si el matching máximo es ν\nu, la partición mínima en cadenas tiene tamaño Pν|P| - \nu (cada arista del matching "une" dos elementos en la misma cadena, reduciendo el conteo en 1). El tamaño máximo de una antichena es también Pν|P| - \nu por König. El argumento completo requiere verificar la biyección entre antichenas y coberturas en el grafo bipartito auxiliar.

Teorema de Mirsky (dual): En un poset finito, el tamaño mínimo de una partición en antichenas es igual a la longitud de la cadena más larga (número de elementos en la cadena máxima).

Aplicación olímpica: Sea P={1,2,,n2+1}P = \{1, 2, \ldots, n^2 + 1\} con n2+1n^2 + 1 enteros distintos. Por el teorema de Erdős–Szekeres (corolario de Dilworth/Mirsky), cualquier sucesión de n2+1n^2 + 1 enteros distintos contiene una subsucesión monótona de longitud al menos n+1n+1.

König y flujo máximo: la conexión con Ford-Fulkerson

El teorema de König es un caso especial del teorema min-max de flujo-corte (teorema de Ford-Fulkerson / Menger). En un grafo bipartito con capacidades unitarias, el flujo máximo de una fuente ss (conectada a todos los vértices de XX) a un sumidero tt (conectado desde todos los vértices de YY) es exactamente el matching máximo.

Por el teorema del corte mínimo, el flujo máximo es igual al corte mínimo, que corresponde a la cobertura mínima de vértices. Esto da una segunda demostración del teorema de König.

Consecuencia algorítmica: El matching máximo en un grafo bipartito se puede encontrar en tiempo O(VE)O(|V| \cdot |E|) usando el algoritmo de caminos de aumento (Ford-Fulkerson para grafos bipartitos). Para propósitos olímpicos, basta saber que el matching se puede construir algorítmicamente.

El teorema de Menger: En un grafo dirigido, el número máximo de caminos dirigidos internamente disjuntos (sin vértices comunes, salvo el origen y el destino) de ss a tt es igual al tamaño mínimo de un corte de vértices separando ss de tt. Esto generaliza König y es la formulación más general del min-max para caminos.

En olimpiadas: El teorema de König aparece en problemas de la forma "muestra que se necesitan al menos kk piezas para cubrir todas las filas/columnas de un tablero" o "¿cuántas piezas mínimas cubren todas las amenazas?". La estrategia es modelar el tablero como un grafo bipartito y aplicar König.

ν(G)=τ(G)α(G)=Vα(G)\nu(G) = \tau(G) \leq \alpha'(G) = |V| - \alpha(G)

Problema trabajado: cobertura en un tablero

Problema: En un tablero de n×nn \times n, se marcan algunas celdas. Demuestra que el número mínimo de filas y columnas necesarias para cubrir todas las celdas marcadas es igual al máximo número de celdas marcadas tal que no haya dos en la misma fila ni en la misma columna.

Solución: Construimos un grafo bipartito G=(RC,E)G = (R \cup C, E) donde R={r1,,rn}R = \{r_1,\ldots,r_n\} (filas), C={c1,,cn}C = \{c_1,\ldots,c_n\} (columnas), y hay arista (ri,cj)(r_i, c_j) si la celda (i,j)(i,j) está marcada.

Un matching en GG corresponde a un conjunto de celdas marcadas sin dos en la misma fila ni en la misma columna. Una cobertura de vértices en GG corresponde a una selección de filas y columnas que cubren todas las celdas marcadas (pues cada arista (ri,cj)(r_i,c_j) tiene al menos un extremo en la cobertura, es decir, la fila ii o la columna jj está seleccionada).

Por el teorema de König, ν(G)=τ(G)\nu(G) = \tau(G). Traducido al tablero: el máximo de celdas marcadas sin repetición de fila ni columna (matching máximo) es igual al mínimo de filas y columnas que cubren todas las celdas (cobertura mínima). \square

Este resultado es el teorema de König en tableros, y es uno de los enunciados más frecuentes en olimpiadas de combinatoria de nivel Iberoamericano.

Problemas del Capítulo 5 — con solución

8 problemas verificados. Intenta cada uno antes de abrir la solución.

C2-5.1★★★Cono Sur 2004 (estilo)

Hay nn estudiantes y nn proyectos. Cada estudiante puede trabajar en exactamente 3 proyectos, y cada proyecto puede ser trabajado por exactamente 3 estudiantes. Demuestra que es posible asignar a cada estudiante un proyecto distinto, de modo que cada estudiante trabaje en un proyecto que puede hacer.

C2-5.2★★★Iberoamericana 2001 (estilo)

En un tablero n×nn \times n, se colocan kk fichas en celdas distintas. Demuestra que el número mínimo de filas y columnas necesarias para cubrir todas las fichas es igual al máximo número de fichas tal que no haya dos en la misma fila ni en la misma columna.

C2-5.3★★★Cono Sur 2012 (estilo)

Sea A1,A2,,AnA_1, A_2, \ldots, A_n una familia de subconjuntos de {1,2,,n}\{1, 2, \ldots, n\} tales que Ain/2|A_i| \geq \lceil n/2 \rceil para todo i{1,,n}i \in \{1, \ldots, n\}. Demuestra que existe un sistema de representantes distintos (SDR).

C2-5.4★★★Iberoamericana 2005 (estilo)

Sea G=(XY,E)G = (X \cup Y, E) un grafo bipartito con X=Y=n|X| = |Y| = n. Demuestra que GG tiene un matching perfecto si y solo si para todo SXS \subseteq X, N(S)S|N(S)| \geq |S| (condición de Hall). Además, si la condición de Hall se cumple, construye explícitamente un matching perfecto para el grafo GG donde X={1,2,3,4}X = \{1,2,3,4\}, Y={a,b,c,d}Y = \{a,b,c,d\}, y las aristas son: 11-aa, 11-bb, 22-bb, 22-cc, 33-cc, 33-dd, 44-aa, 44-dd.

C2-5.5★★★★Iberoamericana 2010 (estilo)

Sea G=(XY,E)G = (X \cup Y, E) un grafo bipartito con X=m|X| = m y Y=n|Y| = n, donde mnm \leq n. Supón que todo vértice de XX tiene grado al menos dd y todo vértice de YY tiene grado a lo sumo dd. Demuestra que GG tiene un matching que cubre todos los vértices de XX.

C2-5.6★★★★Cono Sur 2018 (estilo)

Sean A1,A2,,AnA_1, A_2, \ldots, A_n subconjuntos de {1,2,,n}\{1, 2, \ldots, n\} con Ai=k|A_i| = k para todo ii, y supongamos que cada elemento j{1,,n}j \in \{1, \ldots, n\} pertenece a exactamente kk de los nn conjuntos. Demuestra que los conjuntos A1,,AnA_1, \ldots, A_n admiten kk sistemas de representantes distintos disjuntos que juntos contienen exactamente kk veces cada elemento de {1,,n}\{1,\ldots,n\}.

C2-5.7★★★★Iberoamericana 2013 (estilo)

Se tiene un tablero m×nm \times n (mnm \leq n) con algunas celdas coloreadas. Sea rr el máximo número de celdas coloreadas tales que no hay dos en la misma fila ni en la misma columna. Demuestra que existen rr filas y columnas (en total) que cubren todas las celdas coloreadas. Además, si el tablero tiene exactamente mn/2mn/2 celdas coloreadas y cada fila y columna tiene el mismo número de celdas coloreadas, calcula rr en términos de mm y nn.

C2-5.8★★★★Cono Sur 2015 (estilo)

Sea n2n \geq 2 un entero par. Considera un torneo de nn equipos donde cada par de equipos juega exactamente una vez. Demuestra que los (n2)\binom{n}{2} partidos pueden organizarse en n1n-1 rondas de n/2n/2 partidos cada una, de modo que en cada ronda cada equipo juega exactamente una vez.