Симплексный метод с использованием М- базиса

Автор: Пользователь скрыл имя, 25 Декабря 2012 в 08:51, курсовая работа

Краткое описание

Целью данной курсовой работы является решение задачи линейного программирования. Во всех таких задачах требуется найти максимум или минимум линейной функции при условии, что её переменные принимают неотрицательные значения и удовлетворяют некоторой системе линейных уравнений или линейных неравенств либо системе, содержащей как линейные уравнения, так и линейные неравенства. Каждая из этих задач является частным случаем общей задачи линейного программирования.
Для решения задач линейного программирования созданы специальные методы. Изучению одного из них, а именно симплекс-методу с М- базисом, посвящена эта курсовая работа.

Оглавление

Введение
1 Теоретическая часть 4
1.1 Описание симплексного метода. 4
1.2 Табличный симплексный метод. 7
1.3 Метод искусственного базиса (М-Метод) 11
2 Решение задач 17
2. 1 Табличный симплекс-метод 17
2. 2 Метод искусственного базиса 25
Заключение
Список литературы

Файлы: 1 файл

kursovaya.docx

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

 

1.3 Метод искусственного базиса (М-Метод)

Данный метод решения применяется  при наличии в системе ограничений  и условий-равенств, и условий-неравенств, и является модификацией табличного метода. Решение системы производится путём ввода искусственных переменных Ri со знаком, зависящим от типа оптимума, т.е. для исключения из базиса этих переменных последние вводятся в целевую функцию с большими отрицательными коэффициентами M, имеющими смысл "штрафов" за ввод искусственных переменных, а в задачи минимизации - с положительными M. Таким образом из исходной получается новая M-задача (поэтому метод искусственного базиса так же называют M-методом).

Если в оптимальном решении  М-задачи нет искусственных переменных, это решение есть оптимальное  решение исходной задачи. Если же в  оптимальном решении M-задачи хоть одна из искусственных переменных будет  отлична от нуля, то система ограничений  исходной задачи несовместна и исходная задача неразрешима.

Симплекс-таблица, которая составляется в процессе решения, используя метод  искусственного базиса, называется расширенной. Она отличается от обычной тем, что содержит две строки для функции цели: одна – для составляющей F, а другая – для составляющей M. При составлении симплекс таблицы полагают что исходные переменные являются небазисными, а дополнительные (xn+m) и искусственные (Ri)- базисными.

 

Исходная таблица для "Метода искусственного базиса" (таблица 3) имеет следующий вид:

 

x1

x2

...

xn-1

xn

b

F

- a0,1

-  a 0,2

...

- a0,n-1

 -a0,n

-b 0

xn+1

A 1,1

A1,2

...

A 1,n-1

A 1,n

B 1

xn+2

A 2,1

A 2,2

...

A 2,n-1

A2,n

B 2

Ri

A i,1

i,2

...

A i,n-1

A i,n

Bi

...

...

...

...

...

...

...

xn+m

m,1

m,2

...

A m,n-1

A m,n

B m

M

-∑ ai,1

-∑a i,2

...

-∑a i,n-1

-∑ai,n

-∑b i


Таблица 3.

Элементы дополнительной строки M расчитываются как сумма соответствующих  коэффициентов условий-равенств (условий  в которые после приведения к  каноническому виду введены переменные Ri) взятая с противоположным знаком.

 

 

 

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

Приводим  задачу ЛП  к    каноническому виду

F=a0,1x1+a0,2x2+...a0,nxn +b0 → max

a1,1x1+a1,2x2+...a1,nxn+xn+1=b1

a2,1x1+a2,2x2+...a2,nxn+xn+2=b2

.........................................

ai,1x1+ai,2x2+...ai,nxn+Ri=bi

.......................................

am,1x1+am,2x2+...am,nxn+xn+m=bm

В случае если в исходной задаче необходимо найти минимум - знаки коэффициентов  целевой функции F меняются на противоположные a0,n=-a0,n. Знаки коэффициентов ограничивающих условий со знаком "≥" так же меняются на противоположные. В случае если условие содержит знак "≤" или "=" - коэффициенты запишутся без изменений. К каждому условияю-неравенству, при переходе к каноническому виду добавляем дополнительную переменную, xn+m , к каждому i-му условию-равенству добавляем искусственную переменную Ri.

 

 

 

 Шаг 0. Составляем симплексную таблицу (таблица 4), соответствующую исходной задаче

 

x1

x2

...

xn-1

xn

b

F

- a 0,1

-   a0,2

...

-  a 0,n-1

-   a0,n

-  b  0

xn+1

A 1,1

A1,2

...

A       1,n-1

A       1,n

B       1

xn+2

A 2,1

A       2,2

...

A       2,n-1

A       2,n

B      2

Ri

i,1

i,2

...

A i,n-1

 A i,n

B     i

...

...

...

...

...

...

...

xn+m

A m,1

A m,2

...

A m,n-1

m,n

B m

M

-∑  a       i,1

-∑a     i,2

...

-∑a       i   ,n-1

-∑a      i,n

-∑ b      i


Таблица 4.

 

 

 Шаг 1. Проверка на допустимость.   

Проверяем на положительность  элементы столбца b (свободные члены), если среди них нет отрицательных  то найдено допустимое решение (решение  соответствующее одной из вершин многогранника условий) и мы переходим  к шагу 2. Если в столбце свободных членов имеются отрицательные элементы то выбираем среди них максимальный по модулю - он задает ведущую строку k. В этой строке так же находим максимальный по модулю отрицательный элемент ak,l - он задает ведущий столбец - l и является ведущим элементом. Переменная, соответствующая ведущей строке исключается из базиса, переменная соответствующая ведущему столбцу включается в базис.

