Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мет прин реш.docx
Скачиваний:
4
Добавлен:
01.04.2025
Размер:
1.39 Mб
Скачать

9.2. Численные методы математического программирования

 

Численные методы математического программирования – раздел вычислительной математики, связанный с отысканием решения задач математического программирования в тех случаях, когда затруднено получение строго математического решения [1]. Численные методы оптимизации, численный вычислительный эксперимент считаются важным разделом системного анализа.

Численные методы представляют собой последовательность однотипных шагов, итераций.

Выделяют конечные и бесконечные численные методы [1].

Конечные методы позволяют получать решение за конечное (но обычно заранее неизвестное) число шагов. К ним относят:

•    симплекс-метод (с полной симплексной таблицей, с использованием обратной матрицы, с мультипликативным представлением обратной матрицы);

•    двойственный симплекс-метод;

•    метод   последовательного   сокращения   невязок   (комбинация   обычного   и двойственного симплекс-метода);

•    метод наискорейшего спуска;

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

•    методы условной минимизации, основанные на теореме Куна-Такера.

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

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

К этой группе методов относят:

•     метод Брауна-Робинсона [1], основанный на связи между парой задач линейного программирования (исходной и двойственной) и матричной игрой, т.е. на применении при решении задач математического программирования методов теории игр ;

•     метод штрафных функций или метод штрафов [1], базирующийся на использовании функций штрафов.

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

При этом выделяют 4 вида итераций.

1. Методы возможных направлений.

Строится последовательность хkк = 0,1,..., так, что каждое х удовлетворяет всем ограничениям задачи. Вблизи очередного приближения хk минимизируемая функция и ограничения (существенные для хk) аппроксимируются более простыми (как правило, лине­ными или квадратичными). Решая получающуюся вспомогательную задачу линейного или квадратичного программирования, находят возможное (т.е. не выходящее за пределы области допустимых решений) направление, являющееся одновременно и направлением убывания функции. Сдвиг по этому направлению приводит к новой точке хk+1 .

Примерами могут служить симплексный метод в линейном программировании и метод проекции градиента и условного градиента, метод возможных направлений Зойтендейка  в нелинейном программировании.

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

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

К этой группе относят двойственный симплекс-метод в линейном программировании, метод отсечения в выпуклом программировании ), при этом точка хk отсекается путем добавления нового линейного ограничения.

3. Итерационный процесс ведется не только по исходным, но и по двойственным переменным (множителям Лагранжа, оптимальным оценкам).

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

К этой группе относится градиентный метод Эрроу-Гурвица-Удзавы.

4. Методы, основанные на учете ограничений с помощью штрафов.

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

Задачи могут решаться с помощью градиентного метода, метода сопряженных градиентов, метода Ньютона и т. д.

К численным методам относят также методы решения задач специального вида: транспортные (Транспортная задача), блочные Блочное программирование).

В современных условиях при применении ЭВМ число методов расширяется. В частности, разрабатываются методы, основанные на использовании кусочно-линейной аппроксимации [5,6 и др.], комбинаторных алгоритмов [2], разработке непрерывных вариантов дискретных методов, строится непрерывная траектория х(t), задаваемая дифференциальными уравнениями.

 

Лекция 10. Решение задач линейного программирования симплекс-методом

В основе симплекс-метода лежит идея поиска базисного решения с последующим переходом от одного базиса к другому таким образом, чтобы целевая функция при этом все время увеличивалась, если речь идет о задаче максимизации. Для начала работы требуется, чтобы заданная система ограничений выражалась равенствами, причем в этой системе ограничений должны быть выделены базисные неизвестные. Решение задачи при помощи симплекс-метода распадается на ряд шагов. На каждом шаге от данного базиса Б переходят к другому, новому базису Б1  с таким расчетом, чтобы значение функции f(x) уменьшалось, т. е. fБ’≥fБ. Для перехода к новому базису из старого базиса удаляется одна из переменных и вместо нее вводится другая из числа свободных. После конечного числа шагов находится некоторый базис Б(k) , для которого fБ(k)  есть искомый максимум для линейной функции f, а соответствующее базисное решение является оптимальным либо выясняется, что задача не имеет решения.

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

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

и ограничения

Переобозначим свободные коэффициенты ограничений aj0=bj. Приведем матрицу ограничений к каноническому виду:

 (10.1)

Используя метод Жордана-Гаусса, приведем записанную систему к виду, где выделены базисные переменные. Введем условные обозначения:

x1, x2 , ... , xr - базисные переменные;

xr+1, xr+2 , ... , xn - свободные переменные.

Будем применять метод полного исключения к расширенной матрице ограничений. Выбираем направляющий элемент aij на данной итерации. В результате преобразования Гаусса получим новые значения коэффициентов:

          (10.2)

Если lIl=1,2,…,m.

Выясним условия, при которых новое базисное решение будет допустимым, т.е.   для всех l. По предположению, al0≥0, тогда 

Если   то очевидно,  , так как 

Если   то   будет больше нуля при всех значениях l=1,2,…,тогда и только тогда, когда   при условии 

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

        направляющий столбец выбирают из условия, что в нем имеется хотя бы один положительный элемент;

        направляющую строку выбирают так, чтобы отношения   были минимальными при условии, что aij>0.

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

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

Таблица 10.1