Estoy tratando de encontrar un algoritmo razonable para este problema:¿Este problema es NP-difícil?
Digamos que tiene un montón de bolas. Cada pelota tiene al menos un color, pero también puede ser multicolor. Cada pelota también tiene un número en ella. También hay un montón de cajas que tienen un solo color. El objetivo es maximizar la suma de los números de las bolas en las cajas, y las únicas reglas son:
- con el fin de colocar una bola en una caja, que tiene que tener al menos el color del cuadro de en él
- solo puede poner una pelota en cada caja .
Por ejemplo, se puede poner una bola azul y verde en una caja azul o una caja verde, pero no en una caja roja.
He encontrado algunas optimizaciones que ayudan mucho en términos de tiempo de ejecución. Por ejemplo, puede clasificar las bolas en orden descendente de valor de punto. Luego, a medida que pasa del número más alto al más bajo, si la bola solo tiene un color y no hay otras bolas de punto más alto que contengan ese color, puede colocarlo en esa casilla (y así eliminar esa caja y esa bola del combinaciones restantes).
Solo tengo curiosidad por saber si hay algún tipo de algoritmo dinámico para este tipo de problema, o si es solo el problema del vendedor ambulante disfrazado. ¿Ayudaría si supiera que hay como mucho X colores? Cualquier ayuda es muy apreciada. ¡Gracias!
Editar - aquí está un ejemplo sencillo:
Bolas:
- 1 bola roja - 5 puntos
- 1 bola azul - 3 puntos
- 1 verde/bola roja - 2 puntos
- 1 bola verde/azul - 4 puntos
- 1 rojo/azul de la bola - 1 punto
Cajas:
- 1 rojo
- 1 azul
- 1 verde
óptima Solución:
- roja bola en caja roja
- bola azul en caja azul
bola verde/azul en caja verde
valor Total: 12 puntos (5 + 3 + 4)
Dado que todas las bolas tienen una caja para colocar, todas las organizaciones tienen el mismo valor de punto, ¿no? ¿O me estoy perdiendo algo? – TaslemGuy
¿Podría explicar el objetivo de "maximizar la suma de los números en los alls en los recuadros". ¿Quieres maximizar una sola caja? ¿Siempre usas todas las bolas disponibles? – JoshD
¿Qué es exactamente lo que quiere optimizar? ¿Suma de valores en una caja específica? ¿Suma de valores en todos los cuadros? – liori