В 1989 году бельгийские биологи Госс, Арон, Денебург и Пастельс поставили простой эксперимент: гнездо аргентинского муравья Linepithema humile, два мостика к кормушке — короткий и вдвое длиннее. Через несколько минут вся колония без координатора, без плана и без голосования переключилась на короткую ветку. 100% прогонов. Мозг муравья — около 250 000 нейронов, зрения почти нет. Механизм — феромон и испарение.
Через три года Дориго оформил это в Ant Colony Optimization (ACO). В 2024-м тот же алгоритм образца 1992-го даёт отставание 0,10% от оптимума на классическом TSP-бенчмарке berlin52. А в 2023-м ACO появился на NeurIPS как несущая конструкция для DeepACO — одной из лучших нейросетевых систем комбинаторной оптимизации.
Контекст
Задача коммивояжёра (TSP) — одна из центральных задач комбинаторной оптимизации: найти кратчайший маршрут через N городов с возвратом. Простая формулировка скрывает экспоненциальный перебор. Именно на TSP и задачах маршрутизации (CVRP, OP и другие) годами соревнуются классические эвристики и нейросетевые подходы.
Долгое время эталоном оставался LKH (Lin–Kernighan–Helsgott) — ручная эвристика без единого обучаемого параметра. Нейросетевые модели — Pointer Networks (2015), Attention Model (2018), POMO (2020), DIFUSCO (2023) — последовательно улучшали результат, но LKH на стандартных бенчмарках до сих пор не свергнут. Параллельно ACO продолжал жить как практическая метаэвристика: работает без датасета, без претрейна, настраивается под кастомные ограничения.
Ключевых игроков трое: классический ACO Дориго, специализированные трансформеры типа POMO и гибридный DeepACO, где нейросеть обучает эвристику, а поиск ведёт муравьиная колония. Выбор между ними — не вопрос вкуса, а вопрос данных и ограничений задачи.
Аналитика
Ход Haoran Ye (NeurIPS 2023) элегантен. В формуле выбора следующего города ACO есть два фактора: феромон τ и эвристика η. Дориго взял η = 1/d (просто обратное расстояние) и так и оставил в 1992-м. Ye предложил: а что если η предсказывать графовой нейросетью? GNN смотрит на координаты, выдаёт тепловую карту рёбер — вероятность попасть в оптимальный тур. Это η и подставляется. Дальше — стандартный ACO с феромонами и испарением.
Результат: одна архитектура, один набор гиперпараметров, восемь разных комбинаторных задач — TSP, CVRP, OP, PCTSP, SOP и другие. Нейросеть научилась универсальному языку «хорошего ребра», специфика задачи осталась внутри ACO. DeepACO идёт вровень со специализированными нейросетями и стабильно обгоняет чистый ACO.
В 2024-м Kim et al. пошли дальше: заменили обучение GNN с REINFORCE на GFlowNets. Разница принципиальная — REINFORCE учит угадывать один хороший маршрут, GFlowNet учится сэмплировать распределение качественных решений пропорционально награде. Муравьи начинают исследовать карту шире, реже застревают в локальных оптимумах. На семи бенчмарках (GFACS) результат лучше базовых ACO-вариантов и конкурирует со специфичными эвристиками. Паттерн очевидный: берёшь природный алгоритм, вместо ручной эвристики ставишь нейросеть, учишь end-to-end.
Кейсы применения в бизнесе
B2B-SaaS стартап, логистика или field service: если нужно маршрутизировать курьеров, техников или торговых представителей с кастомными ограничениями (временны́е окна, грузоподъёмность, приоритеты), ACO запускается прямо сейчас без датасета. Настройка под специфику — несколько параметров. Выигрыш по километражу по сравнению с жадной эвристикой — порядка 5–15% на реальных маршрутах, без единого GPU-часа обучения.
Корпорация с legacy-системами: в производственном планировании, расписании оборудования и цепочках поставок ACO встраивается поверх существующих систем как отдельный оптимизационный слой. Не нужно переписывать ERP, не нужен обучающий датасет — только граф задачи и функция стоимости. Если накопится история решений, поверх можно поставить GNN по схеме DeepACO.
SMB и локальный бизнес в КР/СНГ: доставка, таксопарк, выездной сервис. Реализация ACO на Python занимает несколько сотен строк, запускается на обычном сервере. Для компании с 10–50 точками доставки в день это даёт измеримую экономию топлива без подписки на дорогой SaaS-оптимизатор.
Кейсы в личной жизни
Разработчик, изучающий алгоритмы: ACO — редкий случай, когда реализация с нуля за вечер даёт результат, который реально впечатляет. Попробуйте berlin52 из TSPLIB: 52 города, оптимум известен, результат проверяется мгновенно. Код в статье рабочий, параметры не нужно тюнить.
Студент или исследователь ML: DeepACO и GFACS — свежие архитектуры с открытым кодом, хорошо задокументированные. Воспроизведение одного из этих экспериментов — конкретная строчка в резюме и понимание, как природные алгоритмы становятся нейросетевыми бэкбонами. Тема сейчас на подъёме: слизевики для графов, клональная селекция, стигмергия в мультиагентных системах.
Контент-мейкер или технический автор: история ACO — идеальная структура для объяснения meta-heuristics широкой аудитории. Простой биологический эксперимент → формула → код → бенчмарк → нейросеть поверх. Такой arc работает как в видео, так и в лонгриде.
Как применить сегодня
- Возьмите berlin52 из TSPLIB, запустите код из статьи — убедитесь лично, что 0,10% это не маркетинг, а цифра на вашей машине за секунды.
- Если у вас задача маршрутизации с кастомными ограничениями и меньше 500 точек — попробуйте ACO раньше, чем тратить время на обучение нейросети. Параметры α=1.0, β=4.0, ρ=0.1 работают из коробки на большинстве TSP-подобных задач.
- Если данных достаточно (тысячи похожих инстансов) — смотрите в сторону POMO или DeepACO: скорость инференса на готовой модели несопоставимо выше, чем у метаэвристики.
- Для понимания DeepACO прочитайте оригинальный пейпер Haoran Ye с NeurIPS 2023 — он написан понятно, с полными экспериментами и ablation-study.
- Следите за GFlowNets в контексте комбинаторной оптимизации: GFACS (2024) показывает, что замена REINFORCE на GFlowNet — не трюк, а принципиальный шаг к лучшему исследованию пространства решений.
«Не каждая задача нуждается в ИИ-шке. Иногда достаточно честно смоделировать природный процесс — и результат окажется в 0,1% от оптимума. А потом, через 34 года, ваш алгоритм возьмут слоем в GNN» — автор статьи на Хабре.