يصف هذا القسم بعض الخيارات لأداة حلّ التوجيه.
حدود البحث
تُنهي حدود البحث أداة الحلّ بعد الوصول إلى حد محدد، مثل أو الحد الأقصى للمدة الزمنية أو عدد الحلول التي تم العثور عليها. يمكنك ضبط بحث الحد من خلال معاملات البحث في أداة الحلّ. عرض الحدود الزمنية كمثال.
يوضّح الجدول التالي حدود عمليات البحث الأكثر شيوعًا.
الاسم | النوع | القيمة التلقائية | الوصف |
---|---|---|---|
solution_limit
|
int64 | kint64max | الحد على عدد الحلول التي تم إنشاؤها أثناء البحث. |
time_limit.seconds
|
int64 | kint64max | الحد بالثواني إلى الوقت الذي يتم قضاؤه : في البحث. |
lns_time_limit.seconds
|
int64 | 100 | تحديد المدة بالثواني إلى الوقت الذي يتم قضاؤه في : البحث الإكمالي لكل جار بحث محلي. |
استراتيجية الحل الأول
إنّ استراتيجية الحل الأولى هي الطريقة التي تستخدمها أداة الحلّ للعثور على قيمة مبدئية.
الحل. يعرض الجدول التالي خيارات first_solution_strategy
.
Option | الوصف |
---|---|
AUTOMATIC
|
للسماح للحل باكتشاف الإستراتيجية التي يجب استخدامها وفقًا حل النموذج الحالي. |
PATH_CHEAPEST_ARC
|
البدء من مسار "البداية" العقدة، قم بربطها العقدة التي تنتج أرخص جزء من المسار، ثم تمدد المسار والتكرار في آخر عقدة مضافة إلى المسار. |
PATH_MOST_CONSTRAINED_ARC
|
تشبه PATH_CHEAPEST_ARC ، ولكن الأقواس
يتم تقييمه باستخدام أداة اختيار مستندة إلى المقارنة والتي تعطي الأفضلية
قوس مقيَّد أولاً. لتعيين أداة اختيار لنموذج التوجيه، استخدم
الطريقة ArcIsMoreConstrainedThanArc() . |
EVALUATOR_STRATEGY
|
مماثلة لـ PATH_CHEAPEST_ARC ، باستثناء أن تكلفة القوس
باستخدام الدالة التي تم تمريرها إلى
SetFirstSolutionEvaluator() |
SAVINGS
|
خوارزمية التوفير (Clarke &Wright). المرجع Clarke, G. & رايت، جيه دبليو "جدولة المركبات من المستودع المركزي إلى عدد نقاط التسليم" ، أبحاث العمليات، مجلد 12, 1964, الصفحات 568-581. |
SWEEP
|
خوارزمية المسح (Wren &Holliday). المرجع Anthony Wren & جدولة أجهزة الكمبيوتر للمركبات آلان هوليداي من مستودع واحد أو أكثر إلى عدد نقاط التسليم التشغيلية الأبحاث ربع السنوية (1970-1977)، مجلد 23، رقم 3 (أيلول (سبتمبر)، 1972)، الصفحات 333-344. |
CHRISTOFIDES
|
خوارزمية كريستوفيد (في الواقع أحد متغيرات خوارزمية كريستوفيدس تستخدم المطابقة القصوى بدلاً من الحد الأقصى المطابقة، التي لا تضمن عامل 3/2 للتقريب مندوب مبيعات متري يسافر). تعمل على النماذج العامة لتوجيه المركبات من خلال تمديد المسار حتى لا يمكن إدراج عقد عليه. الإحالة إلى "نيكوس كريستوفيدس"، تحليل الحالة الأسوأ لأحد منهجيات الاستكشاف الجديد مشكلة مندوب المبيعات المتنقلة، تقرير 388، كلية الدراسات العليا للصناعة الصناعية الإدارة، CMU، 1976. |
ALL_UNPERFORMED
|
جعل جميع العُقد غير نشطة. لا تجد حلاً إلا إذا كانت العقد اختيارية (وهي عنصر من قيد الانفصال مع تكلفة عقوبة محدودة). |
BEST_INSERTION
|
إنشاء حل بالتكرار عن طريق إدخال أرخص في أرخص موضع؛ تعتمد تكلفة الإدراج على دالة التكلفة لنموذج التوجيه. اعتبارًا من 2/2012، سيعمل فقط على الطرازات ذات عقد اختيارية (مع تكاليف عقوبة محدودة). |
PARALLEL_CHEAPEST_INSERTION
|
قم ببناء حل بالتكرار عن طريق إدخال
العقدة الأرخص في الموضع الأرخص تعتمد تكلفة الإدراج على
دالة التكلفة للقوس. أسرع من BEST_INSERTION |
LOCAL_CHEAPEST_INSERTION
|
قم بشكل متكرر بإنشاء حل عن طريق إدخال كل
في أرخص موضع؛ تعتمد تكلفة الإدراج على القوس
دالة التكلفة. تختلف عن PARALLEL_CHEAPEST_INSERTION حسب العقدة
اختيار إدراجه يتم اعتبار العقد هنا بترتيبها
الإنشاء. أسرع من PARALLEL_CHEAPEST_INSERTION |
GLOBAL_CHEAPEST_ARC
|
نربط نقطتين ينتجان الجزء الأرخص للمسار. |
LOCAL_CHEAPEST_ARC
|
حدد العقدة الأولى ذات اللاحق غير المحدد نربطها بالعقدة التي تنتج الجزء الأرخص من المسار. |
FIRST_UNBOUND_MIN_VALUE
|
تحديد العقدة الأولى ذات اللاحقة غير المرتبطة
وربطه بأول عقدة متوفرة. وهذا يعادل
استراتيجية CHOOSE_FIRST_UNBOUND مدمجة مع ASSIGN_MIN_VALUE (cf.
تقييد_solver.h). |
حالة البحث
يمكنك عرض حالة بحث باستخدام طريقة status
لنموذج التوجيه.
إليك رمز Python لطباعة حالة البحث:
print("Solver status: ", solver.status())
يطبع هذا عددًا صحيحًا بالمعاني التالية:
القيمة | الوصف |
---|---|
0 |
ROUTING_NOT_SOLVED : لم يتم حلّ المشكلة بعد. |
1 |
ROUTING_SUCCESS : تم حلّ المشكلة بنجاح. |
2
|
ROUTING_PARTIAL_SUCCESS_LOCAL_OPTIMUM_NOT_REACHED : تم حلّ المشكلة
بنجاح بعد الاتصال بـ RoutingModel.Solve() ، باستثناء نجاح مستخدم
الوصول إلى المستوى الأمثل. ويمكن أن يسمح توفير مزيد من الوقت بتحسين
الحل. |
3 |
ROUTING_FAIL : لم يتم العثور على حل للمشكلة. |
4 |
ROUTING_FAIL_TIMEOUT : تم بلوغ الحدّ الزمني المسموح به قبل العثور على حلّ. |
5 |
ROUTING_INVALID : الطراز أو معلَمات الطراز أو العلامات غير صالحة. |
6 |
ROUTING_INFEASIBLE : ثبُت أنّ المشكلة غير قابلة للتنفيذ. |
خيارات البحث المحلي
يسرد الجدول التالي خيارات استراتيجيات البحث المحلي (التي تُعرف أيضًا باسم الاستدلالات الوصفية). راجِع تغيير استراتيجية البحث. للحصول على أمثلة حول إعداد هذه الخيارات.
Option | الوصف |
---|---|
AUTOMATIC |
تسمح للحل باختيار الميتاهرية. |
GREEDY_DESCENT |
تقبل البحث المحلي (مع خفض التكلفة) المجاورة للبحث المحلي الوصول إلى الحد الأدنى. |
GUIDED_LOCAL_SEARCH |
تستخدم البحث المحلي الإرشادي لتجنب الحد الأدنى المحلي. (راجع البحث المحلي الإرشادي) وهذا بشكل عام هو الأكثر كفاءة في ما يتعلق بتوجيه المركبات. |
SIMULATED_ANNEALING |
يتم استخدام عملية محاكاة التلدين للهروب من الحد الأدنى المحلي (cf. محاكاة التلدين). |
TABU_SEARCH |
لاستخدام بحث Tabu لتخطي الحد الأدنى المحلي (cf. بحث Tabu). |
GENERIC_TABU_SEARCH |
يستخدم بحث Tabu عن القيمة الموضوعية للحلّ للهروب من اللغة المحلية الحد الأدنى. |
التحكم في الانتشار
الاسم | النوع | القيمة التلقائية | الوصف |
---|---|---|---|
use_full_propagation
|
قيمة منطقية | صحيح | استخدام القيود مع النشر الكامل في نموذج التوجيه (بدلاً من انتشار الإضاءة فقط). ممتلئ النشر ضروري فقط عند استخدام البحث المعمّق أولاً أو للنماذج والتي تتطلب منتشرًا قويًا لوضع اللمسات الأخيرة على قيمة المتغيرات. سيؤدي تغيير هذا الإعداد إلى "صواب" إلى إبطاء البحث في معظم الحالات ويزيد استهلاك الذاكرة في جميع الحالات. |