Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Методы решения задач оптимизации. Учебное пособие
.pdf
6.1. Построение двойственной задачи
61
6. ДВОЙСТВЕННАЯ ЗАДАЧА
6.1. Построение двойственной задачи
Исходную задачу линейного программирования будем называть
прямой. Двойственная задача – это задача, формулируемая с помощью
определенных правил непосредственно из прямой задачи [5].
Переменные и ограничения двойственной задачи формируются пу-
тем симметричных структурных преобразований прямой задачи по следующим правилам.
1. Каждому из m ограничений прямой задачи соответствует пере-
менная двойственной задачи.
2. Каждой из n переменных прямой задачи соответствует ограниче-
ние двойственной задачи.
3. Коэффициенты при какой-либо переменной в ограничениях пря-
мой задачи становятся коэффициентами ограничения двойственной задачи, соответствующей этой переменной, а правая часть формируемого
ограничения равна коэффициенту при этой переменной в выражении целевой функции.
4. Коэффициенты целевой функции двойственной задачи равны
правым частям ограничений прямой задачи.
Правила, определяющие тип оптимизации и ограничений, а также
знак переменных двойственной задачи, приведены в табл. 6.1.
Таблица 6.1
Зависимость параметров двойственной задачи от типа целевой
функции прямой задачи
Целевая функция
прямой задачи
Двойственная задача
Целевая функция
Тип
ограничений
Переменные
Максимизация
Минимизация
Свободные
Минимизация
Максимизация
Свободные
Рассмотрим процесс преобразования прямой задачи в двойствен-
ную на примере.
Пример 6.1. Для заданной прямой задачи линейного программиро-
вания записать двойственную задачу.

6. Двойственная задача
62
Прямая задача:
Максимизировать f = 5x
1
+
– 5x
1
-
+ 6x2 – 5x3 при наличии ограниче-
ний
4x1 + 3x2 – x3 = 9,
-2x1 – 7x2 + 3x3 5,
x1 + 2x2 + 5x3 6,
-x1 – 6x2 + 4x3 –7,
x1 – свободная переменная,
x2, x3 0.
Для того чтобы перейти к двойственной задаче, необходимо снача-
ла записать прямую задачу в стандартной форме. Для этого необходимо
ввести подстановку x1 = x
1
+
– x
1
-
вместо свободной переменной x1, изба-
виться от отрицательного коэффициента в правой части ограничения № 4,
и преобразовать ограничения № 2, 3 и 4 в равенства путем введения дополнительных переменных, ограничениях 3 и 4 дополнительная переменная будет со знаком «+», а в ограничении № 2 – со знаком «минус».
После выполнения перечисленных действий мы получаем стан-
дартную форму записи задачи линейного программирования.
Максимизировать f = 5x
1
+
– 5x
1
-
+ 6x2 – 5x3 при наличии ограничений
4x
1
+
– 4x
1
-
+ 3x2 – x3 = 9,
–2x
1
+
+ 2x
1
-
– 7x2 + 3x3 –x4 = 5,
x
1
+
– x
1
-
+ 2x2 + 5x3 + x5 = 6,
x
1
+
– x
1
-
+ 6x2 – 4x3 + x6 = 7,
x
1
+
, x
1
-
, x2, x3, x4, x5, x6 0.
Теперь мы можем приступить к преобразованию прямой задачи в
двойственную. Прямая задача содержит 7 переменных и 4 ограничения.
Следовательно, в двойственной задаче будет 4 переменных и 7 ограничений. В прямой задаче целевая функция требует минимизации, следовательно, в двойственной задаче тип целевой функции – это минимизация,
знак неравенств в ограничения двойственной задачи «». Обозначим пе-

6.2. Двойственный симплекс-метод
63
ременные двойственной задачи как y1, y2, y3, y4. Тогда двойственная задача
будет иметь следующий вид.
Двойственная задача
Минимизировать w = 9y1 + 5y2 + 6у3 + 7y4 при ограничениях
1 2 3 4
1 2 3 4
4 2 5
4 2 5
y y y y
y y y y
4y1 – 2y2 + y3 + y4 = 5,
3у1 – 7y2 + 2у3 + 6у4 6,
–у1 + 3y2 + 5у3 – 4у4 5,
–y2 0 y2 0,
y3, у4 0,
у1 – свободная переменная.
Первое и второе ограничения двойственной задачи заменены одним
ограничением в виде равенства. Здесь действует следующее правило: свободной переменной прямой задачи соответствует ограничение в виде равенства двойственной задачи и, наоборот, ограничению в виде равенства
прямой задачи соответствует свободная переменная двойственной задачи.
6.2. Двойственный симплекс-метод
Рассмотрим симплексный алгоритм, который основан на соотношениях между прямой и двойственной задачами. Этот алгоритм эффективно решает определенный класс задач ЛП. Кроме того, он позволяет
довести до конца анализ чувствительности модели ЛП [5].
В двойственном симплекс-методе решение задачи ЛП начинается с
недопустимого, но лучшего, чем оптимальное решение. Последовательные итерации этого метода приближают решение к области допустимости
без нарушения оптимальности промежуточных решений. Когда будет достигнута область допустимых решений, процесс вычислений заканчивается, так как последнее решение будет оптимальным. Уже из этого краткого
описания двойственного симплекс-метода видно, что он значительно отличается от обычного (прямого) симплекс-метода, рассмотренного в

6. Двойственная задача
64
предыдущем разделе, где начальное решение всегда допустимое, но не
оптимальное, и промежуточные решения никогда не выходят из пространства допустимых решений.
В двойственном симплекс-методе начальная симплекс-таблица обя-
зательно должна иметь в базисном решении недопустимую (т.е. отрицательную) переменную. Для реализации двойственного симплекс-метода
разработаны следующие два условия, выполнение которых гарантирует
оптимальность последовательных промежуточных решений и приближение их к области допустимых решений [5].
Двойственное условие допустимости. В качестве исключаемой
переменной хr выбирается базисная переменная, имеющая наибольшее по
абсолютной величине отрицательное значение. Если таких переменных
несколько, то выбор произволен. Если все базисные переменные неотрицательные, процесс вычислений заканчивается.
Двойственное условие оптимальности. Вводимая в базис переменная определяется как переменная, на которой достигается следующий
минимум:
0
небазисные x
j
jj
rj
rj
zc
min
,
,
где
rj
– коэффициент из симплекс-таблицы, расположенный на пересече-
нии ведущей строки (соответствующей исключаемой переменной хr) и
столбца, соответствующего переменной xj. При наличии нескольких альтернативных переменных, выбор делается произвольно.
Пример 6.2. Дана следующая задача линейного программирования.
Минимизировать f = 3x1 + 2х2 при ограничениях
3x1 + x2 3,
4х1 + 3x2 6,
xl + x2 3,
x1, x2 0.
Начальная симплекс-таблица этой задачи имеет следующий вид.

6.2. Двойственный симплекс-метод
65
Базис
x1
x2
x3
x4
x5
Решение
f
–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). Этот подход всегда используется при реализации двойственного
симплекс-метода. Поскольку fj – сj 0 для всех j = 1, ..., 5, начальное
базисное решение является оптимальным (но не допустимым). Таким
образом, приведенная таблица удовлетворяет требованиям начальной
таблицы двойственного симплекс-метода, а именно – оптимальности и
недопустимости.
Двойственное условие допустимости указывает на переменную
х4 (= –6) как на вводимую в базис. Теперь применим двойственное условие оптимальности для определения исключаемой переменной. Для этого
используем следующую таблицу.
Переменные
x1
x2
x3
x4
x5
f-строка (fj – cj)
–3
–2 0 0 0 x4-строка,
4j
–4
–3 0 1
0
Отношение
4
jj
j
zc
3/4
2/3
–
–
–
Приведенные отношения показывают, что исключаемой переменной будет х2. Отметим, что переменные хj будут кандидатами на исключение из базисного решения только тогда, когда коэффициент
4j
будет
строго отрицательным. По этому критерию переменные x3, х4 и х5 не рассматриваются как кандидаты на исключение из базиса.
Следующая таблица получена с помощью известных операций над
строками, применяемых в прямом симплекс-методе.

6. Двойственная задача
66
Базис
x1
x2
x3
x4
x5
Решение
f –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
Решение
f 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 и f = 21/5.

7.1. Определение транспортной модели
67
7. ТРАНСПОРТНЫЕ МОДЕЛИ
7.1. Определение транспортной модели
Транспортные модели (задачи) – специальный класс задач линей-
ного программирования [5].
Данную задачу ЛП можно решить симплекс-методом. Но специфи-
ческая структура ограничений позволяет решить эту задачу более простым способом, с помощью, так называемой транспортной таблицы
(табл. 7.1).
Таблица 7.1
Транспортная таблица
Потребитель 1
Потребитель 2
Поставщик 1
10
x
11
12
x
12
Поставщик 2
8
x
21
7
x
22
Поставщик 3
11
x
31
9
x
32
Число столбцов транспортной таблицы равно числу потребителей,
а число строк – числу поставщиков. В правом верхнем углу каждой ячейки транспортной таблицы отображается стоимость перевозки единицы
груза по маршруту между i-м пунктом отправления (поставщиком) и j-м
пунктом назначения (потребителем). В левом нижнем углу ячейки транспортной таблицы указывается объем перевозки груза по тому же маршруту (если такая перевозка есть).
Если суммарный объем предложений (грузов, имеющихся в пунк-
тах отправления) не равен общему объему спроса на товары, запрашиваемые пунктами назначения, транспортная модель называется несбалансированной. Сведения об объеме предложения по каждому пункту отображаются справа от каждой строки таблицы. Сведения об объеме спроса по
каждому пункту отображаются соответственно внизу таблицы (табл. 7.2).
Для того чтобы любую несбалансированную транспортную задачу сделать сбалансированной, вводят фиктивные пункты назначения или отправления. Выполнение баланса транспортной задачи необходимо для

7. Транспортные модели
68
того, чтобы иметь возможность применить алгоритм решения, построенный на использовании транспортных таблиц.
В табл. 7.2 представлена сбалансированная модель и ее начальное
решение. Решение показывает, что фиктивный поставщик поставит второму потребителю 20 единиц груза. На практике для данного потребителя
это означает из заказанных 150 единиц товара не будет поставлено
20 единиц.
Таблица 7.2
Начальное (базисное) решение
Потребитель 1
Потребитель 2
Предложение
Поставщик 1
10
100
12
100
Поставщик 2
8
100
7
50
150
Поставщик 3
11
x
31
9
80
80
Фиктивный
поставщик
100 100
20 20
Спрос
200
150
7.2. Построение начального решения
Рассмотрим, как работает алгоритм решения транспортной задачи
на следующем примере.
Пример 7.1. Транспортная компания получила заказ на перевозку
грузов от трех поставщиков к четырем потребителям. В табл. 7.3 показаны предложения поставщиков и потребности потребителей, а также стоимость перевозки сij одной единицы груза от каждого поставщика до каждого потребителя.
Общая транспортная модель с m пунктами отправления и n пунктами назначения имеет m + n ограничений в виде равенств, по одному на
каждый пункт отправления и назначения. Поскольку транспортная модель
всегда сбалансирована (сумма предложений = сумме спроса), одно из этих
равенств должно быть избыточным. Таким образом, транспортная модель
имеет m + n – 1 независимых ограничений, значит, начальное базисное

7.2. Построение начального решения
69
решение состоит из m + n – 1 базисных переменных. Следовательно,
начальное базисное решение в нашем примере будет содержать 3 + 4 – 1 =
= 6 базисных (ненулевых) переменных.
Таблица 7.3
Постановка задачи
Потребители
Предложение
1 2 3 4
Поставщики
1
2
x11 7 x12 2 x13 6 x14
20
2
4
x21 6 x22 5 х23 8 x24
10
3
8
x31 1 x32 3 x33 3 x34
10
Спрос
8 8 10
14
Для построения начального решения мы можем использовать один
из следующих методов [5].
1. Метод «северо-западного угла».
2. Метод наименьшей стоимости.
3. Метод Фогеля.
Различие этих методов заключается в "качестве" начального реше-
ния, т.е. насколько начальное решение близко к оптимальному. В общем
случае метод Фогеля дает наилучшее решение, а метод «северо-западного
угла» – наихудшее. При этом метод «северо-западного угла» требует
меньшего объема вычислений.
МЕТОД «СЕВЕРО-ЗАПАДНОГО УГЛА».
Выполнение начинается с верхней левой ячейки (северо-западного
угла) транспортной таблицы (ячейка х11).
Шаг 1. Переменной х11 присваивается максимальное значение, до-
пускаемое ограничениями на спрос и предложение.
Шаг 2. Вычеркивается строка (или столбец) с полностью реализованным предложением (с удовлетворенным спросом). Если одновременно
удовлетворяются спрос и предложение, вычеркивается только строка или
только столбец.

7. Транспортные модели
70
Шаг 3. Если не вычеркнута только одна строка или только один
столбец, процесс останавливается. В противном случае переходим к ячейке справа, если вычеркнут столбец, или к нижележащей ячейке, если вычеркнута строка. Затем возвращаемся к первому шагу.
Пример 7.2. Рассмотрим построение начального базисного реше-
ния методом «северо-западного угла» на примере.
Пусть задана транспортная таблица (табл. 7.3). Выбираем ячейку
х11. Максимальный объем предложение в первой строке равен 20, а максимальный объем спроса в первом столбце – 8. Из двух вариантов мы выбираем минимальный, ставим объем перевозки в ячейке х11 равным 8, вычеркиваем первый столбец, так как мы полностью удовлетворили спрос и
переходим к следующей справа ячейке (табл. 7.4).
Таблица 7.4
Потребители
Предложение
1 2 3
4
(Остатки)
Поставщики
1
2 8 7 2 6
20 12
2
4 6 5 8
10
3
8 1 3 3
10
Спрос
(Остатки)
0
8
10
14
Остаточный объем предложения в первой строке равен 12, а максимальный объем спроса во втором столбце – 8. Из двух вариантов мы
выбираем минимальный, ставим объем перевозки в ячейке х12 равным 8,
вычеркиваем второй столбец, так как мы полностью удовлетворили спрос
и переходим к следующей справа ячейке (табл. 7.5).
Остаточный объем предложения в первой строке равен 4, а максимальный объем спроса в третьем столбце – 10. Из двух вариантов мы выбираем минимальный, ставим объем перевозки в ячейке х13 равным 4, вычеркиваем вторую строку, так как мы полностью реализовали предложение и переходим вниз, к следующей ячейке столбца 3 (табл. 7.6).
Остаточный объем спроса в первом столбце равен 6, а максимальный объем предложения во второй строке – 10.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
