Сложность алгоритмов
28.11.2024
Last updated
28.11.2024
Last updated
— это алгоритмы, которые находят приближённые решения задач, где точное решение найти сложно или невозможно за разумное время. В данном конспекте рассматривается, как оценивать их сложность с примерами.
Временная сложность:
Внешний цикл работает раз, где — число городов.
На каждой итерации выполняется поиск ближайшего города среди оставшихся, что занимает времени.
Итоговая сложность:
Памятная сложность:
Массив для хранения статуса посещённых городов .
Общая сложность памяти: .
Качество решения:
Жадный алгоритм не гарантирует оптимальное решение, но на практике часто даёт хорошие результаты.
Временная сложность: зависит от размера популяции и числа поколений .
где — время вычисления фитнес-функции.
Памятная сложность: , где — размер индивида.
Временная сложность: зависит от числа итераций T, температуры охлаждения и времени вычисления фитнес-функции.
Памятная сложность: , так как хранится только текущее решение.
Жадный алгоритм
Быстрое, но не всегда точное решение.
Генетический алгоритм
Эффективен для сложных задач.
Имитация отжига
Гибкость, но требует настройки параметров.
На графике ниже показан пример маршрута, найденного жадным алгоритмом для случайно сгенерированных 10 городов:
Описание графика:
Синие точки — это города (случайные координаты на плоскости).
Красные цифры — порядковые номера городов.
Зелёная линия — маршрут, найденный алгоритмом.
Маршрут начинается с точки 00 и возвращается в неё после посещения всех остальных городов.