Появилась необходимость решать следующую задачу:
Имеется k наборов из не более чем n типов элементов. В i-й набор

элемент j-го типа входит

раз. Требуется найти такое подмножество I множества {1..k}, чтобы общее количество элементов j-го типа в наборах с номерами из I было не менее некоторого наперёд заданного

и разность между общим количеством и

была минимальна.
Это в первом приближении, потом скорее всего другие ограничения возникнут.
Где-то задача в таком виде описана? Чтобы не изобретать велосипед.