Если же среди  свободных членов есть отрицательные  элементы - а в соответствующей  строке - нет то условия задачи несовместны  и решений у нее нет.

Если после перерасчета  в столбце свободных членов остались отрицаетельные элементы, то переходим  к первому шагу, если таких нет, то ко второму.  

Шаг 2. Проверка на оптимальность. 

На предыдущем этапе  найдено допустимое решение. Проверим его на оптимальность Если среди  элементов симплексной таблицы, находщихся в строках M и F(не беря в  расчет элемент b0 - текущее значение целевой функции и элемент -∑bi) нет отрицательных, то найдено оптимальное решение.

2.1 Положительность строки M

Если в строке M есть отрицательные элементы то решение  требует улучшения. Выбираем среди  отрицательных элементов строки M максимальный по модулю (исключая -∑bi)

l - столбец в  котором он находится будет  ведущим. Для того, что бы найти  ведущую строку, находим отношение  соответсвующего свободного члена  и элемента из ведущего столбца,  при условии, что они неотрицательны.

bk/ak,l =min {bi/ai,l } при ai,l>0, bi>0

k - cтрока, для  которой это отношение минимально - ведущая. Элемент ak,l - ведущий (разрешающий). Переменная, соответствующая ведущей строке (xk) исключается из базиса, переменная соответствующая ведущему столбцу (xl) включается в базис.

Пересчитываем симплекс-таблицу  по формулам Если в новой таблице после перерасчета в строке M остались отрицательные элементы переходим к шагу 2

Если невозможно найти ведущую строку, так как  нет положительных элементов  в ведущем столбце, то функция  в области допустимых решений  задачи не ограничена - алгоритм завершает  работу.

Если в строке M и в столбце свободных членов все элементы положительные, то переходим  к шагу 2.2.

 

2.2 Положительность строки F

Проверяем на положительность  элементы строки F. Если имеются отрицательные  элементы ( не считая b0), выбираем среди отрицательных элементов строки F максимальный по модулю.

-a0,l=min{-a0,i }

l - столбец в  котором он находится будет  ведущим. Для того, что бы найти  ведущую строку, находим отношение  соответсвующего свободного члена  и элемента из ведущего столбца,  при условии, что они неотрицательны.

bk/ak,l =min {bi/ai,l } при ai,l>0, bi>0

k - cтрока, для  которой это отношение минимально - ведущая. Элемент ak,l - ведущий (разрешающий). Переменная, соответствующая ведущей строке (xk) исключается из базиса, переменная соответствующая ведущему столбцу (xl) включается в базис.

Пересчитываем симплекс-таблицу  по формулам. Если в новой таблице после перерасчета в строке F остались отрицательные элементы переходим к шагу 2.2

Если невозможно найти ведущую строку, так как  нет положительных элементов  в ведущем столбце, то функция  в области допустимых решений  задачи не ограничена - алгоритм завершает  работу.

Если в строке F и в столбце свободных членов все элементы положительные, то найдено  оптимальное решение.  

 

Правила преобразований симплексной таблицы

При составлении  новой симплекс-таблицы в ней  происходят следующие изменения: 

  • Вместо базисной переменной                   x        k       записываем       x       l         ; вместо небазисной переменной xl записываем                x       k.  
  • ведущий элемент заменяется на обратную величину a                    k ,l  '=      1    /    a  k,l
  • все элементы ведущего столбца (           кроме a      k ,l) умножаются на  -  1  / a  k     ,l
  • все элементы ведущей строки (     кроме a           k,l) умножаются на 1  /  a  k,l
  • оставшиеся элементы симплекс-таблицы преобразуются по формуле ai,j'= ai,j- ai,l*ak,j/ ak,l

 

 

2 Решение задач

2. 1 Табличный симплекс-метод

 

Постановка задачи (в канонической форме):

,

 (1)

 

 

Алгоритм симплекс-метода.

Пусть , где .

1. Выбираются линейно независимых столбцов матрицы (для этого достаточно проверить, чтобы определитель матрицы, составленный из этих столбцов, не равнялся нулю). Не ограничивая общности, будем считать, что таковыми являются первые столбцов.

2. Переменные – объявляются базисными, а переменные –внебазисными.

 

 

 

 

 

3. Система (1) преобразуется к эквивалентной форме вида:

 (2)

4. Производится проверка: все ли числа в (2) неотрицательны. В случае если хотя бы одно из них строго отрицательно, необходимо выбрать другой набор линейно независимых столбцов и для него повторить пункты 1-3, соответствующим образом изменив нумерацию переменных.

5. В целевой функции исключаются базисные переменные по формулам (2) и выражение для целевой функции записывается в следующем эквивалентном виде: .

6. Строится симплекс-таблица (таблица 6)

 

1

0

0

 

 

0

1

0

 

 

0

0

1

 

0

0

0

 

 

Таблица 6.

 

 

 

 

 

 

 

 

7. Производится анализ знаков :

а). все  , тогда решение задачи ЛП имеет вид: , где

 

Значение целевой функции на оптимальном решении  (левый нижний угол таблицы 6);

б). , такой, что , тогда выполняется пункт 8.

8. Исследуется столбец, у которого (как правило, выбирается наименьший отрицательный коэффициент ):

а). все        и счет необходимо прекратить;

Информация о работе Симплексный метод с использованием М- базиса