Линейное программирование, группировка двоичных переменных

Я новичок в линейном программировании, пробовал несколько примеров.

Ищу помощь по решению/подходу для приведенной ниже проблемы.

Я не уверен, что это линейное программирование, или мне следует поискать другие варианты.

Здесь я пытаюсь определить дизайнеров, у которых лучшие затраты на завершение всего платья.

Условия: Необходимо получить полную одежду. Я могу выбрать Пола 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
Другие вопросы по тегам