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

Методы решения задач оптимизации. Учебное пособие

.pdf
Скачиваний:
1
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
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.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]