Repolode
d-krupke

d-krupke/cpsat-primer

Бесплатное учебное пособие в формате книги по моделированию и решению задач комбинаторной оптимизации с помощью CP-SAT solver из Google OR-Tools.

Звёзды
834
Форки
69
Открытые issues
9
Последний коммит
2 месяца назад

Что это?

CP-SAT Primer — бесплатное учебное пособие в формате книги, которое помогает освоить CP-SAT solver из Google OR-Tools — решатель для комбинаторной оптимизации, основанный на constraint programming и SAT. Материал рассчитан на студентов компьютерных наук и разработчиков, содержит примеры на Python и сравнивает CP-SAT с решателями mixed integer programming (MIP) и другими инструментами оптимизации.

В первой части рассматриваются установка, создание первой модели, основы моделирования переменных, целевых функций и ограничений, продвинутые ограничения — circuit, interval и reservoir, параметры решателя и чтение его логов. Во второй части разбираются практические инженерные темы: паттерны для разработки поддерживаемого кода оптимизации, запуск задач оптимизации через API, эвристики large neighborhood search и бенчмаркинг моделей.

Пособие поддерживает Dominik Krupke из TU Braunschweig. Оно распространяется по лицензии CC-BY 4.0; к нему прилагается сайт, на котором тот же материал представлен в формате книги.

Ключевые возможности

  • 01Рассматривает основы CP-SAT: переменные, целевые функции, линейные и логические ограничения.
  • 02Объясняет продвинутые ограничения, такие как circuit, interval и no-overlap.
  • 03Показывает, как задавать лимиты времени, подсказки и параллелизм в решателе.
  • 04Учит анализировать логи решателя, чтобы оценивать качество решения.
  • 05Сравнивает CP-SAT с решателями MIP и другими методами оптимизации.
  • 06Содержит примеры кода на Python и раздел о large neighborhood search.

Сценарии использования

  • Изучение комбинаторной оптимизации в рамках обучения на факультете компьютерных наук.
  • Переход с решателя MIP на CP-SAT для моделей планирования или маршрутизации.
  • Разработка поддерживаемого сервиса оптимизации на CP-SAT с API.
  • Бенчмаркинг и настройка модели CP-SAT для производственной задачи.

Быстрый старт

  1. 1

    Установите OR-Tools с помощью pip

    pip install -U ortools
  2. 2

    Скопируйте пример Knapsack из README и запустите его на Python

Темы

Частые вопросы

Что такое cpsat-primer?
Бесплатное учебное пособие в формате книги по моделированию и решению задач комбинаторной оптимизации с помощью CP-SAT solver из Google OR-Tools. CP-SAT Primer — бесплатное учебное пособие в формате книги, которое помогает освоить CP-SAT solver из Google OR-Tools — решатель для комбинаторной оптимизации, основанный на constraint programming и SAT. Материал рассчитан на студентов компьютерных наук и разработчиков, содержит примеры на Python и сравнивает CP-SAT с решателями mixed integer programming (MIP) и другими инструментами оптимизации.
cpsat-primer можно использовать бесплатно? Какая у него лицензия?
cpsat-primer распространяется с открытым исходным кодом под лицензией CC-BY-4.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
cpsat-primer всё ещё поддерживается?
Обновлялся за последние 6 месяцев. Последний коммит в cpsat-primer — 6 сент. 2026 г..
Для чего можно использовать cpsat-primer?
Изучение комбинаторной оптимизации в рамках обучения на факультете компьютерных наук. Переход с решателя MIP на CP-SAT для моделей планирования или маршрутизации. Разработка поддерживаемого сервиса оптимизации на CP-SAT с API. Бенчмаркинг и настройка модели CP-SAT для производственной задачи.
Как установить cpsat-primer?
Установите OR-Tools с помощью pip: pip install -U ortools Скопируйте пример Knapsack из README и запустите его на Python
Где скачать cpsat-primer?
Исходный код и инструкции по установке — на GitHub: https://github.com/d-krupke/cpsat-primer

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Бесплатный инструмент с открытым исходным кодом для оптимизации Windows: 42 настройки, панель параметров и инструменты для управления автозагрузкой и задачами, а также для очистки системы.

10,6 тыс.452C#OtherОбновлён позавчера

Эволюционный агент для генерации кода с открытым исходным кодом: он итеративно изменяет и оценивает программы с помощью LLM, чтобы находить более эффективные алгоритмы, реализуя подход AlphaEvolve.

7,6 тыс.1,2 тыс.PythonApache-2.0Обновлён 13 часов назад