7 votos

Código para encontrar todas las coincidencias estables en el problema de uno a uno

¿Conoces algún código disponible públicamente en python o R (o cualquier otro lenguaje de alto nivel libre) que devuelva todo los emparejamientos estables para cualquier problema de emparejamiento uno a uno?


Nota : Esto está relacionado pero es diferente de ¿Código disponible para calcular las soluciones de los algoritmos de correspondencia? .

En esta otra pregunta, pedía código que implementara mecanismos famosos como el de la aceptación diferida. Algunos de estos mecanismos encuentran un la coincidencia estable, entre otros. Aquí estoy buscando un código que encuentre todo coincidencias estables.

He inspeccionado los paquetes recomendados en las respuestas que obtuve a ¿Código disponible para calcular las soluciones de los algoritmos de correspondencia? y no encontré nada que hiciera el trabajo.

0 votos

En un entorno de emparejamiento bipartito, sólo hay dos emparejamientos estables: el emparejamiento estable óptimo del proponente y el emparejamiento estable óptimo del aceptante. Si se ejecuta Gale-Shapley para ambos casos, se obtendrá el resultado deseado.

1 votos

@ml0105 : No debemos tener el mismo modelo en mente. En el escenario de emparejamiento bipartito que tengo en mente (el del artículo original de Gale y Shapley de 1962), puede haber un gran número de emparejamientos estables (y se ha escrito mucho sobre ellos, especialmente sobre su estructura de red cuando se emparejan con la relación binaria apropiada). Para un ejemplo sencillo, véase, por ejemplo, el ejemplo 3.7 en Klaus, B., y Klijn, F. (2006). "Median Stable Matching for College Admissions" que presenta 3 emparejamientos estables (lo siento si no puedes acceder a él, quería reproducirlo aquí pero es demasiado largo para un comentario).

0 votos

Me corrijo (¡y pido disculpas por la información errónea!)

2voto

Jader Dias Puntos 714

Patrick Prosser tiene un gran código java en http://www.dcs.gla.ac.uk/~pat/compañeros/distribución/ que, entre otras cosas, puede calcular todo los emparejamientos estables en los problemas de compañeros de piso.

El código es para los problemas de los compañeros de cuarto, pero el código de Patrick permite que las preferencias sobre los compañeros de cuarto incluyan a los compañeros inaceptables. Para implementar un mercado de dos lados, sólo asegúrese de que cualquier compañero de cuarto en un lado del mercado ve a cualquier otro compañero de cuarto en el mismo lado del mercado como inaceptable, y usted es bueno para ir.

Si (como yo) no estás acostumbrado a java, puede que te cueste un poco conseguir que el código funcione. Aquí es un pequeño tutorial para Mac OS, que me ha funcionado hasta hoy.

2voto

patchie Puntos 487

El matchingMarkets en el software R implementa ahora dos funciones de codificación de restricciones para encontrar todos los emparejamientos estables en los tres problemas de concordancia más comunes:

  • hri : problema de admisión a la universidad (incluyendo el emparejamiento óptimo de estudiantes y universitarios) y el problema del matrimonio estable (incluyendo el emparejamiento óptimo de hombres y mujeres)

  • sri : problema de compañeros de piso estables.

Además, también permite listas de preferencias incompletas (algunos agentes consideran inaceptables a ciertos agentes) y instancias desequilibradas (número desigual de agentes en ambos lados) para los tres problemas.

Si utiliza Python, puede ejecutar el código R con rpy2 .

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X