Green-sell.info

Новые технологии
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Классификация методов оптимизации

Классификация методов оптимизации

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Определение границ системы оптимизации
    • Отбрасываем те связи объекта оптимизации с внешним миром, которые не могут сильно повлиять на результат оптимизации, а, точнее, те, без которых решение упрощается
  2. Выбор управляемых переменных
    • «Замораживаем» значения некоторых переменных (неуправляемые переменные). Другие оставляем принимать любые значения из области допустимых решений (управляемые переменные)
  3. Определение ограничений на управляемые переменные
    • … (равенства иили неравенства)
  4. Выбор числового критерия оптимизации
    • Создаём целевую функцию

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

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

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

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

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

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

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

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

Классификация методов оптимизации

10-3. Классификация методов оптимизации

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

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

Возможно несколько подходов к классификации. Следует различать методы определения экстремума функции и функционала (рис. 10-7).

Хотя функция и является частным случаем функционала, методы отыскания экстремума функции проще. Методы динамического программирования и принципа максимума с успехом применяются для отыскания экстремума функционала и функции. Прямые методы вариационного исчисления (методы Ритца, Эйлера и др.), как и дискретный вариант уравнения Эйлера, сводят задачу отыскания Рис. 10-7. Общая структурная схема методов экстремума функционала к оптимизации, экстремуму функции. Методы

Читать еще:  Дефрагментация и оптимизация дисков

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

особенно при наличии ограничений на координаты xj.


Рис. 10-7. Общая структура схема методов оптимизации

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

Спор между сторонниками аналитических и численных методов с позиций кибернетики в известном смысле потерял свою остроту, так как практика проектирования конкретных систем управления требует применения обоих методов. За аналитическими методами остается преимущество, заключающееся в возможности определения качественной картины поведения оптимальной системы при изменении ее параметров и структуры. Численные же методы обеспечивают получение конкретных числовых значений параметров управления. Некоторую, попытку рационального объединения этих методов можно усматривать в интенсивной разработке человеко-машинных методов оптимизации, использующих язык диалога человека и ЦВМ, большие банки данных и возможности современных операционных систем. При этом удается повторять вычисления при разных условиях, использовать, где необходимо, аналитические методы, представленные в виде стандартных программных блоков, и, самое главное, оперативно включать в процедуру отыскания оптимального управления интеллектуальные способности человека.


Рис. 10-8. Методы отыскания экстремума функции

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

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

Методы отыскания экстремума функционала ведут свое начало от классических методов Эйлера — Лагранжа — Гамильтона и заканчиваются динамическим программированием и принципом максимума (рис. 10-9). В них также содержатся прямые методы отыскания экстремума функционала и различные частные методы.

В соответствии со схемой на рис. 10-7 почти во всех методах (Эйлера — Лагранжа — Гамильтона, принципе максимума, динамическом программировании, прямых методах отыскания экстремума функции) можно выделить дискретные и непрерывные модификации, детерминированные и случайные варианты.

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

В последнее время в связи с разработкой и внедрением АСУ чрезвычайно большое значение приобрели методы целочисленного программирования. Заметим, что одна из основных задач АСУ — оперативно- календарное планирование — относится к задачам целочисленного программирования. Единого общего метода решения задач целочисленного программирования нет. Разработано много способов решения пригодных для частного класса задач, среди которых большое место занимают нестрогие эвристические методы. Особого внимания среди них заслуживают лингвистические методы оптимизации. Они ближе всего подходят к человеческому способу мышления и удобны для реализации на ЦВМ с помощью проблемно-ориентированных языков. Здесь уместно снова упомянуть о человеко-машинных методах решения целочисленных задач оптимизации, являющихся по существу своему лингвистическими в широком смысле, так как они имитируют применяемые человеком методы оптимизации и планирования с добавлением эффективных аналитических и числовых процедур.


Рис. 10-9. Методы отыскания экстремума функционала

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

Замечание может вызвать имеющееся в пособии смешение двух принципов рассмотрения методов: по задачам и методу (или процедуре) решения. Динамическое программирование, принцип максимума и метод Эйлера — Лагранжа (в ограниченном плане) являются реализациями процедурного подхода. Первые два метода принципиально применимы ко всем задачам. По задачные методы представлены симплекс-методом для линейного программирования, различными процедурами решения задач нелинейного и целочисленного программирования.

Хотя с академической точки зрения такое разнообразие подходов может вызвать большие нарекания, но с точки зрения инженера кибернетика, который должен иметь на вооружении весь комплекс методов, такое изложение нам кажется оправданным.

Классификация методов оптимизации

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

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

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

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

Читать еще:  Easybcd аналог для linux

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

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

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

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

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

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

· если , то имеют дело с задачей целочисленного (дискретного) программирования.

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

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

· методы первого порядка: требуют вычисления первых частных производных функции;

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

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

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

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

· задачи дискретного программирования (или комбинаторной оптимизации) — если X конечно или счётно;

· задачи целочисленного программирования — если X является подмножеством множества целых чисел;

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

· Если же все ограничения и целевая функция содержат лишь линейные функции, то это — задача линейного программирования.

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

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

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

2. Выбор управляемых переменных: «замораживаем» значения некоторых переменных (неуправляемые переменные). Другие оставляем принимать любые значения из области допустимых решений (управляемые переменные)

3. Определение ограничений на управляемые переменные (равенства и/или неравенства)

4. Выбор числового критерия оптимизации (создаём целевую функцию).

