Пример задачи следующий: на складе имеются 3 вида товаров: картошка, морковь и огурцы с весами 50 кг., 100 кг. и 150 кг. Их необходимо разгрузить по 3-ем фурам с желаемой загруженностью в 100 кг., 200 кг. и 300 кг. Причем картошку нельзя грузить на 3юю фуру. Казалось можно было просто товары просто равномерно распределить по 3-ем фурам (1/6 всех товаров в 1ую фуру, 2/6 всех товаров во 2ую фуру и 3/6 всех товаров в 3юю фуру) однако имеется ограничение по картошке, из-за чего в 3юю фуру картошка не будет грузиться, из-за ее загруженность будет на 25 кг. (3/6 картошки) меньше предполагаемого уровня, а в 1ые 2 фуры будет загружено больше на 8,3 кг. и 16,67 кг. картошки соответственно. Однако, теперь необходимо, чтобы эти недостающие 25 кг. в 3ей фуре были компенсированы за счет других товаров. Цель - достигнуть максимально равномерного уровня загруженности во всех 3-ех фурах (загруженность = вес всех товаров в фуре / желаемый уровень загрузки). Кстати, почему пишу желаемый уровень загрузки - потому что в фуры можно грузить сколько угодно товаров если в другие фуры больше нельзя (например если бы в нашей задачи стояло условие - что во 2ую и 3юю фуру можно грузить только картошку, то все огурцы и морковь пришлось бы грузить в 1ую фуру, что явно выше 100 кг.).
Сразу замечу, что количество товаров, их веса, количество фур и их желаемые уровни загрузки могут постоянно меняться, ровно как и ограничения по загрузке. Попытался сделать через solver, вкладываю документ. Он почему-то в 1 момент в целом начал путаться в арифметике, ну и ограничение в 200 переменных сильно мешает.
Друзья, посмотрите пожалуйста, может чем помочь сможете
Спасибо!