Сравнение методов оптимизации кратко

Обновлено: 02.07.2024

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

Методы оптимизации классифицируют в соответствии с задачами оптимизации:

  • Локальные методы: сходятся к какому-нибудь локальному экстремуму целевой функции. В случае унимодальной целевой функции, этот экстремум единственен, и будет глобальным максимумом/минимумом.
  • Глобальные методы: имеют дело с многоэкстремальными целевыми функциями. При глобальном поиске основной задачей является выявление тенденций глобального поведения целевой функции.

Существующие в настоящее время методы поиска можно разбить на три большие группы:

  1. детерминированные;
  2. случайные (стохастические);
  3. комбинированные.

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

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

  • Задачи оптимизации, в которых целевая функция и ограничения являются линейными функциями, разрешаются так называемыми методами линейного программирования.
  • В противном случае имеют дело с задачей нелинейного программирования и применяют соответствующие методы. В свою очередь из них выделяют две частные задачи:
    • если и — выпуклые функции, то такую задачу называют задачей выпуклого программирования;
    • если , то имеют дело с задачей целочисленного (дискретного) программирования.

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

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

    Помимо того, оптимизационные методы делятся на следующие группы:

    • аналитические методы (например, метод множителей Лагранжа и условия Каруша-Куна-Таккера);
    • численные методы;
    • графические методы.

    В зависимости от природы множества X задачи математического программирования классифицируются как:

    • задачи дискретного программирования (или комбинаторной оптимизации) — если X конечно или счётно;
    • задачи целочисленного программирования — если X является подмножеством множества целых чисел;
    • задачей нелинейного программирования, если ограничения или целевая функция содержат нелинейные функции и X является подмножеством конечномерного векторного пространства.
    • Если же все ограничения и целевая функция содержат лишь линейные функции, то это — задача линейного программирования.

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

    Способ нахождения экстремума полностью определяется классом задачи. Но перед тем, как получить математическую модель, нужно выполнить 4 этапа моделирования:

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




    В настоящее время для решения оптимальных задач применяют в основном следующие методы:

    · методы исследования функций классического анализа;

    · методы, основанные на использовании неопределенных множителей Лагранжа;

    · В последнее время разработан и успешно применяется для решения определенного класса задач метод геометрического программирования.

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

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

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

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

    Методы оптимизации классифицируют в соответствии с задачами оптимизации:

    • Локальные методы: сходятся к какому-нибудь локальному экстремуму целевой функции. В случае унимодальной целевой функции, этот экстремум единственен, и будет глобальным максимумом/минимумом.
    • Глобальные методы: имеют дело с многоэкстремальными целевыми функциями. При глобальном поиске основной задачей является выявление тенденций глобального поведения целевой функции.

    Существующие в настоящее время методы поиска можно разбить на три большие группы:

    1. детерминированные;
    2. случайные (стохастические);
    3. комбинированные.

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

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

    • Задачи оптимизации, в которых целевая функция и ограничения являются линейными функциями, разрешаются так называемыми методами линейного программирования.
    • В противном случае имеют дело с задачей нелинейного программирования и применяют соответствующие методы. В свою очередь из них выделяют две частные задачи:
      • если и — выпуклые функции, то такую задачу называют задачей выпуклого программирования;
      • если , то имеют дело с задачей целочисленного (дискретного) программирования.

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

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

      Помимо того, оптимизационные методы делятся на следующие группы:

      • аналитические методы (например, метод множителей Лагранжа и условия Каруша-Куна-Таккера);
      • численные методы;
      • графические методы.

      В зависимости от природы множества X задачи математического программирования классифицируются как:

      • задачи дискретного программирования (или комбинаторной оптимизации) — если X конечно или счётно;
      • задачи целочисленного программирования — если X является подмножеством множества целых чисел;
      • задачей нелинейного программирования, если ограничения или целевая функция содержат нелинейные функции и X является подмножеством конечномерного векторного пространства.
      • Если же все ограничения и целевая функция содержат лишь линейные функции, то это — задача линейного программирования.

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

      Способ нахождения экстремума полностью определяется классом задачи. Но перед тем, как получить математическую модель, нужно выполнить 4 этапа моделирования:

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

      В настоящее время для решения оптимальных задач применяют в основном следующие методы:

      · методы исследования функций классического анализа;

      · методы, основанные на использовании неопределенных множителей Лагранжа;

      · В последнее время разработан и успешно применяется для решения определенного класса задач метод геометрического программирования.

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

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

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

      Читайте также: