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

Методы оптимизации / Методы оптимизации

.pdf
Скачиваний:
527
Добавлен:
01.06.2015
Размер:
2.64 Mб
Скачать

49

 

Целевая функция прямой

 

 

Двойственная задача

 

 

 

 

 

 

 

 

 

 

 

Целевая

 

Тип

 

Переменные

 

задачи

 

 

 

 

функция

 

ограничений

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Максимизация

Минимизация

 

 

 

Свободные

 

 

 

 

 

 

 

 

 

 

 

Минимизация

Максимизация

 

 

 

Свободные

 

 

 

 

 

 

 

 

 

Следующий пример иллюстрируют правила построения двойственной

 

задачи.

 

 

 

 

 

 

 

 

 

 

Пример 4.1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Прямая задача

 

 

Прямая задача в

 

Двойственные

 

 

 

 

стандартной форме

 

переменные

 

 

 

 

 

 

 

 

 

 

Максимизировать

 

Подстановка x1 = x1+ x1

 

 

 

 

 

z = 5x1 + 6x2

 

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

 

 

 

 

 

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

 

Максимизировать

 

 

 

 

 

x1 + 2x2 = 5,

 

z = 5x1+ – 5x1 + 6x2

 

 

 

 

 

x1 + 5x2 8,

 

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

 

 

 

 

 

4x1 + 7x2 8,

 

x1+ x1 + 2x2 = 5,

 

 

y1

 

 

 

 

x1+ + x1 + 5x2 x3 = 3,

 

 

y2

 

 

x1 – свободная

 

+

 

+ 7x2

+ x4 = 8,

 

 

y3

 

 

 

 

4x1

– 4x1

 

 

 

 

 

переменная,

 

 

x1+, x1 , x2 0

 

 

 

 

 

x2 0

 

 

 

 

 

 

 

 

 

 

Двойственная задача

Минимизировать w = 5y1 + 3y2 + 8у3 при ограничениях

y1 y2 4 y3 5

 

y1

– y2 + 4y3 = 5,

 

 

y1 y2 4 y3 5

 

 

2у1 + 5y2 + 7у3 6,

y2 0 y2 0, y3 0,

у1 – свободная переменная,

y2, y3 – свободные переменные (избыточное условие).

Первое и второе ограничения двойственной задачи заменены одним ограничением в виде равенства. Здесь действует следующее правило: свободной переменной прямой задачи соответствует ограничение в виде

50

равенства двойственной задачи и, наоборот, ограничению в виде равенства прямой задачи соответствует свободная переменная двойственной задачи.

4.2. Соотношения между оптимальными решениями прямой и двойственной задач

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

Соотношение 1. Для любой симплекс итерации прямой или двойственной задачи.

 

Коэффициент

при

j й

 

Разность между

левой и правой

 

 

 

 

 

 

 

 

 

 

переменной

в

z строке

 

частями j г о

неравенства

.

 

одной

задачи

 

 

друг ой

задачи

 

 

 

 

 

Это соотношение симметрично относительно прямой и двойственной задач. Его можно использовать для определения оптимального решения одной задачи непосредственно из симплекс таблицы, содержащей оптимальное решение другой. Данное обстоятельство обуславливает возможность проведения вычислений именно по той задаче (прямой или двойственной), которая требует меньших вычислительных ресурсов. Например, если прямая задача имеет 100 переменных и 500 ограничений, то предпочтительнее нахождение оптимального решения двойственной задачи, так как она будет содержать только 100 ограничений.

Пример 4.2

Рассмотрим прямую и двойственную задачи из примера 4.1.

Прямая задача

 

Двойственная задача

 

 

 

Максимизировать z = 5x1 + 12x2

+4x3

Минимизировать w = 10y1 + 8у2

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

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

 

 

y1 + 2y2 5,

x1 + 2x2 + х3 10,

 

 

2у1 y2 12,

2x1 x2 + 3x3 = 8,

 

 

y1 + 3у3 4,

x1, x2, xз 0

 

 

y1 0, y2 – свободная переменная

 

 

 

 

 

В следующей таблице представлены симплекс итерации решения

51

прямой задачи.

Итерация

Базис

x1

x2

x3

 

x4

 

R

 

Решение

 

 

 

 

 

 

 

 

 

 

z

–5 – 2M –12 + M –4 – 3M 0

0

 

–8M

 

 

 

 

 

 

 

 

 

0

x4

1

2

1

 

1

 

0

 

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R

2

–1

3

 

0

 

1

 

8

 

 

 

 

 

 

 

 

 

 

 

 

z

–7/3

–40/3

0

0

 

4/3 + M

32/3

 

 

 

 

 

 

 

 

 

1

x4

1/3

7/3

0

 

1

 

–1/3

 

22/3

 

 

 

 

 

 

 

 

 

 

 

 

x3

2/3

–1/3

1

 

0

 

1/3

 

8/3

 

z

–3/7

0

0

40/7

 

–4/3 + M

368/7

 

 

 

 

 

 

 

 

 

2

x2

1/7

1

0

 

3/7

 

–1/7

 

22/7

 

x3

5/7

0

1

 

 

 

26/7

 

 

1/7

 

2/7

 

 

z

0

0

3/5

29/5

 

–2/5 + M

274/5

 

 

 

 

 

 

 

 

 

3

x2

0

1

–1/5

 

2/5

 

–1/5

 

12/5

 

x1

1

0

7/5

 

1/5

 

2/5

 

26/5

 

 

 

 

Применяя на

третьей

симплекс итерации соотношение

1 для

переменных x4 и R из начального базисного решения, получим следующие данные.

Начальные базисные переменные прямой

 

x4

R

задачи

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

й итерации

 

29/5

–2/5 + М

Коэффициенты в z строке 3

 

 

 

Соответствующие ограничения

 

y1 0

y2 M

двойственной задачи

 

 

 

 

 

Уравнения, полученные на основе

y1

– 0 = 29/5

у2 – (–М) = –2/5

соотношения 1

 

 

+ M

 

 

 

 

 

 

 

 

 

 

Решениями полученных уравнений будут у1 = 29/5 и у2 = –2/5. Если бы решения двойственной задачи искались независимо от решения прямой задачи, то было бы получено такое же решение. Аналогично, вследствие симметричности соотношения 1, из данного решения двойственной задачи и ее начальной симплекс таблицы получаем оптимальное решение прямой задачи: x1 = 26/5, x2 = 12/5 и x3 = 0. (Решите двойственную задачу и убедитесь, что ее решение действительно совпадает с приведенным выше.)

52

Применение соотношения 1 к переменным начального решения всегда приводит к легко решаемым уравнениям, так как каждое такое уравнение содержит только одну переменную. Конечно же, ничего не мешает использовать другие переменные (такие, как x1, х2 и х3 в рассматриваемой задаче) при построении уравнений, необходимых для определения значений переменных двойственной задачи. Например, соотношение 1 порождает следующие уравнения, ассоциируемые с переменными x1 и x3:

y1 + 2у2 – 5 = 0, y1 + 3у2 – 4 = 3/5.

Решение этой системы уравнений также приводит к оптимальным значениям двойственной задачи у1 = 29/5 и у2 = –2/5. Однако аналогичные уравнения, ассоциируемые с переменными х4 и R, будут уже не так просты. (Убедитесь самостоятельно, что уравнения, ассоциированные с любыми двумя переменными из множества x1, x2, x3, x4, R, дают одни и те же значения переменных двойственной задачи.)

Представим еще одно соотношение между прямой и двойственной задачами, которое совместно с соотношением 1 предлагает интересную экономическую интерпретацию задачи линейного программирования.

Соотношение 2. Для любой пары допустимых решений прямой и двойственной задачи

 

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

 

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

 

 

 

 

 

 

 

в задаче максимизации

 

 

в задаче минимизации

 

 

 

 

 

В точке оптимума это соотношение принимает вид строгого равенства.

Пример 4.3

Для задачи из примера 4.2 нетрудно показать (путем подстановки в ограничения), что прямая и двойственная задачи имеют допустимые решения х1 = 0, х2 = 0, х3 = 8/3 и y1 = 6, y2 = 0. Для этих решений значения целевых функций соответственно равны z = 32/3 и w = 60. Для оптимальных решений х1 = 26/5, х2 = 12/5, х3 = 0 и у1 = 29/5, у2 = –2/5 имеем z = w = 54,8.

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

Из соотношения 2 следует, что для всех допустимых решений прямой и двойственной задач значения целевой функции задачи минимизации всегда будут верхним пределом значений целевой функции задачи максимизации. Таким образом, итерационное решение задачи максимизации ведет к

53

возрастанию значений целевой функции, а итерационное решение задачи минимизации — к ее убыванию. В итоге при успешном завершении процессов вычисления прямой и двойственной задач приходим к точке "равновесия", где значения целевых функций задач максимизации и минимизации становятся равными.

4.3. Двойственный симплекс метод

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

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

Двойственное условие допустимости. В качестве исключаемой переменной хr выбирается базисная переменная, имеющая наибольшее по абсолютной величине отрицательное значение. Если таких переменных несколько, то выбор произволен. Если все базисные переменные неотрицательные, процесс вычислений заканчивается.

Двойственное условие оптимальности. Вводимая в базис переменная определяется как переменная, на которой достигается следующий минимум:

 

 

 

z j c j

 

 

 

 

 

 

 

 

 

 

 

 

 

min

 

 

 

 

, rj

0

,

rj

небазисные x

j

 

 

 

 

 

 

 

 

 

 

 

где rj – коэффициент из симплекс таблицы, расположенный на пересечении ведущей строки (соответствующей исключаемой переменной хr) и столбца, соответствующего переменной xj. При наличии нескольких альтернативных переменных, выбор делается произвольно.

54

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

Пример 4.4

Дана следующая задача ЛП.

Минимизировать z = 3x1 + 2х2 при ограничениях

3x1 + x2 3,

4х1 + 3x2 6, xl + x2 3, x1, x2 0.

Начальная симплекс таблица этой задачи имеет следующий вид.

 

Базис

 

x1

x2

x3

x4

x5

Решение

 

 

 

z

 

–3

–2

0

0

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x3

 

–3

–1

1

0

0

–3

 

 

 

x4

 

–4

–3

0

1

0

–6

 

 

 

x5

 

1

1

0

0

1

3

 

 

 

 

 

 

 

 

Среди дополнительных переменных этой задачи, x3 и x4

являются

избыточными, а x5

остаточной.

Мы

умножили каждое

равенство,

соответствующее избыточным дополнительным переменным, на –1; в результате правые части этих равенств непосредственно указывают на базисные переменные, которые являются недопустимыми (x3 = –3, х4 = –6, х5 = 3). Этот подход всегда используется при реализации двойственного симплекс метода. Поскольку zj сj 0 для всех j = 1, ..., 5, начальное базисное решение является оптимальным (но не допустимым). Таким образом, приведенная таблица удовлетворяет требованиям начальной таблицы двойственного симплекс метода, а именно оптимальности и недопустимости.

Двойственное условие допустимости указывает на переменную х4 = –6 как на вводимую в базис. Теперь применим двойственное условие оптимальности для определения исключаемой переменной. Для этого используем следующую таблицу.

55

Переменные

x1

 

x2

x3

x4

x5

z – строка (zj – cj)

–3

 

–2

0

0

0

x4 – строка, 4j

–4

 

–3

0

1

0

Отношение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z j c j

 

3/4

 

2/3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4 j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приведенные отношения показывают, что исключаемой переменной будет х2. Отметим, что переменные хj будут кандидатами на исключение из базисного решения только тогда, когда коэффициент 4j будет строго отрицательным. По этому критерию переменные x3, х4 и х5 не рассматриваются как кандидаты на исключение из базиса.

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Базис

x1

x2

x3

x4

x5

Решение

 

z

–1/3

0

0

–2/3

0

4

 

 

 

 

 

 

 

 

x3

–5/3

0

1

–1/3

0

–1

 

x2

4/3

1

0

–1/3

0

2

 

x5

–1/3

0

 

1/3

1

1

 

 

 

 

 

 

 

 

 

Отношение

1/5

2

 

 

 

 

 

 

 

 

 

Последняя таблица показывает, что из базиса исключается переменная х3 и вводится xi. В результате получаем следующую симплекс таблицу.

 

Базис

x1

x2

x3

x4

x5

Решение

 

 

z

0

0

–1/5

–3/5

0

21/5

 

 

 

 

 

 

 

 

 

 

 

x1

1

0

–3/5

1/5

0

3/5

 

 

x2

0

1

4/5

–3/5

0

6/5

 

 

x5

0

0

–1/5

2/5

1

6/5

 

 

 

 

 

 

 

 

Решение, представленное

в последней

таблице, допустимо (и

оптимально), поэтому вычисления заканчиваются. Это решение имеет вид x1 = 3/5, х2 = 6/5 и z = 21/5.

56

На рис. 4.1 показана последовательность шагов двойственного симплекс метода при решении задачи из примера 4.4. Алгоритм начинается в крайней точке А (которой соответствует недопустимое, но "лучше, чем оптимальное" решение), затем он переходит к точке В (которой также соответствует недопустимое, но "лучше, чем оптимальное" решение) и заканчивается в точке С, уже принадлежащей области допустимых решений.

Рис. 4.1

57

5.Транспортные модели

5.1.Определение транспортной модели

Транспортные модели (задачи) — специальный класс задач линейного программирования. Эти модели часто описывают перемещение (перевозку) какого либо товара из пункта отправления (исходный пункт, например место производства) в пункт назначения (склад, магазин). Назначение транспортной задачи — определение объемов перевозок из пунктов отправления в пункты назначения с минимальной суммарной стоимостью перевозок. При этом должны учитываться ограничения, накладываемые на объемы грузов, имеющихся в пунктах отправления (предложения), и ограничения, учитывающие потребность грузов в пунктах назначения (спрос). В транспортной модели предполагается, что стоимость перевозки по какому либо маршруту прямо пропорциональна объему груза, перевозимого по этому маршруту. В общем случае транспортную модель можно применять для описания ситуаций, связанных с управлением запасами, управлением движением капиталов, составлением расписаний, назначением персонала и др.

Рис. 5.1

На рис. 5.1 показано представление транспортной задачи в виде сети с m пунктами отправления и n пунктами назначения, которые показаны в виде узлов сети. Дуги, соединяющие узлы сети, соответствуют маршрутам, связывающим пункты отправления и назначения. С дугой (i, j), соединяющей пункт отправления i с пунктом назначения j, соотносятся два вида данных: 1) стоимость сij перевозки единицы груза из пункта i в пункт j; 2) количество перевозимого груза хij. Объем грузов в пункте отправления i равен ai, a объем грузов в пункте назначения j bj. Задача состоит в определении неизвестных величин xij, минимизирующих суммарные

58

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

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

5.2. Решение транспортной задачи

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

Алгоритм решения транспортной задачи будет проиллюстрирован на следующем примере.

Пример 5.1

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

перевозок сij приведена в условных единицах.

 

 

 

 

 

 

 

 

Мельницы

 

 

Предложение

 

 

 

1

2

 

3

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

x11

10

x12

2

x13

20

x14

 

11

15

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Элеваторы

2

x21

12

x22

1

х23

9

x24

 

20

25

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

x31

4

x32

14

x33

16

x34

 

18

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Спрос 5

15

 

15

15

 

 

 

Соседние файлы в папке Методы оптимизации