Для решения задач на выбор случайных предметов с ограничениями можно следовать общему алгоритму решения оптимизационных задач: 1
В частности, для решения задачи о рюкзаке с дополнительным ограничением на число типов предметов можно использовать метод динамического программирования. 3 На первом шаге алгоритма определяется максимальная стоимость формируемых виртуальных рюкзаков при их заполнении предметами только одного типа. 3 На втором и последующих шагах — при последовательном заполнении предметами двух типов, на третьем — трёх типов и т. д.. 3 При вычислениях текущего максимального наполнения виртуальных рюкзаков используются результаты, полученные на предыдущем и первом шагах. 3
Выбор метода зависит от конкретной задачи и её условий.