
- •Часть 1
- •Часть 1
- •Цель контрольной работы №1
- •Тема 1 . Задачи математического программирования
- •1.2. Симплекс-метод
- •1.2.1. Геометрическая интерпретация
- •1.2.2. Основная идея симплекс-метода
- •1.2.3. Реализация симплекс-метода
- •2.1. Постановка задачи, основные формулы
- •2.2. Изменение оптимального плана выпуска при изменении величин прибыли и запасов ресурсов
- •Задание 1
- •Варианты заданий
- •3.1. Постановка задачи. Основные формулы
- •3.2. Решение транспортной задачи
- •3.2.1. Определение исходного опорного решения
- •3.2.2. Построение оптимального решения
- •Пример.
- •3.2.3. Решение транспортной задачи в Excel
- •Задание 2.
- •Варианты заданий
- •Содержание
- •Тема 1 . Задачи математического программирования 6
1.2.2. Основная идея симплекс-метода
Если ранг матрицы А
системы (1.1) и ранг расширенной матрицы
системы
равен r(r£m),
то r переменных
могут быть выражены через остальные
переменные:
(1.19)
Переменные (неизвестные)
называются базисными, а весь набор
(
)
– базисом, остальные переменные
называются свободными. Система
ограничений (1.19) называется системой
приведенной к единичному базису.
Подставляя в линейную форму F
(1.3) вместо базисных переменных их
выражения через свободные переменные
из системы (1.19) получим:
(1.20)
Полагая все свободные
переменные равными нулю, найдем значения
базисных переменных:
.
Если все значения
,
решение (
)
системы ограничений является допустимым.
Такое допустимое решение называется
базисным или опорным, обозначим
его через
.
Для полученного базисного решения
значение целевой функции
.
Решение задачи при помощи симплекс-метода
подразумевает ряд шагов, состоящих в
том, что от данного базиса
переходим к другому базису
с таким расчетом, чтобы значение целевой
функции F
увеличивалось или, по крайней мере, не
уменьшалось, т.е.
.
Геометрическая интерпретация симплекс-метода состоит в том, что аналитическому переходу от одного базиса к другому соответствует переход от одной вершины многогранника (множества допустимых решений) к другой, в которой целевая функция имеет не меньшее значение. Этот факт основан на том, что вершинам многоугольника множества допустимых решений соответствуют опорные решения системы ограничений.
Решение симплекс-методом заканчивается, когда среди опорных решений будет найдено такое, которое обеспечивает максимум линейной формы (1.3). Такое решение называется оптимальным.
1.2.3. Реализация симплекс-метода
Рассмотрим идею симплекс-метода на конкретном примере
(1.21)
(1.22)
.
(1.23)
Решение
Данная система уравнений совместна, так как ранги матрицы системы
и расширенной матрицы
совпадают и равны 3. Следовательно, три переменные (базисные) можно линейно выразить через две свободные переменные. Выразим, например, x1, x2 и x3 через x4 и x5, т.е. приведем систему к единичному базису:
(1.24)
Линейная форма
уже выражена через 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.24), приходим к выводу, что x5 можно увеличить неограниченно. При этом x1 остается положительным и никогда не обратиться в ноль. Из второго уравнения системы (1.24) следует, что 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.21) выразим x5 .
Получим
.
Тогда
(1.25)
Для увеличения значения F будем увеличивать x4. Проведя аналогичный анализ системы (1.25), заключаем, что x4 можно увеличить до 1/5 (следует из рассмотрения второго уравнения системы (1.25)). Таким образом, получим третье допустимое решение 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.26)
Так как в последней линейной форме обе свободные переменные входят с отрицательными коэффициентами, то наибольшее значение достигается при x2=0 , x3=0.
Из этого следует, что решение (28/5, 0, 0, 1/5, 12/5) является оптимальным и Fmax=11/5.
Для того, чтобы упростить трудоемкие операции по пересчету коэффициентов и перезаписи системы ограничений, можно выполнять преобразования специальной симплекс-таблицы.
Симплексные таблицы
Для составления такой таблицы систему фазовых ограничений и целевую функцию необходимо записать в стандартной форме, т.е. сведенной к единичному базису:
(1.27)
(1.28)
В виде таблицы эти данные можно представить так:
Таблица 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.21)-(1.23) с помощью симплекс-таблиц.
Исходная симплекс-таблица, определяемая соотношениями (1.21) - (1.23) показана на рис. 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.28). В качестве
разрешающего столбца выберем столбец,
соответствующий 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. Заметим, что решения совпали.
2. Задача об оптимальном распределении ресурсов