OR-Tools – Google-Optimierungstools
Googles Software-Suite für kombinatorische Optimierung.
Inhaltsverzeichnis
- Über OR-Tools
- Codemap
- Installation
- Schnellstart
- Dokumentation
- Mitwirken
- Lizenz
Über OR-Tools
Google Optimization Tools (auch bekannt als OR-Tools) ist eine Open-Source-, schnelle und portable Software-Suite zur Lösung kombinatorischer Optimierungsprobleme.
Die Suite enthält:
- Zwei Constraint-Programmierlöser (CP* und CP-SAT);
- Zwei lineare Programmierlöser (Glop und PDLP);
- Wrapper für kommerzielle und andere Open-Source-Löser, einschließlich gemischter Ganzzahllöser;
- Algorithmen zum Packen von Behältern und Rucksäcken;
- Algorithmen für das Travelling-Salesman-Problem und das Vehicle-Routing-Problem;
- Diagrammalgorithmen (kürzeste Pfade, minimaler Kostenfluss, maximaler Fluss, lineare Summenzuweisung).
Wir haben OR-Tools in C++ geschrieben, bieten aber Wrapper in Python, C# und Java an.
Codemap
Diese Software-Suite besteht aus den folgenden Komponenten:
- Makefile Top-Level für GNU Make-basierte Builds.
- Makefiles-Tochtergesellschaft Erstellen von Dateien, CI und Build-Systemdokumentation.
- CMakeLists.txt Oberste Ebene für CMake-basierte Builds.
- cmake Tochtergesellschaft CMake-Dateien, CI und Build-Systemdokumentation.
- WORKSPACE Top-Level für Bazel-basierte Builds.
- Bazel-Tochtergesellschaft Bazel-Dateien, CI und Build-Systemdokumentation.
- ortools Stammverzeichnis für Quellcode.
- Basis Grundlegende Dienstprogramme.
- Algorithmen Grundlegende Algorithmen.
- Muster Sorgfältig gefertigte Muster.
- Graph Graph-Algorithmen.
- Muster Sorgfältig gefertigte Muster.
- linear_solver Linearer Solver-Wrapper.
- Muster Sorgfältig gefertigte Muster.
- glop Simplex-basierter linearer Programmierlöser.
- Muster Sorgfältig gefertigte Muster.
- pdlp Löser für lineare Programmierung erster Ordnung.
- Muster Sorgfältig gefertigte Muster.
- lp_data Datenstrukturen für lineare Modelle.
- Constraint_solver Constraint- und Routing-Solver.
- docs Dokumentation der Komponente.
- Muster Sorgfältig gefertigte Muster.
- sat SAT-Löser.
- docs Dokumentation der Komponente.
- Muster Sorgfältig gefertigte Muster.
- bop Boolescher Löser basierend auf SAT.
- util Vom Constraint Solver benötigte Dienstprogramme
- Beispiele Stammverzeichnis für alle Beispiele.
- Beitrag Beispiele aus der Community.
- cpp C++-Beispiele.
- dotnet .Net-Beispiele.
- Java Java-Beispiele.
- Python Python-Beispiele.
- Notebook Jupyter/IPython-Notebooks.
- Beispiele für Flatzinc FlatZinc.
- Tests Unit-Tests und Fehlerberichte.
- Tools Bereitstellungstools (z. B. Windows GNU-Binärdateien, Skripte, Release-Docker)
Installation
Diese Software-Suite wurde getestet unter:
- Ubuntu 18.04 LTS und höher (64-Bit);
- Apple macOS Mojave mit Xcode 9.x (64-Bit);
- Microsoft Windows mit Visual Studio 2022 (64-Bit).
OR-Tools erstellt derzeit mit einem Makefile, bietet aber auch Bazel- und CMake-Unterstützung.
Installationsanweisungen (sowohl Quell- als auch Binärdateien) finden Sie unter https://developers.google.com/optimization/introduction/installing.
Mit Make (Legacy) aus dem Quellcode erstellen
Wir bieten einen Make-basierten Build an.
Bitte überprüfen Sie die Make-Build-Anweisungen.
Erstellen Sie mit CMake aus dem Quellcode
Wir bieten einen CMake-basierten Build.
Bitte überprüfen Sie die CMake-Build-Anweisungen.
Erstellen Sie mit Bazel aus dem Quellcode
Wir bieten einen Bazel-basierten Build an.
Bitte überprüfen Sie die Bazel-Bauanleitung.
Schnellstart
Der beste Weg, den Umgang mit OR-Tools zu erlernen, besteht darin, den Tutorials in unserem Entwicklerhandbuch zu folgen:
https://developers.google.com/optimization/introduction/get_started
Wenn Sie aus Codebeispielen lernen möchten, werfen Sie einen Blick auf die Beispiele im Beispielverzeichnis.
Dokumentation
Die vollständige Dokumentation für OR-Tools finden Sie unter: https://developers.google.com/optimization/
Mitwirken
Die Datei CONTRIBUTING.md enthält Anweisungen zum Einreichen der Mitwirkenden-Lizenzvereinbarung vor dem Senden von Pull Requests (PRs). Wenn Sie neu im Projekt sind, ist es natürlich in der Regel am besten, alle Vorschläge zu besprechen und einen Konsens zu erzielen, bevor Sie Ihre erste PR senden.
Lizenz
Die OR-Tools-Software-Suite ist unter den Bedingungen der Apache-Lizenz 2.0 lizenziert.
Weitere Informationen finden Sie unter LIZENZ.