Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Полшков Ю.Н. Курс лекций по ОММ.doc
Скачиваний:
23
Добавлен:
29.04.2019
Размер:
4.79 Mб
Скачать

Лекция 3. Практическая реализация графического метода решения задач линейного программирования

План

1. Пример графического решения задачи ЛП.

2. Задачи ЛП, сводящиеся к графическому методу решения.

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

1. Рассмотрим графическое решение конкретной задачи ЛП.

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

Z = 4x1 + 2x2 max ,

x1

2 x1

+ 3x2 9

+ 3x2 18

2 x1 + x2 10

2 x1 x2 0

x1 0, x2 0 .

Решение. Для нахождения ОДР строим граничные прямые и определяем

полуплоскости, координаты точек которых удовлетворяют ограничениям.

Рассмотрим первое ограничение

x1 + 3x2 9 . Строим прямую

l1 :

x1 + 3x2 = 9

по двум точкам

x1 = 0 ,

x2 = 3 и

x1 = 9 ,

x2 = 0 . Берём контроль-

ную точку, не лежащую на этой прямой, например,

O(0; 0) . Подставляем её ко-

ординаты в первое ограничение. Если неравенство в этой точке выполняется, то первое ограничение определяет полуплоскость, которая содержит контрольную точку, если же нет, то оно определяет полуплоскость, в которой не лежит кон-

трольная точка. В точке

O(0; 0)

неравенство выполняется:

0 + 3 0 = 0 < 9 . По-

этому первое ограничение определяет полуплоскость, расположенную ниже прямой l1 . На рис. 1 это отмечено двумя стрелками.

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

Табл. 1. Вспомогательные расчёты

Пря-

мая

Уравнение

прямой

Точки на

прямых

Кон-

троль- ная точка

Знак нера-

венства в этой точке

Принадлеж-

ность кон- трольной точки к ОДР

l1

l2 l3 l4

x1 + 3x2 = 9

2x1 + 3x2 = 18

2 x1 + x2 = 10

2x1 x2 = 0

(0,3) (–9,0)

(0,6) (9,0) (0,–10) (5,0) (0,0) (1,2)

О(0,0)

О(0,0) О(0,0) М(0,5)

0+30 <9

20+30 <18

20+0 >10

205<0

О принадлежит

О принадлежит О принадлежит М не принадл.

Выделяем ОДР пятиугольник OABCD. Строим вектор

G

c = (4, 2) , пока-

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

– прямую, перпендикулярную вектору c :

4x1 + 2x2 = 0 .

Т.к. мы ищем максимум целевой функции, то изоцель следует переме-

щать параллельными переносами в направлении вектора c , пока она не станет

опорной к ОДР (рис. 1). Это произойдёт в точке

точки C :

C ( x1; x2 ) . Находим координаты

l2 ,

2 x1 + 3x2 = 18,

x1 = 6,

l3 ,

2 x1

x2 = 10,

x2 = 2.

l2 x2 l4 l3

А

B

l1 c

C(6,2)

x1

0 D

Рис. 1. Иллюстрация графического метода

Найдено единственное оптимальное решение

чение целевой функции:

X * = (6; 2) . Вычисляем зна-

Ответ:

X * = (6; 2) ,

Zmax

Zmax

= Z ( X *) = 4 6 + 2 2 = 28 .

= 28 .

Заметим, что в точке

O(0; 0)

достигается минимум целевой функции, рав-

ный

Zmin

= 0 .

2. Мы научились применять графический метод для задач ЛП, которые содер-

жат две переменные

x1 и

x2 .

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

Пример 2. Решить задачу ЛП:

Z = 16x1 x2 + x3 + 5x4 + 5x5 max ,

1 2

2x1 + x2 + x3

2x + 3x

+ x4

= 10

= 6

1 2

2x + 4x

x5 = 8

x j 0 ( j = 1, 5 ).

Решение. Выразим неизвестные

x3 , x4 , x5

из первого, второго и третьего

равенств системы ограничений соответственно:

x3 = 10 2x1 x2

5 1 2

x4 = 6 + 2x1 3x2

x = 8 + 2x + 4 x

Исключаем данные неизвестные из целевой функции:

/

(1)

Z = 16x1 x2 + (10 2x1 x2 ) + 5(6 + 2x1 3x2 ) + 5(8 + 2x1 + 4x2 ) = 2x1 + 3x2 .

Т.к. все переменные задачи – неотрицательные, то предыдущую систему ра-

венств запишем в виде системы неравенств:

10 2 x1 x2 0

6 + 2 x1 3x2 0

2x1 + x2 10

1 2

2x + 3x 6

8 + 2x + 4x 0

2x

+ 4x 8

Получена задача ЛП:

1 2

1 2

/

Z = 2x1 + 3x2 max ,

1 2

2x1 + x2 10

1 2

2x + 3x 6

2x + 4x 8

x1 0, x2 0 .

Решим её графическим методом.

Для данной задачи ОДР – заштрихованный четырёхугольник ABCD (рис.

2). Уравнение изоцели следующее:

2x1 + 3x2 = 0 .

ДвиGгая изоцель параллельными переносами в направлении градиент-

вектора

c = (2, 3) , достигнем опорной точки

C ( x1 ; x2 ) . Эта точка находится на

пересечении прямых I и II:

2 x1 + x2 = 10

1 2

2x + 3x = 6

x1 = 3

= 4

x2

/

При этом

Z max

= 18 .

Осуществим обратную замену, подставив координаты точки систему (1):

C (3; 4) в

x3 = 0

5

x4 = 0

x = 14

Рис. 2. Графическое решение примера 2

Получено единственное оптимальное решение исходной задачи ЛП

X * = (3; 4; 0; 0;14) . Подставив его в целевую функцию, убедимся в том, что

Zmax

= Z ( X *) = 16 3 4 + 0 + 5 0 + 5 14 = 18 .

Ответ:

X * = (3; 4; 0; 0;14) ,

Zmax

= 18 .

3. Рассмотрим возможности графического метода при решении задач линейно-

го целочисленного программирования.

Пример 3. Дана задача:

Z = 2x1 + 3x2 max ,

x1

+ 2 x2 6

8x1

+ 7 x2 28

x1 0, x2 0 ,

x1 , x2 ] .

Требуется: 1) решить графическим методом задачу ЛП без учёта целочисленно-

сти; 2) решить ту же задачу с условием целочисленности.

Решение. 1) Для задачи ЛП имеем ОДР четырёхугольник OABC , с уг-

ловыми точками

O(0; 0) ,

A(0;3) ,

B(14 / 9; 20 / 9) ,

C(7 / 2; 0) . Наибольшее значе-

ние целевой функции достигается в точке B , поэтому имеем оптимальное ре-

шение

X = (14 / 9; 20 / 9) ,

Z ( X ) = 88 / 9 = 9 7

9

(рис. 3).

Найденное решение не является целочисленным. Будем искать оптималь-

ную точку с целочисленными координатами.

2) Отметим в ОДР точки с целочисленными координатами, близко распо-

ложенные к границе или лежащие на границе, участок которой содержит точку

X = (14 / 9; 20 / 9)

(рис. 3). Такими точками являются (0;3) , (1; 2), (2;1), (3; 0) .

Вычисляем в этих точках значения целевой функции

Z (0;3) = 9 ,

Z (1; 2) = 8 ,

Z (2;1) = 7 ,

Z (3; 0) = 6 , и выбираем из них наибольшее.

Оптимальное целочисленное решение

X * = (0;3) ,

Z ( X *) = 9 .

Рис. 3. Графическое решение примера 3