¿Existe una versión del problema de la mochila en la que haya una restricción sobre qué objetos se pueden colocar en la bolsa?

Puede abordar esto utilizando la Programación lineal de enteros y utilizar los solucionadores de ILP existentes para calcularlo por usted: desea maximizar

valorA * a + … [a, b, … serán valores booleanos que denotan si ha elegido un objeto en particular]

habiendo satisfecho las condiciones

  • pesoA * a +… <= tamaño de mochila
  • a + c <= 1
  • a, b, … = 0 o 1

Puede haber una forma menos genérica que ahora no veo, aunque creo que no se puede esperar nada mejor porque incluso ignorando las propiedades de la mochila (tamaño, peso, valores) obtienes una versión mucho más simple donde solo quieres tome tantos objetos como sea posible bajo las restricciones de que a no puede estar junto con c etc. Esta versión simplificada es un problema de conjunto independiente y ya es NP-hard, por lo que no puede esperar ningún algoritmo polinomial para su versión más difícil. Sin embargo, los solucionadores de ILP deberían resolver esto fácilmente, incluso sin dar ninguna garantía de polinomialidad.

More Interesting

¿Utiliza el cerebro un proceso de recursión?

¿Cómo manejan las personas el error de profundidad de recursión máxima excedida sin reescribir el código de forma iterativa? (en la programación dinámica de arriba hacia abajo)

¿Cuáles son las características de un algoritmo codicioso?

¿Existe alguna fórmula o algoritmo que determine / calcule los precios del gas o del petróleo?

¿Qué es un promedio móvil y, algorítmicamente, cómo se calcula dicho conjunto?

¿Cómo manejan los sistemas de reputación los sesgos (sistémicos) que pueden distorsionar significativamente las clasificaciones basadas en tales sistemas?

¿Cómo se siente Bram Cohen al haber creado accidentalmente un algoritmo para el cifrado totalmente homomórfico?

Visión por computadora: ¿cuáles son los documentos de lectura obligatoria para el algoritmo de seguimiento de objetos?

Cómo comprender la recursividad en backtracking de campo profundo y todo relacionado, programación dinámica, etc.

¿Qué tipo de algoritmos se usaron en la generación de mapas aleatorios de los mapas de Age of Empires II?

¿Cómo puede 100 determinar el número de comparaciones en 'Búsqueda binaria'?

¿Cuáles son algunos algoritmos importantes que aún no están cubiertos en Mahout? ¿Qué algoritmos de ML le gustaría agregar a la caja de herramientas?

¿Por qué Google todavía muestra el tiempo de búsqueda en la página de resultados?

¿Cuál es el algoritmo utilizado para mostrar el orden de amigos que se muestra en toda la lista de amigos en Facebook?

¿Cómo puedo ser bueno en algoritmos si soy débil en matemáticas?