- •Методы и модели анализа динамики экономических процессов
- •Тема 1 . Задачи математического программирования
- •1.1. Основные формулы и определения
- •1.2. Симплекс-метод
- •1.2.1. Геометрическая интерпретация
- •1.2.2. Основная идея симплекс-метода
- •1.2.3. Реализация симплекс-метода (простейший случай)
- •1.2.4. Метод искусственного базиса
- •Задание
- •Тема: задача о распределении ресурсов
- •2.1. Постановка задачи, основные формулы
- •2.2. Изменение оптимального плана выпуска при изменении величин прибыли и запасов ресурсов
- •Задание
- •Варианты заданий
- •Содержание
1.2.2. Основная идея симплекс-метода
Если ранг матрицы Асистемы (1.1) и ранг расширенной матрицысистемы равенr(r£m), тоr переменных могут быть выражены через остальные переменные:
(1.25) |
Переменные (неизвестные) называютсябазисными, а весь набор () –базисом, остальные переменные называютсясвободными. Система ограничений (1.25) называетсясистемой приведенной к единичному базису.
Отметим важнейшие условия наличия единичного базиса:
от каждого уравнения в него входит одна и только одна неизвестная;
каждая переменная из этого набора входит с коэффициентом +1 и отсутствует в остальных уравнениях;
все значения ,
Подставляя в линейную форму F(1.3) вместо базисных переменных их выражения через свободные переменные из системы (1.25), получим:
(1.26) |
Полагая все свободные переменные равными нулю, найдем значения базисных переменных: . Если все значения , решение () системы ограничений является допустимым. Такое допустимое решение называетсябазиснымилиопорным, обозначим его через. Для полученного базисного решения значение целевой функции . Решение задачи при помощи симплекс-метода подразумевает ряд шагов, состоящих в том, что от данного базисапереходим к другому базису с таким расчетом, чтобы значение целевой функцииFувеличивалось или, по крайней мере, не уменьшалось, т.е. .
Геометрическая интерпретация симплекс-метода состоит в том, что аналитическому переходу от одного базисак другому соответствует переход от одной вершины многогранника (множества допустимых решений) к другой, в которой целевая функция имеет не меньшее значение. Этот факт основан на том, что вершинам многоугольника множества допустимых решений соответствуют опорные решения системы ограничений.
Решение симплекс-методом заканчивается, когда среди опорных решений будет найдено такое, которое обеспечивает максимум линейной формы (1.3). Такое решение называется оптимальным.
1.2.3. Реализация симплекс-метода (простейший случай)
Рассмотрим идею симплекс-метода на конкретном примере:
(1.27) | |
(1.28) | |
(1.29) |
Решение
Данная система уравнений совместна, так как ранги матрицы системы
и расширенной матрицы
совпадают и равны 3. Следовательно, три переменные (базисные) можно линейно выразить через две свободные переменные. Выразим, например,x1, x2иx3 черезx4иx5, т.е. приведем систему к единичному базису:
(1.30) |
Линейная форма уже выражена черезx4иx5.
При x4=0 иx5=0, найдем значения базисных переменныхx1=1, x2=2 иx3=3.
Таким образом, первое допустимое решение имеет вид x1=1, x2=2 ,x3=3, x4 =0 , x5=0 или (1,2,3,0,0). При найденном допустимом решении линейная формаFимеет значение 0, т.е.F1=0.
Теперь попытаемся увеличить значение F:
увеличение x4уменьшитF, так как передx4стоит отрицательный коэффициент, а увеличениеx5даст увеличение;
будем увеличивать x5 таким образом, чтобы одна из базисных переменных (x1 или x2 илиx3) обратилась в ноль, а остальные базисные переменные оставались бы неотрицательными.
Анализируя первое уравнение системы (1.30), приходим к выводу, что x5 можно увеличить неограниченно. При этомx1 остается положительным и никогда не обратиться в ноль. Из второго уравнения системы (1.30) следует, чтоx5 можно увеличить до 2 (больше увеличивать нельзя, т.к.x2станет отрицательным). Из третьего уравнения системы (1.24) следует, чтоx5 можно увеличить до 3. Принимая во внимание приведенный анализ, приходим к выводу, чтоx5=2.
Таким образом, получим второе допустимое решение x1=5, x2=0 , x3=1, x4 =0 , x5=2 или (5,0,1,0,2).
Значение линейной формы Fпри этом допустимом решении равноF2=2, т.е. значение целевой функции увеличилось.
Примем за свободные переменные x2иx4., т.е. те переменные, которые в этом решении равны0. С этой целью из второго уравнения системы (1.27) выразимx5 .
Получим. Тогда
(1.31) |
Для увеличения значения Fбудем увеличиватьx4.Проведя аналогичный анализ системы (1.31), заключаем, чтоx4 можно увеличить до 1/5 (следует из рассмотрения второго уравнения системы (1.31)). Таким образом, получим третье допустимое решениеx1=28/5, x2=0, x3=0, x4=1/5, x5=12/5 или (28/5, 0, 0, 1/5, 12/5). Значение линейной формыFпри этом допустимом решении равноF3=11/5, т.е. значение целевой функции увеличилось.
(1.32) |
Так как в последней линейной форме обе свободные переменные входят с отрицательными коэффициентами, то наибольшее значение достигается при x2=0 ,x3=0.
Из этого следует, что решение (28/5, 0, 0, 1/5, 12/5) является оптимальным и Fmax=11/5.
Для того, чтобы упростить трудоемкие операции по пересчету коэффициентов и перезаписи системы ограничений, можно выполнять преобразования специальной симплекс-таблицы.
Симплексные таблицы
Для составления такой таблицы систему фазовых ограничений и целевую функцию необходимо записать в стандартной форме, т.е. сведенной к единичному базису:
(1.33) | |
(1.34) |
В виде таблицы (табл.1.1) эти данные можно представить так:
Таблица 1.1
Базисные переменные |
… |
… |
|
… |
… |
Свободные члены | |||||
1 |
… |
0 |
… |
0 |
|
|
|
… |
| ||
… |
0 |
… |
0 |
… |
0 |
… |
|
… |
… |
… |
… |
0 |
… |
1 |
… |
0 |
|
|
|
… |
| ||
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
…. |
0 |
… |
0 |
… |
1 |
|
|
|
… |
| ||
F |
0 |
… |
0 |
… |
0 |
|
… |
Заметим, что в строку с целевой функцией коэффициенты записываются с противоположным знаком .
Каждой итерации соответствует преобразование симплексной таблицы, в результате которого получается новое базисное решение, которому соответствует первый столбец.
Правила преобразования симплексной таблицы.
1. Выбирают разрешающийстолбец из условия и хотя бы один элемент.
2. Выбирают q-юразрешающуюстроку из условия
Элемент , стоящий на пересечении разрешающего (с индексомp) столбца и разрешающей (с индексомq) строки, называетсяразрешающим элементом.
3. В состав базисных переменных вводят переменную , которую записывают в строку с номеромq.
4. Производят пересчет элементов разрешающей q-й строки по формуле
В результате преобразования получают единицу на месте разрешающего элемента.
5. Вычисляют элементы всех остальных строк (при kp) по формуле:
Строке с номером r+1 соответствует строка целевой функции, столбцу с номеромn+1 соответствует столбец свободных членов.
Другими словами, умножая разрешающую строку на подходящие числа и прибавляя ее к остальным строкам, добиваются, чтобы остальные элементы разрешающего столбца стали равными нулю.
6. Далее анализируем полученную таблицу. Если решение получено или выяснено, что его нет, процесс решения закончен. Иначе переходим к пункту 1.
Анализ базируется на основной теореме симплекс-метода.
Теорема.
Если после выполнения очередной итерации (преобразования):
найдется хотя бы один отрицательный коэффициент , и в каждом столбце с таким коэффициентом окажется хотя бы один положительный элемент, то можно улучшить решение, выполнив следующую итерацию;
найдется хотя бы один отрицательный коэффициент , и в соответствующем столбце не содержится положительных элементов, то функцияFне ограничена в области допустимых решений;
все коэффициенты окажутся неотрицательными, то оптимальное решение достигнуто.
Рассмотрим решение той же задачи (1.27) - (1.29) с помощью симплекс-таблиц.
Исходная симплекс-таблица, определяемая соотношениями (1.27) - (1.29) показана на рис. 1.5.
Базисные переменные |
x1 |
x2 |
x3 |
x4 |
x5 |
Свободные члены |
x1 |
1 |
0 |
0 |
1 |
-2 |
1 |
x2 |
0 |
1 |
0 |
-2 |
1 |
2 |
x3 |
0 |
0 |
1 |
3 |
1 |
3 |
F |
0 |
0 |
0 |
1 |
-1 |
0 |
Рис.1.5. Исходная симплекс таблица
Заметим, что целевая функция в данном примере может быть записана в виде , что соответствует виду (1.34). В качестве разрешающего столбца выберем столбец, соответствующийx5 , поскольку в нем в строке с целевой функцией стоит отрицательный элемент (– 1).
Для определения разрешающей строки заполним вспомогательный столбец (рис. 1.6).
Первая клетка в этом столбце оставлена пустой, поскольку в соответствующей клетке столбца x5 стоит отрицательный элемент (– 2).
Из этого столбца выбираем минимальное значение min{2;3}=2; это значение стоит во второй строке, поэтому берем её в качестве разрешающей.
Базисные переменные |
x1 |
x2 |
x3 |
x4 |
x5 |
Свобод-ные члены |
Вспомога-тельный |
x1 |
1 |
0 |
0 |
1 |
-2 |
1 |
|
x2 |
0 |
1 |
0 |
-2 |
1 |
2 |
2/1=2 |
x3 |
0 |
0 |
1 |
3 |
1 |
3 |
3/1=3 |
F |
0 |
0 |
0 |
1 |
-1 |
0 |
|
Рис.1.6. Выбор разрешающего столбца и разрешающей строки (они выделены) для первой итерации
Выполним преобразования указанные в п.п.4–5 для табл. 1.1. Результат приведен на рис. 1.7. Значение целевой функции F=2.
Базисные переменные |
x1 |
x2 |
x3 |
x4 |
x5 |
Свободные члены |
x1 |
1 |
2 |
0 |
-3 |
0 |
5 |
x5 |
0 |
1 |
0 |
-2 |
1 |
2 |
x3 |
0 |
-1 |
1 |
5 |
0 |
1 |
F |
0 |
1 |
0 |
-1 |
0 |
2 |
Рис.1.7. Симплекс таблица после первой итерации
Поскольку в строке, соответствующей целевой функции, имеется отрицательный элемент –1 (столбец x4), необходимо выполнить еще одну итерацию.
Для определения разрешающей строки (разрешающий столбец уже очевиден - x4) заполним таблицу (рис.1.8.):
Базисные переменные |
x1 |
x2 |
x3 |
x4 |
x5 |
Свободные члены |
Вспомогательный
|
x1 |
1 |
2 |
0 |
-3 |
0 |
5 |
|
x5 |
0 |
1 |
0 |
-2 |
1 |
2 |
|
x3 |
0 |
-1 |
1 |
5 |
0 |
1 |
1/5 |
F |
0 |
1 |
0 |
-1 |
0 |
2 |
|
Рис.1.8. Выбор разрешающего столбца и разрешающей строки для второй итерации
Выбор разрешающей строки свелся к выбору из одной строки, поскольку только в строке x3 стоит положительный элемент. Выполним преобразования указанные в п.п.4–5 для таблицы (рис. 1.7), результат – в таблице на рис. 1.9.
Базисные переменные |
x1 |
x2 |
x3 |
x4 |
x5 |
Свободные члены |
x1 |
1 |
7/5 |
3/5 |
0 |
0 |
28/5 |
x5 |
0 |
3/5 |
2/5 |
0 |
1 |
12/5 |
x4 |
0 |
-1/5 |
1/5 |
1 |
0 |
1/5 |
F |
0 |
4/5 |
1/5 |
0 |
0 |
11/5 |
Рис. 1.9. Симплекс таблица после второй итерации
В строке, соответствующей целевой функции, нет отрицательных элементов, следовательно, получено оптимальное решение (28/5,0,0, 1/5, 12/5) и Fmax=11/5. Заметим, что решения совпали.