Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
гл.1-5.doc
Скачиваний:
23
Добавлен:
05.12.2018
Размер:
934.91 Кб
Скачать

Глава 4. Задача линейного программирования и ее оптимальное решение

4.1. Определение линейности функций

Задачей линейного программирования (ЗЛП) называется задача математического программирования, в которой минимизируемым или максимизируемым критерием является линейная функция, причем на переменные налагаются ограничения, которые так же представляются линейными функциями.

Линейной называется комбинация скаляров или векторов, обычно обозначаемых Хi, если она может быть записана в виде:

с1Х12Х2+…+сnХn

где ci – const. Например, функция:

1+3х2+5х3+2

линейна относительно переменных х1, х2, х3 , тогда, как функция

121х2+3

нелинейна относительно тех же переменных

Величины Х1, Х2, …, Хn – называются линейно зависимыми, если для некоторого набора коэффициентов ci в предположении, что не все они равны 0, имеет место следующее равенство:

c1Х1+c2Х2+ … +cnХn=∑ciХi=0.

Например, линейно зависимыми будут Х1 и Х2, если Х1 – цена единицы товара, а Х2 – выручка от продажи партии этого товара.

С другой стороны, если ∑ciXi=0 только тогда, когда все коэффициенты ci =0, то Х1, Х2, …, Хn называются линейно независимыми..

К ЗЛП относят планирования промышленного производства, системы оплаты контрактов, распределение кадров, получение мах прибыли и др.

Однако широкое привлечение внимания к ЗЛП привело к тому, что была преувеличена ее значимость, упускалось из виду то, что она применима лишь тогда, когда выполняются лежащие в ее основе гипотезы, базирующиеся на линейном математическом представлении реального мира. Обычно, эти гипотезы сильно упрощают решение, поэтому математики всегда стремятся линеаризовать исходную нелинейную задачу.

4.2. Постановка задачи линейного программирования

Хотя задача линейного программирования может быть сформулирована по разному, запишем ее в следующей форме :

максимизировать функцию

n

Y

i=1

=∑ cixi (4.2.1)

при ограничениях

aijxi - bj ≥ 0, (j=1,...,m); (4.2.2)

xi ≥ 0, (i=1,...,n); (4.2.3)

где а, b, c – постоянные коэффициенты, а xi – искомые переменные.

Отметим, что задача максимизации Y легко превращается в задачу минимизации при смене знака в целевой функции (4.2.1.):

n

Y

i=1

= –∑ cixi . (4.2.4)

Пример. Приведем пример постановки типичной ЗЛП.

Определить неотрицательные значения х1, х2 и х3, соответствующие максимуму функции у=3х1+5х2+4х3 при наличии следующих ограничений:

1+3х2≤8,

2+5х3≤10,

1+2х2+4х3≤15.

Задача линейного программирования, представленная в виде (4.2.1), (4.2.2), (4.2.3) называется стандартной формой ЗЛП. Особенность данной формы состоит в том, что в ней система функциональных и прямых ограничений состоит из одних неравенств, переменные xi ≥ 0 являются положительными, а целевая функция может стремиться как к минимуму, так и к максимуму. Вектор Х = (х1, х2,…,хn), удовлетворяющий системе ограничений (4.2.2), (4.2.3) называется допустимым решением, или планом ЗЛП, т.е. ограничения (4.2.2), (4.2.3) определяют область допустимых решений, или планов (область определения ЗЛП)

Если математическая модель ЗЛП имеет вид

n

Y

i=1

=∑ cixi → min; (4.2.5)

n

i=1

aijxi = bj,, (j=1, ..., m); (4.2.6)

bj, ≥ 0;

xi ≥ 0, (i=1, ..., n); (4.2.7)

то говорят, что задача представлена в канонической форме.

Любую задачу линейного программирования можно свести к ЗЛП в канонической форме. Общее правило приведения ЗЛП к каноническому виду состоит в следующем:

  1. если в исходной задаче требуется определить максимум линейной функции, то следует изменить знак и искать минимум на этой функции;

  2. если в ограничениях правая часть отрицательна, то следует умножить это ограничение на –1;

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

  4. если на некоторую переменную хk не накладывается условие неотрицательности, то она заменяется (в целевой функции и во всех ограничениях) разностью между двумя новыми неотрицательными переменными:

хk = х'k – х''k , х'k ≥ 0, х''k ≥ 0.

В преобразованной задаче все переменные неотрицательные.

Переход от стандартной формы ЗЛП к канонической. Разнообразие форм ЗЛП затрудняет исследование их общих особенностей и создание общих методов и вычислительных алгоритмов для их решения. Поэтому естественно рассмотреть способ сведения любой ЗЛП к наиболее простой и удобной для исследования форме — канонической.

Приведение ЗЛП к каноническому виду осуществляется введением в левую часть соответствующего ограничения вида (4.2.2) k-й дополнительной переменной xn+k ≥ 0 со знаком «–» в случае ограничения типа ≥ и со знаком «+» в случае ограничения типа ≤. Дополнительные переменные xn+k называются выравнивающими балансовыми переменными. Добавив эти выравнивающие переменные в неравенства, превращаем их в уравнения.

Пример. Пусть задача линейного программирования задана в стандартной форме: Y = 2х1+3х2 → max

при ограничениях:

х1+3х2 ≤ 18,

12 ≤ 16,

х2 ≤ 5,

1 ≤ 21,

х1 0, х2 0.

Запишем эту задачу в каноническом виде, для чего обратим имеющуюся систему неравенств в равенства, вводя для этого в каждое из них соответствующую неотрицательную выравнивающую переменную:

х1+3х2 + х3 =18,

1+ х2 + х4 =16,

х2 + х5 =5,

1 + х6 =21.

В данном примере все дополнительные переменные введены со знаком «+», так как рассматриваемые неравенства имеют знак « ≤ ».