← к оглавлению

Эвристические алгоритмы — устные вопросы 23–24

Имитация отжига и генетический алгоритм на примере задачи коммивояжёра (TSP). Формулировки — по лекции курса.

Содержание: 23. Имитация отжига 24. Генетический алгоритм

23. Алгоритм имитации отжига (Simulated Annealing)

Суть

Стохастический метод глобальной оптимизации по аналогии с охлаждением металла. Главная идея — иногда принимать ухудшающие решения, чтобы выйти из локального минимума. На высокой температуре алгоритм исследует пространство (допускает плохие переходы), на низкой — становится жадным (только улучшения).

Правило принятия

Если f(x′) < f(x) — принять всегда. Иначе принять с вероятностью P = exp(−(f(x′) − f(x)) / T).

x = initial_solution
T = initial_temperature
while T > Tmin:
    x_new = random_neighbor(x)
    dE = f(x_new) - f(x)
    if dE < 0: x = x_new
    else: accept with probability exp(-dE / T)
    decrease_temperature()
return best_solution

Расписания понижения температуры

Применение к TSP

Решение = перестановка городов. Стоимость = длина маршрута. Соседи = инверсия отрезка пути / случайное перемешивание подмножества.

Спросят: зачем принимать плохие переходы, роль температуры (высокая — исследование, низкая — жадность), почему лог-расписание сходится.

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

Суть

Эволюционная оптимизация: поддерживаем популяцию решений-кандидатов и улучшаем её через отбор / скрещивание / мутацию. Полезен для огромных дискретных пространств, отсутствия гладкости, множества локальных экстремумов, NP-трудных задач.

Fitness

Каждое решение оценивается fitness-функцией F(x). Для минимизации часто F(x) = 1 / (1 + f(x)).

Цикл алгоритма

  1. Инициализация популяции (часто случайные решения).
  2. Оценка fitness.
  3. Отбор родителей (лучшие кандидаты).
  4. Скрещивание (crossover).
  5. Мутация (случайные модификации — поддерживают разнообразие).
  6. Формирование нового поколения.
  7. Повтор до критерия останова.

Применение к TSP

Решение = перестановка городов. Мутация = инверсия отрезка. Скрещивания, сохраняющие корректность перестановки:

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