ATAU-Alat - Alat Pengoptimalan Google
Rangkaian perangkat lunak Google untuk pengoptimalan kombinatorial.
Daftar isi
- Tentang ATAU-Alat
- peta kode
- Instalasi
- Mulai Cepat
- Dokumentasi
- Berkontribusi
- Lisensi
Tentang ATAU-Alat
Alat Pengoptimalan Google (alias, OR-Tools) adalah rangkaian perangkat lunak sumber terbuka, cepat, dan portabel untuk memecahkan masalah pengoptimalan kombinatorial.
Suite berisi:
- Pemecah pemrograman dua kendala (CP* dan CP-SAT);
- Dua pemecah pemrograman linier (Glop dan PDLP);
- Pembungkus seputar pemecah komersial dan sumber terbuka lainnya, termasuk pemecah bilangan bulat campuran;
- Algoritma pengepakan sampah dan ransel;
- Algoritma untuk Traveling Salesman Problem dan Vehicle Routing Problem;
- Algoritma grafik (jalur terpendek, aliran biaya minimum, aliran maksimum, penugasan jumlah linier).
Kami menulis OR-Tools dalam C++, tetapi menyediakan wrapper dengan Python, C# dan Java.
peta kode
Rangkaian perangkat lunak ini terdiri dari komponen-komponen berikut:
- Makefile Tingkat atas untuk build berbasis GNU Make.
- makefiles Anak Perusahaan Membuat file, CI dan membangun dokumentasi sistem.
- CMakeLists.txt Tingkat teratas untuk build berbasis CMake.
- cmake File CMake Anak Perusahaan, CI dan dokumentasi sistem build.
- WORKSPACE Tingkat atas untuk bangunan berbasis Bazel.
- bazel File Anak Perusahaan Bazel, CI dan dokumentasi sistem build.
- Direktori root ortools untuk kode sumber.
- dasar Utilitas dasar.
- algoritma Algoritma dasar.
- sampel Sampel yang dibuat dengan cermat.
- grafik Algoritma grafik.
- sampel Sampel yang dibuat dengan cermat.
- linear_solver Pembungkus pemecah linier.
- sampel Sampel yang dibuat dengan cermat.
- glop pemecah pemrograman linier berbasis Simplex.
- sampel Sampel yang dibuat dengan cermat.
- pdlp Pemecah pemrograman linier orde pertama.
- sampel Sampel yang dibuat dengan cermat.
- lp_data Struktur data untuk model linier.
- constrain_solver Pemecah kendala dan perutean.
- docs Dokumentasi komponen.
- sampel Sampel yang dibuat dengan cermat.
- duduk pemecah SAT.
- docs Dokumentasi komponen.
- sampel Sampel yang dibuat dengan cermat.
- bop pemecah Boolean berdasarkan SAT.
- util Utilitas yang dibutuhkan oleh pemecah kendala
- contoh direktori Root untuk semua contoh.
- contrib Contoh dari komunitas.
- contoh cpp C++.
- contoh dotnet .Net.
- contoh java java.
- contoh python Python.
- buku catatan buku catatan Jupyter/IPython.
- contoh flatzinc FlatZinc.
- tes Tes unit dan laporan bug.
- alat Alat Pengiriman (misalnya binari Windows GNU, skrip, buruh pelabuhan rilis)
Instalasi
Rangkaian perangkat lunak ini telah diuji di bawah:
- Ubuntu 18.04 LTS dan lebih tinggi (64-bit);
- Apple macOS Mojave dengan Xcode 9.x (64-bit);
- Microsoft Windows dengan Visual Studio 2022 (64-bit).
OR-Tools saat ini dibuat dengan Makefile, tetapi juga menyediakan dukungan Bazel dan CMake.
Untuk petunjuk instalasi (baik sumber maupun biner), silakan kunjungi https://developers.google.com/optimization/introduction/installing.
Bangun dari sumber menggunakan Make (warisan)
Kami menyediakan build berbasis Make.
Silakan periksa instruksi pembuatan Make.
Bangun dari sumber menggunakan CMake
Kami menyediakan build berbasis CMake.
Silakan periksa instruksi pembuatan CMake.
Bangun dari sumber menggunakan Bazel
Kami menyediakan build berbasis Bazel.
Silakan periksa instruksi pembuatan Bazel.
Mulai Cepat
Cara terbaik untuk mempelajari cara menggunakan OR-Tools adalah dengan mengikuti tutorial di panduan pengembang kami:
https://developers.google.com/optimization/introduction/get_started
Jika Anda ingin belajar dari contoh kode, lihat contoh di direktori contoh.
Dokumentasi
Dokumentasi lengkap untuk OR-Tools tersedia di: https://developers.google.com/optimization/
Berkontribusi
File CONTRIBUTING.md berisi instruksi tentang cara mengirimkan Perjanjian Lisensi Kontributor sebelum mengirimkan permintaan penarikan (PR). Tentu saja, jika Anda baru mengenal proyek ini, biasanya yang terbaik adalah mendiskusikan proposal apa pun dan mencapai konsensus sebelum mengirimkan PR pertama Anda.
Lisensi
Rangkaian perangkat lunak OR-Tools dilisensikan berdasarkan ketentuan Lisensi Apache 2.0.
Lihat LISENSI untuk informasi lebih lanjut.