Реализация метода Искусственного Базиса

Автор: Пользователь скрыл имя, 12 Февраля 2013 в 15:52, курсовая работа

Описание работы

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

Содержание

Введение

1 Математические основы решения задачи линейного программирования
1.1 Задачи линейного программирования и свойства ее решений
1.2 Форма задачи линейного программирования и свойства ее решений
1.3 Переход к канонической форме
1.4 Табличный симплекс-метод
1.5 Метод искусственного базиса
2 Разработка и описание алгоритма решения задачи
2.1 Содержательная постановка задачи
2.2 Математическая модель задачи
2.3 Решение задачи вручную
2.4 Решение задачи с помощью Excel
Заключение
Список литературы

Работа содержит 1 файл

Курсовая.doc

— 1.22 Мб (Скачать)

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записываем xl; вместо небазисной переменной xl записываем xk.  
  • ведущий элемент заменяется на обратную величину ak,l'= 1/ak,l
  • все элементы ведущего столбца (кроме ak,l) умножаются на -1/ak,l
  • все элементы ведущей строки (кроме ak,l) умножаются на 1/ak,l
  • оставшиеся элементы симплекс-таблицы преобразуются по формуле ai,j'= ai,j- ai,l×ak,j/ ak,l

 

 

 

 

 

 


2.1 Содержательная постановка  задачи

Для составления сплава используется три вида сырья: A1, B1 C1. Определить состав сырьевых материалов, обеспечивающий минимальную стоимость 1 кг. сплава (Табл. 11)

                                                                                                             Таблица 11

Компоненты сплава

Пределы содержания металла

Содержание компонентов  в сырье

X1

X2

 

A1

4

1

1

 

A2

2

1

2

 

A3

10

1

2

 

Стоимость сырья

2

-1

 

 

 

 

 

 

 

 

 

 

 


2.2 Математическая модель задачи

Целевая функция:

Ограничения:

2.3 Решение  задачи вручную

Определим минимальное  значение целевой функции F(X) = 2x1 - x2 при следующих условиях-ограничений.

x1 + x2≥4

x1 + 2x2≤2

x1 + 2x2≤10

 

Для построения первого  опорного плана систему неравенств приведем к системе уравнений  путем введения дополнительных переменных (переход к канонической форме).

1x1 + 1x2-1x3 + 0x4 + 0x5 = 4

1x1 + 2x2 + 0x3 + 1x4 + 0x5 = 2

1x1 + 2x2 + 0x3 + 0x4 + 1x5 = 10

 

Введем искусственные  переменные x: в 1-м равенстве вводим переменную x6;

1x1 + 1x2-1x3 + 0x4 + 0x5 + 1x6 = 4

1x1 + 2x2 + 0x3 + 1x4 + 0x5 + 0x6 = 2

1x1 + 2x2 + 0x3 + 0x4 + 1x5 + 0x6 = 10

 

 

 


Для постановки задачи на минимум  целевую функцию запишем так:

F(X) = 2x1-1x2+Mx6 → min

 

Из уравнений выражаем искусственные переменные:

x6 = 4-x1-x2+x3 которые подставим в целевую функцию:

F(X) = (2-M)x1+(-1-M)x2+(M)x3+(4M) → min

 

Матрица коэффициентов A = a(ij) этой системы уравнений имеет  вид:

 

 

Решим систему уравнений  относительно базисных переменных:

x6, x4, x5.

 

Полагая, что свободные переменные равны 0, получим первый опорный план: X1 = (0,0,0,2,10,4)

Переходим к основному алгоритму симплекс-метода (Табл. 12).

 

                                                                                                       Таблица 12

Базис

B

x1

x2

x3

x4

x5

x6

x6

4

1

1

-1

0

0

1

x4

2

1

2

0

1

0

0

x5

10

1

2

0

0

1

0

F(X0)

4M

-2+M

1+M

-M

0

0

0


 

 

 

 

 


Итерация №0.

Текущий опорный план не оптимален, так как в индексной строке находятся положительные коэффициенты.

В качестве ведущего выберем  столбец, соответствующий переменной x2, так как это наибольший коэффициент .

Вычислим значения Di по строкам как частное от деления: bi / ai2

и из них выберем наименьшее:

Следовательно, 2-ая строка является ведущей.

Разрешающий элемент  равен (2) и находится на пересечении  ведущего столбца и ведущей строки (Табл. 13).

                                                                                               Таблица 13

  Базис

B

x1

x2

x3

x4

x5

x6

    min

x6

4

1

1

-1

0

0

1

4

x4

2

1

2

0

1

0

0

1

x5

10

1

2

0

0

1

0

5

F(X1)

4M

-2+M

1+M

-M

0

0

0

0


 

 

 

 

 

 

 

 

 

 

 

 

 


Получаем новую симплекс-таблицу (Табл. 14):

                                                                               Таблица 14

Базис

B

x1

x2

x3

x4

x5

x6

x6

3

1/2

0

-1

-1/2

0

1

x2

1

1/2

1

0

1/2

0

0

x5

8

0

0

0

-1

1

0

F(X1)

-1+3M

-21/2+M

0

-M

-1/2-M

0

0


 

Итерация №1.

Текущий опорный план не оптимален, так как в индексной строке находятся положительные коэффициенты.

В качестве ведущего выберем  столбец, соответствующий переменной x1, так как это наибольший коэффициент .

Вычислим значения Di по строкам как частное от деления: bi / ai1

и из них выберем наименьшее:

Следовательно, 2-ая строка является ведущей.

Разрешающий элемент равен (1/2) и находится на пересечении ведущего столбца и ведущей строки (Табл. 15).

 

 

 

 

 

 

 

 

 

 

 

 

                                                                                                         Таблица 15


Базис

B

x1

x2

x3

x4

x5

x6

   min

x6

3

1/2

0

-1

             -1/2

0

1

6

x2

1

1/2

1

0

             1/2

0

0

2

x5

8

0

0

0

          -1

1

0

-

F(X2)

-1+3M

-21/2+M

0

-M

     -1/2-M

0

0

0




                                                                                                

 

Получаем новую симплекс-таблицу (Табл. 16):

                                                                                    Таблица 16

Базис

B

x1

x2

x3

x4

x5

x6

x6

2

0

-1

-1

-1

0

1

x1

2

1

2

0

1

0

0

x5

8

0

0

0

-1

1

0

F(X2)

4+2M

0

5-M

-M

2-M

0

0


 

Конец итераций: индексная  строка не содержит положительных элементов - найден оптимальный план

Окончательный вариант  симплекс-таблицы (Табл. 17):

 

                                                                                       Таблица 17

 

 

Базис

B

x1

x2

x3

x4

x5

x6

x6

2

0

-1

-1

-1

0

1

x1

2

1

2

0

1

0

0

x5

8

0

0

0

-1

1

0

F(X3)

4+2M

0

5-M

-M

2-M

0

0

Информация о работе Реализация метода Искусственного Базиса