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

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

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

1) Математическая модель задачи должна быть канонической. Если она не каноническая. То ее надо привести к каноническому виду.

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

 

ni

Aj

n1 n2 nm nm+1 nn L(x)
x1 x2   xm xm+1   xn bi
n1 x1 1 0   0 h1,m+1   h1,n f1
n2 x2 0 1   0 h2,m+1   h2,n f2
nm xm 0 0   1 hm,m+1   hm,n f3

0 0 0 10

 

Индексная строка для переменных находится по формуле

 и по формуле

 для свободного члена.

Возможны следующие случаи при решении задачи на максимум:

- если все оценки  то найденное решение оптимальное;

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

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

- если отрицательных оценок в индексной строке несколько, то в столбец базисной переменной (БП) вводят ту переменную, которой соответствует наибольшая по абсолютной величине отрицательная оценка.

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

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

3) Заполняем симплексную таблицу 2-го шага:

- переписываем ключевую строчку, разделив ее на ключевой элемент;

- заполняем базисные столбцы;

- остальные коэффициенты таблицы находим по правилу «прямоугольника».

Оценки модно считать по приведенным выше формулам. Получаем новое опорное решение, которое проверяем на оптимальность и т.д.

Правило «прямоугольника» заключается в следующем. Путь ключевым элементом 1-го шага является элемент 1-й строчки -го столбца . Тогда элемент -й строки -го столбца 2-го шага – обозначим его  – согласно правилу «прямоугольника» выражается формулой

,

где , ,  – элементы первого шага.

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

 

Пример 2. Предприятие располагает тремя производственными ресурсами (сырьем, оборудованием, электроэнергией) и может организовать производство продукции двумя разными способами.

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

Производственные ресурсы

Расход ресурсов за 1 месяц при работе

Общий ресурс

1-ым сп. 2-ым сп.
сырье 1 2 4
оборудование 1 1 3
электроэнергия 2 1 8

При первом способе производства предприятие выпускает за один месяц 3 тыс. изделий, при втором – 4 тыс. изделий. Сколько месяцев должно работать предприятие каждым из этих способов, чтобы при наличных ресурсах обеспечить максимальный выпуск продукции?

Решение.

Составим математическую модель:  – время работы предприятия 1-ым способом;  – время работы предприятия 2-ым способом.

 при ограничениях:

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

 при ограничениях:

Составляем симплексную таблицу 1-го шага.

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

Ключевым моментом является 2.

Вводим в столбец базисной переменной , выводим . Составляем симплексную таблицу 2-го шага.

Вводим в столбец базисной переменной . Составляем симплексную таблицу 2-го шага.

 

ni

Aj

3 4 0 0 0 L (x)
X1 X2 X3 X4 X5 bi
4 X2 ½ 1 ½ 0 0 2
0 X4 ½ 0 -1/2 1 0 1
0 X5 3/2 0 -1/2 1 1 6

-1 0 2 0 0 8

 

Получим  В индексной строке имеется одна отрицательная оценка. Полученное решение можно улучшить. Ключевым элементом является ½. Составляем симплексную таблицу 3-го шага.

 

ni

Aj

3 4 0 0 0 L (x)
X1 X2 X3 X4 X5 bi
4 X2 0 1 1 -1 0 2
3 X1 1 0 -1 2 0 1
0 X5 0 0 1 -3 1 6

0 0 1 2 0 10

Все оценки свободных переменных  следовательно, найденное опорное решение является оптимальным:

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

Транспортная  задача

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

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

Потребуется составить план перевозок, позволяющий вывести все грузы и имеющий минимальную стоимость.

Если , то задача называется закрытой (ЗТЗ).

Если , то задача называется открытой (ОТЗ).

Обозначим через  количество груза, перевозимого из пункта  в пункт .

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

 

 

…  
...

Математическая модель закрытой транспортной задачи имеет вид:

при ограничениях:

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

Для решения транспортной задачи разработан специальный метод, имеющий этапы:

-  нахождение исходного опорного решения;

-  проверка этого решения на оптимальность;

-  переход от одного опорного решения к другому.

Нахождение  исходного  опорного  решения

Условия задачи и ее исходное опорное решение будем записывать в распределительную таблицу. Клетки, в которые поместим грузы, называются занятыми, им соответствуют базисные переменные опорного решения. Остальные клетки незанятые или пустые, им соответствуют свободные переменные. В верхнем правом углу каждой клетки будем записывать тарифы. Существует несколько способов нахождения исходного опорного решения: метод минимального тарифа; метод северо-западного угла и др.

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

В этом случае недостающие их число заполняется клетками с нулевыми поставками, такие клетки называют условно занятыми.

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

Пример 3. На складах , ,  имеются запасы продукции в количествах 90; 400; 110 т соответственно. Потребители , ,  должны получить эту продукцию в количествах 140; 300; 160 т соответственно. Найти такой вариант прикрепления поставщиков к потребителям, при котором сумма затрат на перевозки была бы минимальной. Расходы по перевозке 1 т продукции заданы матрицей (усл. ед.)

 

Проверим, является ли данная транспортная задача закрытой:

т,

т,

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

 

 
   
    5  
 

Число занятых клеток равно , т.е. условие невырожденности выполнено. Получим исходное опорное решение, которое запишем в виде матрицы:

Стоимость перевозки при исходном опорном решении составляет:

 усл. ед.

Метод  потенциалов

Найденное исходное опорное решение проверяется на оптимальность методом потенциалов по следующему критерию: если опорное решение ТЗ является оптимальным, то ему соответствует система  действительных чисел  и , удовлетворяющих условиям + = для занятых клеток и + для свободных клеток.

Числа  и  называют потенциальными.В распределительную таблицу добавляют строчку  и столбец . Потенциалы  и  находят из равенства + = , справедливого для занятых клеток. Одному из потенциалов дается произвольное значение, например , тогда остальные потенциалы определяются однозначно. Так, если известен потенциал , то ; если известен потенциал , то . Обозначим . Эту оценку называют оценкой свободных клеток. Если , то опорное решение является оптимальным. Если хотя бы одна из оценок , то опорное решение не является оптимальным и его можно опорного решения к другому.

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

 

   
 
   
  5   100
 

.

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

.

Отсюда , , , , .

Найденные значения потенциалов заносим в таблицу. Вычислим оценки свободных клеток:

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

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

Для свободной клетки с  строится цикл, все вершины которого кроме одной находится в занятых клетках; углы прямые, число вершин четное. Около свободной клетки цикла становится (+), затем поочередно проставляют знаком (–) и (+). У вершин со знаком (–) выбирают минимальный груз, его прибавляют к грузам, стоящим у вершин со знаком (+) и отнимают от грузов у вершин со знаком (–). В результате перераспределения груза получим новое опорное решение. Это решение проверяем на оптимальность, и т.д. до тех пор, пока не получим оптимальное решение.

 
    
+

 

 

Новое опорное решение

 
 
+
+
8 –

 

Произведем перераспределение грузов. Получим новое решение. Проверим его на оптимальность.

 

 
 
 –
5 70
8 –

 

 

 

Все оценки свободных клеток отрицательные, следовательно, найденное решение оптимальное. Итак,

Стоимость транспортных расходов равна:  усл. ед.

По сравнению с исходными опорным решением транспортные расходы уменьшились на  усл. ед.

При открытой ТЗ сумма запасов не совпадает с суммой потребностей. В этом случае вводят фиктивного поставщика или потребителя. При введении фиктивного поставщика или потребителя ОТЗ становится закрытой и решается по ранее рассмотренному алгоритму для ЗТЗ, причем тарифы, соответствующие фиктивному поставщику или потребителю, больше или равны наибольшему из всех транспортных тарифов, иногда их считают равными нулю.

В целевой функции фиктивный поставщик или потребитель не учитывается.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: