Линейное программирование, группировка двоичных переменных
Я новичок в линейном программировании, пробовал несколько примеров.
Ищу помощь по решению/подходу для приведенной ниже проблемы.
Я не уверен, что это линейное программирование, или мне следует поискать другие варианты.
Здесь я пытаюсь определить дизайнеров, у которых лучшие затраты на завершение всего платья.
Условия: Необходимо получить полную одежду. Я могу выбрать Пола 1 или Пола 2, но не обоих, хотя комбинация этих двух может быть наиболее выгодной.
Любая помощь будет принята с благодарностью.
Вот модель, которую я связал для реализации в решателе Excel.
Вот результат по лучшей цене. Я не смог найти способ определить условие для использования Павла1 или Павла2.
Понял, что для задач по математике это совершенно отдельный портал. Опубликовано в https://math.stackexchange.com/
https://math.stackexchange.com/questions/4668967/linear-programming-binary-variable-grouping
1 ответ
Конечно, это можно сформулировать как LP. Вот идея для начала:
У вас есть два разных набора, которые вам нужно будет использовать в своей формулировке:
items = {shirt, trouser, jacket}
designers = { ... }
Затем нам нужно представить себе полезную переменную решения... А как насчет двоичной переменной, которая указывает, что конкретный дизайнер создает конкретный предмет...
make[d, i] ∈ {0, 1} 1: if designer d makes item i
Остальные выражения должны вытекать из этого.
Редактировать: Пол против Пола
Вам нужно будет ввести две новые двоичные переменные (квадраты в Excel), которые указывают, использовался ли каждый «пол», а затем связать их с использованием каждого «пола», а затем связать их сумму меньше или равной 1 для обеспечения соблюдения. или-или.
sum(paul1 items) <= use_paul1 * 3
sum(paul2 items) <= use_paul2 * 3
затем
use_paul1 + use_paul2 <= 1