Yanıtı yorumlama

Route Optimization API'si, ilgili araçlar için rotaları döndürür isteği gönderin. Sevkiyatlar araçlara atanır veya kullanım durumuna göre atlanabilir. özellikleri.

Bir OptimizeToursResponse mesajında (REST, gRPC) iki ana üst düzey düzey bulunur: özellikler:

  • routes[], atanmış gönderimleri olan her taşıt için rotalardır. Her biri Route, söz konusu rotanın özelliklerini yansıtan metrikler içerir.
  • metrics, tüm araçlar ve rota planları genelinde yanıtın tamamı için toplanmış metriklerdir. Üst düzey metrikler, rota başına metriklerle aynı özellikleri içerir ve değerleri tüm rotalar genelinde toplanır.

Bazı özellikler, optimizasyon sonuçlarına bağlı olarak her zaman doldurulmayabilir:

  1. skippedShipments[], herhangi bir araç tarafından yapılmayan gönderimleri listeler. Belirtilen kısıtlamalar dahilinde gerçekleştirilemiyorsa veya gönderimi gerçekleştirme maliyeti ceza maliyetini aşıyorsa gönderim atlanabilmektedir. Örneğin, bir gönderinin teslim alma veya teslimat süresi çok dar timeWindow Bir aracın şunları yapması mümkün olmayabilir veya gerekli zaman aralığında ziyareti gerçekleştirebilir.
  2. validationErrors[], isteği geçersiz kılan hataları belirtir. isteğin solvingMode değeri, VALIDATE_ONLY. Normal DEFAULT_SOLVE modunda doğrulama hataları yanıt gövdesi yerine bir hata mesajında görünür. Lütfen VALIDATE_ONLY çözme modu, aynı anda birden fazla hatayı bildirebilir. Hata ayıklama isteklerinde hızla hata ayıklamak için kullanışlıdır.

Rota özellikleri

Her routes[] girişi bir ShipmentRoute mesajıdır (REST, gRPC). Her biri ShipmentRoute, belirli bir araca ait rota atamasını gösterir: talep ediyor. İlgili önemli ShipmentRoute özellikleri Vehicle şunlardır:

  • vehicleIndex, karşılık gelenVehicle istek mesajıyla karşılaşırsınız. Değer sıfır olduğunda REST yanıtları bu özelliği atlar.
  • vehicleStartTime, aracın rotasına başlaması gereken zamandır.
  • vehicleEndTime, aracın çalışmasını tamamlaması beklenen zamandır yol gösterir.

Yanıtlarda routes şu şekilde görünür:

{
  "routes": [
    {
      "vehicleStartTime": "2024-02-13T00:00:00Z",
      "vehicleEndTime": "2024-02-13T00:38:42Z",
      "visits": [
        ...
      ],
      "transitions": [
        ...
      ],
      "metrics": {
        ...
      },
      ...
    }
  ],
  ...
}

Her ShipmentRoute, aracın tamamlayacağı visits'ların sıralı bir listesini içerir. Her Visit (REST, gRPC), ilgili istekteki bir VisitRequest (REST, gRPC) temsil eder. Önemli Visit mülkler arasında şunlar yer alır:

  • shipmentIndex, bu ziyaretin ait olduğu gönderinin sıfır tabanlı endeksidir ekleyin.
  • Bir ziyaret teslim alma olduğunda isPickup doğru, ziyaret bir ziyaret olduğunda ise yanlıştır teslimat. Değer yanlış olduğunda REST yanıtları bu özelliği atlar.
  • visitRequestIndex, VisitRequest için sıfır tabanlı dizindir İlgili istekte Shipment.pickups veya Shipment.deliveries Visit temsil eder. REST yanıtları, değer sıfır olduğunda bu özelliği atlar.
  • startTime, ziyaretin başlaması beklenen zamandır.
  • loadDemands, yükleme türünü şu işlemin tamamlanması için istenen yükleme miktarıyla eşler: Visit. Yük tutarları, yükü temsil eden teslimat ziyaretleri için negatiftir araçtan kaldırılması.

Visit örneğini inceleyin:

{
  "routes": [
    {
      ...
      "visits": [
        {
          "isPickup": true,
          "startTime": "2024-02-13T00:00:00Z",
          "detour": "0s"
        },
        ...
      ],
    },
    ...
  ],
  ...
}

Her ShipmentRoute, aşağıdakileri temsil eden transitions içeren sıralı bir liste içerir: visits arasında seyahat etme süresidir. Önemli Transition mesaj (REST, gRPC) özellikleri şunlardır:

  • startTime, aracın yürütmeye başlayacağı zamandır için geçerlidir.
  • travelDuration, aracın gitmesi gereken süredir tamamlamanız gerekir.
  • travelDistanceMeters, aracın yapması gereken metre cinsinden mesafedir seyahat etmesini sağlar.
  • trafficInfoUnavailable, için geçerlidir.
  • waitDuration, aracın bir sonraki Visit'sini başlatmadan önce beklediği boşta kalma süresini temsil eder. Bu durum,start_time Takip edilen kişi sayısı: Visit
  • totalDuration, seyahat dahil olmak üzere geçişin toplam süresidir. bekleme, ara ve gecikme süreleridir.
  • vehicleLoads, yük türünü bu geçiş sırasında araç tarafından taşınan yük miktarıyla eşleştirir.

Transition örneğini inceleyin:

{
  "routes": [
    {
      ...
      "transitions": [
        ...
        {
          "travelDuration": "1171s",
          "travelDistanceMeters": 9004,
          "waitDuration": "0s",
          "totalDuration": "1171s",
          "startTime": "2024-02-13T00:00:00Z"
        },
        ...
      ],
      ...
    }
  ],
  ...
}

vists ile transitions arasındaki ilişki şurada açıklanmıştır: Teslim Alma ve Teslimatı Durdurma Siparişi Optimizasyonu ve ShipmentRoute referans belgeleri (REST, gRPC).

Metrik özellikleri

Metrics mesajı (REST, gRPC) tüm çözümü özetler. Önemli Metrics özelliklerinden bazıları şunlardır:

  • totalCost, rotaları tamamlamak için ödenen toplam maliyettir. Devamını okuyun Maliyet Modeli Parametreleri'ndeki maliyetler hakkında bilgi edinin.
  • usedVehicleCount, çözümde kullanılan toplam araç sayısıdır. Optimize Edici, bu araçların araç kullanımının gerekli değildir.
  • skippedMandatoryShipmentCount, atlanan gönderimlerin sayısıdır "zorunlu"dur. Zorunlu bir gönderim, aşağıdaki koşulları karşılayan bir penaltyCost belirtmiyor: atlanırsa uygulanır. Zorunlu gönderimler, performansları belirtilen kısıtlamalar altında mümkün değilse atlanabilir. Maliyet Modeli Parametreleri bölümünde maliyetler hakkında daha fazla bilgi edinebilirsiniz.

Ek metrikler AggregatedMetrics mesajları (REST, gRPC) ekleyin. AggregatedMetrics mesaj türü şunun için kullanılır: Metrics.aggregatedRouteMetrics özelliği ve ShipmentRoute.metrics için Metrics.aggregatedRouteMetrics mülkü, tüm mülklerde toplanmış metrikleri içeriyor OptimizeToursResponse içinde ShipmentRoute. Her ShipmentRoute.metrics mülkü, söz konusu ShipmentRoute ile ilgili metrikleri içerir.

