Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Método Húngaro Harold W. Khun.The Hungarian Method for the Assigment Problem, Naval Research Logistics Quarterly 2 (1955) 83-97.
Algoritmos de Aproximación. Octubre 2016.
Giovanna Fortez
Agenda
� Problema de Asignación Simple (SAP)
� Definiciones, Lemas, Teoremas
� SAP con presupuesto
� Problema General de Asignación (GAP)
� Problema Dual al GAP
� Teoremas básicos del Método
� Método Húngaro de resolución del GAP
� Ejemplo aplicación
� Asignación de Personal en Call Centers (WorkforceManagement)
Problema de Asignación de Simple
Problema de Asignación de Personal.
Definición informal:
(1) Supongamos que se dispone de puntuaciones en relación a laperformance de n personas en cada una de n tareas, el problema deasignación consiste en encontrar la asignación de personas a tareas deforma tal que la suma de los n puntajes sea máxima.
(2) Encontrar la mejor asignación de un conjunto de personas a un conjuntode tareas; donde las posibles asignaciones puedan ser puntuadas por lasuma total de la performance de las personas en las tareas para las cualescualifica.
La respuesta a este problema esta latente en el trabajo de 2 matemáticoshúngaros, de donde se extrae un método de resolución exacta de esteproblema. (Köning, Egerváry)Egerváry paper: Ofrece un metodo computacional donde reduce el problema GAP a un problema SAP 0-1.
Problema de Asignación Simple
Ejemplo
4 personas pi disponibles para 4 tareas ti donde i=1,2,3,4. Tenemos que: p1cualifica para t1, t2, t3; p2 cualifica para t3, t4; p3 y p4 cualifican para t4.
Representado en la matriz de Cualificación Q 1 110000
011001001donde: filas representan personas y las columnas representan tareas.
Pregunta:
• ¿Cuál es la mayor cantidad de tareas que puede ser asignada a personascalificadas, asignando a lo sumo una tarea a cada individuo?
• Sobre Matriz Q: ¿Cuál es la mayor cantidad de 1’s que pueden sertomados de Q, sin que estos pertenezcan a la misma fila o columna?
Problema de Asignación SimpleIntuitivamente.
Colocar personas disponibles en cualquier tarea sin asignar para la cual califiquen.
En el ejemplo: p1 y p2 para t3 y t4 respectivamente. Se representa con un (*) enla matriz Q.
Observaciones:
� Dada esta disposición es imposible “mejorar” esta asignación por lo cual laASIGNACIÓN es COMPLETA!
� Ahora, podemos realizar una “transferencia” a esta asignación utilizando lainformación de las cualificaciones de las personas con el fin de mejorarla.
1 1 1* 0
0 0 1 1*
0 0 0 1
0 0 0 1
Problema de Asignación Simple
Posible mejora es:
• mover a p1 de t3 a t1,
• mover a p2 de t4 a t3.
Observaciones:
� existen personas disponibles que pueden ser ubicadas en tareas sin asignar. ASIGNACIÓNINCOMPLETA!
� Para completar la ASIGNACIÓN se debe considerar p3 o p4 con la tarea 4.
Observaciones:
� Este resultado es optimo, ya que contempla la persona 1, la tarea 3 y la tarea 4. Unaasignación mas involucraría alguno de estos elementos.
� Aunque se cuenta con una trasferencia posible, mover p1 a t1 o t2, el resultado es tambiénuna ASIGNACIÓN COMPLETA.
1* 1 1 0
0 0 1* 1
0 0 0 1
0 0 0 1
1* 1 1 0
0 0 1* 1
0 0 0 1*
0 0 0 1
Problema de Asignación de Simple (SAP)
La construcción de la solución establece que siempre es posible encontrar una Asignación Óptima, mediante una sucesión de trasferencias seguida de algunas asignaciones, hasta que no se puedan hacer mas. Es decir, hasta que no existan personas disponibles que califiquen para tareas sin asignación.
Resumen
� Tenemos n personas i, con i=1,..,n disponibles n tareas j, con j=1,..,n y una matriz de cualificaciones Q, donde
� � ��� 1�� � �����������0���������� Si se puede realizar una asignación no necesariamente optima, entonces
asignar cualquier persona disponible a una tarea libre para la cual la persona califique.
� Si esto es posible => asignación inicial INCOMPLETA, sino asignación COMPLETA
� Asignación completa? Se puede mejorar por una transferencia.
� Cambia la asignación de r individuos diferentes �, . . , � a tareas ��, . . , ��moviendo � a �� siendo �� una tarea libre! Luego, � a ���� para k= 2,..,r. Todas las nuevas asignaciones se asumen calificadas para k=1,..,r.
Definiciones, Lemas, Teoremas!
Persona Esencial: Cada persona involucrada en una transferencia.
Trabajo Esencial: Cada trabajo asignado a un individuo no esencial.
Lema 1. En el contexto de una asignación, si una persona es asignada a una tarea,entonces o bien la persona es esencial o bien la tarea es esencial pero NO ambas.
Corolario 1. Para todas las asignaciones la cantidad de personas asignadas a tareas esigual a la suma de las personas esenciales, mas las tareas esenciales.
Lema 2. Dada una asignación, si una persona es asignada a una tareas y cualifica paraotra entonces la persona es ESENCIAL.
Lema 3. Dada una asignación, si cada transferencia deja una tarea asignada, entoncesesa tarea es ESENCIAL.
Teorema 1. Dada una asignación, si cada transferencia lleva a una asignación COMPLETAentonces, para cada persona calificada para esa tarea, o bien la persona o bien la tareaes ESENCIAL y posiblemente ambas.
Teorema 2. Existe una asignación completa luego de cada posible transferencia.
SAP con Presupuesto
Considerar un presupuesto que cuantifique la asignación de una persona a una tarea.
Presupuesto adecuado: (adequate budget) si por cada persona calificada para una tarea o bien la persona o bien la tarea es asignada 1 unidad y posiblemente ambas.
Teorema 3. Una asignación total de cualquier presupuesto adecuado no es menor que el numero máximo de tareas que pueden ser asignadas a personas calificadas.
Teorema 4. Existe una asignación y un presupuesto adecuado tal que la asignación total del mismo es igual a la cantidad de tareas asignadas a personas calificadas.
Problema General de Asignación (GAP)
Tenemos n personas i, con i=1,..,n disponibles para n tareas j, con j=1,..,n y una matriz de puntuaciones R� ����� donde ��� son enteros positivos ��� para todo i, j.
Una asignación consiste en la elección de una tarea ji para cada persona i, de forma que ninguna tarea sea asignado a 2 personas diferentes a la vez.
Entonces todas las tareas son asignadas y una asignación es una permutación de los enteros 1,2,…,n.
Problema:
¿Cual es la asignación que hace que la suma de las puntuaciones
∑ ���!"�#� sea máxima?
Problema Dual al GAP
Considera el presupuesto adecuado, es decir,
asignaciones enteras no negativas:
• $� a cada persona y
• %� a cada tarea,
de forma tal que los montos enteros asignados a i y j no sean menores que su valor de performance para esa tarea $� + %� ≥ ���El problema es: ¿Cual es la asignación total mas pequeña para un presupuesto adecuado?
min )$�"
�#� + )%�
"
�#��:$� + %� ≥ ���
Más teoremas!
Teorema 5. La asignación total de cualquier presupuesto adecuado no esmenor que la suma de las puntuaciones de una asignación.Demo:En una asignación, cada persona y cada tarea ocurren exactamente una vez,entonces la suma del presupuesto asignado a personas ui y el presupuestoasignado a tareas vj es exactamente el total del presupuesto.Sin embargo, el presupuesto es adecuado entonces se cumple que$� + %�+ ≥ ���+, …, $" + %�, ≥ �"�,.Sumando las desigualdades, tenemos que:
$� -⋯- $" -%�+ -⋯%�,≥ ���+ -⋯- �"�,.Consecuencia directa. Si se logra una asignación con el presupuestoadecuado de forma tal que se de la igualdad, entonces encontramos lasolución a ambos problemas, el primal y el dual.Teorema 6. Si las n personas pueden ser asignadas a tareas para las cualesestán cualificadas en SAP asociado con un presupuesto adecuado, entoncesla asignación y el presupuesto son solución del GAP y se cumple que:$� -⋯- $" -%�+ -⋯%�,� ���+ -⋯- �"�,.
Observación de construcción
Situación.
Supongamos que no se pueden asignar a todas las personas en el problema SAP asociado a un presupuesto adecuado, entonces se mejora el presupuesto con el siguiente procedimiento.
Recordar que:
Presupuesto es adecuado cuando asigna una cantidad positiva a cada persona o una cantidad positiva a cada tarea.
Asumiremos que:
ui>0 i=1,..,n, para todas las personas,
m es la mayor cantidad de personas que pueden ser asignadas, siendo m<n.
Elegir una asignación óptima donde las personas esenciales sean i=1,..r, y los trabajos esenciales j=1,..,s.
Por corolario 1, r+s = m.
Regla para cambiar el presupuesto.
$′� � $�, … , $1� � $�, $1�2� � $�2� 3 1, . . , $′" � $"-1.
%′� � %� - 1, . . . , %′4 � %4 - 1, %′42� � %42�,…, %′" � %".Chequear que el nuevo presupuesto es adecuado y que la asignación total del mismo fue decrementada.
Teoremas Básicos para el Método
Teorema 6. Si las n personas pueden ser asignadas a tareas para las cuales están cualificadas en SAP asociado con un presupuesto adecuado, entonces la asignación y el presupuesto son solución del GAP y se cumple que: $� -⋯- $" -%�+ -⋯%�,� ���+ -⋯- �"�,.
Teorema 7. Si a lo mas m<n personas pueden ser asignadas a tareas para las cuales están cualificadas en SAP asociado con un presupuesto adecuado, entonces la asignación total del presupuesto puede ser decrementada por una suma entera positiva.
Método Húngaro
Resuelve los siguientes problemas.
� Dada la matriz R de enteros positivos, encontrar la permutación j1,…, jn de los enteros 1, ..,n que maximice la suma rij.
� Dual. Encuentra los enteros positivos $� , … , $", y %� , … , %"sa $� -%� 5 ��� con i,j=1,…,n
que minimice la suma $� -⋯- $" - %� , … , %".
Mas definiciones ☺
� El conjunto de enteros positivos que satisfacen (1) es un cubrimientoCOVER o presupuesto adecuado.
� Las posiciones (i,j) de la matriz donde se cumple la igualdad sonMARCAS o cualificados en el SAP, en otro caso son 0.
� Conjunto de MARCAS INDEPENDIENTES si no existen 2 marcas delconjunto que se encuentren en la misma línea, i.e., fila o columna.
� Köning – Resultado Fundamental. Sea m la cantidad máxima de marcasindependientes entonces m líneas que contienen las posiciones marcadaspueden ser elegidas
Método Húngaro. Algoritmo
Dado un cubrimiento R, un conjunto de marcas independientes fue encontrado, de cardinalidad │M│.
Si │M│=n => marcas (i,j) son la asignación buscada (Teorema 6).
Si │M│<n => un conjunto que contiene todas las marcas(i,j) se utiliza para MEJORAR el cubrimiento (Teorema 7).
Método Húngaro. Algoritmo
� CUBRIMIENTO INICIAL.
Sea �� �6�7���� ∀ � 1, . . � y Sea � � ∑ ��"�#�Sea 9� �6�7���� ∀� � 1, . . � y Sea b � ∑ 9�"�#�Entonces,
si � ; 9 <$� ��� ∀ � 1, . . , �%� � 0∀� � 1, . . , �si � = 9 <$� � 0∀ � 1, . . , �%� � 9�∀� � 1, . . , �� Asociación entre CUBRIMIENTO $� , %� y matriz � � �����
��� � <1$� + %� = ���0���������
Método Húngaro – Relación entre rutinas
Rutina I
Rutina II
Problema
Ib asignación completa
Ia
IIa
IIb
Rutina I� Trabaja sobre matriz Q en SAP
subyacente� Ia incrementa la cantidad de 1*
(asignaciones), mientras tenga columnas elegibles.
� Ib termina con una asignación completa, no necesariamente optima.
Rutina II� Realiza variaciones en la asignación
actual buscando mejorarla� Decrementa la suma del cubrimiento
actual, en m>0 (Teorema 7)� Encuentra posibles transferencias en
Q y regresa a I (IIa)
Solución
Método Húngaro Algoritmo Rutina IEntrada:
• matriz Q del cover {$� , %�},
• conjunto de (*) marcas de 1 en Q
para cada columna de Q
1- buscar (1*)
2- si (�, ��) = 1*
2.1- registro el par
3- sino buscar (1) /* es columna ELEGIBLE */
3.1- si (�, ��2�) = 1
3.1.1- registro el par
fin_para
construye la secuencia:
1 en (i1,j0)1* en (i1,j1)1 en (i2,j1)… … …
Método Húngaro Algoritmo Rutina I
La rutina se divide en 2 casos, según la PARIDAD del numero de términos en la secuencia.
Caso 1 – Encontramos 1 en (ik , j(k-1)) y registramos.
1- buscar (1*) en fila ik
si no encontramos => cambiamos la SECUENCIA
cada 1 pasa a ser 1*
cada 1* pasa a ser 1
Caso 2 – Encontramos 1* en (ik, jk)
1- buscar (1) en columna jk
si no encontramos => fila ik es ESENCIAL
ik y ik-1 son borrados del registro, (se quitan 2 términos)
volver Caso2, y buscar 1 en la col jk-1 desde fila ik+1 en adelante
si encontramos 1 en (i(k+1),jk)
revisar si ik+1 es diferente de i1,..ik
si es diferente => registro (ik+1, jk) y vuelvo caso 1
sino buscar(1) en col jk en adelante
Es la alternativa Ia, significa que comenzamos la Rutina I de vuelta
Método Húngaro Algoritmo Rutina II
Entrada:
• cover {$�, %�},
• conjunto de filas y columnas esenciales
1- Calcular d, siendo d = min{$� - %� 3 ���}, con <���>?@A@>BCDE@A���$6���>?@A@>BCDE@Ad > 0 se distinguen 2 casos:
Caso 1: para todas las filas i NO ESENCIALES, $� >0.
Calcular m = min{d, $�} siendo i, las filas NO ESENCIALES.
Asignar F$′� �$� 3 6%′� �%� -6 para todas las i NO ESENCIALES y las j ESENCIALES
Caso 2: para algunas filas i NO ESENCIALES, $� >0.
Calcular m = min{d, %�} siendo j, las columnas NO ESENCIALES.
Asignar F$′� �$� -6%′� �%� 36 para todas las i ESENCIALES y las j NO ESENCIALES
2- Realizar estos cambios en el COVER y volver a Rutina I por IIa.
Nota: Si no es posible el calculo de d, entonces el conjunto de 1* en Q es la solución del GAP por Teorema 6.
Método Húngaro Ejemplo8 7 9 95 2 7 86 1 4 92 3 2 6
Matriz R, 4 personas, 4 tareas
Encontrar Cover inicial:�� � 6�7� ��� , �� � 9,8,9,9 ⇒ � � ∑ ��� � 329� � 6�7� ��� , 9� � 8,7,9,9 ⇒ 9 � ∑ 9�� � 33Tenemos que a N b ⇒ <$� ���%� � 0
Ejemplo. Cover y matriz Q inicial
8 7 9 95 2 7 86 1 4 92 3 2 6
0 0 0 0
9
8
9
6ui
0 0 1 10 0 0 10 0 0 10 0 0 1
Sabemos que
��� � <1$� + %� = ���0���������
vj
0 0 1* 10 0 0 1*0 0 0 10 0 0 1
Asignar en cada fila el primer 1 que no se encuentre en la columna de una asignación anterior. RUTINA I.Columnas esenciales: v3, v4Filas esenciales ninguna.
Ejemplo. Rutina II
Llegue a una asignación completa, donde no existe posibilidad de realizar ninguna transferencia (Ib� Rutina II).
Considero, para el calculo de d = min{$� - %� 3 ���} :
filas i no esenciales {1,2,3,4}
columnas j no esenciales {1,2}
u1+v1 – r11 = 9+0-8=1
u1+v2 – r12 = 9+0-7=2
u2+v1 – r21 = 6+0-5=1
……………………………..
d=1
Calcular m = min{d, $�} siendo i, las filas NO ESENCIALES.
Asignar F$′� �$� 3 6%′� �%� -6
Las ui > 1, para todo i, entonces el mínimo es d.
• Decremento las ui no esenciales en 1
• Incremento las vj esenciales en 1.
Ejemplo. Segunda Iteración Cover y matriz Q
El nuevo cover muestra una posible transferencia. De realizarla estamos frente a una ASIGNACION COMPLETA entonces Rutina II para ajustar los presupuestos.
La fila 1 y la columna 4 son ESENCIALES
8 7 9 95 2 7 86 1 4 92 3 2 6
8
7
8
5
1 0 1* 10 0 0 1*
0 0 0 10 0 0 1
Sabemos que
��� � <1$� + %� = ���0���������
vj
ui
0 0 1 1
Ejemplo. Ultima iteración Cover y matriz Q
8 7 9 95 2 7 86 1 4 92 3 2 6
1 0 2 3
7
5
6
3
En el nuevo cover, si asignamos (4,2) llegamos a una Asignación Completa. � La asignación es optima ya que ui +vj >=rij para todo i, j.
u3+v4 =6+3=9= r34. � En particular cuando la solución es optima se da la igualdad.� Sumando las rij de la solución (1,1), (2,3), (3,4), (4,2) =>
8+7+9+3 = 27
1* 1 1 00 0 1* 1
0 0 0 1*0 1 0 1
Sabemos que
��� � <1$� + %� = ���0���������
vj
ui
Asignación Personal en Call Centers (Workforce Management)
Donde:
T, O, K Conjuntos de Períodos, Grupos y Especificaciones de turno�P Costo
7P Variable de decisión para la cantidad de turnos«PQR/�P=g» conjunto de esp. de turnos tales que su grupo es g
�P,� Matriz de Especif. de turno. Tienen asoc. grupo y costo
�,T Constante con el valor de Staffing para el período t y grupo g
(Koole, Bulhai, Pot) 2007
Problema de Asignación Lineal
Formulación del problema con variables dummies
UV,W,X UV,Y,X
UW,Z,X
• La introducción de variables dummy
permite una reducción significativa de las
variables de decisión: 3[ 3 2[ contra
M(2[�� 3 1�• La variable U\],\,X especifica la cant. de
agentes que son removidos del grupo g’ para trabajar en el grupo g que tiene
menos skills. Si no están presentes todas las
combinaciones de skills en los grupos, la
reducción es aún mayor
Salida: Turnos armados
Gracias……