الهدف الرئيسي من 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: إجمالي التكلفة على جميع المسارات.