Vous êtes sur la page 1sur 10

Problema de cubrimiento (set covering)

Existen m caractersticas y n combinaciones (subconjuntos) de dichas


caractersticas. La eleccin de una combinacin implica realizar todas las
caractersticas de la misma. Se trata de minimizar el coste total de las
combinaciones elegidas de manera que se cubra o posea cada caracterstica i
al menos una vez. Los datos son c j el coste de elegir la combinacin j y la
matriz de pertenencia de cada caracterstica i a cada combinacin j.
Matriz de pertenencia

aij = 1 si la caracteristica i pertenece a lacombinacin j


0
sino pertenece

Denominamos las variables

x j= 1 si se elige la combinacion j
0
en cualquier otro caso

El problema se formula de la siguiente manera

min C j x j
j=1

Cada caracterstica i del conjunto de todas las combinaciones j que la poseen


debe ser escogida al menos una vez.
n

a ij x ij 1 i=1, . ,m
j=1

x j { 0,1 } j=1, . , m
Ejemplo:
Una compaa area necesita asignar sus tripulaciones para cubrir todos sus
vuelos. En particular, quiere resolver el problema de asignar tres tripulaciones
con base en San Francisco a los vuelos listados en la primera columna de la
tabla. Las otras columnas muestran las 12 secuencias factibles de vuelos para
una tripulacin cualesquiera. Los nmeros de cada columna indican el orden de
los vuelos. Se necesita elegir tres secuencias (una por tripulacin) de manera
que se cubran todos los vuelos. Se permite tener ms de una tripulacin en un
vuelo, donde la/s tripulacin/es extra viajan como pasajeros, pero por convenio

laboral la tripulacin extra cobra como si estuviera trabajando. El coste de


asignacin de una tripulacin a cada secuencia de vuelos se da en millones de
euros en la ltima fila. El objetivo es minimizar el coste total de asignacin de
las tres tripulaciones para cubrir todos los vuelos. Resolver el mismo problema
para el caso en que no se permite el vuelo de una tripulacin fuera de servicio
en un vuelo. Asignacin de tripulaciones, tomado de [Hillier y Lieberman,
2002].

Se definen las variables del problema como

x j= 1 si se asigna la secuencia j ,
0
en cualquier otro caso

x j { 0,1 } j=1, . , 12

La funcin

objetivo ser
min 2 x 1 +3 x 2+ 4 x 3+ 6 x 4 +7 x5 +5 x 6 +7 x 7+ 8 x 8 +9 x 9 +9 x 10+ 8 x 11 + 9 x 12
Cobertura de cada vuelo al menos una vez

x 1+ x 4 + x 7 + x 10 1(SFLA)

x 2+ x 5 + x 8 + x11 1(SFDenver)
x 3+ x 6 + x 9 + x 12 1(SFSeatlle)
Asignacin de las tres tripulaciones
12

x j =3
j=1

Las soluciones ptimas son

x 3=x 4 x11 =1 y el resto 0

x 1=x5 =x 12=1

el resto 0, ambas con coste 18 millones de .


Si no se permite que una tripulacin fuera de servicio vuele en un avin las
restricciones de cobertura de mayor o igual pasan a ser de igualdad.
Problema de empaquetado (set packing)
Se tienen que realizar m proyectos divididos en n paquetes. La eleccin de un
paquete implica realizar todos los proyectos del mismo. Se trata de maximizar
el beneficio total de manera que cada proyecto i del conjunto de todos los
paquetes que lo incluyen no pueda ser elegido ms de una vez. c j es el
beneficio de elegir el paquete j, la matriz de pertenencia de cada proyecto i a
cada paquete j es

aij 1 si i pertenece a j
0 si no pertenece
Las variables del problema son

x j= 1 si se elige el paquete j
0 en cualquier otro caso
La formulacin del problema es la siguiente
n

max C j x j
j=1

a ij x ij 1 i=1, . ,m
j=1

x j { 0,1 }

MTODO HNGARO

El mtodo Hngaro es un mtodo de optimizacin de problemas de asignacin,


conocido como tal gracias a que los primeros aportes al mtodo clsico
definitivo fueron de Dnes Knig y Jen Egervry dos matemticos hngaros.
El algoritmo tal como se detallar a continuacin est diseado para la
resolucin de problemas de minimizacin nicamente, ser entonces cuestin
de agregar un paso adicional para abordar ejercicios de maximizacin.

1. Antes que nada cabe recordar que el mtodo hngaro trabaja en una
matriz de costos n*m (en este caso conocida como matriz m*m, dado
que el nmero de filas es igual al nmero de columnas n = m), una vez
construida esta se debe encontrar el elemento ms pequeo en cada fila
de la matriz.

2. Una vez se cumple el procedimiento anterior se debe construir una


nueva matriz n*m, en la cual se consignarn los valores resultantes de la
diferencia entre cada costo y el valor mnimo de la fila a la cual cada
costo corresponde (valor mnimo hallado en el primer paso).

3. Este paso consiste en realizar el mismo procedimiento de los dos pasos


