Este problema admite múltiples formulaciones según se dé uno u otro significado a las variables y
. Matemáticamente, se puede plantear como un problema de programación binaria así:
Encontrar para un vector de valoresy otro de volúmenes
un vector binario de selección
con el que
indica que se ha seleccionado el j-ésimo objeto, de modo que haga máximo el valor total
sujeto a la condición de capacidad limitada
, es decir:
Se define por comodidad el vector de valores específicosa través de
.
La representación de este problema para resolverlo mediante un AG es elemental: los individuos del espacio de búsqueda coinciden con los puntos
del dominio del problema. La j-ésima posición del genotipo señala la presencia o ausencia de j-ésimo objeto en la mochila. Esta representación es la más sencilla y también la más natural dado que los genes tienen un significado claro e inmediato. Además, si se ignora la restricción de capacidad (espacio de búsqueda irrestricto) existe una correspondencia biunívoca entre los individuos y los puntos del dominio, por lo que la representación es perfecta.
Para resolver este otro problema se ha modificado el programa desarrollado en la sección . Simplemente ha habido que cambiar la función de evaluación de forma que implemente la ecuación
, como una clase descendiente de eoEvalFunc.
En las tablas y
podemos ver los resultados obtenidos al resolver este problema utilizando las versiones secuencial y paralelas (con las diferentes estrategias de migración) del programa desarrollado.