الهدف الرئيسي من Route Optimization API هو العثور على الطرق بأقل تكلفة. وبالتالي، فإنّ نموذج التكلفة هو المحرّك الرئيسي لتحسين الطرق.
نموذج التكلفة هو مجموعة من الخصائص التي تحدّد التكاليف العالمية وتكاليف المركبات والشحنات.
تتيح خصائص نموذج التكلفة أنواع أهداف التحسين التالية:
- تحديد المركبات والطرق بكفاءة
- أوقات الاستلام والتسليم بفعالية من حيث التكلفة
- تحديد أولوية الشحنات المهمة
البنية
كما هو موضّح في الرسم البياني، يتم تنظيم خصائص نموذج التكلفة على النحو التالي:
Shipmentيحتوي على السمةpenaltyCost.Vehicleيحتوي على السمات التالية:
تُبرز هذه الوثيقة معلمات نموذج التكلفة الأساسية فقط. يُرجى الاطّلاع على المستندات المرجعية للاطّلاع على المجموعة الكاملة من معلمات التكلفة.
قائمة التحقُّق من العناصر الأساسية
تصف قائمة التحقُّق التالية المعرفة الأساسية التي تمنع الأخطاء المحتملة المتعلقة بالتكلفة. يمكن أن تساعدك هذه القائمة في التحقّق من صحة طلبك وتحديد المشاكل وحلّها في ردّك.
الخصائص
يسرد الجدول التالي خصائص نموذج التكلفة ويصفها.
| أحد الوالدين | اسم السمة | نوع السمة | التكلفة لكل | وصف السمة |
|---|---|---|---|---|
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: التكلفة الإجمالية لجميع الطرق مجمّعة