Я пытаюсь найти разумный алгоритм для этой проблемы:
Допустим, у вас есть куча шаров.Каждый шар имеет как минимум один цвет, но также может быть разноцветным.Каждый шар также имеет номер на нем.Есть также несколько коробок, каждый из которых имеет только один цвет.Цель состоит в том, чтобы максимизировать сумму чисел на шарах в коробках, и единственные правила:
- , чтобы поместить мяч в коробку, он должен по крайней мере иметьцвет на нем
- вы можете положить только один шарик в каждую коробку.
Например, вы можете положить синий и зеленый шарик в синюю или зеленую коробку, но нев красное поле.
Я придумал несколько оптимизаций, которые очень помогают с точки зрения времени выполнения.Например, вы можете отсортировать шары в порядке убывания значения баллов.Затем, когда вы переходите от наибольшего числа к низшему, если шар имеет только один цвет, и нет других шариков с более высокой точкой, содержащих этот цвет, вы можете поместить его в этот ящик (и, таким образом, удалить этот ящик и этот шар изостальные комбинации).
Мне просто любопытно, есть ли какой-то динамический алгоритм для этого типа проблемы, или это просто скрытая задача коммивояжера.Это помогло бы, если бы я знал, что было не более X цветов?Любая помощь очень ценится.Спасибо!
Изменить - вот простой пример:
Шарики:
- 1 красный шар - 5 баллов
- 1 синий шар- 3 балла
- 1 зеленый / красный шар - 2 балла
- 1 зеленый / синий шар - 4 балла
- 1 красный / синий шар - 1 балл
Коробки:
- 1 красный
- 1 синий
- 1 зеленый
Оптимальное решение: