Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
49
Добавлен:
30.03.2015
Размер:
287.85 Кб
Скачать

Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования

¾Омский государственный технический университет¿

МЕТОДЫ ОПТИМИЗАЦИИ

È

ИССЛЕДОВАНИЕ ОПЕРАЦИЙ

Методические указания к практическим занятиям

Îìñê 2006

Составители: Девятерикова М.В., Борисовский П.А. Методы оптимизации и исследование операций: Методические указания к практическим занятиям. Омск: Изд-во ОмГТУ, 2006. 52 с.

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

Печатается по решению редакционно-издательского совета Омского государственного технического университета

1. ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ

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

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

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

Покажем применение графического способа решения задач ЛП на следующем примере.

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

f(x) = 3x1 + 3x2 ! max

3x1 + 2x2

· 10;

2x1 + 4x2

· 12;

6x1

· 16;

 

x1 ¸ 0; x2 ¸ 0:

 

 

 

Øàã 1.

Построение допустимой области

 

è x2 ограничивают

Условия неотрицательности переменных x1

область

их допустимых значений

первым

квадрантом.

Каждому

из оставшихся трех ограничений-неравенств модели соответствует

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

квадрантом образует множество допустимых решений задачи.

 

Первое ограничение модели имеет вид 3x1

+ 2x2 · 10: Заменив в

íåì çíàê · на знак =, получаем

уравнение

3x1 + 2x2

= 10. Íà

рис. 1.1 оно определяет прямую (1), которая разбивает плоскость на две полуплоскости, в данном случае выше линии и ниже нее. Чтобы выбрать, какая из них удовлетворяет неравенству 3x1 + 2x2 · 10; подставим в

3

него координаты любой точки, не лежащей на данной прямой (например, начало координат x1 = 0; x2 = 0). Так как получаем верное выражение

(3 ¢ 0 + 2 ¢ 0 = 0 · 10), то неравенству удовлетворяет полуплоскость,

содержащая начало координат (помечена стрелкой). В противном случаедругая полуплоскость.

Аналогично поступаем с остальными ограничениями задачи. Пересечение всех построенных полуплоскостей с первым квадрантом образует многоугольник ABCDE (см. рис. 1.1). Это и есть допустимая

область задачи.

x2

6

 

(1)

@6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

¡

 

 

@

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

¡@

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

@

 

 

 

¡

 

 

 

(3)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(2)PP

B @@

 

@

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

PP

P @

 

C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

B££££

 

PP@P

PP

 

PP

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

@

@

 

PPPP

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D

PP

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

@

 

 

 

PP

-

 

 

 

0

 

 

 

 

 

 

 

 

 

@

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5 6PP

 

 

 

A

1

2 E

 

3 @@4

x1

 

 

 

 

 

 

 

 

 

 

 

Ðèñ. 1.1

Шаг 2. Построение линии уровня Линия уровня целевой функции это множество точек плоскости,

в которых целевая функция принимает постоянное значение. Такое множество задается уравнением f(x) = const: Положим, например,

const = 0 и построим линию уровня f(x) = 0; т.е. в нашем случае прямую

3x1 + 3x2 = 0:

Данная прямая проходит через начало координат и перпендикулярна вектору rf = (3; 3). Этот вектор является градиентом целевой

функции в точке (0; 0). Напомним, что градиент функции это вектор

значений частных производных данной функции в рассматриваемой точке. В случае задачи ЛП частные производные целевой функции равны коэффициентам cj; j = 1; :::; n.

Градиент показывает направление наискорейшего роста функции. Перемещая линию уровня целевой функции f(x) = const

перпендикулярно направлению градиента, найдем последнюю точку, в которой она пересекается с областью. В нашем случае это точка C,

4

которая и будет точкой максимума целевой функции (см. рис. 1.2). Она лежит на пересечении прямых (1) и (2) (см. рис. 1.1) и задает оптимальное решение.

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

x2

6

 

f(x) =Qf¤

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

QQ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

Q

Q

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

PB

 

Q

 

 

f

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

AA

 

 

P

Q

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A

 

 

 

PC

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

AA

 

 

P

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

AAAAAA-A

 

 

 

Q

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

AA

Q

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

AAAAA-AAAAAAAA@A

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

AQ

 

 

 

 

 

 

 

 

 

 

 

f(x) = 0

 

 

 

AAA-AAAAAAAAAAA@Q

 

 

 

 

 

 

 

 

 

 

Q

 

 

 

 

 

 

 

 

 

 

 

 

 

 

AA

 

Q

Q

 

 

 

 

 

 

 

 

 

Q

 

 

 

 

AA-AAAAAAAAAAAAAA

 

 

 

 

 

 

 

 

 

 

 

 

 

QAAAAAAAAAAAAAAAA

D

 

Q

 

 

 

 

 

-

 

 

 

0

 

 

Q

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q

 

 

 

 

 

x1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A QQ1

 

 

 

2 E 3

 

4 QQ5

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q

Q

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ðèñ. 1.2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Шаг 3. Определение координат точки максимума (минимума) и оптимального значения целевой функции

Чтобы найти координаты точки C, необходимо решить систему,

состоящую из соответствующих прямым уравнений (в данном случае из уравнений 1 и 2):

3x1 + 2x2 = 10; 2x1 + 4x2 = 12:

Получим оптимальное решение x¤1 = 2; x¤2 = 2: Оптимальное значение целевой функции f¤ = f(x¤) = 3 ¢ 2 + 3 ¢ 2 = 12:

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

В рассмотренном примере задача ЛП имеет единственное оптимальное решение. Однако часто встречаются задачи, в которых

5

существует множество оптимальных решений. При этом возможны два случая:

1) оптимальные решения принадлежат отрезку, соединяющему две вершины области x1¤ è x2¤ (ñì. ðèñ. 1.3):

x2

6

 

 

 

 

 

L

 

 

 

 

 

 

 

 

 

 

 

L

 

 

 

 

 

 

 

 

 

 

 

 

L

 

 

 

 

 

 

 

 

 

 

 

 

L

 

 

 

 

 

 

 

 

 

 

 

 

L

 

 

B

 

 

 

³

³³³³³LLrx1¤

 

B

³³³³³

 

 

 

 

L

 

B

 

 

 

 

 

 

L

 

BB

rbb

bb

 

 

D

 

 

 

´´LLx2¤

 

 

B

 

b

 

´

´

rL

 

 

BBB

 

 

bb´r

´

 

L

 

 

 

 

 

 

 

 

 

 

rf

 

 

 

 

 

LL

 

 

B

 

 

 

 

 

 

 

 

LL

-

 

B

³³³

 

 

 

 

 

 

 

 

L

 

0 BBB f(x) = 0

 

 

 

 

 

f(x) = f¤LL

x1

 

 

B

 

 

 

 

 

 

 

 

 

L

Ðèñ. 1.3

2) оптимальные решения принадлежат лучу, исходящему из вершины

области x¤ (ñì. ðèñ. 1.4):

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x¤

½

½

 

½r½

 

 

 

 

 

½½½½

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

½½

Cr

½

 

 

 

 

 

 

 

 

 

 

 

½½

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C

 

 

 

 

½

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f(x) = f¤

##

 

 

 

C

 

 

 

 

 

½½

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C

 

 

 

 

 

 

 

 

D

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

½

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

½

 

 

 

½C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

½

SoS ½½

 

 

 

 

CrX

 

X

X

 

X

 

X

 

 

 

 

 

 

-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

½½

½½½ 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

 

f(x) = 0

Ðèñ. 1.4

6

Кроме того, задача ЛП может не иметь оптимального решения. Это происходит в следующих случаях:

1) допустимая область пуста из-за несовместности системы ограничений (1.2) (1.3) (см. рис. 1.5);

x2 6

@@ ¡¡ @¡ ¡ @

@ ¡

@ ¡

 

 

 

@¡

 

 

 

¡

@

 

 

 

¡¡¡

D = ; @@@

 

 

 

¡

 

 

 

@

 

 

¡

 

 

 

@

 

 

 

 

 

 

 

¡

 

 

 

@

 

 

¡

 

 

 

@

 

 

 

 

 

 

 

 

 

-

 

0

 

 

 

 

x

1

 

Ðèñ. 1.5

 

 

 

2) область допустимых решений неограничена и целевая функция также неограничена в области допустимых решений (см. рис. 1.6):

x2

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

J

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

J

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

J

 

 

 

 

½

 

½

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

J

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

½

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

J

 

 

 

 

½

J

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JJ

 

Cr

½

 

 

 

 

 

 

 

JJ

 

 

 

 

 

 

 

 

D

 

 

J

 

 

C

 

 

 

 

 

 

 

 

 

 

 

J

 

 

 

 

 

 

 

 

 

C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

J

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

J

 

 

 

 

J

 

f

C

 

 

 

 

 

 

 

 

 

 

 

 

 

J

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JJ

 

r´´3

 

 

 

CX

 

X

 

X

 

 

 

 

JJ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

X

 

 

 

 

J´

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

J

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 JJ f(x) = 0

 

 

rJ f(x) ! 1

 

x1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

J

Ðèñ. 1.6

Если же допустимая область задачи ЛП непуста и ограничена, то задача всегда имеет оптимальное решение.

7

1.2. Симплекс-метод решения задач ЛП

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

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

f(x) = 2x1 + 3x2 ¡ x3 ! max

2x1 ¡ 2x2 + 6x3 · 16; x1 + 4x2 ¡ 3x3 · 10; x1; x2; x3 ¸ 0:

Приведем задачу к каноническому виду. Для преобразования неравенств в равенства введем дополнительные неотрицательные переменные x4; x5: Получим следующую задачу ЛП, которая является

также приведенной задачей:

f(x) = 2x1 + 3x2 ¡ x3 ! max

2x1 ¡ 2x2 + 6x3 + x4 = 16; x1 + 4x2 ¡ 3x3 + x5 = 10; x1; x2; x3; x4; x5 ¸ 0:

Выпишем начальную симплексную таблицу.

#

 

 

 

x1

x2

x3

x4

x5

!

f

0

¡2

¡3

1

0

0

x4

16

2¤ ¡2

6

1

0

 

x5

10

1

4

¡3

0

1

Начальное решение x0 = (0; 0; 0; 16; 10), f(x0) = 0.

Шаг 1. В строке f начальной таблицы есть отрицательные элементы в столбцах с номерами 1 и 2 (®01 = ¡2, ®02 = ¡3), поэтому переходим

íà øàã 2.

Øàã 2. Столбцы с номерами 1 и 2 содержат положительные элементы, поэтому условие неразрешимости не выполняется. Переходим к шагу 3.

8

Шаг 3. В качестве ведущего столбца можно взять столбец с номером 1 (®01 = ¡2) или столбец с номером 2 (®02 = ¡3). Возьмем, например,

первый.

Øàã 4. Для выбора ведущей строки рассмотрим все строки, содержащие положительные элементы в ведущем столбце (это строки с номерами 1 и 2 и элементами, равными 2 и 1 соответственно). Вычислим минимальное из отношений элементов столбца, соответствующего c0, ê

указанным элементам ведущего столбца:

min (162 ; 101 ) = 8:

Минимум достигается для строки с номером 1, которая становится ведущей. Таким образом, ведущий элемент будет равен 2 (он помечен звездочкой).

Шаг 5. Ведущая строка соответствует базисной переменной x4, à ведущий столбец небазисной переменной x1. Следовательно, в новой симплексной таблице переменная x1 становится базисной, а переменная

x4 небазисной. Все элементы ведущей строки делятся на 2. Оставшиеся

элементы симплексной таблицы пересчитываются таким образом, чтобы в первом столбце остальные элементы оказались равными нулю (правило прямоугольника). Например, чтобы полу÷ить нуль во второй строке, нужно ведущую строку умножить на (¡12) и добавить к этой строке. После пересчета симплексная таблица имеет вид:

#

 

 

 

x1

x2

x3

x4

x5

 

f

16

0

¡5

7

1

0

!

x1

8

1

¡1

3

1=2

0

x5

2

0

5¤ ¡6

¡1=2

1

Текущее решение x1 = (8; 0; 0; 0; 2), f(x1) = 16.

Начинаем вторую итерацию. Условия оптимальности и неразрешимости не выполняются, поэтому опять выбираем ведущий столбец (здесь он единственный). Это столбец с номером 2, отвечающий переменной x2 (®02 = ¡5 < 0). В ведущем столбце единственный

положительный элемент во второй строке. Следовательно, ведущей является строка с номером 2, а ведущий элемент равен 5. Переменная x2 становится базисной, а x5 небазисной. После пересчета получаем

следующую симплексную таблицу:

9

 

 

x1

x2

x3

x4

x5

f

18

0

0

1

1=2

1

 

 

 

 

 

 

 

x1

42=5

1

0

9=5

2=5

1=5

x2

2=5

0

1

¡6=5

¡1=10

1=5

Текущее решение x2 = (42=5; 2=5; 0; 0; 0), f(x2) = 18. Поскольку

в строке целевой функции полученной симплексной таблицы нет отрицательных элементов, то текущее решение оптимально. Для исходной задачи ЛП оптимальное решение имеет вид x¤ = (42=5; 2=5; 0),

f¤ = 18:

1.3. Метод искусственного базиса

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

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

f(x) = 2x1 + 3x2 ¡ 4x3 ¡ x4 + 2x5 ! max x1 + x2 ¡ 4x3 + x4 ¡ 3x5 = 3;

x1 ¡

4x3 + 2x4 ¡ 5x5 = 6;

¡2x1 ¡ 5x2 + 8x3 + x4

= 3;

x1; x2; x3; x4; x5 ¸ 0:

 

Так как задача не является приведенной (нет базиса), построим

вспомогательную задачу ЛП:

 

 

h(x; t) = ¡(t1 + t2 + t3) ! max

 

x1 + x2 ¡ 4x3 + x4 ¡ 3x5 + t1

= 3;

x1 ¡

4x3 + 2x4 ¡ 5x5 + t2

= 6;

¡2x1 ¡ 5x2 + 8x3 + x4 +

t3 = 3;

x1; x2; x3; x4; x5; t1; t2; t3 ¸ 0:

 

10