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

تحتوي رسالة OptimizeToursRequest (REST، gRPC) على عدد من المواقع المرتبطة بـ التكاليف. تمثل مَعلمات التكلفة هذه مجتمعةً قيمة ونموذج التكلفة يرصد نموذج التكلفة العديد من أهداف تحسين الأداء على مستوى عالٍ في الطلب، مثل:

  • منح الأولوية لمسارات Vehicle الأسرع على المسارات الأقصر أو العكس في الجوار
  • إنّ تحديد ما إذا كانت تكلفة تسليم Shipment تستحق قيمة إكمال "Shipment"
  • إجراء عمليات الاستلام والتسليم خلال الفترات الزمنية فقط عند القيام بذلك فعّالة من حيث التكلفة

الاطّلاع على مثال على طلب يتضمّن التكاليف

{
  "model": {
    "globalStartTime": "2023-01-13T16:00:00-08:00",
    "globalEndTime": "2023-01-14T16:00:00-08:00",
    "shipments": [
      {
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.789456,
              "longitude": -122.390192
            },
            "duration": "250s"
          }
        ],
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.794465,
              "longitude": -122.394839
            },
            "duration": "150s"
          }
        ],
        "penaltyCost": 100.0
      },
      {
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.789116,
              "longitude": -122.395080
            },
            "duration": "250s"
          }
        ],
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.794465,
              "longitude": -122.394839
            },
            "duration": "150s"
          }
        ],
        "penaltyCost": 5.0
      },
      {
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.795242,
              "longitude": -122.399347
            },
            "duration": "250s"
          }
        ],
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.794465,
              "longitude": -122.394839
            },
            "duration": "150s"
          }
        ],
        "penaltyCost": 50.0
      }
    ],
    "vehicles": [
      {
        "endLocation": {
          "latitude": 37.794465,
          "longitude": -122.394839
        },
        "startLocation": {
          "latitude": 37.794465,
          "longitude": -122.394839
        },
        "costPerHour": 40.0,
        "costPerKilometer": 10.0
      }
    ]
  }
}
    

Vehicle مواقع تكلفة

تحتوي رسالة Vehicle (REST وgRPC) على عدة سمات تكلفة:

  • Vehicle.cost_per_hour: يمثّل تكلفة تشغيل مركبة في الساعة. بما في ذلك أوقات النقل العام والانتظار والزيارة وأوقات الاستراحة.
  • Vehicle.cost_per_kilometer: يمثّل التكلفة لكل كيلومتر يقطعه المركبة.
  • Vehicle.cost_per_traveled_hour: يمثل تكلفة تشغيل مركبة أثناء النقل فقط، باستثناء أوقات الانتظار والزيارة والاستراحة.

تتيح مَعلمات التكلفة هذه للمحسِّن إجراء مقارنة بالوقت مقابل المسافة التي تم قطعها. للمفاضلات. تظهر التكاليف المتكبّدة في المسار المحسَّن في رسالة الردّ على النحو التالي: metrics.costs:

كلما زاد costPerHour، يحاول محسِّن الأداء العثور على مسارات أسرع التي قد لا تكون أقصر المسارات. في هذا المثال، المسار الأسرع هو أقصر مسار، لذا فإنّ التغييرات في مَعلمات التكلفة لها تأثير بسيط.

Shipment مواقع تكلفة

تحتوي رسالة Shipment (REST وgRPC) أيضًا على عدة مَعلمات تتعلّق بالتكلفة:

  • تمثل Shipment.penalty_cost التكلفة المتكبدة من خلال تخطي الشحنة.
  • يمثّل Shipment.VisitRequest.cost تكلفة طلب استلام محدّد أو التسليم، والذي يستخدم في المقام الأول لتمكين مفاضلات التكلفة بين عمليات الاستلام المتعددة أو وخيارات التسليم لشحنة واحدة.

تستخدم مَعلمات التكلفة Shipment الوحدات بدون أبعاد نفسها التي تستخدمها تكلفة Vehicle. المعلَمات. تتجاوز تكلفة إكمال Shipment تكلفة العقوبة، لم يتم تضمين Shipment في أي من مسارات Vehicle وبدلاً من ذلك يظهر في قائمة "skipped_shipments" في رسالة الرد

ShipmentModel مواقع تكلفة

تتضمّن رسالة ShipmentModel (REST وgRPC) تكلفة واحدة. الموقع، globalDurationCostPerHour. يتمّ تحمُّل هذه التكلفة استنادًا إلى إجمالي الوقت المطلوب لجميع المركبات لإكمال ShipmentRoute. متزايد تمنح globalDurationCostPerHour الأولوية لإنجاز جميع الشحنات في وقت أبكر من السابق.

خصائص تكلفة الاستجابة لتحسين المسار

تحتوي الرسالة OptimizeToursResponse (REST، gRPC) على خصائص تكلفة. التي تمثّل التكاليف المستحقة أثناء عملية إكمال ShipmentRoute. تمثّل السمتان metrics.costs وmetrics.totalCost عدد وحدات التكلفة التي يتم تكبدها عبر جميع المسارات في الاستجابة. يحتوي كل إدخال في routes على routeCosts وrouteTotalCosts موقع يمثّلان تكاليف ذلك مسارًا محددًا.

الاطّلاع على ردّ على مثال الطلب مع التكاليف

{
  "routes": [
    {
      "vehicleStartTime": "2023-01-14T00:00:00Z",
      "vehicleEndTime": "2023-01-14T00:28:22Z",
      "visits": [
        {
          "isPickup": true,
          "startTime": "2023-01-14T00:00:00Z",
          "detour": "0s"
        },
        {
          "shipmentIndex": 2,
          "isPickup": true,
          "startTime": "2023-01-14T00:02:30Z",
          "detour": "150s"
        },
        {
          "startTime": "2023-01-14T00:08:55Z",
          "detour": "150s"
        },
        {
          "shipmentIndex": 2,
          "startTime": "2023-01-14T00:21:21Z",
          "detour": "572s"
        }
      ],
      "transitions": [
        {
          "travelDuration": "0s",
          "waitDuration": "0s",
          "totalDuration": "0s",
          "startTime": "2023-01-14T00:00:00Z"
        },
        {
          "travelDuration": "0s",
          "waitDuration": "0s",
          "totalDuration": "0s",
          "startTime": "2023-01-14T00:02:30Z"
        },
        {
          "travelDuration": "235s",
          "travelDistanceMeters": 795,
          "waitDuration": "0s",
          "totalDuration": "235s",
          "startTime": "2023-01-14T00:05:00Z"
        },
        {
          "travelDuration": "496s",
          "travelDistanceMeters": 1893,
          "waitDuration": "0s",
          "totalDuration": "496s",
          "startTime": "2023-01-14T00:13:05Z"
        },
        {
          "travelDuration": "171s",
          "travelDistanceMeters": 665,
          "waitDuration": "0s",
          "totalDuration": "171s",
          "startTime": "2023-01-14T00:25:31Z"
        }
      ],
      "metrics": {
        "performedShipmentCount": 2,
        "travelDuration": "902s",
        "waitDuration": "0s",
        "delayDuration": "0s",
        "breakDuration": "0s",
        "visitDuration": "800s",
        "totalDuration": "1702s",
        "travelDistanceMeters": 3353
      },
      "routeCosts": {
        "model.vehicles.cost_per_kilometer": 33.53,
        "model.vehicles.cost_per_hour": 18.911111111111111
      },
      "routeTotalCost": 52.441111111111113
    }
  ],
  "skippedShipments": [
    {
      "index": 1
    }
  ],
  "metrics": {
    "aggregatedRouteMetrics": {
      "performedShipmentCount": 2,
      "travelDuration": "902s",
      "waitDuration": "0s",
      "delayDuration": "0s",
      "breakDuration": "0s",
      "visitDuration": "800s",
      "totalDuration": "1702s",
      "travelDistanceMeters": 3353
    },
    "usedVehicleCount": 1,
    "earliestVehicleStartTime": "2023-01-14T00:00:00Z",
    "latestVehicleEndTime": "2023-01-14T00:28:22Z",
    "totalCost": 57.441111111111113,
    "costs": {
      "model.vehicles.cost_per_kilometer": 33.53,
      "model.vehicles.cost_per_hour": 18.911111111111111,
      "model.shipments.penalty_cost": 5
    }
  }
}
    

في نموذج الردّ، تكون عناصر metrics.costs ذات المستوى الأعلى كما يلي:

{
  "metrics": {
    ...
    "costs": {
      "model.vehicles.cost_per_hour": 18.911111111111111,
      "model.vehicles.cost_per_kilometer": 33.53,
      "model.shipments.penalty_cost": 5
    }
  }
}

تمثل قيمة model.shipments.penalty_cost التكلفة المتكبدة بسبب وتخطى الشحنات. يعرض السمة "skippedShipments" الشحنات التي تم إكمالها. تم تخطيه.

في هذا المثال، لا يتم تخطّي سوى model.shipments[1] في نموذج الطلب. هناك تكلفة جزائية تبلغ 5 وحدات في "model.shipments[1]" وتتطابق مع إجمالي التكلفة المفتاح model.shipments.penalty_cost في مثال الرد. الشحنة منخفضة penaltyCost مقارنةً بـ 40.0 costPerHour و10.0 لـ Vehicle costPerKilometer تجعل تخطّي الشحنة أكثر فعالية من حيث التكلفة وأكمله.

الموضوع المتقدّم: التكاليف والقيود غير الصارمة

عدة خصائص لرسائل OptimizeToursRequest (REST وgRPC) تمثّل قيودًا طفيفة، وهي قيود تترتّب عنها تكلفة عند عن الرضا.

على سبيل المثال، تسمح قيود LoadLimit (REST وgRPC) بالمركبة الموقعان softMaxLoad وcostPerUnitAboveSoftMax. ينتج عن هذه مجتمعات التكلفة التناسبية مع وحدات التحميل التي تتجاوز softMaxLoad، ما يسمح ينبغي تجاوزه فقط إذا كان ذلك منطقيًا من وجهة نظر التكلفة.

وبالمثل، فإن قيود TimeWindow (REST، gRPC) السمتَين soft_start_time وsoft_end_time، مع المقابلة cost_per_hour_before_soft_start_time وcost_per_hour_after_soft_end_time يتم تكبدها بناءً على مدى وقت أو تأخر وقوع الحدث المقيد المتعلقة بـ TimeWindow.

كما هو الحال مع جميع مَعلمات نموذج التكلفة، يتم التعبير عن تكاليف القيود غير الصارمة باستخدام الوحدات غير المحددة بالحجم نفسها المستخدَمة في مَعلمات التكلفة الأخرى.

تمت معالجة LoadLimit قيود بالتفصيل في تحميل الطلبات والحدود: تمت معالجة TimeWindow قيود بالتفصيل. في قيود فترة الاستلام والتسليم.