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

Общая задача математического программирования состоит в оптимизации целевой функции:

W = f(x1,...,xm) (6.1)

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

gi = gi(x1,...,xm)£ 0, iÎ[1,n] (6.2)

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

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

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

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


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



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