# Problema del matrimonio estable

En matemáticas, economía e informática, el problema del matrimonio estable (también problema de emparejamiento estable o SMP) es el problema de encontrar un emparejamiento estable entre dos conjuntos de elementos de igual tamaño dado un orden de preferencias para cada elemento. Una coincidencia es una biyección de los elementos de un conjunto a los elementos del otro conjunto.

## Formulación

El problema del matrimonio estable se ha planteado de la siguiente manera:
Dados n hombres y n mujeres, donde cada persona ha clasificado a todos los miembros del sexo opuesto en orden de preferencia, se trata de casar a los hombres y mujeres juntos de modo que no haya dos personas del sexo opuesto que prefieran tenerse el uno al otro más que a sus parejas actuales. Cuando no existen tales pares de personas, el conjunto de matrimonios se considera estable.
Una coincidencia no es estable si:
* Hay un elemento A del primer conjunto emparejado que prefiere algún elemento B dado del segundo conjunto emparejado sobre el elemento con el que A ya está emparejado, y
* B también prefiere A sobre el elemento con el que B ya está emparejado.
En otras palabras, una coincidencia es estable cuando no existe ninguna coincidencia (A, B) en la que ambos se prefieran entre sí a su pareja actual bajo la coincidencia.
La existencia de dos clases que deben emparejarse (hombres y mujeres heterosexuales en este ejemplo) distingue este problema del problema de los compañeros de habitación estables.

## Aplicaciones

Los algoritmos para encontrar soluciones al problema del matrimonio estable tienen aplicaciones en una gran cantidad de situaciones del mundo real, quizás la más conocida de ellas es la asignación de estudiantes de medicina graduados a sus primeras tareas en el hospital. En 2012, el Premio Nobel de Ciencias Económicas fue otorgado a Lloyd S. Shapley y Alvin E. Roth "por la teoría de asignaciones estables y la práctica del diseño de mercado".
Una aplicación importante y a gran escala del emparejamiento estable consiste en asignar usuarios a servidores en un gran servicio de Internet distribuido. Miles de millones de usuarios acceden a páginas web, videos y otros servicios en Internet, lo que requiere que cada usuario sea emparejado con uno de los (potencialmente) cientos de miles de servidores en todo el mundo que ofrecen ese servicio. Un usuario prefiere servidores que estén lo suficientemente próximos para proporcionar un tiempo de respuesta más rápido para el servicio solicitado, lo que resulta en un orden preferencial (parcial) de los servidores para cada usuario. Cada servidor prefiere servir a los usuarios que pueda con un costo menor, lo que resulta en un orden preferencial (parcial) de usuarios para cada servidor. Las redes de entrega de contenido que distribuyen gran parte del contenido y los servicios del mundo resuelven este gran y complejo problema de matrimonio estable entre usuarios y servidores cada pocos segundos para permitir que miles de millones de usuarios se emparejen con sus respectivos servidores que pueden proporcionar las páginas web, videos solicitados u otros servicios.

## Diferentes emparejamientos estables

En general, puede haber muchas coincidencias estables diferentes. Por ejemplo, supongamos que hay tres hombres (A, B, C) y tres mujeres (X, Y, Z) que tienen las preferencias siguientes:
    A: YXZ B: ZYX C: XZY
    X: BAC Y: CBA Z: ACB
Hay tres soluciones estables para este arreglo coincidente:
* los hombres tienen su primera opción y las mujeres la tercera - (AY, BZ, CX);
* todos los participantes obtienen su segunda opción - (AX, BY, CZ);
* las mujeres tienen su primera opción y los hombres la tercera - (AZ, BX, CY).
Las tres son estables, porque la inestabilidad requiere que ambos participantes estén más felices con una solución alternativa. Darle a un grupo sus primeras opciones asegura que las coincidencias sean estables porque no estarían contentos con cualquier otra coincidencia propuesta. Darle a todos su segunda opción asegura que cualquier otro partido no sea del agrado de una de las partes. En general, a la familia de soluciones a cualquier caso del problema del matrimonio estable se le puede dar la estructura de una red distributiva finita, y esta estructura conduce a algoritmos eficientes para varios problemas de matrimonios estables.
En un caso del problema del matrimonio estable con n hombres y n mujeres, el número promedio de emparejamientos estables es asintóticamente $e^{-1}n\ln n$. En un caso de matrimonio estable elegido para maximizar el número de emparejamientos estables diferentes, este número es una función exponencial de n. Contar el número de coincidencias estables en una instancia determinada es # P-completo.

## Solución algorítmica

