Классификация задач оптимизации
Общая запись задач оптимизации задаёт большое разнообразие их классов. От класса задачи зависит подбор метода (эффективность её решения). Классификацию задач определяют: целевая функция и допустимая область (задаётся системой неравенств и равенств или более сложным алгоритмом).
Методы оптимизации классифицируют в соответствии с задачами оптимизации:
- Локальные методы: сходятся к какому-нибудь локальному экстремуму целевой функции. В случае унимодальной целевой функции, этот экстремум единственен, и будет глобальным максимумом/минимумом.
- Глобальные методы: имеют дело с многоэкстремальными целевыми функциями. При глобальном поиске основной задачей является выявление тенденций глобального поведения целевой функции.
Существующие в настоящее время методы поиска можно разбить на три большие группы:
- детерминированные
- случайные (стохастические)
- комбинированные
По критерию размерности допустимого множества, методы оптимизации делят на методы одномерной оптимизации и методы многомерной оптимизации.
По виду целевой функции и допустимого множества, задачи оптимизации и методы их решения можно разделить на следующие классы:
Задачи оптимизации, в которых целевая функция и ограничения являются линейными функциями, разрешаются так называемыми методами линейного программирования. В противном случае имеют дело с задачей нелинейного программирования и применяют соответствующие методы. В свою очередь из них выделяют две частные задачи: если и — выпуклые функции, то такую задачу называют задачей выпуклого программирования; если , то имеют дело с задачей целочисленного (дискретного) программирования. По требованиям к гладкости и наличию у целевой функции частных производных, их также можно разделить на:
прямые методы, требующие только вычислений целевой функции в точках приближений; методы первого порядка: требуют вычисления первых частных производных функции; методы второго порядка: требуют вычисления вторых частных производных, то есть гессиана целевой функции. Помимо того, оптимизационные методы делятся на следующие группы:
аналитические методы (например, метод множителей Лагранжа и условия Каруша-Куна-Таккера); численные методы; графические методы. В зависимости от природы множества X задачи математического программирования классифицируются как:
задачи дискретного программирования (или комбинаторной оптимизации) — если X конечно или счётно; задачи целочисленного программирования — если X является подмножеством множества целых чисел; задачи нелинейного программирования, если ограничения или целевая функция содержат нелинейные функции и X является подмножеством конечномерного векторного пространства. Если же все ограничения и целевая функция содержат лишь линейные функции, то это — задача линейного программирования. Кроме того, разделами математического программирования являются параметрическое программирование, динамическое программирование и стохастическое программирование.
Математическое программирование используется при решении оптимизационных задач исследования операций.
Способ нахождения экстремума полностью определяется классом задачи. Но перед тем, как получить математическую модель, нужно выполнить 4 этапа моделирования:
Определение границ системы оптимизации Отбрасываем те связи объекта оптимизации с внешним миром, которые не могут сильно повлиять на результат оптимизации, а, точнее, те, без которых решение упрощается Выбор управляемых переменных «Замораживаем» значения некоторых переменных (неуправляемые переменные). Другие оставляем принимать любые значения из области допустимых решений (управляемые переменные) Определение ограничений на управляемые переменные … (равенства и/или неравенства) Выбор числового критерия оптимизации (например, показателя эффективности)
Рассматриваемая задача имеет два основания: - тип целевой функции
- характер множеств допустимых решений. З.М.: -безусловная М ( Rn ) -условнаяМ (Rn) По типу целевой функции: -задачи ЛП -задачи неЛП Задача, в которой и целевая функция и ограничения являются линейными, называются задачей линейного программирования. (ЛП) Задача, в которой либо целевая, либо ограничение не линейно называется задачей нелинейного программирования. (неЛП) Задача НЛМП, в которой множество выпуклое и целевая функция выпуклая, называется задачей выпуклого программирования. (ВП) Задача, в которой целевая функция квадратичная, а все ограничения линейные, называется задачей квадратичного программирования. (КВ) Задача, в которой параметры оптимизации могут принимать дискретные значения, называется задачей дискретного программирования. (ДП) Задача дискретного программирования, в которой параметры оптимизации могут принимать только целочисленные значения, называется задачей целочисленного программирования. (ЦП) Задача минимизации, процесс нахождения решения которой является многоэтапным, называется задачей динамического программирования.