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

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

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

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

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

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

البنية

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

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

قائمة التحقق من العناصر الأساسية

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

الخصائص

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

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