anteriores referidos ahora a las columnas, es decir, se halla el valor
mnimo de cada columna, con la diferencia que este se halla de la matriz
resultante en el segundo paso, luego se construir una nueva matriz en
la cual se consignarn los valores resultantes de la diferencia entre cada
costo y el valor mnimo de la columna a la cual cada costo corresponde,
matriz llamada "Matriz de Costos Reducidos".

4. A continuacin se deben de trazar lneas horizontales o verticales o


ambas (nicamente de esos tipos) con el objetivo de cubrir todos los
ceros de la matriz de costos reducidos con el menor nmero de lneas

posibles, si el nmero de lneas es igual al nmero de filas o columnas


se ha logrado obtener la solucin ptima (la mejor asignacin segn el
contexto de optimizacin), si el nmero de lneas es inferior al nmero
de filas o columnas se debe de proceder con el paso 5.

5. Este paso consiste en encontrar el menor elemento de aquellos valores


que no se encuentran cubiertos por las lneas del paso 4, ahora se
restar del restante de elementos que no se encuentran cubiertos por
las lneas; a continuacin este mismo valor se sumar a los valores que
se encuentren en las intersecciones de las lneas horizontales y
verticales, una vez finalizado este paso se debe volver al paso 4.

EJEMPLO:
La compaa de manufactura "Jimnez y Asociados" desea realizar una
jornada de mantenimiento preventivo a sus tres mquinas principales A, B y C.
El tiempo que demanda realizar el mantenimiento de cada mquina es de 1
da, sin embargo la jornada de mantenimiento no puede durar ms de un da,
teniendo en cuenta que la compaa cuenta con tres proveedores de servicios
de mantenimiento debe de asignarse un equipo de mantenimiento a cada
mquina para poder cumplir con la realizacin del mantenimiento preventivo.
Teniendo en cuenta que segn el grado de especializacin de cada equipo
prestador de servicios de mantenimiento el costo de la tarea vara para cada
mquina en particular, debe de asignarse el equipo correcto a la mquina
indicada con el objetivo de minimizar el costo total de la jornada. Los costos
asociados se pueden observar en la siguiente tabla:

1. Encontramos el menor elemento de cada fila

2. Construimos una nueva matriz con las diferencias entre los valores de la matriz
original y el elemento menor de la fila a la cual corresponde.

3. En la matriz construida en el paso anterior se procede a efectuar el paso 1 esta


vez en relacin a las columnas, por ende escogemos el elemento menor de
cada columna. Igualmente construimos una nueva matriz con la diferencia
entre los valores de la matriz 2 y el elemento menor de la columna a la cual
corresponde cada valor.

4. En este paso trazaremos la menor cantidad de combinaciones de lneas


horizontales y verticales con el objetivo de cubrir todos los ceros de la matriz de
costos reducidos.

Como se puede observar el menor nmero de lneas horizontales y/o verticales


necesarias para cubrir los ceros de la matriz de costos reducidos es igual a 2,
por ende al ser menor que el nmero de filas o columnas es necesario recurrir
al paso 5.
5. En este paso seleccionamos el menor elemento de los elementos no
subrayados.

Luego se procede a restarse de los elementos no subrayados y a adicionarse a


los elementos ubicados en las intersecciones de las lneas, en este caso existe
una nica interseccin (3).

Ahora ya efectuado este paso pasamos al paso 4.

Ahora observamos cmo se hace necesario trazar tres lneas (la misma
cantidad de filas o columnas de la matriz) por ende se ha llegado al tabulado
final, en el que por simple observacin se determina las asignaciones ptimas.

Por ende la asignacin que representa el menor costo para la jornada de


mantenimiento preventivo determina que el Equipo 1 realice el mantenimiento
de la Mquina 1, el Equipo 2 realice el mantenimiento de la Mquina 3 y el
Equipo 3 realice el mantenimiento de la Mquina 2, jornada que tendr un
costo total de 17 unidades monetarias.

Problema de particin (set partitioning)


La formulacin es similar al problema anterior pero en este caso exactamente
una caracterstica (proyecto) del conjunto de combinaciones (paquetes) que la
contienen debe ser elegida.
n

max C j x j
j=1

a ij x ij=1i=1, . , m
j=1

x j { 0,1 }

Problema de asignacin
Se trata de asignar la realizacin de n tareas a n personas (mquinas, etc.).
Este problema es un caso particular del problema de transporte. Por
consiguiente las variables toman valores enteros sin exigir esta condicin en la
formulacin del problema.

Consiste en minimizar el coste total de realizar las tareas sabiendo que cada
tarea i debe ser hecha por una sola persona y cada persona j debe realizar una
nica tarea, siendo C j el coste de realizar la tarea i por la persona j. Las
variables del problema son

x j= 1 si se asignala tarea ia la persona j , i, j


0
en cualquier otro caso

min C j x j
i=1 j=1

x ij =1i =1, . , n
j=1
n

x ij =1 j=1, . , n
i=1

x ij 0