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