الحلّ الذي تمّ إدراجه في الطلب، بما في ذلك معلومات عن الزيارات التي يجب تقييدها وكيفية تقييدها
تمثيل JSON |
---|
{ "routes": [ { object ( |
الحقول | |
---|---|
routes[] |
مسارات المحلول المطلوب حقنه قد يتم حذف بعض المسارات من الحلّ الأصلي. يجب أن تستوفي المسارات والشحنات التي تم تخطّيها افتراضات الصلاحية الأساسية المُدرَجة في |
skipped |
تم تخطي شحنات المحلول المطلوب حقنه. وقد يتم حذف بعض العناصر من الحلّ الأصلي. اطّلِع على حقل |
constraint |
بالنسبة إلى مجموعة واحدة أو أكثر من المركبات، يحدِّد هذا المقياس وقت تخفيف القيود ومقدار التخفيف. إذا كان هذا الحقل فارغًا، يتم فرض قيود كاملة على جميع مسارات المركبات غير الفارغة. |
ConstraintRelaxation
بالنسبة إلى مجموعة من المركبات، يحدِّد هذا الحقل الحدود التي سيتم عندها تخفيف القيود المفروضة على الزيارات إلى المستوى المطلوب. يتم فرض تخطّي الشحنات المدرَجة في الحقل skipped_shipment
، أي أنّه لا يمكن تنفيذها.
تمثيل JSON |
---|
{
"relaxations": [
{
object ( |
الحقول | |
---|---|
relaxations[] |
جميع إجراءات تخفيف القيود المفروضة على الزيارات التي سيتم تطبيقها على الزيارات على المسارات التي تتضمّن مركبات في |
vehicle |
تحدّد فهارس المركبات التي ينطبق عليها قيد الزيارة يتمّ ربط فهرس المركبة بالطريقة نفسها التي يتمّ بها ربط |
استرخاء
إذا كان الحقل relaxations
فارغًا، يتم فرض قيود كاملة على وقت بدء جميع الزيارات على routes
وتسلسلها، ولا يمكن إدراج أي زيارات جديدة أو إضافتها إلى هذه المسارات. بالإضافة إلى ذلك، يكون وقت بدء ونهاية المركبة في routes
محدودًا بالكامل، ما لم تكن المركبة فارغة (أي ليس لها زيارات وتم ضبط usedIfRouteIsEmpty
على false في النموذج).
يحدِّد relaxations(i).level
مستوى تخفيف القيود المطبَّق على الزيارة رقم j التي تستوفي:
route.visits(j).start_time >= relaxations(i).threshold_time
وj + 1 >= relaxations(i).threshold_visit_count
وبالمثل، يتم تخفيف بدء تشغيل المركبة إلى relaxations(i).level
إذا كانت تستوفي الشروط التالية:
vehicleStartTime >= relaxations(i).threshold_time
وrelaxations(i).threshold_visit_count == 0
ويتم تخفيف مدة انتهاء صلاحية المركبة إلىrelaxations(i).level
إذا كانت تستوفي الشروط التالية:vehicleEndTime >= relaxations(i).threshold_time
وroute.visits_size() + 1 >= relaxations(i).threshold_visit_count
لتطبيق مستوى تسهيل إذا كانت الزيارة تستوفي thresholdVisitCount
أو thresholdTime
، أضِف relaxations
مع level
نفسه: أحدهما مع ضبط thresholdVisitCount
فقط والآخر مع ضبط thresholdTime
فقط. إذا كانت الزيارة تستوفي شروط relaxations
متعددة، يتم تطبيق المستوى الأكثر تساهلاً. ونتيجةً لذلك، يصبح مستوى الاسترخاء أكثر استرخاءً من بداية المركبة إلى زيارات المسار وصولاً إلى نهاية المركبة، أي أنّ مستوى الاسترخاء لا ينخفض مع تقدّم المسار.
إنّ توقيت زيارات المسار وتسلسلها التي لا تستوفي شروط الحدّ الأدنى لأيّ relaxations
تكون مقيّدة بالكامل ولا يمكن إدراج أيّ زيارات في هذه التسلسلات. بالإضافة إلى ذلك، إذا لم تستوفِ بداية أو نهاية مركبة شروط أي استثناء، يكون الوقت ثابتًا ما لم تكن المركبة فارغة.
تمثيل JSON |
---|
{
"level": enum ( |
الحقول | |
---|---|
level |
مستوى تخفيف القيود الذي ينطبق عند استيفاء الشروط في |
threshold |
الوقت الذي يمكن فيه تطبيق يجب أن يكون طابعًا زمنيًا بالتنسيق RFC3339 UTC "Zulu" وبدقة تصل إلى نانوثانية وما يصل إلى تسعة أرقام كسور. أمثلة: |
threshold |
عدد الزيارات التي يمكن عندها أو بعدها تطبيق التخفيض إذا كان |
المستوى
يعبّر عن مستويات تخفيف القيود المختلفة التي يتم تطبيقها على زيارة وتلك التي تليها عند استيفاء شروط الحدّ الأدنى.
تم ترتيب النقاط أدناه حسب ترتيب زيادة الاسترخاء.
عمليات التعداد | |
---|---|
LEVEL_UNSPECIFIED |
مستوى التخفيف التلقائي الضمني: لا يتم تخفيف أي قيود، أي أنّ جميع الزيارات مقيّدة بالكامل. يجب عدم استخدام هذه القيمة صراحةً في |
RELAX_VISIT_TIMES_AFTER_THRESHOLD |
سيتمّ تخفيف قيود أوقات بدء الزيارات وأوقات بدء/انتهاء المركبات، ولكن تظلّ كلّ زيارة مرتبطة بالمركبة نفسها ويجب مراعاة تسلسل الزيارات: لا يمكن إدراج أيّ زيارة بينها أو قبلها. |
RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD |
كما هو الحال في RELAX_VISIT_TIMES_AFTER_THRESHOLD ، ولكن تم أيضًا تخفيف تسلسل الزيارة: يمكن إجراء الزيارات من خلال هذه المركبة فقط، ولكن يمكن أن تصبح غير مُنفَّذة. |
RELAX_ALL_AFTER_THRESHOLD |
كما هو الحال في RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD ، ولكن يتم أيضًا تخفيف القيود المفروضة على المركبة: تكون الزيارات مجانية تمامًا عند أو بعد الوقت المحدَّد، وقد لا يتم تنفيذها. |