Перебор плох из-за недостаточности ресурсов или в силу сложности реализации, сиречь написания читаемого кода?
Насколько я знаю, пока не пробовали. На всякий случай хорошо было бы иметь и другие методы.
И ещё вопрос, число рюкзаков штучное или статистическое?
Фиксированное количество (то ли

, то ли

, мне точно не сказали).
Содержательно "рюкзаки" — это рабочие, занимающиеся сборкой, которых надо загрузить работой достаточно равномерно. Попутно есть надежда, что это позволит увеличить объём производства. На практике часто получается так, что один уже свою работу сделал и сидит без дела, а зарплата у них одинаковая. Поэтому занятые ему завидуют. Там есть какие-то технологические ограничения, которые не позволяют загрузить "бездельника" работой, пока остальные не закончат. Составить распределение заданий раз и навсегда нельзя, потому что набор устройств, которые они собирают, постоянно меняется.
Но лучше, наверное, начать с динамического программирования
Надо будет попробовать.