Алгоритм решения задач симплексным методом

Автор: Пользователь скрыл имя, 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

Файлы: 1 файл

«Алгоритм решения задач симплексным методом».doc

— 619.00 Кб (Скачать)

 

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

1 + 4х2 ≤ -4

 

Шаг №0. Сведем задачу ЛП к нахождению минимума.

-x1 - 5x2 + 3х3 = 4


2x1 + 5x2 - 3х3 ≥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

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                                                                                                         (2.3.1)

X ≥ 0, X = (x1, x2, x3, x4, x5)                                                                                        (2.3.2)

F(x) = Z = C * X → min                                                                                   (2.3.3)

Базисные переменные: 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,                                                                                                   (2.3.4)

где s - двойственные переменные, которые можно найти следующим  образом:

sj = cx * A-1,                                                                                               (2.3.5)

где 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;                                                                                                    (2.3.6)

P-1 = (-1/3; -1; 2);

P-p = (a1s,a2s,...,ams).

Если все ais ≤ 0 - процедура останавливается: оптимум неограничен.

 

Шаг №6.

В противном случае находим  выводимую из базиса переменную:

xbr / ars = min (ais ≥ 0)                                                                                      (2.3.7)

 

Шаг №7. Строим матрицу и трансформируем ее с ведущим элементом ars.

 

2.4 Алгоритм метода искусственного  базиса

Для того, чтобы воспользоваться стандартной процедурой симплекс-метода на первом этапе, необходимо выполнить замену. Ввести искусственную целевую функцию F′ = -F.

Представление исходной системы неравенств ограничений  в виде системы равенств:

ai1*x1 + … + aij*xj = bi                                                                                      (2.4.1)

Ввод искусственных  или вспомогательных неизвестных Zi по числу уравнений в системе переменные Zi образуют опорный план:

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)                                                                                             (2.5.3)

Где  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:

                                                 

Информация о работе Алгоритм решения задач симплексным методом