OR-Tools - Outils d'optimisation Google
La suite logicielle de Google pour l'optimisation combinatoire.
Table des matières
- À propos des outils OR
- Carte de code
- Installation
- Démarrage rapide
- Documentation
- Contribuer
- Licence
À propos des outils OR
Google Optimization Tools (alias OR-Tools) est une suite logicielle open source, rapide et portable permettant de résoudre les problèmes d'optimisation combinatoire.
La suite contient :
- Solveur de programmation à deux contraintes (CP* et CP-SAT) ;
- Deux solveurs de programmation linéaire (Glop et PDLP) ;
- Wrappers autour de solveurs commerciaux et autres solveurs open source, y compris les solveurs d'entiers mixtes ;
- Algorithmes d’emballage de bacs et de sacs à dos ;
- Algorithmes pour le problème du voyageur de commerce et le problème d'acheminement des véhicules ;
- Algorithmes graphiques (chemins les plus courts, flux de coûts minimum, flux maximum, affectation de somme linéaire).
Nous avons écrit OR-Tools en C++, mais fournissons des wrappers en Python, C# et Java.
Carte de code
Cette suite logicielle est composée des composants suivants :
- Makefile de niveau supérieur pour la construction basée sur GNU Make.
- makefiles Filiale Créer des fichiers, CI et construire la documentation du système.
- CMakeLists.txt Niveau supérieur pour la construction basée sur CMake.
- cmake Fichiers CMake subsidiaires, CI et documentation du système de construction.
- ESPACE DE TRAVAIL Niveau supérieur pour la construction basée sur Bazel.
- bazel Filiale Bazel fichiers, CI et documentation du système de construction.
- ortools Répertoire racine du code source.
- base Utilitaires de base.
- algorithmes Algorithmes de base.
- échantillons Échantillons soigneusement élaborés.
- graphique Algorithmes graphiques.
- échantillons Échantillons soigneusement élaborés.
- Linear_solver Wrapper de solveur linéaire.
- échantillons Échantillons soigneusement élaborés.
- glop Solveur de programmation linéaire basé sur Simplex.
- échantillons Échantillons soigneusement élaborés.
- pdlp Solveur de programmation linéaire du premier ordre.
- échantillons Échantillons soigneusement élaborés.
- lp_data Structures de données pour les modèles linéaires.
- constraint_solver Solveur de contraintes et de routage.
- docs Documentation du composant.
- échantillons Échantillons soigneusement élaborés.
- sat solveur SAT.
- docs Documentation du composant.
- échantillons Échantillons soigneusement élaborés.
- bop Solveur booléen basé sur SAT.
- util Utilitaires nécessaires au solveur de contraintes
- examples Répertoire racine de tous les exemples.
- contrib Exemples de la communauté.
- cpp exemples C++.
- Exemples dotnet .Net.
- java Exemples Java.
- exemples Python.
- bloc-notes Jupyter/IPython.
- flatzinc Exemples de FlatZinc.
- tests Tests unitaires et rapports de bugs.
- outils Outils de livraison (par exemple, binaires Windows GNU, scripts, dockers de publication)
Installation
Cette suite logicielle a été testée sous :
- Ubuntu 18.04 LTS et versions ultérieures (64 bits) ;
- Apple macOS Mojave avec Xcode 9.x (64 bits) ;
- Microsoft Windows avec Visual Studio 2022 (64 bits).
OR-Tools est actuellement construit avec un Makefile, mais fournit également le support Bazel et CMake.
Pour les instructions d'installation (source et binaire), veuillez visiter https://developers.google.com/optimization/introduction/installing.
Construire à partir des sources en utilisant Make (hérité)
Nous fournissons une version basée sur Make.
Veuillez vérifier les instructions de construction Make.
Construire à partir des sources en utilisant CMake
Nous fournissons une version basée sur CMake.
Veuillez vérifier les instructions de construction de CMake.
Construire à partir des sources à l'aide de Bazel
Nous fournissons une version basée sur Bazel.
Veuillez consulter les instructions de construction de Bazel.
Démarrage rapide
La meilleure façon d’apprendre à utiliser OR-Tools est de suivre les tutoriels de notre guide du développeur :
https://developers.google.com/optimization/introduction/get_started
Si vous souhaitez apprendre des exemples de code, jetez un œil aux exemples dans le répertoire des exemples.
Documentation
La documentation complète d'OR-Tools est disponible sur : https://developers.google.com/optimization/
Contribuer
Le fichier CONTRIBUTING.md contient des instructions sur la façon de soumettre le contrat de licence de contributeur avant d'envoyer des demandes d'extraction (PR). Bien sûr, si vous êtes nouveau dans le projet, il est généralement préférable de discuter de toute proposition et de parvenir à un consensus avant d'envoyer votre premier PR.
Licence
La suite logicielle OR-Tools est sous licence selon les termes de la licence Apache 2.0.
Voir LICENCE pour plus d’informations.