Önemli AggregatedMetrics özellikleri şunlardır:

  • performedShipmentCount, araçların tüm rotalarında gerçekleştirdiği gönderi sayısıdır.
  • travelDuration, araçların taşıma sırasında geçirdiği toplam süredir. tavsiye eder.
  • waitDuration, araçların tamamlama sırasında beklerken geçirdiği toplam süredir takip edebilirsiniz.
  • delayDuration, araçların toplam gecikme süresidir. İstekte TransitionAttributes kullanılmadığı sürece bu değer genellikle sıfırdır.
  • breakDuration, araçların aralarda geçirdiği toplam süredir tavsiye eder.
  • visitDuration, aracın araç ziyaretleri için ziyaret ettiği toplam süredir. tavsiye eder. Bu, toplamda VisitRequest için VisitRequest.duration değeri Visit saniyelere karşılık geliyor ilgili araca atanır.
  • totalDuration, araçların tamamlanması için gereken toplam süredir. gösterir.
  • travelDistanceMeters, araçların seyahat ederken katettiği toplam mesafedir. tavsiye eder.
  • maxLoads, yükleme türlerini dosyanın taşıdığı maksimum yük miktarıyla eşleştirir herhangi bir noktada izlememiz lazım.

Metrics mesajının görünümü aşağıdaki gibidir:

{
  "routes": [
    ...
  ],
  "metrics": {
    "aggregatedRouteMetrics": {
      "performedShipmentCount": 1,
      "travelDuration": "2322s",
      "waitDuration": "0s",
      "delayDuration": "0s",
      "breakDuration": "0s",
      "visitDuration": "0s",
      "totalDuration": "2322s",
      "travelDistanceMeters": 18603
    },
    "usedVehicleCount": 1,
    "earliestVehicleStartTime": "2024-02-13T00:00:00Z",
    "latestVehicleEndTime": "2024-02-13T00:38:42Z",
    "totalCost": 18.603,
    "costs": {
      "model.vehicles.cost_per_kilometer": 18.603
    }
  }
}

Tam örnek

Construct a Request (İstek Oluşturma) isteği için eksiksiz bir örnek yanıt örneğin:

{
  "routes": [
    {
      "vehicleStartTime": "2024-02-13T00:00:00Z",
      "vehicleEndTime": "2024-02-13T00:38:42Z",
      "visits": [
        {
          "isPickup": true,
          "startTime": "2024-02-13T00:00:00Z",
          "detour": "0s"
        },
        {
          "startTime": "2024-02-13T00:19:31Z",
          "detour": "0s"
        }
      ],
      "transitions": [
        {
          "travelDuration": "0s",
          "waitDuration": "0s",
          "totalDuration": "0s",
          "startTime": "2024-02-13T00:00:00Z"
        },
        {
          "travelDuration": "1171s",
          "travelDistanceMeters": 9004,
          "waitDuration": "0s",
          "totalDuration": "1171s",
          "startTime": "2024-02-13T00:00:00Z"
        },
        {
          "travelDuration": "1151s",
          "travelDistanceMeters": 9599,
          "waitDuration": "0s",
          "totalDuration": "1151s",
          "startTime": "2024-02-13T00:19:31Z"
        }
      ],
      "metrics": {
        "performedShipmentCount": 1,
        "travelDuration": "2322s",
        "waitDuration": "0s",
        "delayDuration": "0s",
        "breakDuration": "0s",
        "visitDuration": "0s",
        "totalDuration": "2322s",
        "travelDistanceMeters": 18603
      },
      "routeCosts": {
        "model.vehicles.cost_per_kilometer": 18.603
      },
      "routeTotalCost": 18.603
    }
  ],
  "metrics": {
    "aggregatedRouteMetrics": {
      "performedShipmentCount": 1,
      "travelDuration": "2322s",
      "waitDuration": "0s",
      "delayDuration": "0s",
      "breakDuration": "0s",
      "visitDuration": "0s",
      "totalDuration": "2322s",
      "travelDistanceMeters": 18603
    },
    "usedVehicleCount": 1,
    "earliestVehicleStartTime": "2024-02-13T00:00:00Z",
    "latestVehicleEndTime": "2024-02-13T00:38:42Z",
    "totalCost": 18.603,
    "costs": {
      "model.vehicles.cost_per_kilometer": 18.603
    }
  }
}