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