Aproximación a través de coeficiente de rendimiento
Un ejemplo simple de heurística puede ser:
- Ordenar los elementos por el índice precio/peso, de mayor a menor. En caso de empate, el de menor peso. En caso de empate, por orden alfabético.
- Mientras queden elementos en la lista:
- Tomo el primer elemento de la lista y lo quito de la lista:
- Si entra en la mochila, lo agrego y recalculo el espacio disponible
Evaluación de la Heurística
Debemos encontrar una forma de evaluar la heurística, para eso, la analizaremos en el peor caso. Definiendo a como el valor de la solución óptima, y como el valor de la solución obtenida tras la aplicación de una heurística, entonces hallamos el índice de performance de la heurística como
La aproximación definida anteriormente tiene un índice de performance tendiendo a , en el peor caso.
Mejoramiento a través de la comparación con el elemento crítico
Para esta mejora, definimos el elemento crítico como el primer elemento que, en caso de incluirlo, se excede de la capacidad permitida. La heurística se puede mejorar agregando un paso posterior que consiste en comparar al resultado obtenido con el beneficio del elemento crítico, . El resultado obtenido sería
Esta mejora causa que el peor índice de performance sea igual a:
Análisis de Cotas
Para la aproximación anterior, evaluamos las heurísticas utilizando su valor óptimo, pero este valor no siempre es conocido. Para eso, debemos hallar alguna cota superior para nuestro problema.
Relajación Lineal
Si resolvemos el problema con relajación lineal, obtendremos una solución óptima que será siempre mayor o igual a la solución obtenida con variables enteras.
Definimos como la capacidad restante luego de introducir todos los elementos previos al elemento crítico
Debemos introducir todos los elementos previos, el elemento crítico, y luego introducir tanto elemento crítico como podamos (fraccionándolo)
Dantzig
A la solución anterior, Dantzig le aplicó una condición de integralidad. La cota superior será el entero menor más cercano a la cota resuelta por relajación lineal, ya que nunca podremos encontrar un valor de óptimo no entero.
Martello & Toth
Ellos superaron la cota de Dantzig, estableciendo la integridad del elemento crítico. Es decir, plantean dos cotas, una si se ingresa el elemento crítico, y otra si no se ingresa el elemento crítico.
Si no se ingresa el elemento crítico, entonces el término es igual al de Dantzig, pero fraccionando el elemento siguiente al elemento crítico.
Para ingresar el elemento crítico, debemos quitar obligatoriamente uno de los elementos del intervalo. Para esto, fraccionamos el último elemento antes del crítico, retirando tanto de este elemento como sea necesario para poder ingresar el elemento crítico.
Finalmente, la cota real estará dada por el máximo de estas dos cotas, como: