Методы оптимизации. Учебное пособие-2
.pdf1 |
x1 |
x2 |
x3 |
y1 |
4 |
3 |
2 |
|
|
|
|
y2 |
3 |
2 |
1 |
|
|
|
|
y3 |
1 |
1 |
2 |
Выбирая в качестве разрешающего элемента элемент a11, получим следующую таблицу
2 |
y1 |
x2 |
x3 |
x1 |
0,25 |
–0,75 |
–0,5 |
y2 |
0,75 |
–0,25 |
–0,5 |
y3 |
0,25 |
0,25 |
1,5 |
На втором шаге в качестве разрешающего элемента выберем элемент, стоящий на пересечении второй строки и второго столбца, в результате преобразования получим
3 |
y1 |
y2 |
x3 |
x1 |
–2 |
3 |
1 |
x2 |
3 |
–4 |
–2 |
|
|
|
|
y3 |
1 |
–1 |
1 |
Выбирая в качестве разрешающего элемент, стоящий на пересечении третьего столбца и третьей строки, получим
4 |
y1 |
y2 |
y3 |
x1 |
–3 |
4 |
1 |
x2 |
5 |
–6 |
–2 |
x3 |
– 1 |
1 |
1 |
Таким образом, решение задачи
x1 = –3y1 + 4y2 + y3 x2 = 5y1 – 6y2 – 2y3
x3 = – y1 + y2 + y3.
В симплекс-методе и приложениях удобнее использовать модифицированные жордановы преобразования.
51
При применении модифицированных жордановых преобразований систему уравнений
y1 = a11x1 + a12x2 + … + a1nxn,
y2 = a21x1 + a22x2 + … + a2nxn,
………………………………
ym = am1x1 + am2x2 + … + amnxn
представляем в виде
y1 = (–a11)(–x1) + (–a12)(–x2) + … + (–a1n)(–xn) y2 = (–a21)(–x1) + (–a22)(–x2) + … + (–a2n)(–xn)
…………………………………………………
ym = (–am1) (–x1) + (–am2) (–x2) … + (–amn) (–xn)
и сопоставим этой системе таблицу
Т |
–x1 |
– x2 |
… |
– xn |
y1 |
–a11 |
–a12 |
… |
–a1n |
y2 |
–a21 |
–a22 |
… |
–a2n |
… |
….. |
… |
… |
… |
|
|
|
|
|
ym |
–am1 |
–am2 |
… |
–amn |
Таблица образована коэффициентами при переменных x1, x2,…xn, взятыми со знаком минус. Первый столбец и первая строка таблицы состоит из символов y1, y2,… ym и –x1, –x2,… –xn соответственно, остальные элементы являются элементами матрицы A = (aij), i = 1, 2,… m, j = 1, 2,… n, взятыми со знаком минус, при этом в i-ой строке таблицы соответствуют коэффициенты i-го уравнения. Алгоритм модифицированных жордановых преобразований отличается от алгоритма жордановых преобразований пунктами 3 и 4:
1)выбираем какой-либо ненулевой элемент ai0 j0 0 и называем его разрешающим. Строку и столбец, на пересечении которых стоит разрешающий элемент, называем разрешающей строкой и разрешающим столбцом;
52
2)заменяем разрешающей элемент единицей;
3)элементы разрешающей строки не изменяем;
4)меняем знаки элементов разрешающего столбца за исключением разрешающего элемента на противоположные знаки;
5)элементы таблицы aij, находящиеся вне разрешающей строки и разрешающего столбца, пересчитываем по ”правилу опреде-
лителя”; элемент aij заменяем элементом aij ai0 j0 ai0 j aij0 .
6)все элементы таблицы делим на разрешающий элемент;
7)меняем местами символы yi0 и x j0 .
Применим метод модифицированных жордановых преобразований для решения сформулированной ранее задачи.
y1 = 4x1 + 3x2 + 2x3 y2 = 3x1 + 2x2 + x3 y3 = x1+ x2 + 2x3 .
Таблица, соответствующая рассматриваемой системе имеет вид:
|
1 |
–x1 |
–x2 |
–x3 |
|
|
y1 |
–4 |
–3 |
–2 |
|
|
y2 |
–3 |
–2 |
–1 |
|
|
y3 |
–1 |
–1 |
–2 |
|
Выбирая в качестве разрешающего элемента элемент a11, |
|||||
получим следующую таблицу |
|
|
|
||
|
|
|
|
||
|
2 |
–y1 |
–x2 |
–x3 |
|
|
x1 |
–0,25 |
0,75 |
–0,5 |
|
|
y2 |
–0,75 |
0,25 |
0,5 |
|
|
y3 |
–0,25 |
–0,25 |
–1,5 |
|
53
На втором шаге в качестве разрешающего элемента выберем элемент, стоящий на пересечении второй строки и второго столбца, в результате преобразования получим
3 |
–y1 |
–y2 |
–x3 |
x1 |
2 |
–3 |
–1 |
x2 |
–3 |
4 |
2 |
y3 |
–1 |
1 |
–1 |
Выбирая в качестве разрешающего элемент, стоящий на пересечении третьего столбца и третьей строки, получим
4 |
–y1 |
–y2 |
–y3 |
x1 |
3 |
–4 |
–1 |
x2 |
–5 |
6 |
2 |
x3 |
1 |
–1 |
–1 |
Таким образом, решение задачи
x1 = –3y1 + 4y2 + y3 x2 = 5y1 – 6y2 – 2y3
x3 = – y1 + y2 + y3
54
3.1.5. Симплекс-метод
Рассмотрим каноническую задачу линейного программирования: минимизировать целевую функцию
F(x) = c1x1 + c2x2 +… + cn xn
при следующих ограничениях в виде равенств
a11 x1 + a12x2 + ... + a1n xn = b1 a21 x1 + a22x2 + ... + a2n xn = b2
……………………....………..
am1 x1 + am2x2 + …+ amn xn = bm
и неравенств
x1 ≥ 0, x2 ≥ 0,… xn ≥ 0.
Решение сформулированной задачи может быть получено симплекс-методом, который позволяет выяснить имеет ли задача решение и, если имеет, то найти его. Алгоритм симплекс-метода состоит из двух частей.
Первая часть заключается в поиске опорного решения. Смысл ее состоит в отыскании какой-либо вершины множества допустимых решений, которую называют опорным решением. Если опорного решения нет, решение рассматриваемой задачи не существует.
Вторая часть заключается в поиске оптимального решения. Она состоит в последовательном переборе вершин множества допустимых решений X, причем первой из вершин является опорное решение, а каждая последующая вершина, найденная с помощью симплекс-метода, выбирается из следующего условия: значение целевой функции в последующей вершине меньше чем значение целевой функции в предыдущей вершине. Поскольку число вершин конечно, симплекс-метод за конечное число шагов позволяет найти решение задачи или указать на неограниченность целевой функции.
55
Перейдем к описанию симплекс-метода, предназначенного для решения сформулированной выше задачи. Введем дополнительные переменные y1, y2,… ym:
y1 = a11 x1 + a12x2 + ... + a1n xn – b1 y2 = a21 x1 + a22x2 + ... + a2n xn – b2
……………………………..
ym = am1 x1 + am2x2 + …+ amn xn – bm
Составим исходную симплекс таблицу:
1 |
–x1 |
–x2 |
… |
–xn |
1 |
P |
y1 |
–a11 |
–a12 |
… |
–a1n |
–b1 |
p1 |
y2 |
–a21 |
–a22 |
... |
–a2n |
–b2 |
p2 |
… |
… |
… |
… |
… |
… |
… |
|
|
|
|
|
|
|
ym |
–am1 |
–am2 |
… |
–amn |
–bm |
pm |
F |
–c1 |
–c2 |
… |
–cn |
0 |
pm+1 |
Для контроля вычислений вводится проверочный столбец – P: сумма элементов по строке вместе с проверочным столбцом равна –1. При последующих преобразованиях элементов таблицы, включая проверочный столбец, в случае ошибочных вычислений сумма элементов в строке, содержащей ошибку, будет отлична от –1.
Первая часть метода – поиск опорного решения состоит в последовательном циклическом выполнении следующих четырех шагов:
1)выбрать строку с отрицательным элементом в столбце свободных членов; если такой строки нет – опорное решение найдено, и следует перейти к выполнению второй части метода – поиску оптимального решения;
2)в выбранной строке с номером i0 (в i0-строке) выбрать ”разрешающий” j0-столбец с отрицательным элементом
( аi0 j0 0) ; если такого столбца нет, множество допустимых
56
решений совпадает с пустым множеством, следовательно, задача линейно программирования не имеет решения;
3) выбрать ”разрешающую” s-строку из условия:
bs |
min{ |
bi |
|
|
bi |
0} ; |
asj |
aij |
|
|
aij |
||
i |
|
|
|
|||
0 |
0 |
|
0 |
|
||
|
|
|
||||
4) провести шаг модифицированных жордановых преобразований с выбранным разрешающим элементом; затем перейти к пункту 1).
Вторая часть метода – поиск оптимального решения состоит в последовательном циклическом выполнении следующих трех шагов:
1)если в строке целевой функции среди базисных столбцов все
элементы –cj ≤ 0, то оптимальное решение найдено, если в указанной строке есть положительные элементы, то выбрать в строке целевой функции элемент с j0 0;
2)выбрать ”разрешающую” s-строку из условия:
|
bs |
min{ |
bi |
|
|
bi |
0, aij |
0} |
|
asj0 |
aij0 |
|
aij0 |
||||
|
i |
|
0 |
. |
||||
|
|
|
|
|
|
|||
|
|
все аij0 0 , |
|
|
||||
Если |
то |
целевая |
функция неограниченна, |
|||||
решения задачи нет; |
|
|
|
|||||
3)провести шаг модифицированных жордановых преобразований с разрешающим элементом аsj0 ; перейти к пункту 1).
Пример 20. Решить симплекс-методом задачу линейного программирования, рассмотренную в примере 19.
F(x) = 2x1 + x2 → max
при следующих ограничениях в виде неравенств:
57
x2 ≥ 1
2x1 + x2 ≥ 4 x1 – 2x2 ≤ 4 2x1 + 4x2 ≤ 16 x1 ≥ 0, x2 ≥ 0
Решение. Приведем задачу линейного программирования к каноническому виду, введем вспомогательные переменные y1, y2, y3, y4
f(x) = – 2x1 – x2 → min
y1 = x2 – 1,
y2 = 2x1 + x2 – 4, y3 = –x1 + 2x2 + 4,
y4 = –2x1 – 4x2 + 16,
x1 ≥ 0, x2 ≥ 0, y1 ≥ 0, y2 ≥ 0, y3 ≥ 0, y4 ≥ 0.
Составим исходную симплекс таблицу 19.1.
|
|
|
|
Таблица 19.1 |
|
|
|
|
|
|
|
1 |
–x1 |
–x2 |
1 |
P |
|
y1 |
0 |
–1 |
–1 |
1 |
|
y2 |
–2 |
–1 |
–4 |
6 |
|
y3 |
1 |
–2 |
4 |
–4 |
|
y4 |
2 |
4 |
16 |
–23 |
|
f |
2 |
1 |
0 |
–4 |
|
|
|
|
|
|
|
Проведем поиск опорного решения (найдем одну из вершин пятиугольника (см. п. 3.1.3.):
1)первый элемент столбца свободных членов отрицателен
–b1 = –1 < 0, выбираем первую строку, i0 = 1;
2)в первой строке выберем разрешающий столбец с отрицательным элементом, элемент во втором столбце –a12 = –1 < 0, следовательно, j0 = 2;
3)выберем разрешающую строку из условия:
58
bs |
1 |
|
4 |
|
16 |
}, |
|
min{ 1 |
; |
1 |
; |
4 |
|
as 2 |
минимум достигается в первой строке, s = 1;
4) проведем шаг модифицированных жордановых преобразований с разрешающим элементом – a12 = –1, получаем таблицу 19.2 и переходим к пункту 1).
|
|
|
|
Таблица 19.2 |
|
|
|
|
|
|
|
2 |
–x1 |
–y1 |
1 |
P |
|
x2 |
0 |
–1 |
1 |
–1 |
|
y2 |
–2 |
–1 |
–3 |
5 |
|
y3 |
1 |
–2 |
6 |
–6 |
|
y4 |
2 |
4 |
12 |
–19 |
|
f |
2 |
1 |
–1 |
–3 |
|
|
|
|
|
|
|
Поскольку столбец свободных членов в таблице 2 содержит отрицательный элемент, опорное решение еще не найдено. Проведем действия, описанные в 1) – 4) с разрешающим элементом – a22 = –1, и получим симплекс таблицу 19.3
|
|
|
|
Таблица 19.3 |
|
|
|
|
|
|
|
3 |
–x1 |
–y2 |
1 |
P |
|
x2 |
2 |
–1 |
4 |
–6 |
|
y1 |
2 |
–1 |
3 |
–5 |
|
y3 |
5 |
–2 |
12 |
–16 |
|
y4 |
–6 |
4 |
0 |
1 |
|
f |
0 |
1 |
–4 |
2 |
|
|
|
|
|
|
|
Столбец свободных членов в таблице 3 не содержит отрицательных элементов, опорное решение найдено x1=0, y2=0, x2=4, y1=3, y3=12, y4=0 – это вершина B(0,4) (см. пример 19, рис. 11). Значение целевой функции в опорной вершине f(0,4)= 4. Переходим ко второй части симплекс-метода.
Проведем поиск оптимального решения:
59
1)поскольку в строке целевой функции в столбцах базисных переменных содержится положительный элемент, то опорное решение не является оптимальным, положительный элемент находится во втором столбце –c2 = 1, следовательно, j0=2;
2)в качестве разрешающей строки возьмем четвертую строку, поскольку
bs |
min{0} 0, s = 4 ; |
|
asj |
||
4 |
||
0 |
|
3)проведем шаг модифицированных жордановых преобразований с разрешающим элементом –a42 = 4 и получим симплекс таблицу 19.4.
|
|
|
|
Таблица 19.4 |
|
|
|
|
|
|
|
4 |
–x1 |
–y4 |
1 |
P |
|
x2 |
0,5 |
0,25 |
4 |
–5,75 |
|
y1 |
0,5 |
0,25 |
3 |
–4,75 |
|
y3 |
2 |
0,5 |
12 |
–15,5 |
|
y2 |
–1,5 |
0,25 |
0 |
0,25 |
|
f |
1,5 |
–0,25 |
–4 |
1,75 |
|
|
|
|
|
|
|
Поскольку в строке целевой функции в столбцах базисных переменных содержится положительный элемент, полученное решение не является оптимальным. Проведем с таблицей 4 действия, описанные в 1) – 3) (модифицированные жордановы преобразования с разрешающим элементом –a31 = 2), и получим симплекс-таблицу 19.5.
|
|
|
|
Таблицу 19.5 |
|
|
|
|
|
|
|
5 |
–y3 |
–y4 |
1 |
P |
|
x2 |
–0,25 |
0,125 |
1 |
–1,875 |
|
y1 |
–0,25 |
0,125 |
0 |
–0,875 |
|
|
|
|
|
|
|
x1 |
0,5 |
0,25 |
6 |
–7,75 |
|
y2 |
0,75 |
0,625 |
9 |
–11,375 |
|
|
|
|
|
|
|
f |
–0,75 |
–0,625 |
–13 |
13,375 |
|
|
|
|
|
|
|
60
