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

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