Алгоритмы
DispatchAtlas отделяет поведение решателей от генерации бенчмарков и выполнения
кампаний. Каждый решатель живёт в dispatchatlas.solve за единым реестром, а
метаданные решателя — это публичный контракт для целей, возможностей, кодировок,
зависимостей, стохастичности, видимости по уровню доказательств и опциональных
бэкендов. Эта страница объясняет семейства решателей на рабочем уровне; страница
реестра системы решателей — авторитетный каталог по
решателям.
🏗️ Как организованы решатели
default_solver_registry() возвращает реестр фабрик решателей без состояния. Каждая
запись объявляет теги возможностей, поддерживаемые цели, критерии остановки по
умолчанию, детерминированное или стохастическое-с-зерном поведение повтора, кодировку
решения, требования опциональных зависимостей, видимость по уровню доказательств и
каноническую цитату (или явное обоснование цитата-неприменима). Цитаты отказывают в
закрытую сторону: семейство с каноническим основополагающим происхождением,
опускающее свою ссылку, не может быть сконструировано.
🧰 Семейства решателей
| Семейство | Примеры | Применение |
|---|---|---|
| Конструктивная диспетчеризация | earliest-start, shortest-processing-time, earliest-deadline, minimum-slack | Быстрые детерминированные базовые расписания и дымовые проверки. |
| Метаэвристические базовые методы | генетический, отжиг, муравьиная колония, рой частиц, дифференциальная эволюция | Репрезентативные базовые методы поиска с зерном над порядками задач с безопасным предшествованием. |
| Кодированные адаптеры | clpso, d-clpso, lshade, d-lshade | Непрерывные оптимизаторы, привязанные к планированию через адаптеры кодировки. |
| Недавние пиры | epso, adpso, ccgp | Недавние опубликованные пиры, преодолевшие планку силы-площадки с источником. |
| Многоцелевой | nsga3 | Нишевание по опорным точкам над многоцелевым вектором. |
| Точные адаптеры | ortools-cp-sat, pulp-milp, branch-and-bound, logic-based-benders-decomposition, gurobi-exact, exhaustive-enumeration, decision-diagram-sequencing | Курируемая точная горстка за опциональными зависимостями или нативный ограниченный поиск. |
| NDSO | ndso-core, ndso-fast, ndso-summit | Нативно-кодирующее семейство решателей реестра. |
📋 Правила конструктивной диспетчеризации
Включённые детерминированные базовые методы — это конструктивные решатели
list-scheduling: каждый контролирует порядок задач, а последовательный конструктор
чтит объявленные требования к ресурсам каждой задачи. Семь семейств —
earliest-start, shortest-processing-time, longest-processing-time,
earliest-deadline,
earliest-finish-time, minimum-slack и greedy-completion — каждое называет
свою каноническую основополагающую ссылку в метаданных. Они — самый быстрый путь к
допустимому расписанию и якорят каждое сравнение, как в первом
учебном руководстве.
🔀 Метаэвристические базовые методы
Пять репрезентативных метаэвристик с зерном — генетический алгоритм, имитация отжига, муравьиная колония, рой частиц и дифференциальная эволюция — разделяют одни и те же операторы допустимости, ремонта, оценки и локального поиска, так что сравнение измеряет стратегию поиска, а не побочные различия сантехники.
🔌 Решатели кодированных адаптеров
Рой частиц всестороннего обучения (clpso, d-clpso) и адаптивная дифференциальная
эволюция по истории-успехов (lshade, d-lshade) ищут непрерывный вещественнозначный
вектор с одним компонентом на задачу. Каждое ядро обобщено над непрерывной целью и
привязано к планированию через именованный адаптер кодировки (random-key, spv,
rounding и декоды передаточной функции), который превращает вектор в порядок задач,
допустимый по предшествованию, с явной политикой ремонта, которая записывает,
сработал ли ремонт.
🥊 Диверсифицированные конкуренты и многоцелевая полоса
Курируемый набор недавних опубликованных пиров расширяет сравнение за пределы
репрезентативных базовых методов, каждый несёт свою полнотекстовую ссылку, сильные
стороны и оговорки в метаданных. Пир присоединяется к публичному полю только когда
преодолевает планку силы-площадки с источником; более широкий пул классических
базовых методов остаётся зарегистрированным для внутреннего сравнения. nsga3 —
именованный многоцелевой конкурент: он оценивает каждый безопасный по предшествованию
порядок на многоцелевом векторе (makespan, опоздание, справедливость нагрузки) и
выбирает выживших нишеванием по опорным точкам.
🎯 Точные адаптеры
Адаптеры опционального бэкенда (CP-SAT, MILP, branch-and-bound) объявляют опциональную
зависимость и зондируют её корень импорта во время выполнения; когда бэкенд
отсутствует, они поднимают MissingOptionalDependencyError с именем extra и заметкой
о лицензии вместо импорта тяжёлой зависимости при импорте пакета. Нативно-ограниченные
адаптеры (exhaustive-enumeration и decision-diagram-sequencing) не несут стороннюю
зависимость и точно решают малые экземпляры, поднимая UnsupportedCapabilityError
сверх поддерживаемого числа задач.
Коммерческая обёртка Gurobi остаётся за extra exact-commercial и никогда не
включается; более широкий пул опциональных бэкендов остаётся зарегистрированным для
внутреннего использования.
🐝 Семейство NDSO
NDSO — нативно-кодирующее семейство решателей реестра: оно ищет прямо по допустимым расписаниям, так что каждое расписание, которое оно производит, допустимо по конструкции, и семейство никогда не запускает шаг кодирования/декодирования или проход ремонта. Оно составляет небольшой набор именованных механизмов:
- Матрица уверенности выученного доверия на ячейку (позиция, задача), усиливаемая лучшими расписаниями;
- взвешенное-уверенностью голосование, которое синтезирует элитное расписание, голосуя по популяции, взвешенной этой матрицей;
- расписания Количества-и-Качества, которые задают, насколько кандидат меняется и из какого источника руководства он учится;
- руководство из трёх источников — синтезированная элита (эксплуатация), пир (разнообразие), или источник исчезнувшего-знания (радикальное исследование);
- унифицированный адаптивный коэффициент, одно нелинейное расписание, смещающее семейство от исследования к эксплуатации.
| Вариант | Состав |
|---|---|
ndso-core | Взвешенное-уверенностью голосование, адаптивный коэффициент, руководство из трёх источников. |
ndso-fast | Синтез голосованием большинства, фиксированный коэффициент, единственный источник руководства. |
ndso-summit | Меж-роевой совет, координирующий несколько роёв и синтезирующий их результаты в одну всеохватывающую элиту. |
Карта абляции перечисляет одну изолирующую конфигурацию на именованный механизм, чтобы нисходящий анализ мог атрибутировать вклад каждого механизма, а ступенчатый фильтр экспорта отказывает в закрытую сторону, а не раскрывает механизм более позднего уровня под более низкой областью отчёта. Полная деталь механизмов, совета, абляции и диагностики живёт в системе решателей; никакое утверждение о производительности не делается до запуска сравнительных кампаний.
🎛️ Отбор
SolverRegistry.select сопоставляет решатели по тегам возможностей, объявленным
ограничениям, поддерживаемой цели и видимости по уровню доказательств —
registry.select(objective="makespan", disclosure_label=DisclosureLabel.CORE) из
быстрого старта — наименьший пример. Над реестром слой отбора ранжирует решатели для
задачи из признаков характеризации и публичных метаданных, помечает каждую
рекомендацию её источником и уверенностью и никогда не утверждает универсально лучший
решатель. Рекомендатель решателей представляет эти
объяснения, включая, почему решатель был исключён.