Автор: Пользователь скрыл имя, 18 Декабря 2012 в 21:32, курсовая работа
В данной курсовой работе будет рассмотрен алгоритм решения задач с применением симплексного метода.
Перед нами стоит несколько задач: введение понятия «симплексный метод», обозначение условий применения данного метода на практике, особенности решения, а также алгоритм решения задач различными способами (графический, алгоритмический, матричный) и предоставление практического решения реальной производственной задачи.
Введение………………………………………………………………………………..3
1 Описание симплексного метода..…………...……………………………...……….4
2 Алгоритм решения задач симплексным методом……………………...…………..9
2.1 Графический метод……………………………………………………………….16
2.2 Табличный симплекс – метод……………………………………………….…...21
2.3 Модифицированный симплекс – метод.………………………………………...25
2.4 Алгоритм метода искусственного базиса………………...…………….……….29
2.5 Двойственный симплекс-метод………………..………………………………...30
3 Решение реальной производственной задачи…………………………………….32
3.1 Постановка задачи………………………………………………………………..32
3.2 Решение задачи…………………………………………………………………...32
Заключение……………………………………………………………………………42
Список используемой литературы…………………………………………………..44
6) После заполнения
таблицы повторяем все снова,
пока не будет найдено
Анализируем таблицу 2.2.2. В строке целевой функции есть отрицательные элементы, т.е. решение не является оптимальным, поэтому переходим к следующей симплекс-таблице. Выводим из базиса x6, вводим в базис x1.
Таблица 2.2.3. Симплекс-таблица для второй итерации.
Базисные переменные |
Свободные члены |
Коэффициенты при базисных и небазисных переменных | ||||||
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
x7 | ||
x2 |
3 |
1/9 |
1 |
0 |
1 2/9 |
1/3 |
- 2/9 |
0 |
x3 |
0 |
1 2/9 |
0 |
1 |
4/9 |
- 1/3 |
5/9 |
0 |
x7 |
12 |
- 5/9 |
0 |
0 |
-1 1/9 |
- 2/3 |
- 8/9 |
1 |
Y |
150 |
2 2/9 |
0 |
0 |
54 4/9 |
2 2/9 |
5 5/9 |
0 |
В столбце свободных членов и в строке целевой функции нет отрицательных элементов, следовательно, можно сделать вывод о том, что решение оптимально. Полученные значения удовлетворяют ограничениям задачи.
Можно выписать ответ. Значения базисных переменных и целевой функции выписываются из столбца свободных членов. Все небазисные переменные равны нулю.
Ответ:
x1 = 0; x2 = 3; x3 = 0; x4 = 0; x5 = 0; x6 = 0; x7 = 12;
Y = 150.
Анализ решения задачи показывает, что предприятие будет выпускать только изделия второго вида.
При этом расход времени на создание изделия на оборудовании каждого вида будет равен:
О1 = 15;
О2 = 9;
О3 = 18.
Ответ: x = (0;3;0;0); Y=150.
2.3 Модифицированный симплекс-
В основу данной разновидности симплекс-метода положены такие особенности линейной алгебры, которые позволяют в ходе решения задачи работать с частью матрицы ограничений. Иногда метод называют методом обратной матрицы.
В процессе работы алгоритма происходит спонтанное обращение матрицы ограничений по частям, соответствующим текущим базисным векторам. Указанная способность делает весьма привлекательной машинную реализацию вычислений вследствие экономии памяти под промежуточные переменные и значительного сокращения времени счёта.
В улучшенном симплекс-методе реализуется та же основная идея, что и в обычном симплекс-методе, но здесь на каждой итерации пересчитывается не вся матрица A-1, обратная матрице ограничений A, а лишь та часть, которая относится к текущему базису Ax.
Особенности:
1) Данный метод используется при m намного меньше n.
2) Для вычислений всех оценок достаточно знать начальный вектор и вектор цен.
3) Для предотвращения зацикливания в модифицированном методе удобно применять правило Бленда3.
Правило Бленда можно сформулировать следующим образом:
a) Из переменных, вводимых в базу, нужно выбрать переменную с наименьшим номером.
b) Из переменных, выводимых из базы, нужно выбрать переменную с наименьшим номером.
4) Наличие двух таблиц - основной и вспомогательной, порядке их заполнения и некоторой специфичности расчётных формул.
Преимущества модифицированного симплексного метода:
Недостаток модифицированного симплекс-метода:
Рассмотрим алгоритм решения задачи данным методом:
Дана математическая запись модели:
F(x)= -5x1 + х2 - 2х3 → max.
-x1 - 5x2 + 3х3 = 4
2x1 + 5x2 - 3х3 ≥2
2х1 + 4х2 ≤ -4
Шаг №0. Сведем задачу ЛП к нахождению минимума.
-x1 - 5x2 + 3х3 = 4
2x1 + 5x2 - 3х3 ≥2
2х1 + 4х2 ≤ -4
-F(x)= 5x1 - х2 + 2х3 → min.
Если сразу задана функция минимизации (min), то Шаг №0 пропускаем.
Приводим из системы неравенств в систему уравнений, вводя дополнительные переменные:
-x1 - 5x2 + 3х3 = 4
2x1 + 5x2 - 3х3 - х4 = 2
2х1 + 4х2 + х5= -4
-F(x)= 5x1 - х2 + 2х3 → min.
В матричной форме:
* Матрица А -1 -5 3 0 0
2 5 -3 -1 0
2 4 0 0 1
* Матрица В 4
2
-4
или BT = (4; 2; -4).
Тогда задачу ЛП можно записать следующим образом:
A x X = B
X ≥ 0, X = (x1, x2, x3, x4,
x5)
F(x) = Z = C * X → min
Базисные переменные: x1, x2, x3
Небазисные переменные: x4, x5
Преобразуем матрицу А, выделяя единичную матрицу I:
-1/3 -5/3 1 0 0
-1 0 0 1 0
2 4 0 0 1
Шаг №1.
В начале первого цикла нам известны обратная матрица A-1 (единичная матрица), базисное решение xb = A-1 * b:
1 0 0
0 1 0
0 0 1 и xb = (4; 2; -4).
Шаг №2.
Образуем для каждой небазисной переменной характеристическую разность dj, используя уравнение:
dj = cj - sj x Pj,
где s - двойственные переменные, которые можно найти следующим образом:
sj = cx * A-1,
где cx - вектор коэффициентов целевой функции при базисных переменных.
cx = (-5; 1; -2);
sj = cx x A-1 = (-5; 1; -2);
dj = (-5; 1; -2) - (-5; 1; -2) = (0; 0; 0).
Шаг №3.
Предполагая, что используется стандартное правило выбора вводимого столбца, находим: s = min dj.
s = -5, индекс столбца p = 1.
Шаг №4.
Если s ≥ 0 - процедура останавливается. Текущее базисное решение является оптимальным.
Шаг №5.
Если s ≤ 0, вычисляем преобразованный столбец P:
P-p = A-1 x Pp;
P-1 = (-1/3; -1; 2);
P-p = (a1s,a2s,...,ams).
Если все ais ≤ 0 - процедура останавливается: оптимум неограничен.
Шаг №6.
В противном случае находим выводимую из базиса переменную:
xbr / ars = min (ais ≥ 0)
Шаг №7. Строим матрицу и трансформируем ее с ведущим элементом ars.
2.4 Алгоритм метода
Для того, чтобы воспользоваться стандартной процедурой симплекс-метода на первом этапе, необходимо выполнить замену. Ввести искусственную целевую функцию F′ = -F.
Представление исходной системы неравенств ограничений в виде системы равенств:
ai1*x1 + … + aij*xj
= bi
Ввод искусственных
или вспомогательных
Zi = bi - (ai1*x1 + … + aij*xj) (2.4.2)
Формирование искусственной целевой функции, выраженной через искусственные переменные:
F = Z1 + Z2 + … + Zm → min (2.4.3)
Используем симплекс-метод для минимизации целевой функции, при этом возможны 2 пути:
* Fmin > 0
В этом случае система уравнений, исходная система ограничений не имеет неотрицательных решений, а это значит, что и исходная задача ЛП с такой системой ограничений не имеет решений
* Fmin = 0
Исходная система имеет по крайней мере одно неотрицательное решение. В этом случае после нескольких итераций симплекс-метода приходят к системе уравнений, в которой все переменные Zi уже не базисные. Оставшаяся система будет равносильна исходной, но уже имеющей базис.
На этом первый этап закончен и приступаем к оптимизации имеющегося плана.
2.5 Двойственный симплекс-метод
Непосредственное приложение теории двойственности к вычислительным алгоритмам линейного программирования позволило разработать еще один метод решения ЗЛП, получивший название двойственного симплекс-метода, или метода последовательного уточнения оценок. Впервые он был предложен Лемке в 1954 г.
Теорема двойственности подсказывает, что симплекс-метод, примененный к двойственной задаче, может дать решение и прямой задачи (если обе задачи ЛП имеют допустимые векторы).
Идея двойственного симплекс-метода состоит в том, что, переходя от одной двойственно допустимой базы к другой, нужно получить такую базу, для которой qi0 ≥ 0 (i = 1, 2, …, s).
Двойственный симплекс-метод удобно применять, если решается последовательность задач, различающихся только некоторым вектором b, т.к. в этом случае оптимальное решение предыдущей задачи будет двойственно допустимым решением последующей задачи.
Двойственный симплекс-метод, как и прямой, можно реализовать как в строчечной, так и в столбцовой форме.
Пусть дана задача линейного программирования, в которой единичными являются m производственных векторов Pj (P1, P2, … , Pm).
Y = c1x1 + c2x1+ … + cnxn → max (2.5.1)
x1P1 + x2P2 +… + xmPm + xm+1Pm+1 + xnPn = b (2.5.2)
xj ≥ 0 (j = 1, …, n)
Где P1 = [1, 0, 0, …, 0, 0]
P2 = [0, 1, 0, …, 0, 0]
…
Pm = [0, 0, 0, …, 0, 1]
Pm+1 = [a11, a21, …, am1]
…
Pn = [a1n, a2n, …, amn]
Среди bi есть отрицательные.
В данном случае X = (b1,b2,…,bm,0,0) - решение системы (2). Однако оно не является решением (1)-(3), т.к. bi может быть отрицательным числом.
Поскольку P1, … ,Pm - единичные, каждый из Pj (j от 1 до m) можно представить виде линейной комбинации данных векторов, причем коэффициенты разложения Pj по P1,…,Pm - некоторые числа yij (i от 1 до m; j от 1 до n), так что можно найти Dj:
Информация о работе Алгоритм решения задач симплексным методом