Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Математика К_р2.DOC
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
6.39 Mб
Скачать

2.3. Симплексный метод

Алгебраический метод решения (симплекс-метод) разработан американским математиком Д. Данцигом и опубликован в 1951 г. В его основе лежит использование элементарных преобразований матрицы ограничений канонической задачи линейного программирования (метод Жордана-Гаусса).

Переход от общей задачи линейного программирования (2.1), (2.2), (2.4) к задаче в канонической форме (2.1), (2.3), (2.4), осуществляется с помощью введения m неотрицательных дополнительных переменных . Эти переменные добавляются к каждому из неравенств системы (2.2), обращая их в равенства, и входят в функцию цели с коэффициентами, равными нулю. В этом случае задача линейного программирования в канонической форме формулируется так: требуется найти совокупность неотрицательных чисел

, , (2.5),

которые удовлетворяют системе линейных уравнений:

(2.6)

и дают экстремум функции цели: max(min)(2.7)

Правомерность перехода от общей задачи к задаче в канонической форме основывается на теореме: неотрицательное решение системы неравенств (2.2) является решением системы уравнений (2.6). Справедливо и обратное утверждение.

Рассмотрим задачу линейного программирования на нахождение минимума целевой функции.

Справедливы теоремы.

Теорема 1. Если для некоторого фиксированного индекса j выполняется условие Zj - Cj > 0, то можно построить хотя бы один опорный план, для которого значение целевой функции Z будет меньше первоначального, т. е. Z < Z0.

Теорема 2. Если для некоторого опорного плана`x выполняется соотношение Zj - Cj£ 0, то план`x является оптимальным.

Сформулируем алгоритм симплексного метода.

По условию задачи составляется экономико-математическая модель задачи в общем виде:

Z(x1,...xn) = c1x1+...+cnxn max

xj 0, ( j = 1,….n) .

Переходят от задачи на максимум к задаче на минимум Z. Для этого целевую функцию умножают на (-1).

-Z(x1,...xn) = -c1x1 -...-cnxn min.

От общей задачи линейного программирования с помощью дополнительных переменных переходят к задаче в канонической форме.

xj 0, ( j = 1,….n+m) .

Запишем систему ограничений в векторной форме:

или .

Составляется первая симплексная таблица:

Таблица 2.1

Базис

C

b

-C1

-C2

-Cn

Cn+1=0

Cn+m=0

a1

a2

an

an+1

an+m

an+1

Cn+1=0

b1

a11

a12

a1n

1

0

an+2

Cn+2=0

b2

a21

a22

a2n

0

0

an+m

Cn+m=0

bm

am1

am2

amn

0

1

Zj-Cj

Z0

C1

C2

Cn

0

0

Столбец “Базис” – столбец векторов, входящих в базис.

Столбец “С” – столбец коэффициентов, стоящих в целевой функции при векторах базиса.

Строка “Zj-Cj” - называется индексной строкой.

Столбец “b” - столбец ограничений по ресурсам, входящих в базис.

Столбцы a1 … am, …, am+1… an - это коэффициенты, стоящие при неизвестных в системе ограничений.

Заполним индексную строку “Zj-Cj”. Для столбца “b” это значение равно сумме попарных произведений элементов столбца “C” на элементы столбца “b”, т. е.

.

Решение находится в столбце “b”:

`x=(b1, b2 ,…, bm, 0,…, 0); Z = Z0..

Две верхние строки таблицы содержат коэффициенты функции цели и n+m векторов системы ограничений.

4. Просматриваются числа Zj-Сj индексной строки.

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

5. Предположим, что базисное решение не оптимальное. Из всех положительных чисел индексной строки выбирается наибольшее по абсолютной величине, то есть . Индекс j, которому соответствует такое число индексной строки, укажет вектор, который следует ввести в базис. Пусть им будет . Столбец, соответствующий этому вектору, будет направляющим (ведущим).

6. Определяем направляющую (ведущую) строку. Определяется число . С этой целью компоненты базисного решения делятся на положительные компоненты ведущего вектора-столбца. Индекс i, которому соответствует , укажет вектор, который следует исключить из базиса. Пусть им будет вектор . Строка, соответствующая этому вектору, будет направляющей (ведущей). Элемент xij, стоящий на пересечении ведущего столбца и ведущей строки, называется разрешающим элементом.

  1. После выбора разрешающего элемента симплексная таблица преобразовывается по формулам прямоугольника:

, (2.8)

aij - разрешающий элемент матрицы, aij 0.

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

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

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

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