En 1962, David Gale y Lloyd Shapley demostraron que, para cualquier número igual de hombres y mujeres, siempre es posible resolver el problema y estabilizar todos los matrimonios. Presentaron un algoritmo para hacerlo.
La solución del algoritmo Gale-Shapley (también conocido como algoritmo de aceptación diferida) implica una serie de "rondas" (o " iteraciones "):
* En la primera ronda, primero a ) cada hombre no comprometido propone a la mujer que más prefiere, y luego b ) cada mujer responde "tal vez" a su pretendiente que más prefiere y "no" a todos los demás pretendientes. A continuación, se "compromete" provisionalmente con el pretendiente que más prefiere hasta ahora, y ese pretendiente también se compromete provisionalmente con ella.
* En cada ronda subsiguiente, primero a ) cada hombre no comprometido propone a la mujer más preferida a la que aún no le ha propuesto matrimonio (independientemente de si la mujer ya está comprometida), y luego b ) cada mujer responde "tal vez" si ella está actualmente no comprometida o si prefiere a este hombre sobre su actual pareja provisional (en este caso, rechaza a su actual pareja provisional que deja de estar comprometida). La naturaleza provisional de los compromisos preserva el derecho de una mujer ya comprometida a "cambiar" (y, en el proceso, "dejar plantada" a su hasta entonces pareja).
* Este proceso se repite hasta que todos se comprometen.
Así se garantiza que este algoritmo producirá un matrimonio estable para todos los participantes a tiempo $O(n^{2})$ dónde $n$ es el número de hombres o mujeres.
Entre todos los posibles emparejamientos estables diferentes, siempre se obtiene el que es mejor para todos los hombres y el peor para todas las mujeres. Es un mecanismo veraz desde el punto de vista de los hombres (el lado proponente). Es decir, ningún hombre puede conseguir una mejor coincidencia para sí mismo al tergiversar sus preferencias. Además, el algoritmo GS es incluso una prueba de estrategia grupal para los hombres, es decir, ninguna coalición de hombres puede coordinar una tergiversación de sus preferencias de manera que todos los hombres de la coalición estén en mejor situación. Sin embargo, es posible que alguna coalición distorsione sus preferencias de modo que algunos hombres estén en mejor situación y los otros mantengan la misma pareja. Por otro lado el algoritmo GS no es veraz para las mujeres (el lado de la revisión): cada mujer puede tergiversar sus preferencias y obtener una mejor coincidencia.

## Teorema de los hospitales rurales

El teorema de los hospitales rurales se refiere a una variante del problema de emparejamiento estable, como la que se aplica en el problema de emparejar médicos con puestos en hospitales, que se diferencia en las siguientes formas de la forma básica del problema del matrimonio estable:
* Cada participante solo puede estar dispuesto a ser emparejado con un subconjunto de los participantes del otro lado del emparejamiento.
* Los participantes de un lado del emparejamiento (los hospitales) pueden tener una capacidad numérica, especificando el número de médicos que están dispuestos a contratar.
* Es posible que el número total de participantes de un lado no sea igual a la capacidad total con la que se los emparejará en el otro lado.
* Es posible que la coincidencia resultante no coincida con todos los participantes.
El teorema de los hospitales rurales establece que:
* El conjunto de médicos asignados y el número de puestos ocupados en cada hospital son los mismos en todos los emparejamientos estables.
* Cualquier hospital que tenga algunos puestos vacíos en algún emparejamiento estable, recibe exactamente el mismo grupo de médicos en todos los emparejamientos estables.

## Problemas relacionados

En el emparejamiento estable con indiferencia, algunos hombres pueden ser indiferentes entre dos o más mujeres y viceversa.
El problema de los compañeros de habitación estables es similar al problema del matrimonio estable, pero se diferencia en que todos los participantes son de un solo grupo (en lugar de dividirse en números iguales de "hombres" y "mujeres").
El problema de los hospitales / residentes, también conocido como el problema de las admisiones universitarias, se diferencia del problema del matrimonio estable en que un hospital puede admitir a varios residentes o una universidad puede admitir a más de un estudiante. Los algoritmos para resolver el problema de los hospitales / residentes pueden estar orientados al hospital (como lo era el NRMP antes de 1995) o al residente . Este problema se resolvió, con un algoritmo, en el mismo artículo original de Gale y Shapley, en el que se solucionó el problema del matrimonio estable.
El problema de los hospitales / residentes con parejas permite que el conjunto de residentes incluya parejas que deben ser asignadas juntas, ya sea al mismo hospital o a un par específico de hospitales elegidos por la pareja (por ejemplo, una pareja casada quiere asegurarse de que se quedarán juntos y no quedar atrapados en hospitales que están lejos unos de otros). La adición de parejas al problema de los hospitales / residentes hace que el problema sea NP-completo.
El problema de asignación busca encontrar una correspondencia en un gráfico bipartito ponderado que tenga el peso máximo. Estas coincidencias ponderadas máximas no tienen por qué ser estables, pero en algunas aplicaciones una coincidencia ponderada máxima es mejor que una estable.
El problema de emparejamiento con contratos es una generalización del problema de emparejamiento, en el que los participantes pueden emparejarse con diferentes tipos de contratos. Un caso especial importante de emparejamiento con contratos es el de los salarios flexibles.