İ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.
  • Sevkiyatlar, teslim alma ve teslimat VisitRequest işlemlerini içeren görevleri veya gerçek gönderileri 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ırken, gönderimlerde veya araçlarda belirtilen kısıtlamalar ve özellikler 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 sevkiyatlarını başlatamaz.
  • globalEndTime, tüm araçlar ve gönderilerdeki 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. Maliyetler 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ı tamamlaması gereken yeri temsil eder. 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 aşağıdaki gibi 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"
  }
}

OptimizeTours ve BatchOptimizeTours, yukarıdaki örneğe benzer istek mesajlarını farklı şekillerde kullanır. Rota optimizasyonu isteği göndermeden önce bu iki yöntem arasındaki farkı anlamanız önemlidir:

OptimizeTours ile BatchOptimizeTours'un karşılaştırılması