or-tools README

The project's README from github.com/google/or-tools. As one markdown file: README.md.

OR-Tools - Google Optimization Tools

PyPI version PyPI download
NuGet version NuGet download
Maven Central
Discord

Google's software suite for combinatorial optimization.

Table of Contents

About OR-Tools

Google Optimization Tools (a.k.a., OR-Tools) is an open-source, fast and portable software suite for solving combinatorial optimization problems.

The suite contains:

We wrote OR-Tools in C++, but provide wrappers in Python, C# and Java.

Codemap

This software suite is composed of the following components:

Installation

This software suite has been tested under:

OR-Tools currently builds with a Makefile, but also provides Bazel and CMake support.

For installation instructions (both source and binary), please visit https://developers.google.com/optimization/introduction/installing.

Build from source using Make (legacy)

We provide a Make based build.
Please check the Make build instructions.

Build from source using CMake

We provide a CMake based build.
Please check the CMake build instructions.

Build from source using Bazel

We provide a Bazel based build.
Please check the Bazel build instructions.

Quick Start

The best way to learn how to use OR-Tools is to follow the tutorials in our developer guide:

https://developers.google.com/optimization/introduction/get_started

If you want to learn from code examples, take a look at the examples in the examples directory.

Documentation

The complete documentation for OR-Tools is available at: https://developers.google.com/optimization/

Contributing

The CONTRIBUTING.md file contains instructions on how to submit the Contributor License Agreement before sending any pull requests (PRs). Of course, if you're new to the project, it's usually best to discuss any proposals and reach consensus before sending your first PR.

License

The OR-Tools software suite is licensed under the terms of the Apache License 2.0.
See LICENSE for more information.

or-tools (google/or-tools)

Searching Database…

14.2K ·GitHub
Что это такое?OR-Tools — это набор инструментов с открытым исходным кодом от Google для комбинаторной оптимизации: решатели и алгоритмы для задач вроде составления расписаний, маршрутизации, упаковки и распределения ресурсов.
Какие задачи он вообще умеет решать?Программирование в ограничениях (CP и CP-SAT), линейное программирование (Glop и PDLP), обёртки для решателей смешанного целочисленного программирования, упаковка в контейнеры и задача о рюкзаке, задача коммивояжёра и маршрутизация транспорта, а также графовые алгоритмы вроде поиска кратчайших путей и максимального потока.
Как его установить?Скачайте готовый бинарный релиз или соберите из исходников — набор поддерживает сборку через Make (устаревший вариант), CMake и Bazel. После этого отправной точкой станут обучающие материалы в руководстве разработчика.
Я пишу на Python — придётся изучить C++, чтобы этим пользоваться?Нет. Сам OR-Tools написан на C++, но в него входят официальные обёртки для Python, C# и Java, так что те же решатели можно вызывать из этих языков.
На каких платформах он работает?Он протестирован на 64-битной Ubuntu 18.04 LTS и новее, на macOS Mojave с Xcode 9.x и на Windows с Visual Studio 2022, то есть Linux, macOS и Windows полностью поддерживаются.
Мне нужно компилировать его самому, или есть готовые бинарники?Есть оба варианта — в документации по установке описаны и сборка из исходников через Make, CMake или Bazel, и готовые бинарные сборки, так что можно начать с готового пакета и не настраивать инструменты сборки.
Что такое CP-SAT?Один из двух решателей программирования в ограничениях в этом наборе — он решает CP-задачи через булеву выполнимость. Второй — классический CP-решатель, который вдобавок служит решателем маршрутизации для задач о перевозках.
Какие графовые алгоритмы туда входят?Поиск кратчайших путей, поток минимальной стоимости, максимальный поток и задача о назначениях с минимизацией суммы — всё реализовано в графовом компоненте, к каждому есть свои примеры.
Как лучше всего его освоить после установки?Пройдите обучающие материалы в руководстве разработчика, а затем загляните в каталог examples — там есть примеры на C++, .NET, Java и Python, а также ноутбуки Jupyter.
Creator
google
Size
1.3 GB
Stars
14.2K
Age
11y
Commits · 90 Days