Articulo de referencia

Algoritmo de Gale-Shapley

En matemáticas , economía e informática , el algoritmo de Gale-Shapley (también conocido como algoritmo de aceptación diferida , [ 1 ] algoritmo de propuesta y rechazo , [ 2 ] o...

Este es un buen artículo. Haz clic aquí para obtener más información.

En matemáticas , economía e informática , el algoritmo de Gale-Shapley (también conocido como algoritmo de aceptación diferida , [ 1 ] algoritmo de propuesta y rechazo , [ 2 ] o algoritmo de Boston Pool [ 1 ] ) es un algoritmo para encontrar una solución al problema de emparejamiento estable . Recibe su nombre de David Gale y Lloyd Shapley , quienes lo publicaron en 1962, aunque ya se utilizaba en el Programa Nacional de Emparejamiento de Residentes desde principios de la década de 1950. Shapley y Alvin E. Roth (quien señaló su aplicación previa) ganaron el Premio Nobel de Economía de 2012 por un trabajo que incluía este algoritmo.

El problema de emparejamiento estable busca emparejar un número igual de participantes de dos tipos, utilizando las preferencias de cada participante. El emparejamiento debe ser estable: ningún par de participantes emparejados debe preferirse mutuamente a su pareja asignada. En cada ronda del algoritmo de Gale-Shapley, los participantes no emparejados de un tipo proponen un emparejamiento al siguiente participante en su lista de preferencias. Cada propuesta se acepta si el receptor la prefiere a su pareja actual. El procedimiento resultante es un mecanismo veraz desde el punto de vista de los participantes que proponen, quienes reciben el emparejamiento que más prefieren, de acuerdo con la estabilidad. Por el contrario, los receptores de las propuestas reciben el emparejamiento que menos prefieren. El algoritmo puede implementarse para ejecutarse en un tiempo cuadrático con respecto al número de participantes y lineal con respecto al tamaño de la entrada al algoritmo.

El problema del emparejamiento estable, y el algoritmo de Gale-Shapley que lo resuelve, tienen numerosas aplicaciones prácticas, como la asignación de plazas de residencia a estudiantes de medicina estadounidenses y de plazas de ingreso a universidades francesas. Para más información, consulte el apartado Aplicaciones del problema del matrimonio estable  .

Fondo

El problema de emparejamiento estable, en su forma más básica, toma como entrada un número igual de participantes de dos tipos ( por ejemplo, n solicitantes de empleo y n empleadores), y un ordenamiento para cada participante que indica su preferencia sobre con quién emparejarse entre los participantes del otro tipo. Un emparejamiento empareja a cada participante de un tipo con un participante del otro tipo. Un emparejamiento no es estable si:

  1. Existe un elemento A del primer conjunto emparejado que prefiere un elemento B dado del segundo conjunto emparejado sobre el elemento con el que A ya está emparejado, y
  2. B también prefiere a A sobre el elemento con el que B ya está emparejado.

En otras palabras, un emparejamiento es estable cuando no existe ningún par ( A , B ) en el que ambos participantes se prefieran mutuamente a sus parejas emparejadas. Si existe tal par, el emparejamiento no es estable, en el sentido de que los miembros de este par preferirían abandonar el sistema y emparejarse entre sí, lo que posiblemente dejaría a otros participantes sin emparejar. Siempre existe un emparejamiento estable, y el problema algorítmico que resuelve el algoritmo de Gale-Shapley es encontrarlo. [ 3 ]

El problema del emparejamiento estable también se ha denominado problema del matrimonio estable , utilizando la metáfora del matrimonio entre hombres y mujeres, y muchas fuentes describen el algoritmo de Gale-Shapley en términos de propuestas de matrimonio . Sin embargo, esta metáfora ha sido criticada por ser sexista y poco realista: los pasos del algoritmo no reflejan con precisión el comportamiento humano típico, ni siquiera estereotipado. [ 4 ] [ 5 ]

Solución

Animación que muestra un ejemplo del algoritmo de Gale-Shapley.

En 1962, David Gale y Lloyd Shapley demostraron que, para cualquier número igual de participantes de cada tipo, siempre es posible encontrar un emparejamiento en el que todas las parejas sean estables. Presentaron un algoritmo para lograrlo. [ 6 ] [ 7 ] En 1984, Alvin E. Roth observó que esencialmente el mismo algoritmo ya se había estado utilizando en la práctica desde principios de la década de 1950, como el "algoritmo de Boston Pool" utilizado por el Programa Nacional de Emparejamiento de Residentes . [ 1 ] [ 8 ]

El algoritmo de Gale-Shapley implica una serie de "rondas" (o " iteraciones "). En términos de solicitantes de empleo y empleadores, se puede expresar de la siguiente manera: [ 9 ]

  • En cada ronda, uno o más empleadores con puestos de trabajo vacantes hacen una oferta de empleo al candidato que prefieren, de entre aquellos a los que aún no les han hecho una oferta.
  • Cada solicitante que recibe una oferta la evalúa en función de su puesto actual (si lo tiene). Si el solicitante aún no está empleado, o si recibe una oferta de un empleador que le resulta más atractiva que la actual, acepta la mejor oferta y se incorpora al nuevo empleador (lo que podría dejar vacante el puesto en su anterior empresa). De lo contrario, rechaza la nueva oferta.
  • Este proceso se repite hasta que todos los empleadores hayan cubierto sus puestos o hayan agotado sus listas de solicitantes.

Detalles de la implementación y análisis de tiempo

Para implementar el algoritmo de manera eficiente, cada empleador necesita poder encontrar rápidamente a su próximo solicitante, y cada solicitante necesita poder comparar rápidamente a los empleadores. Una forma de hacer esto es numerar a cada solicitante y a cada empleador del 1 alnorte{\displaystyle n}, dóndenorte{\displaystyle n}es el número de empleadores y solicitantes, y para almacenar las siguientes estructuras de datos : [ 10 ]

  • Un conjunto de empleadores con puestos vacantes
  • Una matriz unidimensional indexada por empleadores, que especifica el índice de preferencia del siguiente solicitante al que el empleador enviaría una oferta, inicialmente 1 para cada empleador.
  • Una matriz unidimensional indexada por solicitantes, que especifica su empleador actual, inicialmente un valor centinela como 0 que indica que están desempleados.
  • Una matriz bidimensional indexada por un solicitante y un empleador, que especifica la posición de ese empleador en la lista de preferencias del solicitante.
  • Una matriz bidimensional indexada por un empleador y un númeroi{\displaystyle i}del 1 alnorte{\displaystyle n}, nombrando al solicitante que es el empleador de cadai{\displaystyle i}la preferencia

Configurar estas estructuras de datos llevaO(norte2){\displaystyle O(n^{2})}tiempo. Con estas estructuras es posible encontrar un empleador con un puesto vacante, hacer una oferta de ese empleador a su siguiente solicitante, determinar si la oferta es aceptada y actualizar todas las estructuras de datos para reflejar los resultados de estos pasos, en tiempo constante por oferta. Una vez que el algoritmo termina, la coincidencia resultante se puede leer del arreglo de empleadores para cada solicitante. Puede haberO(norte2){\displaystyle O(n^{2})}ofertas antes de que cada empleador se quede sin ofertas para hacer, por lo que el tiempo total esO(norte2){\displaystyle O(n^{2})}. [ 10 ]

Aunque este límite de tiempo es cuadrático en el número de participantes, puede considerarse como un tiempo lineal cuando se mide en términos del tamaño de la entrada, dos matrices de preferencias de tamañoO(norte2){\displaystyle O(n^{2})}. [ 11 ]

Garantías de exactitud

Este algoritmo garantiza que:

Todos son emparejados
Al final, no puede haber ni solicitante ni empleador sin encontrar pareja. Un empleador que no encuentre pareja al final del proceso debe haber hecho una oferta a todos los solicitantes. Pero un solicitante que recibe una oferta permanece empleado durante el resto del proceso, por lo que no puede haber solicitantes desempleados. Dado que el número de solicitantes y de puestos vacantes es igual, tampoco puede haber puestos vacantes. [ 9 ]
Los partidos son estables
Ningún solicitante X ni empleador Y pueden preferirse mutuamente sobre su pareja final. Si Y le hace una oferta a X , X solo rechazaría a Y tras recibir una oferta aún mejor, por lo que X no puede preferir a Y sobre su pareja final. Y si Y deja de hacer ofertas antes de llegar a X en su lista de preferencias, Y no puede preferir a X sobre su pareja final. En cualquier caso, X e Y no forman una pareja inestable. [ 9 ]

Optimalidad de la solución

Puede haber muchas coincidencias estables para el mismo sistema de preferencias. Esto plantea la pregunta: ¿qué coincidencia devuelve el algoritmo de Gale-Shapley? ¿Es la mejor para los solicitantes, para los empleadores o una intermedia? Resulta que el algoritmo de Gale-Shapley, en el que los empleadores hacen ofertas a los solicitantes, siempre produce la misma coincidencia estable (independientemente del orden en que se hagan las ofertas de trabajo), y su elección es la coincidencia estable que es la mejor para todos los empleadores y la peor para todos los solicitantes entre todas las coincidencias estables. [ 9 ]

En una versión inversa del algoritmo, cada ronda consiste en que los solicitantes desempleados envían una única solicitud de empleo a su empleador preferido, y este la acepta (posiblemente despidiendo a un empleado existente para ello) o la rechaza. Esto produce una asignación que es la mejor para todos los solicitantes y la peor para todos los empleadores entre todas las asignaciones estables. Estas dos asignaciones son los elementos superior e inferior de la red de asignaciones estables . [ 12 ]

En ambas versiones del algoritmo, un grupo de participantes propone emparejamientos y el otro grupo decide si acepta o rechaza cada propuesta. El emparejamiento siempre es mejor para el grupo que hace las propuestas y peor para el grupo que decide cómo gestionarlas. [ 12 ]

Consideraciones estratégicas

El algoritmo de Gale-Shapley es un mecanismo veraz desde el punto de vista del proponente. Esto significa que ningún proponente puede obtener una mejor coincidencia tergiversando sus preferencias. Además, el algoritmo de Gale-Shapley es incluso inmune a la estrategia de grupo para los proponentes; es decir, ninguna coalición de proponentes puede coordinar una tergiversación de sus preferencias de tal manera que todos los proponentes de la coalición se vean estrictamente beneficiados. [ 13 ] Sin embargo, es posible que alguna coalición tergiverse sus preferencias de tal manera que algunos proponentes se vean beneficiados y los demás conserven al mismo socio. [ 14 ]

El algoritmo de Gale-Shapley no es veraz para los participantes que no proponen. Cada uno puede tergiversar sus preferencias y obtener una mejor coincidencia. [ 15 ] Una forma particular de manipulación es la truncación : presentar solo las alternativas superiores, lo que implica que las alternativas inferiores no son aceptables en absoluto. Con información completa, basta con considerar tergiversaciones en forma de estrategias de truncamiento. Sin embargo, una tergiversación exitosa requiere conocer las preferencias de los demás agentes; sin dicho conocimiento, la tergiversación puede dar a un agente una peor asignación. Además, incluso después de que un agente vea la coincidencia final, no puede deducir una estrategia que garantice un mejor resultado en retrospectiva. Esto convierte al algoritmo de Gale-Shapley en un mecanismo de veracidad sin arrepentimiento . Además, en el algoritmo de Gale-Shapley, decir la verdad es la única estrategia que garantiza la ausencia de arrepentimiento. El algoritmo de Gale-Shapley es el único mecanismo sin arrepentimiento en la clase de mecanismos de coincidencia cuantil-estables. [ 16 ]

Generalizaciones

En su trabajo original sobre el problema, Gale y Shapley consideraron una forma más general del problema de emparejamiento estable, adecuada para la admisión a universidades y facultades . En este problema, cada universidad o facultad puede tener su propia cuota , un número objetivo de estudiantes a admitir, y el número de estudiantes que solicitan admisión puede diferir de la suma de las cuotas, lo que necesariamente provoca que algunos estudiantes queden sin emparejar o que algunas cuotas queden sin cubrir. Además, las listas de preferencias pueden estar incompletas: si una universidad omite a un estudiante de su lista, significa que preferiría dejar su cuota sin cubrir antes que admitir a ese estudiante, y si un estudiante omite una universidad de su lista, significa que preferiría no ser admitido antes que ir a esa universidad. Sin embargo, es posible definir emparejamientos estables para este problema más general, demostrar que siempre existen emparejamientos estables y aplicar el mismo algoritmo para encontrar uno. [ 6 ]

Una variante del algoritmo de Gale-Shapley, implementada mediante un protocolo real en lugar de cálculos informáticos, se utiliza para coordinar las admisiones a la educación superior en Francia desde 2018, a través del sistema Parcoursup . En este proceso, durante el verano previo al inicio del curso, los solicitantes reciben ofertas de admisión y deben elegir en cada ronda si aceptan alguna nueva oferta (y, en caso afirmativo, rechazar cualquier oferta anterior que hayan aceptado). El método se complica por restricciones adicionales que hacen que el problema que resuelve no sea exactamente el de la asignación estable. Tiene la ventaja de que los estudiantes no necesitan comprometerse con sus preferencias al inicio del proceso, sino que pueden determinarlas a medida que avanza el algoritmo, basándose en comparaciones directas entre las ofertas recibidas. Es importante que este proceso realice un número reducido de rondas de propuestas, de modo que finalice antes del inicio del curso, pero aunque en teoría se pueden realizar muchas rondas, en la práctica no suelen darse. [ 17 ] Se ha demostrado teóricamente que, si el algoritmo de Gale-Shapley necesita terminarse antes de tiempo, después de un pequeño número de rondas en las que cada posición vacante hace una nueva oferta, aun así produce emparejamientos que tienen una alta proporción de participantes emparejados con respecto a pares inestables. [ 18 ]

Paralelización

El algoritmo de Gale-Shapley posee una fuente natural de paralelismo que lo hace adecuado para hardware paralelo, como CPU multinúcleo y unidades de procesamiento gráfico (GPU). En cada ronda, todos los empleadores con puestos vacantes pueden avanzar de forma independiente en sus listas de preferencias y realizar ofertas simultáneamente. Una implementación paralela puede asignar hilos a empleadores independientes para que se realicen múltiples ofertas al mismo tiempo. Cuando varios empleadores realizan ofertas al mismo solicitante, se utilizan primitivas de sincronización para resolver las ofertas en competencia, asegurando que solo el empleador preferido del solicitante sea aceptado provisionalmente, mientras que los empleadores rechazados continúan con sus siguientes opciones. [ 19 ] [ 20 ]

Para reducir la sobrecarga de sincronización, es ventajoso evitar devolver repetidamente a los empleadores rechazados al conjunto compartido de empleadores con puestos vacantes, ya que las actualizaciones simultáneas de este conjunto requieren sincronización. En cambio, un empleador rechazado pasa inmediatamente al siguiente solicitante en su lista de preferencias. Si un solicitante acepta una nueva oferta, el empleador desplazado también continúa desde su siguiente preferencia. [ 19 ] [ 20 ]

Otras técnicas de optimización incluyen estructuras de datos con conciencia de localidad, que combinan la matriz de preferencias del empleador con la matriz de clasificación del solicitante para reducir los accesos aleatorios a la memoria y mejorar la eficiencia de la caché, y primitivas de sincronización avanzadas, que resuelven la contención entre ofertas simultáneas de manera más eficiente. Los enfoques heterogéneos mejoran aún más el rendimiento al usar la GPU para etapas altamente paralelas y cambiar a la CPU cuando quedan pocos empleadores sin emparejar, evitando la subutilización de la GPU durante el trabajo mayoritariamente secuencial. [ 20 ]

Reconocimiento

Shapley y Roth recibieron el Premio Nobel de Economía de 2012 «por la teoría de las asignaciones estables y la práctica del diseño de mercados ». Gale había fallecido en 2008, por lo que no cumplía los requisitos para recibir el premio. [ 21 ]

Véase también

Referencias

  1. 1 2 3 Roth, Alvin E. (febrero de 2003). "Los orígenes, la historia y el diseño del emparejamiento de residentes". JAMA . 289 (7): 909– 912. doi : 10.1001/jama.289.7.909 .
  2. Carter, Michael W.; Price, Camille C. (2000). Investigación operativa: una introducción práctica . CRC Press. pág. 102. ISBN  9780849322563.
  3. Gusfield, Dan ; Irving, Robert W. (1989). El problema del matrimonio estable: estructura y algoritmos . MIT Press. pág. 6. ISBN  9780262515528.
  4. Wagner, Roy (abril de 2009). "Matrimonios matemáticos: Interacción entre matemáticas y elección semiótica". Estudios sociales de la ciencia . 39 (2): 289– 308. doi : 10.1177/0306312708099443 . hdl : 20.500.11850/121579 .
  5. Giagkousi, Kyriaki (marzo de 2021). Género y algoritmos de computación: el caso de Stable Matching (PDF) (tesis de maestría). Universidad Nacional y Kapodistríaca de Atenas, Departamento de Historia y Filosofía de la Ciencia y Departamento de Informática y Telecomunicaciones . Recuperado el 20 de diciembre de 2023 .
  6. 1 2 Gale, D. ; Shapley, LS (1962). "Admisiones universitarias y la estabilidad del matrimonio" . The American Mathematical Monthly . 69 (1): 9– 14. doi : 10.2307/2312726 . JSTOR 2312726 . Archivado del original el 25-09-2017 . Recuperado el 20-11-2019 . 
  7. Mairson, Harry (1992). "El problema del matrimonio estable" . The Brandeis Review . 12 .
  8. Bergstrom, Theodore C. (junio de 1992). "Revisión de Two-Sided Matching: A Study in Game-Theoretic Modeling and Analysis de AE ​​Roth y MAO Sotomayor". Journal of Economic Literature . 30 (2): 896– 898. JSTOR 2727713 . 
  9. 1 2 3 4 Erickson, Jeff (junio de 2019). "4.5 Emparejamiento estable" (PDF) . Algoritmos . Universidad de Illinois. págs. 170–176 . Recuperado el 19 de diciembre de 2023 . 
  10. 1 2 Kleinberg, Jon ; Tardos, Éva (2006). "2.3 Implementación del algoritmo de emparejamiento estable usando listas y arreglos". Diseño de algoritmos . Addison-Wesley. pp. 42– 47. 
  11. Gusfield & Irving (1989) , pág. 182.
  12. ^ Knuth , Donald E. (1976). Mariages stables et leurs Relations avec d'autres problèmes combinatoires (PDF) (en francés). Montreal, Quebec: Les Presses de l'Université de Montréal. ISBN 0-8405-0342-3. SR 0488980 . Véase en particular el Problema 6, págs. 87–94.
  13. Dubins, LE ; Freedman, DA (1981). "Maquiavelo y el algoritmo de Gale-Shapley". The American Mathematical Monthly . 88 (7): 485– 494. doi : 10.2307/2321753 . JSTOR 2321753. MR 0628016 .  
  14. Huang, Chien-Chung (2006). "Trampas de hombres en el algoritmo de emparejamiento estable de Gale-Shapley". En Azar, Yossi; Erlebach, Thomas (eds.). Algoritmos – ESA 2006, 14.º Simposio Europeo Anual, Zúrich, Suiza, 11-13 de septiembre de 2006, Actas . Lecture Notes in Computer Science. Vol. 4168. Springer. pp. 418–431 . doi : 10.1007/11841036_39 . MR 2347162 .   
  15. Gonczarowski, Yannai A.; Friedgut, Ehud (abril de 2013). "Sisterhood in the Gale–Shapley matching algorithm" . Electronic Journal of Combinatorics . 20 (2): P12:1–P12:18. arXiv : 1104.2217 . doi : 10.37236/3267 .
  16. Fernández, Marcelo Ariel (31 de julio de 2020). "Aceptación diferida y decir la verdad sin remordimientos" (Documento de trabajo). Departamento de Economía de la Universidad Johns Hopkins.
  17. Mathieu, Claire (2018). "Algoritmos de admisión universitaria en el mundo real" (Conferencia invitada en el Simposio Europeo de Algoritmos). Universidad Aalto.
  18. ^ Floreen, Patrik; Kaski, Petteri; Polishchuk, Valentín; Suomela, Jukka (agosto de 2009). "Coincidencias casi estables al truncar el algoritmo Gale-Shapley". Algorítmica . 58 (1): 102–118 . arXiv : 0812.4893 . doi : 10.1007/s00453-009-9353-9 .
  19. 1 2 Manne, Fredrik; Naim, Md.; Lerring, Håkon; Halappanavar, Mahantesh (2016). "Sobre matrimonios estables y emparejamientos voraces". Actas del séptimo taller SIAM de 2016 sobre computación científica combinatoria . SIAM. págs. 92–101 . doi : 10.1137/1.9781611974690.ch10 . hdl : 1956/16754 . 
  20. 1 2 3 Liu, Jiaxin; Lee, Rubao; Xia, Cathy H.; Zhang, Xiaodong (2025). "Un matrimonio estable requiere una residencia compartida con poca contienda y complementariedad mutua" (PDF) . 2025 34.ª Conferencia Internacional sobre Arquitecturas Paralelas y Técnicas de Compilación (PACT) . IEEE.
  21. Bhattacharjee, Yudhijit (15 de octubre de 2012). "El Nobel de Economía premia la sutileza en la creación de alianzas". Science . 338 (6105): 314. doi : 10.1126/science.338.6105.314 . PMID 23087221 .