İstek Mesajı Oluşturma

Rota Optimizasyonuna Genel Bakış bölümünde kısaca açıklandığı gibi, temel bir istek; zorunlu varlıklar olarak Model, Gönderiler ve Araçlar'dan oluşur:

  • Model, hem Shipments hem de Vehicles dahil olmak üzere isteğin tamamının ayarlarını ve kısıtlamalarını yakalar.
  • Gönderimler, teslim alma ve teslim etme VisitRequest'lerini içeren görevleri veya gerçek gönderimleri temsil eder. Gönderimlerin yerel ayarları ve kısıtlamaları vardır.
  • Araçlar; araçları, sürücüleri veya personeli temsil eder. Araçlar da yerel ayarlara ve kısıtlamalara sahiptir.

Her öğenin özellikleri, belirli bir ayrıntı düzeyinde bir optimizasyon probleminin bir bölümünü tanımlar. Model genelindeki kısıtlamalar tüm gönderimlere ve araçlara uygulanır. Gönderimlerde veya araçlarda belirtilen kısıtlamalar ve özellikler ise tek bir gönderime veya araca özeldir.

Her mesaj türüyle ilgili tam dokümanlar için ShipmentModel (REST, gRPC), Shipment (REST, gRPC) ve Vehicle (REST, gRPC) mesajlarıyla ilgili referans dokümanlarına bakın.

OptimizeToursRequest tesis

Üst düzey OptimizeToursRequest mesajının (REST, gRPC) yaygın olarak kullanılan bazı özellikleri şunlardır:

  • searchMode, belirtilen kısıtlamaları karşılayan ilk çözümün mi yoksa belirlenen son tarihe kadar mümkün olan en iyi çözümün mü döndürüleceğini belirtir.
  • considerRoadTraffic, yönlendirme ve TVS tahmini için canlı trafiğin kullanılıp kullanılmayacağını belirler.
  • populateTransitionPolylines, rota çok çizgilerinin ve rota jetonlarının yanıtta döndürülüp döndürülmeyeceğini belirler.

Model özellikleri

ShipmentModel mesajının (REST, gRPC) yaygın olarak kullanılan bazı özellikleri şunlardır:

  • globalStartTime, tüm araçlar ve gönderimler için rotaların en erken başlangıç zamanını temsil eder. Hiçbir araç bu tarihten önce ilk geçişlerini ve gönderimlerini başlatamaz.
  • globalEndTime, tüm araçlar ve gönderimler için rotaların en son bitiş zamanını temsil eder. Atanan tüm gönderimler ve geçişler bu tarihten önce tamamlanmalıdır.

Gönderim özellikleri

Shipment mesajının (REST, gRPC) yaygın olarak kullanılan bazı özellikleri şunlardır:

  • pickups[] ve deliveries[], bir gönderimin nereden alınabileceğini veya bırakılabileceğini gösterir. Hem pickups[] hem de deliveries[] mülkleri VisitRequest mesajını (REST, gRPC) kullanır.
  • loadDemands, bir aracın gönderimi tamamlaması için gereken yükü temsil eder. Araçların ilgili load_limits (REST, gRPC) özelliği, bir aracın tek seferde ne kadar yük taşıyabileceğini temsil eder. Yük hakkında daha fazla bilgiyi Yük Talepleri ve Sınırları başlıklı makalede bulabilirsiniz.
  • penalty_cost, bir gönderim atlanırsa ortaya çıkan maliyeti temsil eder. Maliyet hakkında daha fazla bilgiyi Maliyet Modeli Parametreleri bölümünde bulabilirsiniz.

Araç özellikleri

Vehicle mesajının (REST, gRPC) yaygın olarak kullanılan bazı özellikleri şunlardır:

  • startLocation, bir aracın rotasını başlatması gereken yeri temsil eder. Bu özellik isteğe bağlıdır. Belirtilmemişse aracın rotası, ilk atanan gönderisinin bulunduğu konumdan başlar.
  • endLocation, bir aracın rotasını nerede bitirmesi gerektiğini gösterir. Bu özellik isteğe bağlıdır. Belirtilmemişse aracın rotası, son atanmış gönderisinin bulunduğu konumda sona erer.
  • startTimeWindows[], bir aracın rotasına ne zaman başlayabileceğini gösterir. Bu özellik isteğe bağlıdır.
  • endTimeWindows[], bir aracın rotasını ne zaman başlayıp ne zaman sonlandırabileceğini gösterir. Her iki özellik de isteğe bağlıdır.
  • loadLimits, kargoların yükleme taleplerini karşılamak için aracın mevcut kapasitesini temsil eder. Yük talepleri ve sınırları hakkında daha fazla bilgiyi Yük Talepleri ve Sınırları başlıklı makalede bulabilirsiniz.

JSON biçiminde eksiksiz bir örnek istek şöyle görünür:

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.73881799999999,
              "longitude": -122.4161
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.79581,
              "longitude": -122.4218856
            }
          }
        ]
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        },
        "endLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        },
        "costPerKilometer": 1.0
      }
    ],
   "globalStartTime": "2024-02-13T00:00:00.000Z",
   "globalEndTime": "2024-02-14T06:00:00.000Z"
  }
}

Hem OptimizeTours hem de BatchOptimizeTours, yukarıdaki örnekteki gibi istek mesajlarını tüketir ancak farklı şekillerde. Rota optimizasyonu isteği göndermeden önce bu iki yöntem arasındaki farkı anlamanız önemlidir:

OptimizeTours ve BatchOptimizeTours'u karşılaştırma