الهدف الرئيسي من Route Optimization API هو العثور على طرق بأقل تكلفة. وبالتالي، فإنّ نموذج التكلفة هو المحرّك الرئيسي لتحسين المسار.
نموذج التكلفة هو مجموعة من السمات التي تحدّد التكاليف العالمية وتكاليف المركبة والشحنة.
تتيح خصائص نموذج التكلفة أنواع أهداف التحسين التالية:
- تحديد المركبات والمسارات بكفاءة
- أوقات استلام الطلبات وتوصيلها بأسعار معقولة
- تحديد أولويات الشحنات المهمة
البنية
كما هو موضّح في الرسم البياني، يتم تنظيم خصائص نموذج التكلفة على النحو التالي:
- تحتوي السمة
Shipment
على السمةpenaltyCost
. - يتضمّن
Vehicle
الخصائص التالية:
يُبرز هذا المستند مَعلمات نموذج التكلفة الأساسية فقط. اطّلِع على مستندات المرجع للحصول على المجموعة الكاملة من مَعلمات التكلفة.
قائمة التحقّق من Essentials
توضّح قائمة التحقّق التالية المعلومات الأساسية التي تمنع حدوث أخطاء محتملة مرتبطة بالتكلفة. يمكن أن تساعدك هذه القائمة في التحقّق من صحة طلبك وتحديد المشاكل في ردّك وحلّها.
الخصائص
يسرد الجدول التالي سمات نموذج التكلفة ويصفها.
أحد الوالدين | اسم السمة | نوع مكان الإقامة | التكلفة لكل | وصف المكان المخصّص للاستئجار |
---|---|---|---|---|
Shipment |
penaltyCost |
الرقم | تم تخطِّي الشحن | تمثّل هذه السمة التكلفة التي يتم تكبّدها عند تخطّي الشحنة. تتخطى واجهة برمجة التطبيقات شحنة عندما تتجاوز تكلفة إكمالها تكلفة الغرامة.
|
Vehicle |
fixedCost |
الرقم | الشحن | يتم تطبيق تكلفة ثابتة إذا تم استخدام هذه المركبة للتعامل مع شحنة. |
costPerHour |
الرقم | ساعة | تكلفة تشغيل مركبة في الساعة شاملةً أوقات النقل والانتظار والزيارة والاستراحة .وكلما زادت هذه التكلفة، يحاول المحسِّن العثور على مسارات أسرع قد لا تكون أقصر المسارات. يمكن أن يكون هذا الموقع الإلكتروني فعّالاً كأداة مستقلة لحساب التكلفة لكل مركبة بسبب بساطته واكتماله. |
|
costPerKilometer |
الرقم | كيلومتر | تكلفة الكيلومتر الواحد المقطوع بالمركبة، مثل تكاليف الوقود وتكاليف صيانة المركبة المستهلكة | |
costPerTraveledHour |
الرقم | ساعة | تكلفة تشغيل مركبة في الساعة أثناء النقل فقط، باستثناء أوقات الانتظار والزيارة والاستراحة تمنح هذه الميزة الأولوية لمسارات السفر الأسرع على المسارات الأقصر. |
أمثلة
يتناول هذا القسم ثلاثة أنواع من الأمثلة:
- أمثلة على الرموز البرمجية توضّح بنية سمات نموذج التكلفة.
- سيناريو مثال يوضّح إحدى طرق استخدام سمات نموذج التكلفة لتحقيق هدف تجاري.
- مثال على طلب يتضمّن القيم التي تم ضبطها في سيناريو المثال.
عيّنات تعليمات برمجية
يعرض نموذج الرمز التالي بنية سمات نموذج التكلفة في
Shipment
:
{ "model": { "shipments": [ ... { "penaltyCost": PENALTY_COST } ], "vehicles": [ ... ] } }
يعرض نموذج الرمز التالي بنية سمات نموذج التكلفة في
Vehicle
:
{ "model": { "shipments": [ ... ], "vehicles": [ ... { "fixedCost": FIXED_COST, "costPerKilometer": KILOMETER_COST, "costPerHour": HOUR_COST, "costPerTraveledHour": TRAVELED_HOUR_COST } ] } }
مثال على السيناريو
يصف هذا القسم سيناريو لديك فيه نشاط تجاري لتقديم خدمات رعاية الكلاب. أنت بصدد تحسين مسار الشاحنة التي تستخدمها لنقل الكلاب من منازلها. في هذا السيناريو، تريد أن يأخذ المحسّن في الاعتبار التكاليف المتعلقة باصطحاب الكلاب وتشغيل المركبات عند تقديم مسار.
في هذا المثال، تمثّل وحدة التكلفة الواحدة دولارًا واحدًا. وهذا يعني أنّ قيم سمة نموذج التكلفة في طلبك هي كما يلي:
الموقع | القيمة | السيناريو |
---|---|---|
penaltyCost |
10 | تمثّل هذه السمة الغرامة التي تفرضها على العملاء لعدم استلامهم كلبهم في اليوم المحدّد. في كل مرة لا يتم فيها استلام الكلب في يوم محدّد، يحصل العميل على خصم بقيمة 40 دولارًا أمريكيًا من إجمالي تكلفة الخدمة. |
fixedCost |
30 | تمثّل هذه السمة تكلفة أقساط قرض السيارة اليومية، وهي 30 دولارًا أمريكيًا في اليوم. |
costPerKilometer |
0.08 | يمثّل هذا الحقل مقدار الوقود الذي تستهلكه مركبتك لكل كيلومتر. تحتاج مركبتك إلى 0.04 غالون لكل كيلومتر لتتحرّك، وتبلغ تكلفة الغالون الواحد في منطقتك دولارَين أمريكيَّين. |
costPerHour |
27 | يمثّل هذا الحقل المبلغ الذي تدفعه لسائق مقابل قيادة مركبتك. تدفع للسائق 27 دولارًا في الساعة. |
costPerTraveledHour |
2.5 | يمثّل هذا الحقل المبلغ الذي عليك دفعه مقابل استخدام مكيّف الهواء في المركبة لكل ساعة أثناء نقل الكلاب. عندما تكون المركبة متوقفة، يمكن للسائق فتح الأبواب الخلفية وإيقاف تكييف الهواء. |
استنادًا إلى مَعلمات التكاليف، يمكن أن يُجري أداة التحسين تسويات غير واضحة للمستخدم، ولكن يمكن العثور عليها من خلال التحسين.
يوضّح المخطّط التالي مثالاً يمكن فيه لمحسِّن المسار اختيار مسار أطول ولكن أسرع عبر الخط المتقطّع الأخضر لتجنُّب الازدحام على الخط المتقطّع الأحمر.
في هذا السيناريو، يكون رصيد التكلفة للطريقَين كما يلي:
يحتوي الخط المتقطّع الأخضر على قيمة
costPerHour
منخفضة وcostPerTraveledHour
منخفضة لأنّه مسار سريع يتجنّب الازدحام المروري، ما يجعله أكثر فعالية من حيث التكلفة حتى عندما تكون قيمةcostPerKilometer
مرتفعة.يحتوي الخط المتقطّع الأحمر على
costPerKilometer
منخفض لأنّه مسار مباشر، ولكنcostPerHour
وcostPerTraveledHour
مرتفعان جدًا بسبب أوقات الانتظار في حركة المرور، ما يجعل المسار الأغلى.
بالإضافة إلى توفير مسارات فعّالة من حيث التكلفة، يقدّم المحسِّن أيضًا مجموع التكاليف الإجمالية لمسارات التسليم في خصائص الرد.
مثال على الطلب
يوضّح المثال التالي بنية طلب optimizeTours
أساسي يتضمّن القيم المحدّدة في سيناريو المثال:
{ "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.8024, "longitude": -122.4058 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.759773, "longitude": -122.427063 } } ] "penaltyCost": 40 } ], "vehicles": [ { "startLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "endLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "fixedCost": 30, "costPerKilometer": 0.08, "costPerHour": 27, "costPerTraveledHour": 2.5 } ] } }
خصائص الاستجابة
تحتوي رسالة OptimizeToursResponse
على سمات التكلفة
التي تصف التكاليف المتكبّدة في عملية إكمال مسار:
metrics.costs
: إجمالي التكلفة على مستوى جميع المسارات، مقسّمة حسب حقول الطلبات ذات الصلة بالتكلفة-
metrics.totalCost
: إجمالي التكلفة على مستوى جميع المسارات.