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

يتم تحديد سمات التكلفة ضمن 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: إجمالي التكلفة لجميع المسارات مجتمعة