خيارات التوجيه

يصف هذا القسم بعض الخيارات لأداة حلّ التوجيه.

حدود البحث

تُنهي حدود البحث أداة الحلّ بعد الوصول إلى حد محدد، مثل أو الحد الأقصى للمدة الزمنية أو عدد الحلول التي تم العثور عليها. يمكنك ضبط بحث الحد من خلال معاملات البحث في أداة الحلّ. عرض الحدود الزمنية كمثال.

يوضّح الجدول التالي حدود عمليات البحث الأكثر شيوعًا.

الاسم النوع القيمة التلقائية الوصف
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 قيمة منطقية صحيح استخدام القيود مع النشر الكامل في نموذج التوجيه (بدلاً من انتشار الإضاءة فقط). ممتلئ النشر ضروري فقط عند استخدام البحث المعمّق أولاً أو للنماذج والتي تتطلب منتشرًا قويًا لوضع اللمسات الأخيرة على قيمة المتغيرات. سيؤدي تغيير هذا الإعداد إلى "صواب" إلى إبطاء البحث في معظم الحالات ويزيد استهلاك الذاكرة في جميع الحالات.