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

تحتوي رسالة 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 قيود بالتفصيل. في قيود فترة الاستلام والتسليم.