Está en la página 1de 2

Programación 3

Año 2020

Control de monitoreo 1

Ejercicio 1 (Kleinberg & Tardos, Ex.1.4). Antes de que el artículo de Gale


y Shapley fuera publicado, un algoritmo similar al que ellos presentaron ya
estaba siendo utilizado para asignar estudiantes de medicina a diferentes
hospitales para realizar su residencia. En esta versión del problema existe
un conjunto H de m hospitales y un conjunto E de n estudiantes. Los
hospitales tienen listas de preferencias sobre E y los estudiantes tienen listas
de preferencias sobre H. Cada hospital h dispone de un cupo C(h) de lugares
para contratar estudiantes y se cumple que
X
C(h) ≤ n .
h∈H

Nuestro objetivo es asignar estudiantes a hospitales, ocupando todas


las plazas disponibles, de tal forma que no ocurre ninguno de los tipos de
inestabilidad que se definen a continuación.

Inestabilidad de tipo 1: Existen estudiantes e, e0 y un hospital h tales


que

• e está asignado a h,
• e0 está libre,
• h prefiere a e0 antes que a e.

Inestabilidad de tipo 2: Existen estudiantes e, e0 y hospitales h, h0 tales


que

• e está asignado a h,
• e0 está asignado a h0 ,
• h prefiere a e0 antes que a e,
• e0 prefiere a h antes que a h0 .

Para esto consideramos el algoritmo de la figura 1.1.

1
Control de monitoreo 1 Programación 3

1 Marcar como libres a todos los hospitales y estudiantes


2 while queda algún hospital con plaza disponible do
3 Sea h ∈ H con alguna plaza disponible y e ∈ E tal que h no se
propuso a e
4 Registrar que h hizo una propuesta a e
5 if e está libre then
6 Asignar e a h
7 else if e está asignado a h0 y la preferencia de h por e es mayor
que la de h0 por e then
8 Retirar a e de h0
9 Asignar e a h
10 else
11 e rechaza a h
12 end
13 end

Figura 1.1: Algoritmo potencialmente defectuoso generar una asignación


estable de estudiantes a hospitales.

Como parte del análisis de este algoritmo presentamos la siguiente propo-


sición, potencialmente incorrecta.
Proposición. El algoritmo produce una asignación de estudiantes
a hospitales que no tiene ninguna inestabilidad de tipo 1.

Demostración. Al finalizar el algoritmo no quedan estudiantes


libres, por lo cual no puede existir e0 en las condiciones que requiere
este tipo de inestabilidad.

(a) Indique si el algoritmo resuelve correctamente el problema. En caso de


haberlos, describa aspectos no definidos, ambigüedades, errores, u otros
defectos que pueda identificar; explique cómo los corregiría.
Atención: No reescriba completamente un algoritmo diferente, corrija
el de la figura.
(b) Analice la demostración considerada para la proposición anterior con
respecto a la versión corregida del algoritmo. Indique (si los hay)
los defectos que pueda identificar. Explique cómo los solucionaría.

También podría gustarte