Imagen del problema knapsack

Knapsack

El problema de la mochila, también conocido como "knapsack problem" en inglés, es un desafío clásico en la optimización combinatoria. Este problema se basa en una situación en la que se tiene una mochila de capacidad limitada y una serie de objetos con diferentes valores y pesos. El objetivo es determinar qué objetos deben colocarse en la mochila para maximizar el valor total, teniendo en cuenta la capacidad máxima de la mochila.

El problema se plantea de la siguiente manera: se tienen n objetos, cada uno con un valor y un peso asociados. La mochila tiene una capacidad máxima, es decir, solo puede contener hasta cierto peso. El desafío radica en seleccionar una combinación de objetos que maximice el valor total sin superar la capacidad de la mochila.

Existen diferentes variantes del problema de la mochila, como la versión binaria en la que se debe tomar una decisión binaria (tomar o no tomar) para cada objeto, o la versión fraccionaria en la que se pueden tomar fracciones de los objetos. En este caso, se está trabajando con la versión binaria.

El problema de la mochila es conocido por ser NP-completo, lo que significa que no hay un algoritmo eficiente conocido para resolverlo en tiempo polinomial para todas las instancias posibles.

El problema de la mochila tiene aplicaciones prácticas en diversos campos, como la gestión de inventarios, la optimización de recursos en logística, la planificación financiera y la asignación de recursos en proyectos. Su estudio y resolución han contribuido al desarrollo de algoritmos y estrategias de optimización en general.

Interpretación de los resultados
En este problema los métodos difieren en el número de variables que generan. En el caso de los simuladores y el ordenador real, se generarán tantas variables como objetos hay, y si el valor de la variable es 1 quiere decir que cogemos ese objeto, y si es 0 no lo cogemos.

En el caso del annealer y los métodos clásicos se generan más variables, pero, si por ejemplo trabajamos con 5 objetos, sólo tendremos en cuenta el valor de las primeras 5 variables, con el mismo criterio descrito antes, e ignoramos el resto. Por ejemplo, en una instancia con 5 objetos nos sale

x0: 1, x1: 0, x2: 1, x3: 1, x4: 0, x5: 1, x6: 0, x7: 0, x8: 0,

lo que quiere decir que escogemos el primer objeto, el tercero y el cuarto.

Formato de los archivos
A continuación se especifica el formato para cargar problemas a través de un archivo .txt. Está compuesto de las siguientes 3 líneas

Dato de la línea Ejemplo
Número de repeticiones 1
Peso máximo 10
Valores de los objetos 10,7,5,3,1
Pesos de los objetos 4,6,3,2,5

Problema

Cargar problema a través de archivo

Cargar problema manualmente



Agregar objeto

Resolver el problema

Datos del problema

Peso máximo:
Número de repeticiones:
Número de objetos:
Valores de los objetos:
Pesos de los objetos:
Salida
Falta un valor o un peso para el objeto
Los parámetros introducidos en el problema no son correctos o completos.

Por favor, asegúrese de que el peso máximo y el número de repeticiones son mayores que 0 y de que hay objetos cargados.