Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Neymoin_V01_kursach.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
170.83 Кб
Скачать
    1. Симплекс-метод решения злп

Сформулируем ЗЛП (задачи линейного программирования) на минимум с ограничениями в виде уравнений

F = c1x1 + c2x2 + ... + cmxm → min (5)

(6)

, где i=1..n

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

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

Допустимым базисом называется весь набор основных неизвестных.

Свободными называются неизвестные, которые не входят в базис.

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

Способ сведения любой задачи линейного программирования к стандартной:

f(x) ≥ b f(x) ≤ b

f(x)-xe= 0 f(x)+xm=b

xe ≥ 0 xm ≥ 0

Систему ограничений и целевую функцию представляют в виде таблицы.

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

Таблица 1 – Исходные данные

x1

x2

...

xn-1

xn

b

F

-a0,1

-a0,2

...

-a0,n-1

-a0,n

-b0

xn+1

a1,1

a1,2

...

a1,n-1

a1,n

b1

xn+2

a2,1

a2,2

...

a2,n-1

a2,n

b2

...

...

...

...

...

...

...

xn+m

am,1

am,2

...

am,n-1

am,n

bm

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

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

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

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

Проверка на оптимальность

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

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

Cтолбец в котором он находится будет ведущим - k. Для того, что бы найти ведущую строку, находим отношение соответствующего свободного члена и элемента из ведущего столбца, при условии, что они неотрицательны. При ak,i > 0, bi > 0 и i - строка, для которой это отношение минимально – ключевая. Элемент ak,i - разрешающий

bi / ak,i = min {bi / ak,i} (7)

Переменная, соответствующая ведущей строке исключается из базиса, переменная соответствующая ведущему столбцу включается в базис.

Пересчитываем симплекс-таблицу согласно правилам.

Если в новой таблице после перерасчета в строке F остались отрицательные элементы повторяем проверку на оптимальность.

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

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

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

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

  • вместо базисной переменной xk записываем 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 (9)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]