Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Нелинейное программирование.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
870.44 Кб
Скачать

Методы случайного поиска.

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

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

Итерационный алгоритм поиска оптимальных параметров представим в виде:  .

Различные методы случайного поиска отличаются способами определения приращения  , [].

      1. Алгоритм случайного спуска с линейной тактикой

Обозначим  . Алгоритм записывается следующим образом:

где случайные пробы   предполагаются достаточно малыми по модулю, чтобы вероятность получения положительной реакции (Dr(n)<0) была достаточно большой.

При данном алгоритме случайные шаги в пространстве управляющих переменных делаются до тех пор, пока не будет найден шаг, ведущий к уменьшению r. Затем удачный шаг повторяется до тех пор, пока значение r не начнет увеличиваться.

Рассмотрим некоторые способы определения S.

    • Чисто случайная оценка направления. Здесь s=s, где   - единичный случайный вектор.

    • Оценка направления s по наилучшей из нескольких проб. В этом случае s=s*, где s* удовлетворяет условию:

. Здесь g – величина пробного шага;

m – число случайных шагов, из которых выбирается наилучшее.

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

, где   - единичный вектор, определяющий интересующее направление. Имеются и другие модификации оценки направления спуска.

Случайный метод поиска по линейной тактике.

Случайный метод поиска по нелинейной тактике.

Генетический алгоритм поиска.

Генети́ческий алгори́тм (англ. genetic algorithm) — это эвристический алгоритм поиска, используемый для решения задач оптимизации и моделирования путём случайного подбора, комбинирования и вариации искомых параметров с использованием механизмов, напоминающих биологическую эволюцию. Является разновидностью эволюционных вычислений, с помощью которых решаются оптимизационные задачи с использованием методов естественной эволюции, таких какнаследование, мутации, отбор и кроссинговер. Отличительной особенностью генетического алгоритма является акцент на использование оператора «скрещивания», который производит операцию рекомбинации решений-кандидатов, роль которой аналогична роли скрещивания в живой природе.

Задача формализуется таким образом, чтобы её решение могло быть закодировано в виде вектора («генотипа») генов, где каждый ген может быть битом, числом или неким другим объектом. В классических реализациях ГА предполагается, что генотип имеет фиксированную длину. Однако существуют вариации ГА, свободные от этого ограничения.

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

При выборе «функции приспособленности» (или fitness function в англоязычной литературе) важно следить, чтобы её «рельеф» был «гладким».

Из полученного множества решений («поколения») с учётом значения «приспособленности» выбираются решения (обычно лучшие особи имеют большую вероятность быть выбранными), к которым применяются «генетические операторы» (в большинстве случаев «скрещивание» — crossover и «мутация» — mutation), результатом чего является получение новых решений. Для них также вычисляется значение приспособленности, и затем производится отбор («селекция») лучших решений в следующее поколение.

Этот набор действий повторяется итеративно, так моделируется «эволюционный процесс», продолжающийся несколько жизненных циклов (поколений), пока не будет выполнен критерий остановки алгоритма. Таким критерием может быть:

  • нахождение глобального, либо субоптимального решения;

  • исчерпание числа поколений, отпущенных на эволюцию;

  • исчерпание времени, отпущенного на эволюцию.

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

Таким образом, можно выделить следующие этапы генетического алгоритма:

  1. Задать целевую функцию (приспособленности) для особей популяции

  2. Создать начальную популяцию

  • (Начало цикла)

  1. Размножение (скрещивание)

  2. Мутирование

  3. Вычислить значение целевой функции для всех особей

  4. Формирование нового поколения (селекция)

  5. Если выполняются условия остановки, то (конец цикла), иначе (начало цикла).