Методы и алгоритмы решения задач математического программирования

 

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

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

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

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

2. Определяется некое начальное базисное допустимое решение. Для этого переменные разбивают как бы на две группы – основные или базисные и неосновные. В качестве основных переменных рекомендуется выбирать (если возможно) переменные, каждая из которых входит только в одно из уравнений системы ограничений. Соответственно дополнительные переменные также должны удовлетворять этим правилам.

3. Составляется исходная симплекс-таблица, в которую записывают параметры, соответствующие начальному базисному допустимому решению:

3.1.Весовые коэффициенты cj при переменных xj (j = 1,...,n) целевой функции (строка C).

3.2.Весовые коэффициенты ci при базисных переменных xi (i = 1,...,m) целевой функции (столбец Cb).

3.3.Переменные xi (i = 1, ... ,m) , которые входят в текущий базис (столбец Ab).

3.4.Свободные коэффициенты bi (i =1, ... ,m) уравнений ограничений (столбец B). В этом же столбце находим оптимальный план задачи.

3.5.Элементы a ij (i = 1, ... ,m; j = 1, ... ,n) матрицы условий задачи (столбцы A1, .., An).

 

Таблица.

Аб Сб. В c1 ... cj ... ck ... cn
A1 ... Aj ... Ak ... An
А1 c1 b1 a11 ... a1j ... a1k ... a1n
... ... ... ... ... ... ... ... ...
Аi ci bi ai1 ... aij ... aik ... ain
... ... ... ... ... ... ... ... ...
Ar cr br ar1 ... arj ... ark ... arn
... ... ... ... ... ... ... ... ...
Am cm bm am1 ... amj ... amk ... amn
m+1   S S1 ... Sj ... Sk ... Sn

Оценки Sj (j=1, ... ,n) векторов условий Aj , которые определяются по формуле:

 
 

 


Рисунок 25.

где ci - весовые коэффициенты при базисных переменных.

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

- если Sj ³ 0 для всех j = 1, ..., n, то полученное решение является оптимальным;

- если имеются Sj < 0и в столбцах Aj, соответствующих этим отрицательным оценкам, существует хотя бы один элемент aij > 0, то возможен переход к новому решению, связанному с большим значением целевой функции;

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

если имеются Sk<0 и в столбце Ak все элементы aik £ 0, то в области допустимых решений целевая функция обязательно не ограничена сверху.

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

После этого определяется вектор, который нужно вывести из базиса, используя равенство:

 
 

 


Рисунок 26.

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

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

br/ark, ar1/ark , ... , arn/ark.

Остальные элементы новой таблицы определяются по правилу прямоугольника:

 
 

Рисунок 27.

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

Критерий оптимальности решения для нахождения максимального значения целевой функции чаще всего формулируется так:

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

Критерий оптимальности решения для нахождения минимального значения целевой функции следующий:

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

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

Если ограничения можно привести к виду:

Ах≤А0 при А0≥0, то система ограничений содержит единичную матрицу всегда.

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

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

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

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

Строка оценок разбивается на две:

(m+1) – оценка, которая не зависит от М;

(m+2) – коэффициент при М.

По (m+2) строке определяют вектор, подлежащий включению в базис. Итерационный процесс проводят до исключения из базиса всех искусственных векторов. Затем процесс продолжают по (m+1) строке обычным симплекс-методом.

Одна из классических задач - транспортная задача формулируется следующим образом:

Имеется m пунктов отправления (производства) A1, A2, ... ,Am, в которых расположены запасы некоторого однородного продукта (груза). Объём этого продукта в пункте Ai составляет ai единиц. Кроме того, имеется n пунктов потребления B1, B2, ... ,Bn. Объём потребления в пункте Bj составляет bj единиц. Предполагается, что из каждого пункта отправления возможна транспортировка продукта в любой пункт потребления. Известна также стоимость cij перевозки единицы продукта из пункта Ai в пункт Bj .

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

При такой постановке данную задачу называют транспортной задачей по критерию стоимости.

В общем виде исходные данные представлены в таблице 2.

 

Таблица 2

 

Транспортная задача называется закрытой, если суммарный объем отправляемых грузов равен суммарному объему потребности в этих грузах по пунктам назначения

Рисунок 28.

Если такого равенства нет (потребности выше запасов или наоборот), задачу называют открытой.

 

1. Из распределительной таблицы выбирают наименьшую стоимость и в клетку, которая ей соответствует, помещают меньшее из чисел ai или bj (если таких клеток несколько, то выбирают любую);

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

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

4. Рассчитывают транспортные расходы: сумма произведений количества перевезенной продукции на стоимость для занятых клеток.

Алгоритм метода Фогеля.

1. В каждой строке находят разность между двумя наименьшими стоимостями и записывают ее около соответствующей строки справа;

2. В каждом столбце находят разность между двумя наименьшими стоимостями и записывают ее под соответствующим столбцом;

3. Среди всех полученных разностей находят максимальную и распределяют объем перевозки в клетку строки или столбца с наименьшей стоимостью;

4. Исключают из рассмотрения строку или столбец с распределенными поставками и возвращаются к пункту 1. Процесс продолжается до тех пор, пока все запасы не будут вывезены, а потребности удовлетворены;

5. Когда план построен, рассчитываются транспортные расходы.