Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мат. мет. исл. оп Погорелов / Лекции по мат. мет. ИО.doc
Скачиваний:
67
Добавлен:
26.03.2015
Размер:
3.62 Mб
Скачать

15.4. Имитация отжига

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

,

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

Можно показать, что, если начать с параметра Т достаточно большой величины и затем уменьшать его достаточно медленно, то

.

Предположим, что все решения имеют k соседей, и на каждом шаге алгоритма один из этих соседей выбирается в случайном порядке. Тогда x движется рядом с соседом y с вероятностью . Если «тонкий баланс»соблюдается, то стационарное распределение такой марковской цепи:

где .

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

.

15.5. Генетические алгоритмы

Генетические алгоритмы могут быть применены ко многим задачам. Они достаточно просты в реализации, но могут «застрять» в локальном оптимуме. Проиллюстрируем основные шаги использования генетического алгоритма для ЗК.

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

Оценка пригодности. Величина пригодности присваивается каждому решению, например, длине цикла.

Воспроизведение. Хромосомы с более высоким значением пригодности допускаются к воспроизведению потомства в первую очередь. Например, алгоритм «жадного скрещивания» (“greedy crossover”) выбирает первый город одного из родителей, сравнивает города, следующие за этим городом у обоих родителей, и выбирает ближайший, чтобы продлить цикл. Если город уже имеется в цикле, выбираем вместо него другой. Если оба города уже есть в цикле, случайным образом выбираем еще неиспользованные города.

Мутация. Случайным образом меняем пару городов.