Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_po_omm (2).doc
Скачиваний:
12
Добавлен:
19.12.2018
Размер:
1.25 Mб
Скачать

35. Причины возникновения и примеры нелинейностей в оптимизационных экономических задачах

Классификационный признак задач оптимизации — свойства функций f и множеств W. Например задачи называются линейными (часто говорят о задачах линейного программирования), если функция f — аффинная, а множество W — многогранное (множество W называется многогранным, если оно выделяется ограничениями с аффинными функциями g0 и g1).

Если функции f, g0 и g1 квадратичные, то говорят о задачах квадратичного программирования или о квадратичных задачах оптимизации (условных или безусловных). Если эти функции выпуклые, то говорят о задачах выпуклого программирования (если множество W задается каким-либо другим образом, а не только ограничениями типа (4) и (5), то в задачах выпуклого программирования требуют его выпуклость). Наконец, в общем случае говорят о задачах нелинейного программирования. В таких задачах обычно предполагается гладкость фигурирующих в них функций.

Пример нелинейной задачи.

Задачи о распределении ресурсов.

Общий смысл таких задач — распределить ограниченный ресурс между потребителями оптимальным образом. Рассмотрим простейший пример — задачу о режиме работы энергосистемы. Пусть m электростанций питают одну нагрузку мощности p. Обозначим через xj активную мощность, генерируемую j-ой электростанцией. Техническими условиями определяются возможный минимум mj и максимум Mj вырабатываемой j-ой электростанцией мощности. Допустим затраты на генерацию мощности x на j-ой электростанции равны ej(x). Требуется сгенерировать требуемую мощность p при минимальных затратах. В наших обозначениях

Если обозначить через через W, то эта задача переписывается так

36 Квадратичное программирование

Под квадратичным программированием понимаются задачи следующего вида (в матричных обозначениях)

где -симметричная матрица размерности . Задачи линейного программирования являются частным случаем этих задач - они получаются при =0.

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

Выпуклое программирование

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

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

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

Геометрическое программирование

Под задачами геометрического программирования понимают задачи наиболее плотного расположения некоторых объектов в заданной двумерной или трехмерной области. Такие задачи встречаются в задачах раскроя материала для производства каких-то изделий и т.п. Это - еще недостаточно разработанная область математического программирования и имеющиеся здесь алгоритмы в основном ориентированы на сокращение перебора вариантов с поиском локальных минимумов.

Дробно линейное програмирование

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

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

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