Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 1966

.pdf
Скачиваний:
8
Добавлен:
30.04.2022
Размер:
3.23 Mб
Скачать

c)

 

(x, y)

(1

x )3

x

 

0,

 

 

 

2

 

 

 

 

 

 

y1

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

d )

(x, y)

y

((1

x )3

 

x

 

) y

0

 

 

2

 

 

y1

1

 

1

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

Вточке (1,0) первое условие уже нарушается, т.к. –2 + 6 >

0.Следовательно, точка оптимума не удовлетворяет системе а) - d). Это произошло потому, что градиенты ограничений невыпуклой задачи оказались линейно зависимы в точке (1,0). ( Активными

ограничениями являются f1

и условие

f 2

x2

0 .

f1 (1,0)

(0, 1) ,

83

Задачи для самостоятельного решения

3.3.1.Найти условный экстремум в задачах

2) x1 max

(1 x1 )3 x2 0

 

 

 

 

 

 

x2

0

3) (x1

) 2

x22

 

max

 

x12

x22

1

 

 

 

 

 

x1

0

 

 

 

 

 

 

при

2,

1,

 

1

,

0,

1

2

 

 

 

 

 

 

3.3.2.Доказать, что определения 2 и 2' эквивалентны.

3.3.3.Доказать, что определения 3 и 3' эквивалентны.

3.3.4.Доказать замечание 2 к теореме 5.

3.3.5.Сформулировать и доказать теоремы, соответствующие диагональным связям приведенной таблицы.

4.ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ

4.1.Общая постановка задачи линейного программирования. Разные формы записи задач линейного программирования

Вобщем виде постановка задача линейного программирования (ЗЛП) выглядит следующим образом:

найти вектор x*

(x* ,..., x* ) , обеспечивающий критическое

 

1

n

(минимальное или максимальное) значение линейной функции

 

n

 

z(x)

c j x j

 

j1

иудовлетворяющий линейным ограничениям

84

a11x1

a12 x 2

...

a1n x n

(

)b1,

 

 

...

 

 

 

a m1x1

a m2 x 2

...

a mn x n

(

)bm ,

x1 0;...; x n

0 ( , нет требования на знак).

Векторная форма записи:

CT X min

A1X1 ... A n X n B, x 0.

Функцию z(x) называют целевой функцией ЗЛП, ее

критическое значение обозначают z* . Систему ограничений называют допустимым множеством, его элементы – планами задачи.

План x* на котором целевая функция принимает критическое значение называют решением задачи (оптимальной планом).

Рассмотрим наиболее часто используемые формы записи задачи линейного программирования.

Стандартная (симметричная):

n

 

 

 

 

 

 

 

c j x j

 

max

 

j

1

 

 

 

 

n

 

 

 

 

 

 

 

aij x j

 

bi , i

1,..., m ,

j

1

 

 

 

 

x j

0,

j

1,..., n.

Каноническая:

 

 

 

 

 

n

 

 

 

 

 

 

 

c j x j

 

max

 

j

1

 

 

 

 

n

 

 

 

 

 

 

 

aij x j

 

bi , bi

0, i 1,..., m ,

j

1

 

 

 

 

x j

0,

j

1,..., n.

Независимо от того, как записана исходная задача, ее можно

85

эквивалентно переписать в любой желаемой форме. При этом используется понятие эквивалентности задач.

Две задачи оптимизации называются эквивалентными, если они имеют одно и то же множество оптимальных точек.

Однако, так как при переходе от одного вида задачи к другому возможно изменение размерности задачи (увеличение числа переменных, увеличение числа ограничений), то следует в каждом конкретном случае аккуратно формулировать, как понимается эквивалентность данных задач. Существуют правила, позволяющие осуществить эквивалентные перезаписи задач.

1.Изменение цели критерия оптимизации возможно путѐм умножения исходной целевой функции на -1.

2.Изменение знака неравенства также возможно умножением

 

 

 

n

его на -1. Ограничение-равенство

aij x j bi можно записать в

 

 

j

1

виде системы двух неравенств:

 

 

n

 

 

 

aij x j

bi ,

 

j

1

 

 

 

n

 

 

 

aij x j

bi .

 

j

1

 

 

4.От ограничений неравенств можно перейти к равенствам, добавляя или отнимая неотрицательные новые переменные (далее –

 

 

 

 

 

 

n

дополнительные переменные).

Так,

неравенство

aij x j bi

 

 

 

 

 

j

1

эквивалентно системе

 

 

 

 

 

n

 

 

 

 

 

 

 

aij x j

ui

bi , ui

0 .

 

 

j

1

 

 

 

 

 

n

 

 

 

 

 

Аналогично

aij x j

bi

эквивалентно системе

 

j

1

 

 

 

 

 

 

n

 

 

 

 

 

 

 

aij x j

ui

bi , ui

0 .

 

 

j

1

 

 

 

 

5.Обеспечить условие неотрицательности переменных можно, используя очевидный факт: любое число может быть представлено в виде разности двух неотрицательных чисел:

86

x

j

x'

x'' , x'

0 ,

x''

0 .

 

 

j

j

j

 

j

 

 

Если в задаче

присутствовало требование

xj 0 ,

осуществляется замена x j

x'j ,

x'j

 

0 .

 

 

В связи с тем, что основной метод решения ЗЛП - симплексный метод предназначен для решения задач в канонической форме, проиллюстрируем работу описанных выше правил на примере приведения задачи к канонической форме.

Пример 1. Привести ЗЛП к канонической форме:

3x1

2x 2

x 3

max,

x1

x 2

2x 3

x 4

10,

2x1

x 2

 

x 4

5,

x1

x 2

x 3

 

16,

x1

0, x 2

0, x 3

0.

1. К левой части первого неравенства добавим неотрицательную переменную u1 и перейдем к ограничениям

 

 

 

x1

x 2

2x3

x 4

u1

10 , u1

0 .

2. Умножим обе части второго равенства на –1, к левой части

добавим

 

неотрицательную

переменную

u2

и

перейдем к

ограничениям

 

 

 

 

 

 

 

 

 

 

 

 

 

2x1

x 2

x 4

u 2

5 , u2

0 .

 

3. Осуществим замену переменных:

 

 

 

x

4

x'

x''

, x '

0 ,

x''

0 , x

 

x' , x'

0 .

 

4

4

4

 

4

1

 

1

1

 

В результате задача принимает канонический вид:

3x1'

2x 2 x 3

max

 

 

x1'

x 2

2x 3 x '4

x '4'

u1

10,

2x1'

x 2

x '4

x '4'

u 2

5,

x1'

x 2

x 3

 

 

16,

x1'

0, x '4

0, x '4'

0, u1

0, u 2 0.

87

Последовательность применения правил приведения к канонической форме не существенна и может быть любой.

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

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

Рассмотрим алгоритм решения задачи следующего вида: c1x1 c2 x2 max(min)

 

 

 

 

ai1x1

ai 2 x2 ( , )bi , i 1, m ;

x1, x2

0 ( , нет требования на знак).

4.2.1. Построение допустимого множества

Каждое ограничение задачи определяет некоторую полуплоскость (в случае неравенства) или прямую (в случае равенства). Допустимым множеством будет пересечение всех полуплоскостей и прямых, заданных условиями задачи. Таким образом, необходимо выполнить следующую последовательность действий:

а) для каждого i-го ограничения нарисовать прямую,

 

 

 

 

 

соответствующую равенству ai1x1

ai 2 x2

bi , i 1, m ;

б) если ограничение задается неравенством вида

ai1x1 ai 2 x2 bi или ai1x1

ai 2 x2

bi ,

то определить полуплоскость, задаваемую данным неравенством. Это легко сделать, подставив в него координаты точки, не расположенной на соответствующей прямой. Если неравенство оказывается справедливым, то выбрать полуплоскость, содержащую данную точку, в противном случае - выбрать противоположную полуплоскость;

в) найти пересечение полученных полуплоскостей и прямых.

88

4.2.2. Графическое отыскание решений задачи

Пусть допустимое множество оказалось не пустым.

а) выбрать два произвольных числа d1 и d2 . Пусть для определенности d1 d2 . Нарисовать линии уровня целевой функции, соответствующие выбранным

константам, т.е. прямые вида c1x1 c2 x2 d1 и

c1x1

c2 x2

d2 . Получим две параллельные прямые, все

точки которых обеспечивают значения целевой функции,

равные соответственно d1 и d2 . Задача поиска решения

может быть сформулирована следующим образом: найти

такое максимальное значение d, при котором прямая

c1x1

c2 x2

d пересекает допустимое множество;

б) зафиксировать направление увеличения значений целевой функции от прямой с правой частью, равной d2 , к прямой с правой частью, равной d1 ;

в) передвигать прямую c1x1 c2 x2 d параллельно самой

себе по допустимому множеству в обозначенном направлении до получения максимального(минимального)

значения d * ;

г) зафиксировать на графике точки допустимого множества, обеспечивающие оптимальное значение целевой функции, или убедиться, что таких точек нет;

д) выписать ответ.

При построении допустимого множества могут возникнуть три различные ситуации:

а) допустимое множество пусто. Вывод: задача решений не имеет - нет ни одной допустимой точки;

б) допустимое множество ограничено (является многогранником). В этом случае возможны два различных ответа:

б.1) решение единственно: на графике зафиксирована единственная точка, являющаяся пересечением некоторых прямых. Необходимо выписать соответствующие уравнения прямых и, решив полученную систему уравнений, найти

89

точку - решение задачи.

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

в) допустимое множество не ограничено. Здесь возможны две ситуации, описанные в пункте б); решение ищется аналогично. Кроме этого, возможен случай отсутствия решений из-за неограниченности значений целевой функции на допустимом множестве.

Пример 1. Решить графически следующую задачу линейного программирования:

x1 x2 max x1 2x2 8,

2x1 x2 4, x1 3x2 9,

x1, x2 0.

Следуя приведѐнному алгоритму, строим область допустимых решений. Получим выпуклый многоугольник, представленный на рис. 4.2.1

x2

2

1

 

 

x*

 

3

 

x1

Рисунок 4.2.1 – Область допустимых решений

90

Далее, строим линии уровня целевой функции x1 x2 d и фиксируем направление увеличения значения целевой функции при

переходе

от одной линии уровня к другой. Перемещая прямую

x1 x2

d параллельно самой себе в найденном направлении, пока

она будет сохранять общие точки с допустимой областью, найдем, что в крайнем возможном положении линия уровня пройдет через

точку x*

 

. Этому

положению линии

уровня

и соответствует

 

 

max

 

 

 

 

 

 

 

d d

max

.

Для нахождения

координат

точки

x*

необходимо

 

 

 

 

 

 

 

 

max

 

решить систему уравнений граничных прямых

 

 

 

 

 

 

x1

2x2

8,

 

 

 

 

 

 

 

x1

3x2

9.

 

 

 

 

В результате получим ответ: X max*

(6,1) ,

zmax*

7 .

 

Пример 2. Решить графически задачу:

 

 

 

 

 

 

2x1

4x 2

max

 

 

 

 

 

 

 

3x1

2x 2

11,

 

 

 

 

 

 

 

2x1

x 2

2,

 

 

 

 

 

 

 

x1

3x 2

0,

 

 

 

 

 

 

 

x1

0, x 2

0.

 

 

 

Построение допустимой области выполняется как и в предыдущей задаче. В результате получаем неограниченную область (рис. 4.2.2).

x2

2

 

1

 

 

z*

3

 

 

 

 

x1

Рисунок 4.2.2 – Задача решений не имеет

91

Далее, при параллельном перемещении линии уровня в направлении возрастания целевой функции устанавливаем, что такое перемещение можно производить неограниченно. Следовательно,

целевая функция неограничена сверху, т.е. zmax , а сама

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

оптимальное решение в точке

x*

(3,1) с z*

10.

 

 

 

 

min

min

 

 

Пример 3. Решить графически задачу

 

x1

3x 2

min

 

 

 

 

x1

x 2

2,

 

 

 

 

5x1 x 2 2,

 

 

 

 

x1

x 2

0.

 

 

 

 

 

Как видно из рисунка 4.2.3, допустимое множество данной

задачи пусто.

 

 

 

 

 

 

x2

2

 

3

 

 

 

1

 

 

 

 

x1

Рисунок 4.2.3 – Пустое допустимое множество

Поэтому данная задача неразрешима.

92