Я работаю над проблемой, аналогичной Bin packing problem.Алгоритм утилизации равных выработок
Проблема
У меня есть несколько бункеров. В каждом бункере содержится несколько предметов с одинаковым весом (например, 1, 2, 5, 10 кг). Количество элементов в каждом бункере отличается. Я должен реализовать алгоритм, который вычисляет количество элементов, которые должны быть распределены, чтобы достичь определенного веса, чтобы в течение большего количества операций бункеры были пустыми примерно в одно и то же время.
Пример
- В1 имеет 50 элементов с весом 1 кг
- В2 имеет 90 элементов с весом 2 кг
- В3 имеет 80 элементов с весом 5 кг
- B4 имеет 50 элементов с весом 10 кг
алгоритм должен вычислить NU который должен располагать до 45 кг. Алгоритм должен возвращать результат, аналогичный: 10 * B1 + 3 * B3 + 1 * B4 = 45 кг.
Я хотел бы знать, существует ли какой-либо известный алгоритм, который может быть использован для решения моей проблемы. У меня уже есть алгоритм, который вычисляет все перестановки, необходимые для распределения предметов, необходимых для ожидаемого веса, но у меня есть проблемы, чтобы выяснить, какую перестановку я должен выбрать в зависимости от доступности элементов в каждом ящике.