¿Existe un algoritmo para resolver el problema de la mochila 0/1 acotada multidimensional en PTIME?

Si la mochila es 0/1, no hay necesidad de mencionar que está limitada.

No existe tal algoritmo conocido, porque al igual que un problema normal de mochila 0/1, la variante multidimensional todavía es NP-completa y para todos los propósitos prácticos [math] \ text {P} \ ne \ text {NP} [/ math] . Agregar dimensiones no facilitó exactamente el problema.

Sin embargo, existe un algoritmo que se ejecuta en tiempo polinómico con respecto a los límites y los límites de peso, en oposición al tamaño de la entrada. Esto no está en PTIME (que es lo mismo que solo P), pero aún es un algoritmo razonablemente rápido.

Deje que [math] DP (c, \ vec {w}) [/ math] represente el valor máximo que puede obtener utilizando solo los primeros elementos [math] c [/ math] mientras que cada dimensión de peso de los elementos utilizados es exactamente igual a dimensión respectiva en el vector [math] \ vec {w} [/ math].

Tenga en cuenta que [matemáticas] DP (0, \ vec {0}) = 0 [/ matemáticas] y [matemáticas] DP (i, \ vec {w}) = \ max_ {j <i} DP (j, \ vec { w} – \ vec {w_i}) + v_i [/ ​​math], donde [math] \ vec {w_i} [/ math] es el vector de peso del elemento [math] i [/ math] -th y [math] v_i [/ ​​math] es el valor del elemento [math] i [/ math] -th.

La solución al problema será el máximo de [math] DP (c, \ vec {w}) [/ math] para todos los valores posibles de [math] c [/ math] y [math] \ vec {w} [ /matemáticas].

More Interesting

En IA, ¿los datos son más importantes que los algoritmos?

¿Cuál es el algoritmo de aprendizaje automático requerido para el asistente virtual?

Cómo verificar si existe una ruta simple entre los nodos a y b de modo que pase a través del nodo c

¿Qué es más rápido, encontrar un elemento en una tabla hash o en una lista ordenada? ¿Suena fácil? Pensar, repensar y comentar.

Quiero construir una casa de piedra óptima, usando una computadora para decidir la disposición de las piedras. ¿Cómo podría funcionar esto?

¿Cuáles son algunas estrategias para principiantes para los algoritmos comerciales?

¿Por qué la mayoría de las entrevistas de empresas basadas en productos están obsesionadas con los algoritmos en lugar de las habilidades reales de resolución de problemas?

¿Cuál es la mejor manera de entender la recursividad, especialmente en los árboles?

¿Es posible crear un algoritmo de proximidad a la muerte?

¿Qué estructuras de datos y algoritmos básicos se deben aprender antes de comenzar la programación competitiva?

¿Puedo comenzar a aprender visión por computadora sin pasar por algoritmos de aprendizaje automático?

Si tengo un buen conocimiento de Java, C ++, algoritmos y estructuras de datos y quiero ser un profesional independiente. ¿Cuánto puede ganar alguien con estas habilidades?

¿Qué consejos y técnicas puedo aprender para retener mi comprensión de algoritmos y estructuras de datos?

¿Es posible implementar dos pilas usando una matriz?

¿Es cierto que no debería importarme tanto aprender lenguajes de programación sino construir una gran base de estructuras de datos y algoritmos?