Преобразование условных выражений в линейные ограничения - PullRequest
0 голосов
/ 25 апреля 2018

Я пытаюсь преобразовать 3-е условие ниже в линейное ограничение. Я включил полную проблему и мой прогресс в иллюстративных целях.

Производитель рассматривает возможность изготовления трех продуктов a, b, c. Материалы, труд и прибыль для каждого продукта следующие.

продукт: (количество исходного материала, количество рабочих часов, прибыль)

a: (3,600)

b: (6500)

с: (10,8400)

В настоящее время доступно 12 000 единиц исходного материала и 12 000 часов труда. Указаны следующие дополнительные ограничения.

  1. Если компания решит произвести «а», то она должна произвести не менее 100 единиц.

  2. Если компания решит производить автомобили "b", то она должна произвести не менее 80 единиц.

  3. Если компания решит произвести «с», то она может произвести не более 120 единиц «а» и «b» (которые я интерпретирую как a + b <= 120, если «с» произведено, а + b с учетом материалов и трудовых ограничений в противном случае). </p>

Мне нужно сформулировать целочисленную линейную программу, чтобы максимизировать прибыль компаний, при этом соблюдая трудовые и материальные ограничения, а также 3 дополнительных ограничения, перечисленных выше.

Пока что я сделал следующее.

Я определяю Xa, Xb и Xc как количество произведенных a, b и c. Я ввожу двоичные переменные следующим образом:

Ya = 1, если Xa> 0, иначе 0.

Yb = 1, если Xb> 0, в противном случае 0.

Yc = 1, если Xc> 0, в противном случае 0.

Проблема тогда:

увеличить 200Xa + 300Xb + 400Xc

S.T.

Xa> = 0, Xb> = 0, Xc> = 0

Ya в {0,1}, Yb в {0,1}, Yc в {0,1}

3Xa + 6Xb + 10Xc <= 12 000 </p>

6Xa + 5Xb + 8Xc <= 12 000 </p>

Ха> = 100Я

Xb> = 80Yb

Как мне сформулировать последнее дополнительное ограничение?

Обновление:

После еще нескольких исследований. Xa + Xb <= 120 + M (1-Yc). Где М достаточно велико, чтобы Xa + Xb не было искусственно ограничено сверх материалов и трудовых ограничений. Оставьте это на тот случай, если кому-то еще это может помочь. </p>

1 Ответ

0 голосов
/ 25 апреля 2018

После еще нескольких исследований.Xa + Xb <= 120 + M (1-Yc).Где M> = 12000/5 - 120 = 2280.

Дополнительно добавить:

Ya + Yb + Yc <= 2 </p>

Поскольку постановка задачи ограничивает производствоXa, Xb и Xc одновременно.

...