Методы стохастической оптимизации ( СО ) — это методы оптимизации , которые генерируют и используют случайные величины . В стохастических задачах случайные величины появляются в формулировке самой задачи оптимизации, которая включает в себя случайные целевые функции или случайные ограничения. К методам стохастической оптимизации также относятся методы со случайными итерациями. Некоторые методы стохастической оптимизации используют случайные итерации для решения стохастических задач, сочетая оба значения стохастической оптимизации. [1] Методы стохастической оптимизации обобщают детерминированные методы для детерминированных задач.
Частично случайные входные данные возникают в таких областях, как оценка и управление в реальном времени, оптимизация на основе моделирования, когда моделирование Монте-Карло выполняется как оценка реальной системы, [2] [3] и задачи, в которых существует экспериментальная (случайная) ошибка в измерения критерия. В таких случаях знание того, что значения функции загрязнены случайным «шумом», естественным образом приводит к алгоритмам, которые используют инструменты статистического вывода для оценки «истинных» значений функции и/или принятия статистически оптимальных решений о следующих шагах. К методам этого класса относятся:
С другой стороны, даже если набор данных состоит из точных измерений, некоторые методы вносят случайность в процесс поиска, чтобы ускорить прогресс. [7] Такая случайность также может сделать метод менее чувствительным к ошибкам моделирования. Еще одним преимуществом является то, что случайность в процессе поиска может использоваться для получения интервальных оценок минимума функции с помощью статистики экстремальных значений. [8] [9] Кроме того, введенная случайность может позволить методу избежать локального оптимума и в конечном итоге приблизиться к глобальному оптимуму. Действительно, этот принцип рандомизации , как известно, является простым и эффективным способом получения алгоритмов с почти наверняка хорошей производительностью равномерно для многих наборов данных для решения многих видов задач. К методам стохастической оптимизации такого рода относятся:
Напротив, некоторые авторы утверждают, что рандомизация может улучшить детерминированный алгоритм только в том случае, если детерминированный алгоритм изначально был плохо спроектирован. [21] Фред В. Гловер [22] утверждает, что использование случайных элементов может помешать разработке более интеллектуальных и лучших детерминированных компонентов. Способ, которым обычно представляются результаты алгоритмов стохастической оптимизации (например, представление только среднего или даже лучшего из N прогонов без какого-либо упоминания о разбросе), также может привести к положительному смещению в сторону случайности.
Фактически, некоторые важные открытые проблемы в сложности связаны с выяснением того, позволяет ли случайность решать проблемы за более короткое время (например, проблема P = BPP ). Иногда сходимость алгоритма стохастического локального поиска к оптимальному решению является прямым следствием того факта, что на каждой итерации алгоритм имеет большую, чем ноль, вероятность перехода от любого решения к любому другому решению в пространстве поиска, поэтому оптимальное решение в конечном итоге будет найдено. Если никакие дополнительные условия не могут быть приняты во внимание, то среднее время поиска решения для этого случайного поиска такое же, как если бы был выполнен исчерпывающий поиск. Теорема «Нет бесплатного обеда» для оптимизации устанавливает условия, при которых вычислительные затраты на поиск решения, усредненные по всем задачам в классе, одинаковы для любого метода решения. Более того, было доказано, что существенные семантические свойства алгоритмов стохастического локального поиска, такие как, например, найдут ли они оптимальное решение или решение на некотором расстоянии от оптимального значения, в общем случае неразрешимы. Причина этого в том, что эти алгоритмы могут моделировать любую программу (т. е. они являются Тьюринг-полными), особенно если их основные компоненты (например, функция приспособленности, операторы кроссовера и мутации и т. д.) должны быть очень простыми. [23]