
- •Содержание
- •Введение
- •Тема 1 Введение в линейное программирование
- •1.1 Исторический экскурс
- •1.2 Ограничения в модели линейного программирования
- •1.3 Графическое решение задачи линейного программирования
- •1.4 Графический анализ чувствительности
- •1.4.1 Изменение коэффициентов целевой функции
- •1.4.2 Стоимость ресурсов
- •Контрольные вопросы
- •Тема 2 Симплекс-метод
- •2.1 Общая постановка задачи линейного программирования
- •2.2 Некоторые свойства планов
- •2.3 Алгоритм симплекс-метода
- •Контрольные вопросы
- •Тема 3 Двойственная задача и анализ чувствительности
- •3.1 Постановка двойственной задачи
- •3.2 Основные теоремы о двойственности
- •3.3 Решение двойственных задач
- •3.4 Двойственный симплекс-метод
- •Контрольные вопросы
- •Тема 4 Анализ чувствительности оптимального решения
- •4.1 Матричное представление симплекс-таблиц
- •Анализ чувствительности
- •4.2.1 Изменения, влияющие на допустимость решения
- •4.2.2 Изменения, влияющие на оптимальность решения
- •Контрольные вопросы
- •Тема 5 Целочисленное линейное программирование
- •5.1 Метод ветвей и границ
- •Пример 5.1
- •5.2 Метод отсекающих плоскостей
- •Пример 5.2
- •6.1.2 Интерпретация метода потенциалов как симплекс-метода
- •6.1.3 Определение начального решения
- •6.1.4 Метод потенциалов
- •6.2 Задача о назначениях
- •Контрольные вопросы
- •Тема 7 Основы сетевого планирования
- •7.1 Основные понятия теории графов
- •Пример 7.1 График реконструкции промышленного цеха
- •7.2 Метод критического пути
- •Построение временного графика
- •Определение запасов времени
- •Контрольные вопросы
- •Тема 8 Задача о максимальном потоке
- •8.1 Постановка задачи о максимальном потоке
- •8.2 Решение задачи о максимальном потоке. Алгоритм Фалкерсона
- •8.3 Алгоритм Эдмондса-Карпа
- •Контрольные вопросы
- •Приложение а
- •Библиографический список
- •Заключение
Контрольные вопросы
По каким правилам строится двойственная задача ЛП?
В чем смысл второй теоремы о двойственности в ЛП?
Сформулируйте экономический смысл двойственной задачи для задачи оптимального распределения ресурсов.
Что является показателем эффективности производства отдельных видов продукции с позиций критерия оптимальности?
Тема 4 Анализ чувствительности оптимального решения
4.1 Матричное представление симплекс-таблиц
В предыдущих разделах мы
доказали, что конечное оптимальное
решение задачи ЛП достигается в крайних
точках пространства решений. А все
крайние точки можно определить
алгебраически как базисные решения
системы линейных уравнений
Таким
образом, чтобы найти оптимальное решение
ЛП, достаточно рассматривать только
базисные решения указанной системы
уравнений.
При выполнении симплекс-метода мы начинали с допустимого базисного решения В, затем переходили к следующему допустимому базисному решению, которое улучшает (по крайней мере не ухудшает) значение целевой функции, и так до тех пор, пока не будет достигнуто оптимальное решение. Таким образом, допустимое базисное решение В – это тот принципиальный элемент в симплекс-методе, вокруг которого выполняются все вычисления в симплекс-таблице. С этой точки зрения очевидна необходимость представления симплекс-таблицы в матричной форме.
В канонической форме задача ЛП
разобьем
вектор Х
на два – ХI
и ХII,
таких что вектор ХII
соответствует начальному базису В,
т.е. является начальным допустимым
решением. Вектор С
также разобьем на два вектора СI
и СII
в соответствии с векторами ХI
и ХII.
Тогда стандартную задачу ЛП можно
записать следующим образом:
Для любой симплексной итерации будем обозначать через ХВ базисный вектор переменных, а через СВ – вектор коэффициентов целевой функции, соответствующих этому базису. Поскольку все небазисные переменные равны нулю, каноническая задача ЛП будет сведена к задаче с целевой функцией z=CBXB и ограничениями BXB=b, где текущее решение удовлетворяет следующему уравнению:
Симплекс таблица получается из исходной задачи ЛП путем вычислений по следующей формуле:
Выполнив вычисления по этой формуле, получаем симплекс-таблицу:
Базис |
ХI |
XII |
Решение |
z |
CBB-1A-CI |
CBB-1-CII |
CBB-1b |
XB |
B-1A |
B-1 |
B-1b |
В этой таблице предварительных вычислений требует только обратная матрица B-1, так как другие элементы таблицы CB, CI, CII, A и b получаются из исходных данных задачи.
Представленная симплекс-таблица имеет большое значение, так как является основой всех вычислительных алгоритмов линейного программирования.
В симплекс-методе решение переходит от одного базиса В к следующему Вслед путем замены в В базисного вектора (исключаемого) на небазисный (вводимый). Определение вводимых и исключаемых векторов основано на следующих условиях оптимальности и допустимости.
Условие оптимальности симплекс-метода
Из матричного представления симплекс-таблицы следует, что коэффициент при переменной xj в z-строке равен
где Pj-
j-й столбец матрицы
(А,I), cj
– j-й элемент вектора
С.
Отметим, что разность
всегда равна нулю для базисных переменных
xj
. Если обозначить через NB
множество индексов небазисных переменных,
тогда можно записать следующее уравнение
для целевой функции
Из этого уравнения следует, увеличение значения небазисной переменной хj приводит к возрастанию (убыванию) значения целевой функции z выше текущего значения CBB-1b только в том случае, если разность строго отрицательна (положительна). В противном случае переменная хj не может улучшить текущее решение и должна остаться небазисной с нулевым значением.
Условие допустимости симплекс-метода
Определение исключаемого из базиса вектора основано на проверке ограничения, представленного в виде равенства, соответствующего i-й базисной переменной. Это равенство имеет следующий вид:
Запись (V)i означает i-й элемент вектор-столбца V.
Обозначим через Pk
вводимый вектор, определенный из условия
оптимальности, а через хk
– вводимую в базис переменную, принимающую
положительное значение. Поскольку все
остальные небазисные переменные
сохраняют нулевые значения, равенство
ограничения, соответствующего базисной
переменной
,
можно записать следующим образом:
Это уравнение показывает,
что при
возрастание
переменной хk
не приведет к отрицательному значению
базисной переменной
только
в том случае, если будет выполняться
неравенство
Таким образом, максимальное значение вводимой переменной хk можно вычислить по следующей формуле:
Базисная переменная, на которой достигается этот минимум, становится исключаемой.
Пример 1.1 Проиллюстрируем матричное представление симплекс-метода.
Пусть B=(P1, P4, P5, P6) является допустимым базисом.
Покажем, что решение B не является оптимальным.
Найдем вводимый в базис и исключаемый из него векторы и Bслед.
На основании B=(P1, P4, P5, P6) имеем XB=(x1, s2, s3, s4) и СB=(5, 0, 0, 0). Вычисляем обратную матрицу B-1
Находим текущее базисное решение
откуда получаем z=CBXB=5*4+0*2+0*5+0*2=20.
Аналогично получим коэффициенты в ограничениях после первой итерации при х1 и х2
Для проверки оптимальности базиса B=(P1, P4, P5, P6) вычислим разности для текущих небазисных переменных х2 и s1:
(z2-c2, z3-c3)=CBB-1[P2, P3]- (c2, c3)=
Легко видеть, что все коэффициенты совпадают с коэффициентами в задаче ЛП из примера 1.1 после первой итерации симплекс-метода.
Базис |
z |
x1 |
x2 |
s1 |
s2 |
s3 |
s4 |
Решение |
|
z |
1 |
0 |
-2/3 |
5/6 |
0 |
0 |
0 |
20 |
|
х1 |
0 |
1 |
2/3 |
1/6 |
0 |
0 |
0 |
4 |
|
s2 |
0 |
0 |
4/3 |
-1/6 |
1 |
0 |
0 |
2 |
|
s3 |
0 |
0 |
5/3 |
1/6 |
0 |
1 |
0 |
5 |
|
s4 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
2 |
|
Поскольку в данной задаче следует максимизировать целевую функцию, разность z2–c2=-2/3 показывает, что базис XB=(x1, s2, s3, s4) неоптимален и значение целевой функции можно увеличить, если ввести переменную x2.
Для того чтобы ввести в базис переменную х2, из него нужно исключить одну из четырех базисных переменных. Для определения исключаемой переменной вычисляем XB и B-1P2.
Значение вводимой переменной х2 равно
Таким образом, в базисе XB=(x1, s2, s3, s4) вектор P4 будет заменен на P2, что приводит к новому базису
.
Соответствующее новое значение целевой функции равно z=20-(-2/3)*3/2=21.
Можно пересчитать и вторую итерацию симплекс-метода с помощью матриц и убедиться, что все совпадет со второй итерацией симплекс-метода этого примера.