Классификация методов оптимизации

10-3. Классификация методов оптимизации

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

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

Возможно несколько подходов к классификации. Следует различать методы определения экстремума функции и функционала (рис. 10-7).

Хотя функция и является частным случаем функционала, методы отыскания экстремума функции проще. Методы динамического программирования и принципа максимума с успехом применяются для отыскания экстремума функционала и функции. Прямые методы вариационного исчисления (методы Ритца, Эйлера и др.), как и дискретный вариант уравнения Эйлера, сводят задачу отыскания Рис. 10-7. Общая структурная схема методов экстремума функционала к оптимизации, экстремуму функции. Методы

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

особенно при наличии ограничений на координаты xj.


Рис. 10-7. Общая структура схема методов оптимизации

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

Спор между сторонниками аналитических и численных методов с позиций кибернетики в известном смысле потерял свою остроту, так как практика проектирования конкретных систем управления требует применения обоих методов. За аналитическими методами остается преимущество, заключающееся в возможности определения качественной картины поведения оптимальной системы при изменении ее параметров и структуры. Численные же методы обеспечивают получение конкретных числовых значений параметров управления. Некоторую, попытку рационального объединения этих методов можно усматривать в интенсивной разработке человеко-машинных методов оптимизации, использующих язык диалога человека и ЦВМ, большие банки данных и возможности современных операционных систем. При этом удается повторять вычисления при разных условиях, использовать, где необходимо, аналитические методы, представленные в виде стандартных программных блоков, и, самое главное, оперативно включать в процедуру отыскания оптимального управления интеллектуальные способности человека.


Рис. 10-8. Методы отыскания экстремума функции

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

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

Читать еще:  Android оптимизация приложений

Методы отыскания экстремума функционала ведут свое начало от классических методов Эйлера — Лагранжа — Гамильтона и заканчиваются динамическим программированием и принципом максимума (рис. 10-9). В них также содержатся прямые методы отыскания экстремума функционала и различные частные методы.

В соответствии со схемой на рис. 10-7 почти во всех методах (Эйлера — Лагранжа — Гамильтона, принципе максимума, динамическом программировании, прямых методах отыскания экстремума функции) можно выделить дискретные и непрерывные модификации, детерминированные и случайные варианты.

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

В последнее время в связи с разработкой и внедрением АСУ чрезвычайно большое значение приобрели методы целочисленного программирования. Заметим, что одна из основных задач АСУ — оперативно- календарное планирование — относится к задачам целочисленного программирования. Единого общего метода решения задач целочисленного программирования нет. Разработано много способов решения пригодных для частного класса задач, среди которых большое место занимают нестрогие эвристические методы. Особого внимания среди них заслуживают лингвистические методы оптимизации. Они ближе всего подходят к человеческому способу мышления и удобны для реализации на ЦВМ с помощью проблемно-ориентированных языков. Здесь уместно снова упомянуть о человеко-машинных методах решения целочисленных задач оптимизации, являющихся по существу своему лингвистическими в широком смысле, так как они имитируют применяемые человеком методы оптимизации и планирования с добавлением эффективных аналитических и числовых процедур.


Рис. 10-9. Методы отыскания экстремума функционала

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

Замечание может вызвать имеющееся в пособии смешение двух принципов рассмотрения методов: по задачам и методу (или процедуре) решения. Динамическое программирование, принцип максимума и метод Эйлера — Лагранжа (в ограниченном плане) являются реализациями процедурного подхода. Первые два метода принципиально применимы ко всем задачам. По задачные методы представлены симплекс-методом для линейного программирования, различными процедурами решения задач нелинейного и целочисленного программирования.

Хотя с академической точки зрения такое разнообразие подходов может вызвать большие нарекания, но с точки зрения инженера кибернетика, который должен иметь на вооружении весь комплекс методов, такое изложение нам кажется оправданным.

Электронная библиотека

Существует достаточно большое количество численных методов оптимизации. Классификация численных методов оптимизации:

1) по размерности решаемой задачи: одномерные и многомерные;

2) по способу формирования шага многомерные методы делятся на следующие виды:

— по способу вычисления градиента – с парной пробой и с центральной пробой;

— по алгоритму коррекции шага;

— по алгоритму вычисления новой точки – одношаговые и многошаговые;

— с поочередным изменением переменных;

— с одновременным изменением переменных;

— с чисто случайной стратегией;

— со смешанной стратегией;

3) по наличию активных ограничений:

· без ограничений (безусловные);

· с ограничениями (условные):

— с ограничениями типа равенств;

— с ограничениями типа неравенств;

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

последовательность в каждой точке, которой значение критерия оптимальности лучше, чем в предыдущей.

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

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

Ознакомится с алгоритмами методов оптимизации можно в литературе

В настоящее время для оптимизации наиболее удобно использовать математические пакеты. Рассмотрим оптимизацию в пакете MathCAD.

Поиск минимума функции с помощью функции minerr

Рассмотрим применение функции minerr для решения типовой оптимизационной задачи — поиск минимума. На рисунке 4.1 показано решение данной задачи градиентным методом с использованием функции minerr.

Рис. 4.1 Начало документа с решением задачи на поиск минимума функции

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

К чести разработчиков системы Mathcad надо отметить, что данный алгоритм блестяще справляется с данной не простой задачей — минимум функции найден в точке (1;0,999) с максимально верным (в пределах точности отображения результатов вычислений) значением — 0.

Ссылка на основную публикацию
Adblock
detector