El problema mochila 0-1 (KP) se formula de la siguiente forma: (KP

Anuncio
El problema mochila 0-1 (KP) se formula de la siguiente forma:
(KP )
Maximizar
sujeto a
∑n
j=1 cj xj
∑n
aj xj ≤ b
xj ∈ {0, 1}
j=1
j = 1, . . . , n
donde n es el número de ı́tems, cj el valor del ı́tem j, aj el peso del ı́tem j, y b la
capacidad de la mochila (o contenedor). En la versión entera de este problema,
la variable está restringida a xj ≥ 0, entero, y en este caso indica el número de
objetos de tipo j que se van a introducir en el contenedor.
Entonces un problema tipo mochila en su forma habitual tiene n variables
binarias o enteras, una única restricción de tipo ≤, y es de tipo maximización.
La relajación lineal del problema mochila 0-1 (LKP) se formula de la siguiente forma:
(LKP )
Maximizar
sujeto a
∑n
j=1 cj xj
∑n
j=1
aj xj ≤ b
0 ≤ xj ≤ 1
j = 1, . . . , n
La práctia consiste en lo siguiente:
1. Definir en Mosel un problema mochila entero de tipo ≤. Los datos pueden
ser: n = 100, n = 300, n = 500, y coeficientes aleatorios. El valor óptimo
entero z en principio es desconocido.
2. Resolver la relajación lineal. En cualquier caso, puede usarse el algoritmo
de Dantzig basado en ordenación. Si n ≤ 300, puede usarse Mosel-Xpress,
AMPL o cualquier solver lineal, y obtener la solución x y el valor zLKP .
3. Obtener la solución redondeada x′ , y su valor z ′ . Pueden usarse las funciones de redondeo de floor() y ceil().
4. Encontrar el error o hueco absoluto ag = zLP − z ′ . Si ag = 0, la solución
actual x′ es óptima, y si ag es pequeño la solución estará cerca del óptimo.
También puede usarse el error relativo rg = 100(zLP − z ′ )/z ′ , que de el
error máximo en %.
5. Efectuar al menos 10 pasadas y encontar el hueco relativo promedio. Este
valor da una indicación de la eficicncia de la heurı́stica greedy.
1
Descargar