نموذج التكلفة

يتم تحديد خصائص التكلفة ضمن ShipmentModel.shipments.Shipment وShipmentModel.vehicles.Vehicle

الهدف الرئيسي من Route Optimization API هو العثور على طرق بأقل تكلفة. وبالتالي، فإنّ نموذج التكلفة هو المحرّك الرئيسي لتحسين المسار.

نموذج التكلفة هو مجموعة من السمات التي تحدّد التكاليف العالمية وتكاليف المركبة والشحنة.

تتيح خصائص نموذج التكلفة أنواع أهداف التحسين التالية:

  • تحديد المركبات والمسارات بكفاءة
  • أوقات استلام الطلبات وتوصيلها بأسعار معقولة
  • تحديد أولويات الشحنات المهمة

البنية

كما هو موضّح في الرسم البياني، يتم تنظيم خصائص نموذج التكلفة على النحو التالي:

يُبرز هذا المستند مَعلمات نموذج التكلفة الأساسية فقط. اطّلِع على مستندات المرجع للحصول على المجموعة الكاملة من مَعلمات التكلفة.

قائمة التحقّق من Essentials

توضّح قائمة التحقّق التالية المعلومات الأساسية التي تمنع حدوث أخطاء محتملة مرتبطة بالتكلفة. يمكن أن تساعدك هذه القائمة في التحقّق من صحة طلبك وتحديد المشاكل في ردّك وحلّها.

الخصائص

يسرد الجدول التالي سمات نموذج التكلفة ويصفها.

أحد الوالدين اسم السمة نوع مكان الإقامة التكلفة لكل وصف المكان المخصّص للاستئجار
Shipment penaltyCost الرقم تم تخطِّي الشحن تمثّل هذه السمة التكلفة التي يتم تكبّدها عند تخطّي الشحنة.
تتخطى واجهة برمجة التطبيقات شحنة عندما تتجاوز تكلفة إكمالها تكلفة الغرامة.
  • يؤدي ضبط penaltyCost إلى منح الأولوية لتسليم الشحنات ذات التكلفة الأعلى.
  • عدم ضبط penaltyCost للشحنة يجعلها إلزامية.
  • يؤدي ضبط قيمة الشحنة 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: إجمالي التكلفة على مستوى جميع المسارات.