Перейти к содержимому
DispatchAtlas
Поиск

Алгоритмы

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Курируемая точная горстка за опциональными зависимостями или нативный ограниченный поиск.
NDSOndso-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) из быстрого старта — наименьший пример. Над реестром слой отбора ранжирует решатели для задачи из признаков характеризации и публичных метаданных, помечает каждую рекомендацию её источником и уверенностью и никогда не утверждает универсально лучший решатель. Рекомендатель решателей представляет эти объяснения, включая, почему решатель был исключён.