أدوات OR - أدوات تحسين Google
مجموعة برامج Google للتحسين التوافقي.
جدول المحتويات
- حول أدوات OR
- خريطة الكود
- تثبيت
- بداية سريعة
- التوثيق
- المساهمة
- رخصة
حول أدوات OR
أدوات تحسين Google (المعروفة أيضًا باسم OR-Tools) عبارة عن مجموعة برامج مفتوحة المصدر وسريعة ومحمولة لحل مشكلات التحسين التجميعية.
يحتوي الجناح على:
- اثنان من أدوات حل برمجة القيود (CP* وCP-SAT)؛
- اثنين من حلول البرمجة الخطية (Glop وPDLP)؛
- الأغلفة حول الحلول التجارية وغيرها من الحلول مفتوحة المصدر، بما في ذلك حلول الأعداد الصحيحة المختلطة؛
- خوارزميات تعبئة الصناديق وحقيبة الظهر؛
- خوارزميات مشكلة البائع المتجول ومشكلة توجيه المركبات؛
- خوارزميات الرسم البياني (أقصر المسارات، الحد الأدنى لتدفق التكلفة، الحد الأقصى للتدفق، تخصيص المبلغ الخطي).
لقد كتبنا أدوات OR في لغة C++، ولكننا نوفر أغلفة في Python وC# وJava.
خريطة الكود
تتكون مجموعة البرامج هذه من المكونات التالية:
- Makefile المستوى الأعلى لـ GNU Make build.
- makefiles Subsidiary قم بإنشاء الملفات وCI وبناء وثائق النظام.
- CMakeLists.txt المستوى الأعلى للبناء القائم على CMake.
- cmake ملفات CMake الفرعية وCI وبناء وثائق النظام.
- مساحة العمل - المستوى الأعلى للبناء القائم على Bazel.
- bazel ملفات Bazel الفرعية وCI ووثائق بناء النظام.
- ortools الدليل الجذر للكود المصدري.
- المرافق الأساسية الأساسية.
- الخوارزميات الخوارزميات الأساسية.
- خوارزميات الرسم البياني.
- Line_solver غلاف الحل الخطي.
- glop حل البرمجة الخطية المستندة إلى Simplex.
- pdlp حل البرمجة الخطية من الدرجة الأولى.
- lp_data هياكل البيانات للنماذج الخطية.
- constraint_solver حل القيد والتوجيه.
- docs توثيق المكون.
- عينات عينات وضعت بعناية.
- جلس SAT حلالا.
- docs توثيق المكون.
- عينات عينات وضعت بعناية.
- bop Boolean حلالا يعتمد على SAT.
- util الأدوات المساعدة التي يحتاجها حل القيد
- أمثلة الدليل الجذر لجميع الأمثلة.
- أمثلة المساهمة من المجتمع.
- أمثلة CPP C++.
- الدوت نت .نت أمثلة.
- أمثلة جافا جافا.
- أمثلة بايثون بايثون.
- دفاتر ملاحظات Jupyter/IPython.
- أمثلة على فلاتزنك فلاتزنك.
- اختبارات وحدة الاختبارات وتقارير الأخطاء.
- أدوات أدوات التسليم (مثل ثنائيات Windows GNU والبرامج النصية ووحدات إرساء الإصدار)
تثبيت
تم اختبار مجموعة البرامج هذه تحت:
- Ubuntu 18.04 LTS والإصدارات الأحدث (64 بت)؛
- Apple macOS Mojave مع Xcode 9.x (64 بت)؛
- مايكروسوفت ويندوز مع Visual Studio 2022 (64 بت).
يتم إنشاء OR-Tools حاليًا باستخدام ملف Makefile، ولكنه يوفر أيضًا دعم Bazel وCMake.
للحصول على تعليمات التثبيت (سواء المصدر أو الثنائي)، يرجى زيارة https://developers.google.com/optimization/introduction/installing.
البناء من المصدر باستخدام Make (قديم)
نحن نقدم بناءًا قائمًا على الصنع.
يرجى التحقق من تعليمات إنشاء البناء.
البناء من المصدر باستخدام CMake
نحن نقدم بناءًا قائمًا على CMake.
يرجى التحقق من تعليمات بناء CMake.
البناء من المصدر باستخدام Bazel
نحن نقدم بناءًا قائمًا على Bazel.
يرجى التحقق من تعليمات بناء Bazel.
بداية سريعة
أفضل طريقة لتعلم كيفية استخدام OR-Tools هي اتباع البرامج التعليمية الموجودة في دليل المطورين الخاص بنا:
https://developers.google.com/optimization/introduction/get_started
إذا كنت تريد التعلم من أمثلة التعليمات البرمجية، فقم بإلقاء نظرة على الأمثلة الموجودة في دليل الأمثلة.
التوثيق
الوثائق الكاملة لأدوات OR متاحة على: https://developers.google.com/optimization/
المساهمة
يحتوي ملف CONTRIBUTING.md على تعليمات حول كيفية إرسال اتفاقية ترخيص المساهم قبل إرسال أي طلبات سحب (PRs). بالطبع، إذا كنت جديدًا في المشروع، فمن الأفضل عادةً مناقشة أي مقترحات والتوصل إلى توافق في الآراء قبل إرسال العلاقات العامة الأولى الخاصة بك.
رخصة
تم ترخيص مجموعة برامج OR-Tools بموجب شروط ترخيص Apache 2.0.
راجع الترخيص لمزيد من المعلومات.