Решение задачи выпуклого программирования

Рассмотрим один из методов выпуклого программирования - метод Эрроу-Гурвица.

Прежде всего найдем минимум целевой функции, пока не учитывая ограничения:

X1 = 3,26;

X2 = 4,53.

Проверка соответствия полученных X1 и X2 ограничениями:

x15,

x28,

2x1 + 2.5x2 16,

x12,

x24

показывает, что третье из них нарушено:

2x1 + 2.5x2 = 2×3.26 + 2.5×4.53 = 17.84 > 16,

т.е. наличного парка составов не хватает, поэтому X1 = 3,26 и X2 = 4,53 не будет решением задачи.

Положим, что запрещение использовать более 16 составов не является безусловным, но за использование каждого сверх 16 состава, назначается штраф, т.е. за нарушение на единицу третьего неравенства уплачивается условный «штраф» - l3 .

Положим далее, что можно нарушить первое неравенство (x15) и пропустить по первому участку больше пяти поездов в час. Однако за каждую лишнюю нитку графика сверх пяти наложен штраф l1 (индексы равны номерам нарушаемых неравенств).

Далее, полагаем, что если использование лишних ресурсов (составов, ниток графика) связано с уплатой штрафа, то экономия ресурсов в пределах рабочего парка (например, отказ от одного из 16 составов) награждается условной «премией» той же величины: l3 - за отказ от одного состава; l1 - от одной нитки графика. Для удобства эту премию можно представить как отрицательный штраф. Численные значения штрафов li пока не известны.

Далее решаем задачу заново, не рассматривая ограничения как безусловные запреты, а сводим к минимуму сумму реальных расходов F(x) с уплатой условных штрафов за перерасход ресурсов и вычетом условных премий за экономию. Обозначим сумму штрафов - R(x), тогда

R(x) = l1(X1 - 5) + l3 (2X1 + 2.5X2 - 16) =

= (l1+ 2l3 )X1 + 2.5l3X2 - 5l1 +16l3.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: