
лекции, учебные пособия / лекции, отформатированная 2 часть / ЛекцииЧ1
.pdf41
4. Для того, чтобы осуществить последовательный перебор всех вершин необходимо на каждом шаге анализа только одну переменную обнулять, соответственно только одной переменной давать положительное приращение.
Все эти основополагающие принципы каждой интерпритации задачи находят свое отражение в симплекс алгоритме.
Симплекс метод. Этапы поиска решения.
Симплекс метод является универсальным, что позволяет решать задачи линейного программирования в общей постановке. Хотя требует их приведения к так называемому
|
|
|
|
|
|
|
n |
|
стандартному |
виду. В |
стандартном виде задача имеет запись: z c j x j |
min . |
|||||
|
|
|
|
|
|
|
j 1 |
|
a11 x1 a12 x2 |
... a1n xn |
b1 |
|
|||||
|
|
|
|
|
|
|
|
|
..................................... |
|
|||||||
|
am2 x2 |
... amn xn |
bn |
|
||||
am1 x1 |
|
|||||||
|
|
|
|
|
|
|
|
|
x |
j |
0, |
j 1, N |
|
|
|||
|
|
|
|
|
|
|
|
z cx min
Или матричное представление задачи: Ax B , где А – матрица коэффициентов
x 0
Аij , х и B – столбцы x1 ,..., xn , B1 ,..., Bn , с – строка c1 ,..., cn . Заметим, что с формальной точки зрения нет необходимости различать задачи поиска минимума и максимума целевой функции, т.к. одна задача сводится к другой изменением знака целевой функции на противоположный.
---------------------------------------------------------------------------------------------------------------------
----------------
Канонический вид.
Симплекс метод может быть применен в том случае, когда задача сформулированна
в специальном каноническом |
виде. Задача сформулированна в каноническом виде если |
||
|
|
|
|
система ограничений имеет |
следующую особенность. Переменная x j , j 1, m . Эта |
переменная входит в строку i = j и имеет коэффициент равный 1, и не входит в остальные
x |
1 |
A |
x |
m 1 |
... A |
x |
n |
b |
|
|||
|
|
1,m 1 |
|
1,n |
|
1 |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
строки системы ограничений. |
.................................... |
|
|
|
|
|
|
|
|
|
|
Причем коэффициенты |
x |
m |
A |
x |
m 1 |
... A |
|
x |
n |
b |
m |
||
|
m,m 1 |
|
m,n |
|
|
|
A1,m 1 u |
Amn |
и правые части B1 |
...Bm однозначно определяются исходными величинами |
||
aij u bij . |
Каноническая |
система |
позволяет |
легко указать первое базисное решение. |
|
Решение, |
в |
котором |
xm 1 ,..., xn равны |
0 называется базисным, для него |
|
x1 b1 ,..., xm bm , xm 1 ,..., xn 0. |
Симплекс метод основан на следующем утверждении, |
если исходная задача линейного программирования имеет решение, то оно обязательно совпадает с каким-нибудь допустимым базисныс решением. В основе симплекс метода лежит идея последовательного перебора базисных решений стандартной системы с целью выбора оптимального. Реализуется следующий алгоритм:
1.Находится некоторое допустимое базисное решение, либо делается вывод о неразрешимости задачи.
2.Полученное допустимое базисное решение проверяется на оптимальность.
3.Если полученное решение не оптимально, то с использованием критерия направленного перебора решений выбирается следующее базисное решение.

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
4. Пункты 1-3 повторяются до тех пор, пока либо не будет найдено |
|||||||||||||||||||||||||
|
|
|
|
|
оптимальное решение, либо не будет подтверждена неограниченное увеличение |
|||||||||||||||||||||||||
|
|
|
|
|
целевой функции. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
Симплекс метод в общем случае реализуется в два этапа: |
|
|
|
|
|
||||||||||||||||||||||||
|
|
|
|
|
1. |
Решается вспомогатальная задача линейного программирования. |
|
|
||||||||||||||||||||||
|
|
|
|
|
2. |
Решается основная задача линейного программирования. |
|
|
|
|||||||||||||||||||||
|
|
Этап первый начинается с формального введения в каждую строку искусственной |
||||||||||||||||||||||||||||
неотрицательной переменной, что позволяет привести систему к каноническому виду. |
||||||||||||||||||||||||||||||
a11 x1 ... a1n xn |
b1 |
|
|
a11 x1 ... a1n xn |
xn 1 b1 |
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
................................. |
|
|
|
|
|
|||||||||||
......................... |
|
|
|
|
|
|
|
|
||||||||||||||||||||||
a |
m1 |
x |
1 |
... a |
mn |
x |
n |
b |
1 |
a |
m1 |
x |
1 |
... a |
mn |
x |
n |
x |
n 1 |
b |
2 |
|
|
|
||||||
|
|
|
|
|
|
m |
|
|
|
|
|
|
|
|
m |
|
|
|
|
|
||||||||||
|
x j |
0, j 1, n |
|
|
x |
j |
0; x |
n i |
|
0, j 1, n, i 1, m |
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
Если существует решение для системы (1), то оно допустимо и для системы (2), при |
||||||||||||||||||||||||||||
условии |
x1 ,..., xn 1 |
0 . |
Соответственно, |
получить решение системы (1) можно решив |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
m |
|
|
систему |
(2) |
при |
следующей |
для |
|
нее |
целевой |
функции: |
min w xn i . |
Ввиду |
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i 1 |
|
|
неотрицательных переменных, минимальное значение целевой функции w есть 0, при |
||||||||||||||||||||||||||||||
этом все введенные дополнительные переменные равны 0. Таким образом, |
||||||||||||||||||||||||||||||
вспомогательная задача линейного программирования записывается так: Найти |
||||||||||||||||||||||||||||||
переменные x j |
0, xn i |
0, j 1, n, i 1, m обращающеи в минимум целевую функцию при |
||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
условиях (2). Особенность данной задачи |
||||||||||
Х2 |
|
|
|
|
W = 0 |
|
|
U вспомагательной |
|
|
состоит в |
том, |
что для |
него легко |
задать |
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
задачи |
|
|
|
|
|
|
|
начальное |
|
|
базисное |
значение: |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x j 0, j 1, n, xn i |
bi , i 1, m . |
||||
|
|
|
|
|
|
|
|
|
|
|
Исходная |
|
|
|
|
|
|
|
Геометрическая |
|
интерпритация |
решения |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
вспомогательной |
|
задачи |
имеет |
вид. |
Если |
|||||||
|
|
|
|
|
|
|
|
|
|
|
точка |
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
окажется, что минимум целевой функции |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
Х1 |
|
|
|
|
|
|
|
|
положителен, то процесс вычисления можно |
||||||||||
|
|
|
|
U основной |
|
|
|
|
|
|
|
|
|
прекратить, считая задачу с условиями (1) |
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
задачи |
|
|
|
|
|
|
|
|
|
|
|
|
|
неразрешимой. Если целевая функция |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
обращается в 0, то можно начинать |
||||||||||
выполнений исходной задачи с исходной целевой функции Z, при этом в качестве |
||||||||||||||||||||||||||||||
исходного базисного решения основной задачи применяется исходное базисное решение |
||||||||||||||||||||||||||||||
полученное при решении вспомогательной задачи. Основу симплекс метода составляет |
||||||||||||||||||||||||||||||
симплекс алгоритм, определяющий операции, осуществляемые с базисными решениями, |
||||||||||||||||||||||||||||||
как на первом, так и на втором этапе решения задачи. |
|
|
|
|
|
|
Симплекс алгоритм.
Симплекс алгоритм основан на следующих теоретических предпосылках:
1.Формальное задание условия проверки на оптимальность полученного решения.
2.Формальное задание условия (критерия оптимальности) для обоснования перехода из одной краевой вершины в другую.
---------------------------------------------------------------------------------------------------------------------
----------------
Задание формального условия оптимальности полученного решения.

|
|
|
|
|
|
|
43 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Пусть задача линейного программирования дана в следующих установках. Найти |
|
|
|
|||||||||||||||||||
x1 , ...,x n 0 |
обращающие |
в |
минимум |
целевую функцию |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
n |
|
|
|
|
|
|
|
|
|
|
x1 |
|
|
|
|
|
|
|
|
|
||
z c j x j при следующих ограничивающих условиях. |
|
|
A1,m 1xm 1 ... A1n xn |
b1 |
||||||||||||||||||
j 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i ..................................... |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
Эта |
каноническая |
форма. |
Счита |
ее |
допустимой, |
|
x |
|
A |
x |
|
|
... A x |
|
b |
|||||||
рассмотрим очевидное базисное решение x1 b1 ,..., xm bm . |
|
|
m |
m,m 1 |
|
m 1 |
j |
mn |
n |
m |
||||||||||||
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
Для ответа на вопрос является ли это решение оптимальным |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
проведем не сложные преобразования. Умножим каждую |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
строку системы неравенств на коэффициент Cj, индекс которого совпадает с номером |
|
|
|
|||||||||||||||||||
соответствующей строки i = j и просуммировав полученное раветство z z0 |
|
|
n ~ |
|
|
|
||||||||||||||||
c j x j * |
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
j m 1 |
|
|
|
|||
здесь z0 – некая константа, по своему физическому смыслу. Это значение целевой |
|
|
|
|||||||||||||||||||
функции |
z, |
допустимое |
в |
точке с |
координатой |
x1 b1 ,..., xm bm , xm 1 ,..., xn 0 , |
|
|
|
|||||||||||||
|
|
~ |
A |
коэффициенты при |
свободных |
переменных. |
|
Рассмотрим |
|
|
|
|||||||||||
коэффициенты cj c j |
|
|
|
|
||||||||||||||||||
базисные |
решения, вошедшие в |
выражение |
z. Утверждение: допустимое |
базисное |
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
~ |
при свободных переменных xj в |
|
|
|
||||||||||
решение является оптимальным если коэффициенты c j |
|
|
|
выражении (*) не отрицательное.
Доказательство: в рассматриваемой задаче необходимо минимизировать целевую
функцию z, при этом z z0 |
|
n ~ |
x j |
. Если коэффициенты |
~ |
~ |
0 , то разность z |
c j |
cm 1 |
,..., cn |
jm 1
–z0 не отрицительна и ее минимум есть 0. z не будет менее z0 , т.е. невозможно уменьшить целевую функцию за счет приращений свободным переменным. Из данного утверждения следует
1. любое |
решение |
поставленной задачи, |
которому |
соответствуют |
||||
~ |
|
~ |
0 |
и |
все соответствующие |
коэффициенты |
~ |
0, при |
cm 1xm 1 |
,..., cn xn |
cj |
неотрицательности переменных xj будет оптимальным.
2. Допустимое оптимальное базисное решение окажется оптимальным если все
~
коэффициенты c j 0 .
В этом случае свести к нулю разность z – z0 можно только при xm 1 ,..., xn 0.
Сформулированное является признаком оптимальности задачи линейного программирования. Однако на практике по существу никогда не удается найти оптимального решения сразу. Поэтому возникает задача перебора краевых вершин.
Формальное задание критерия оптимальности и обоснование перехода из одной
краевой вершины в другую.
Пусть |
на |
очередном |
этапе решения |
получено |
базисное решение: |
|
|
|
|
|
|
|
~ |
x1 b1 ,.., xm bm , xm 1 ,..., xn 0 оказалось не оптимальным, т.е. среди коэффициентов c j |
||||||
|
|
|
|
|
|
|
при j 1, n |
есть |
отрицательные |
значения. Чтобы |
перейти к |
другому допустимому |
решению, нужно сделать строго положилельной (ввести в базис) какую-то из первых x1 , ... , xm , соответственно обратим в 0 одну из переменных x1 ,..., xn . Очевидно, что
целевая функция при таком преобразовании улучшится в том случае, если положительное |
||||
|
|
|
|
~ |
приращение давать переменной при которой коэффициент c j 0 . Обозначим s тот номер j |
||||
из |
номеров m+1,…,n, |
~ |
||
для которой c j 0 и имеет минимальное значение. |
||||
~ |
~ |
|
|
Решив дать положительное приращение переменной xs = 0, |
|
|
|||
сs |
min cj 0, j m 1, n . |

44
представим базисную переменную и целевую функцию в следующем виде из исходной
|
x1 b1 a1s xs |
|
|
|
|
||||||
|
.................. |
|
|
|
|
||||||
|
|
|
|
|
|||||||
системы ограничений: |
xm bm |
a1s xs |
|
Видим, что с целью минимизации целевой |
|||||||
|
|
|
|
||||||||
|
|
~ |
|
|
~ |
0 |
|
||||
z z |
|
x |
|
|
|||||||
0 |
c |
s |
c |
s |
|
||||||
|
|
s |
|
|
|
|
|
|
|||
функции z, целесообразно уменьшать cs |
. Однако возрастание xs можно осуществлять до |
||||||||||
тех пор пока какая-либо из переменных x1 ,..., xn |
не обратиться в 0. Первой в 0 обратиться |
||||||||||
та переменная, для которой отношение |
|
bi |
ai ,s |
минимально. Таким образом условием |
|||||||
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
увеличении переменной xs будет минимум этого отношения.
Замечание: Если хотя бы одно значение xi = 0, при соответствующем значении ai,s 0, то переменную xs невозможно ввести в базис с соблюдением требовании 0 переменных (случай вырожденного базисного решения). Таким образом нами определены формализованные критерии и признаки:
1.Оптимальности решения
2.Единственность оптимальности решения
3.Правила перехода в новой краевой точке в части:
a)Выбора направления перехода (переменной, которой следует дать положительное приращение)
b)Задания величины приращения переменной
c)Определения переменной, которую следует обнулить Сформулированные формальные требования и условия используются на каждом
шаге, если ни на одном из них не появляется вырожденного базисного решения.
---------------------------------------------------------------------------------------------------------------------
----------------
Пример решения задачи постоения оптимального плана.
Вернемся к задаче сформулированной ранее, про раскрой листов. В формализованном
|
3x1 2x2 x3 80 |
||||
|
6x2 9x3 13x4 |
40 . Прежде всего |
|||
виде она имеет следующее представление: x1 |
|||||
|
|
|
|
|
|
x j |
j 1,4, |
|
|||
|
|
исходную задачу требуется привести к стандартному виду, что является необходимым условием применения симплекс метода. Поскольку условия в системе ограничений « » введем две дополнительные переменные x5 и x6 со знаком «-». Получаем:
|
3x1 2x2 x3 x5 80 |
|||||
|
6x2 |
9x3 |
13x4 x6 |
40 .Очевидное базисное решение x1, x2, x3, x4 = 0, x5 = -80, |
||
x1 |
||||||
|
|
|
|
|
|
|
|
x j |
j 1,6, |
|
|||
|
|
|
x6 = -40, что недопустимо. Следовательно задачу необходимо решать в два этапа.
1. Перейдем к вспомогательной задаче. Для этого приведем систему ограничений к каноническому виду. Для этого вводим две дополнительные
|
|
3x1 2x2 x3 x5 x7 80 |
|||||
|
|
6x2 |
9x3 13x4 x6 |
x8 40 . |
|||
переменные x7, x8 |
следующим образом: x1 |
||||||
|
|
|
|
|
|
|
|
|
|
x j |
j 1,8, |
|
|||
|
|
|
|
Соответственно формулируем целевую функцию для этой задачи, которая выглядит следующим образом min w x7 x8 . Очевидным исходным базисным
45
решением здесь будет: x1, x2, x3, x4, x5, x6 = 0, x7 = 80, x8 = 40, w =120. В
соответствии с симплекс алгоритмом выразим не нулевые значения целевой функции через остальные. Получаем следующие значения целевой функции: w =
x7 80 3x1 2x2 x3 x5
x7 + x8 = 120 - 4x1 - 8x2 - 10x3 - 13x4 + x5 + x6, x8 40 x1 6x2 9x3 13x4 x6 ,
т.к в выражении присутствуют отрицательные коэффициенты, то найденное нами решение не оптимально. Для выбора переменной, которой следует дать положительное приражение. Для этого находим переменную у которой коэффициент имеет максимальный по модулю отрицительное значение. X4 и ей будем давать положительное приращение, x4 = xs . Теперь необходимо проанализировать, какую переменную необходимо обнулить (x7 или x8).
Проанализируем следующие |
условия: |
|
x7 80 |
Определим |
до какого |
||
|
. |
||||||
|
|
|
|
x8 |
40 13x4 |
|
|
значения |
можем |
увеличивать x4 . |
Для этого |
решим |
уравнения: |
||
|
x7 |
80 |
|
. Таким образом получаем следующее |
|||
|
13x4 0 40 13x |
40 |
|||||
x8 40 |
4 x4 13 |
|
|
|
|
базисное решение: x1, x2, x3, x5, x6, x8 = 0, x7 = 80, x4 = 40/13. Это решение лучше, т.к. целевая функция уменьшилась w = 80. Проверим данное решение на оптимальность. Для этого вновь выразим целевую функцию: w = x7 + x8 = 80 - 3x1 - 2x2 - x3 + x5 + x8. Так как в данном выражении присутствуют отрицательные коэффициенты решение не оптимально. Выберем переменную, которой следует дать положительное приращение. В нашем случае это x1 , т.к. при ней максимальный по модулю отрицательный коэффициент. В нашем случае неотрицательными являются x4 и x7 , поэтому выразим через x1 , для определения какая первая из них обратиться в 0; до какого значения можно увеличивать x1 .
|
|
|
|
x7 |
80 3x1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
Получим: |
x4 |
|
40 x1 |
. Для определения значения x1 |
следует увеличивать до |
|
|||||||||||||||||||||||
|
|
|
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
80/3, при этом x7 обращается в 0. Таким образом получаем следующее решение: |
|
||||||||||||||||||||||||||||
x2, x3, x5, x6, x7 ,x8 = 0, x1 = 80/3, x4 = 40/39. Рассмотрим для этого решения |
|
||||||||||||||||||||||||||||
целевую функцию w = x7 + x8 = 0. Таким образом вспомогательная задача решена, |
|
||||||||||||||||||||||||||||
т.к. целевая функция равна 0, а следовательно можно переходить к решению |
|
||||||||||||||||||||||||||||
основной задачи, для которой найдено исходное базисное решение. |
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
----------------------------------------------------------------------------------------------------------------- |
|
||||||||||||||||||||||||||||
-------------------- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
2. Имея допустимое базисное решение стандартной системы, полученное при |
|
||||||||||||||||||||||||||
решении вспомагательной задачи, вернемся к исходной задаче и прежде всего |
|
||||||||||||||||||||||||||||
проверим полученное базисное решение на оптимальность. В соответствии с |
|
||||||||||||||||||||||||||||
симплекс алгоритмом не трудно выразить полученные базисные переменные |
|
||||||||||||||||||||||||||||
через |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
свободные: |
|
|||||||||
x |
|
|
80 2x2 |
x3 |
; x |
|
|
|
40 x1 6x2 9x3 |
|
...; z x |
|
x |
|
x |
|
x |
|
|
.. |
|
1080 3x2 |
12 |
||||||
1 |
|
|
4 |
|
|
1 |
2 |
3 |
4 |
|
|
|
|
||||||||||||||||
|
|
|
3 |
|
|
|
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
Здесь присутствуют отрицательные коэффициенты перед переменной x2 |
, |
|
|||||||||||||||||||||||||||
следовательно данное решение при котором целевая |
функция |
z |
|
80 |
|
40 |
|
не |
|
||||||||||||||||||||
|
3 |
|
|
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
|
|
|
||||
оптимальна. В базис может быть введена лишь переменная x2 . Определим |
|
||||||||||||||||||||||||||||
переменную, |
которую |
следует обнулить и |
определим до каких |
|
пор можем |
|
46 |
|
|
|
|
|
|
|
|
|
|
|
|
x1 |
|
80 2x2 |
|
|
||||
|
|
|
3 |
|
|
|
|
|||
увеличивать x2 . Для этого выразим x1 и x4 через x2 |
|
|
|
|
|
|
|
. |
||
|
|
|
|
|
|
|
|
|||
x |
|
40 x |
|
6x |
|
|
40 16x2 |
|||
4 |
1 |
2 |
|
39 |
|
|||||
|
|
|
|
|
|
|
В данных выражениях x3 , x5 , x6 отброшены, т.к. они сохраняют нулевые значения. X2 может быть увеличина до 2,5. В этом случае x4 обратится в 0 (больше увеличивать нельзя, т.к. x4 станет отрицительным). Таким образом новое полученное решение выглядит: x3, x5, x6, x4 = 0, x2 =2,5, x1 =25, проверим полученное решение на оптимальность. Для этого выразим в целевой функции z
базисные |
переменные |
x1, |
x2 |
через |
свободные |
|||||||||
x |
|
|
80 2x2 |
x3 x5 |
; |
x |
|
|
40 x1 9x3 |
13x4 x6 |
... |
|
||
1 |
|
3 |
2 |
6 |
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|||
z |
440 2x3 |
3x4 5x5 |
x6 |
. |
Данное |
выражение |
указывает |
на то, что |
||||||
|
16 |
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
полученное решения является оптимальным (ни у одной переменной нет отрицательного коэффициента). Таким образом решение задачи здесь состоит в том, что должны использоваться лишь два способа раскроя листов, при этом 25 листов первым, а 2,5 – вторым. Наименьший расход материала составит 27,5 листов, количество получаемых деталей при этом будет 80 деталий типа 1, и 40 – типа 2 (путем подставления в исходные уравнения x1 и x2)
Сформулируем недостатки рассмотренного классического симплекс метода:
1. Из физического смысла интерпритации задачи видимый существенный недостаток: вспомогательная задача формулируется и решается не с целью поиска максимально близкому к оптимальному решению, а с целью поиска хоть какоголибо решения.
-----------------------------------------------------------------------------------------------------------------
--------------------
2.Критерий оптимальности не позволяет минимизировать число краевых вершин, перебираемых при решении задачи, т.к. сложность вычислительной процедуры определяется именно числом перебираемых вершин, то критерий не позволяет минимизировать сложность решения задачи.
3.Высокая сложность вычислительной процедуры на каждом шаге решения, причем для реализации вычислительной процедуры здесь трудно применить вычислительные средства.
4.На практике часто требуется решение задачи за конкретное время с заданным ограничением на точность получения решения. Симплекс алгоритм же позволяет решить задачу точно.
5.Существенный недостаток симплекс метода является то, что он не позволяет получать оптимального плана в полном смысле этого слова, т.е. определить не только оптимальное решения, но и определить их применения в определенном плане. Т.е. он не может быть применен в задачах линейного программирования с заданнием приоритетов решения задач. Например для нашей задачи, где
требуется получить 80 деталей типа 1, и 40 – типа 2, может быть сформулированно условие: в первую очередь получить 30 деталей типа 1 и 5 деталий типа 2, во вторую очередь – 20 – типа 1 и 20 – типа 2, в в третью очередь оставшиеся. При использовании симплекс метода данная задача разобьется на 3 задачи линейного программирования (причем независимых) имеющих сложность составления в исходную.
Целочисленное программирование. Идея метода Гомери.

47
Задачи сформулированные в терминах линейного программирования и содержащие требование «все или некоторые xj целые числа» называются задачами целочисленного программирования. Геометрическое представление особенности постаковки задачи в этом случае состоит в том, что область определяется целочисленными задачами, отождествляемые с множеством дискретных точек или узлов целочисленной решетки (если все целочисленные ) или с множеством пересекающихся линий плоскостей (если целочисленны переменные ) (см рис.). В этом
смысле также может быть использован симплекс метод, однако сложность применения данного подхода здесь еще увеличивается. Метод решения целочисленных задач на основе симплекс метода носит имя Гомери. Метод Гомери состоит из последовательного выполнения шагов. На первом шаге ограничения на целочисленные переменные не используются и задача решается классическим симплекс методом. Если полученное решение не соответствует исходному условию, то метод Гомери предполагает проведение видоизменения исходной допустимой области таким образом, чтобы из нее исключить полученные нецелочисленные решения, но в месте с тем гарантированно оставались в качестве возможных решений все претендующих на это целочисленное значение. Данное ограничение представляет собою прямую, отсекающую линии проходящие через ближайшие целочисленные решения. Формально данное условие записывается отдельно дополнительным неравенством в систему (исходную) (чем модифицирующихся область U) после чего задача решается вновь. Таким образом при использовании симплекс метода при введении ограничения на целочисленность задача многократно усложняется, т.к. требует многократного использования симплекс метода с допустимой области в рамках решения одной исходной задачи.
-----------------------------------------------------------------------------------------------------------------
--------------------
Векторная интерпритация задачи линейного программирования.
При синтезе любого метода оптимизации необходимо дать ответы на следующие вопросы:
1.Каков физический смысл или интерпритация задачи оптимизации.
2.Каков физический смысл или интерпритация критерия оптимальности.
3.Каков физический смысл критерия выбора направления продвижения к оптимальному решению на каждом шаге.
4.Какой критерий выбора величины продвижения к оптимальному решению на каждом шаге решения задачи.
5.Каков физический смысл задания условия окончания решения или условие оптимальности полученного решения для:
a)При точном решении задачи.
b)При приблизительном решении задачи.
Рассмотрим альтернативную векторную интерпритацию постановки и решения задачи линейного программирования.

48
Рассмотрим исходную постановку задачи линейного программирования. Для простоты
n
будем считать, что целевая функция будет иметь вид: z x j min
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
j 1 |
|
|
|
|
|
|
|
a11x1 ... a1n xn |
b1 |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
......................... |
||||||||||
|
|
|
|
|
|
a |
m1 |
x |
1 |
... a |
mn |
x |
n |
b . |
||
|
|
|
|
|
|
|
|
|
|
|
m |
|||||
|
|
|
|
|
|
|
x j 0, j 1, n |
|||||||||
|
|
|
|
|
|
|||||||||||
У |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
bm |
|
|
|
|
|
Для возможности интерпритирования задачи положим m = 2, |
||||||||||
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
теперь задачу можно интерпритировать на плоскость. |
||||||||||
|
|
|
|
|
|
Отложим на плоскости ограничения. Пересечение |
||||||||||
|
|
|
|
|
|
соответствующих прямых x = b1 и y = bm задают область |
||||||||||
|
|
|
|
|
|
допустимых решений U. Т.к. необходимо построить |
||||||||||
|
|
|
|
|
|
оптимальный план, т.е. достигнуть допустимой области |
||||||||||
O |
b1 Х |
|||||||||||||||
решений U с минимальными затратами, отложим направление |
||||||||||||||||
|
|
|
|
|
|
достижение допустимой области. Это вектор ОО1 (идеальный |
вектор), задающий идеальное направление продвижения из вершины координат в сторону допустимой области решений. Теперь представим каждый локальный вариант решения соответствующе заданным x1 , ... , xn вектором его качества в данной системе
координат. Для этого отложим по соответствующим осям коэффициенты при переменных х. Отложение в системе координат вектора например в точку а21 соответствует присвоению переменной х1 значение. Очевидно, что лучший из векторов локальных вариантов должен иметь максимальную длину и наименьший угол с идеальным вектором (вектором, задающим направление идеального решения). Таким образом критерием выбора локального лучшего решения будет максимальная длина его
|
|
x |
|
|
|
max |
|
|
|
|
|
|
|||
|
|
j |
|
|
|
||
вектора и минимальный угол с идеальным вектором |
|
|
|
|
|
. Для упрощения |
|
|
|
|
|
|
|||
j |
0 |
min |
|
||||
|
|
|
|
|
|
вычислений можно два этих критерия свести к одному, взяв длину проекции вектора x j 0 x j cos jo качества локального решения, на идеальный вектор можно свести
задачу к однокритериальной. При этом лучший вектор следует выбирать из условий максимизации длины проекции. Определим в нашей системе координат лучший вариант, отложив проекцию на идеальный вектор. Пусть это вектор Q2 . Если на данном шаге мы выберем вектор Q2, это будет означать, что значение переменной х2 мы увеличим на 1. В свою очередь это означает наше продвижение в сторону ограничений по оси х на а12 по оси у на а22 . Или соответственно это означает уменьшение исходных ограничений (т.к. часть работы выполнена b1 на величину а12 и b2 на величину а22 ). Соответственно переход к следующему шагу решения задачи можно интерпритировать движением системы координат в направлении и на длину вектора Q2 . Далее
определим новое идеальное направление для последующего решения задач. Который учитывает любые пролученные результаты на последующих шагах.
-----------------------------------------------------------------------------------------------------------------
--------------------
В новой системе координат строим новый идеальный вектор Q0 и откладывает вектора исходных решений (они не изменяются, т.к. исходно заданы системой ограничений). Данная пошаговая процедура выполняется до тех пор, пока последний отложенный вектор качества не пересечет область допустимых решений. Решением задачи будет совокупность частных планов (решений) соответствующего вектора, который отложен в процессе решения задачи.

49
Достоинства и недостатки метода решения, который может быть рассмотрен на основе рассмотренной интерпритации:
Достоинства:
1.Критерий оптимальности, оптимизирует число вычислений, т.к. на каждом шаге выбирается оптимальное решение.
2.В первую очередь данный подход ориентирован на решение целочисленных задач линейного программирования.
Недостатки: преподавателем было предложено сформулировать недостатки данного метода самим студентам.
Подстказка: в виду того, что одновременно несколько векторов могут иметь равную длину проекции, то для корректного решения задачи необходимо рассмотреть все ветви решений, образуемых векторами, имеющие равные проекции. К чему может привести рассмотрение только одной ветви при целочисленном и точном решении.
Интерпритация задачи, как задачи многокритериальной оптимизации. Формализация критериев и процедур вычислений.
В общем случае задачи многокритериальной оптимизации могут быть сформулированны следующим образом. Задано N вариантов решения системы с
номерами n 1, N , каждые из которых характеризуются m 1, M параметрами qn ,m .
Требуется вариант превосходящий остальные по совокупности параметров. В качестве критерия оптимальности на практике широко используется аддитивный критерий
M
оптимальности или аддитивный сверток имеющий вид: An qn,m , где qn,m -
m 1
нормированное по какому-то закону значение параметра. Данное выражение для необходимости учета относительной важности параметров qn,m вводится весовой
M
коэффициент n . An n qn,m задача линейного программирование может
m 1
интерпритироваться как задача многокритериальной интерпритации. На каждом шаге решения задачи задано N вариантов решения Xn (при векторной интерпритации отображаются вектора). При этом требуется выбрать оптимальный из них в смысле достижения совокупности ограничений Qm . Каждый шаг от предыдущего отличается лишь тем, что в качестве ограничений используются параметры, полученные с учетом полученных на предыдущих шагах результатов. В рамках векторной интерпритации, что наилучший вариант выбирается по максимальной длине проекции на идеальный вектор xn0 xn cos n0 . Предположем, что из исходного базиса мы перешли в
ортонормированный (см. далее). Тогда значение параметров принимает вид:
0 qn,m 1; |
q0,m 1. Тогда длина вектора через нормированные значения может быть |
||||||||||||||||||||
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
M |
|
|
2 |
|
|
M |
|
|
|
M |
|
M |
|
|
2 |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
записана: xn |
|
q |
n2,m |
; |
n0 |
arccos |
q |
0,m |
q |
n,m |
|
q |
0,2m |
q |
n2,m |
|
|
. Подставив одно в |
|||
|
|
m 1 |
|
|
|
|
|
|
|
|
|
|
m 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
m 1 |
|
|
|
m 1 |
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
M |
|
|
|
|
|
|
qn,m . Соответственно имеем: A |
|
|
|
|
другое получим: xn,0 |
|
|
m xn,0 . Таким |
||||
|
|
|
|||||
|
|||||||
|
|
|
|
n |
|
|
|
|
|
M m 1 |
|
|
|
образом аддитивный критерий оптимальности представляет собой приведенную или
умноженную на коэффициент m на длину проекции вектора варианта на идеальный вектор, т.к. значение М одинакого для сравниваемых вариантов (это число параметров),

50
то для сравнительного анализа вариантов на каждом шаге этим значением можно принебреч. Таким образом получаем, что для выбора лучшего варианта на каждом шаге необходимо пронормировать значения параметров вариантов. Получить критерий оптимальности по формуле и выбрать лучшее значение варианта по условию максимизации критерия.
-----------------------------------------------------------------------------------------------------------------
--------------------
Нормирование параметров.
Нормирование параметров должно учитывать:
4.Величину вектора относительно векторов других сравниваемых вариантов или на сколько велик шаг в сторону ограничения будет при откладывании данного вектора.
5.Отношение ограничений между собой или в какой мере следует продвигаться при откладывании векторов конкретному ограничению.
6.Учет отношения влияния выбранного решения по отношению к остальным на целевую функцию.
Нормированное значение параметра задается объективным способом нормирования по
следующим условиям: qn,m qn,m ; q0,m sup qn,m , n 1, N . SUP – верхняя точечная
q0,m
граница (максимум). Учет отношения ограничений осуществляется внесением в формулу аддитивного критерия весового элемента, определяемого по формуле:
|
Q |
|
|
|
|
|
|
|
|
|
|
|
; Qmmax sup Qm , m 1, M . Таких образом выбор лучшего решения на |
||||||||||
m |
|
m |
|||||||||
Q |
max |
||||||||||
|
m |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
M |
q |
n,m |
|
Q |
|
каждом этапе выполняется по формуле: A |
|
|
|
m |
. Для того, чтобы учесть на |
||||||
q |
|
Qmax |
|||||||||
|
|
|
|
|
n |
m 1 |
0,m |
|
|||
|
|
|
|
|
|
|
m |
|
сколько выбранное решение влияет на целевую функцию (при условии, что она минимизируется) в аддитивный критерий для варианта n следует ввести коэффициент
|
|
M |
qn,m |
|
|
|
|
min |
|
cnmin inf cn , n |
|
. |
||
n |
. Тогда получим: A |
n |
|
Qm |
, где n |
|
cn |
|
|
|
||||
|
; |
1, N |
||||||||||||
|
Q max |
c |
|
|||||||||||
|
n |
m 1 |
q |
0,m |
|
|
|
n |
|
|
|
|
||
|
|
|
|
m |
|
|
|
|
|
|
|
Формула (1) является основной расчетной формулой при выборе оптимального плана на каждом шаге.
Пошаговый метод решения задач.
При решении задачи на каждом шаге следует: используя выражение (1) выбирать лучшее решение, выбрав вариант n на данном шаге осуществляется увеличение текущего значения хn на единицу. Затем осуществляется перенос системы координат в направлении и величину отложенного вектора, что формально представляется в виде:
Qm |
Qm |
qn,m , при Qm |
qn,m |
. Окончательным условием формального пошагового |
|
Qm 0, при Qm qn,m |
|||
|
|
метода будет: Qm 0, m. Если это условие не выполнено на рассмотренным шаге необходимо перейти к следующему шагу на котором выполнить все рассмотренные выше действия, но уже с новыми значениями ограничений Qm . Если Qm 0, m
выполнено, то задача решена и решением задачи будут эти значения переменных, получаемых на каждом шаге.