İstek Mesajı Oluşturma

Rota Optimizasyonuna Genel Bakış bölümünde kısaca açıklandığı gibi, temel istekler gerekli varlıklar olarak Model, Gönderimler ve Taşıtlar'dan oluşur:

  • Model, Shipments ve Vehicles dahil olmak üzere isteğin tamamı için ayarları ve kısıtlamaları 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çlarla ilgili yerel ayarlar ve kısıtlamalar da vardır.

Her varlığın özellikleri, optimizasyon sorununun bir bölümünü belirli bir ayrıntı düzeyinde tanımlar. Model genelinde kısıtlamalar tüm kargolara ve araçlara uygulanırken sevkiyatlar veya araçlarda belirtilen kısıtlamalar ve özellikler tek bir kargoya veya araca özeldir.

Her mesaj türüyle ilgili tüm belgeler için ShipmentModel (REST, gRPC), Shipment (REST, gRPC) ve Vehicle (REST, gRPC) mesajlarıyla ilgili referans belgeleri inceleyin.

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 mü döndürüleceğini mi yoksa belirli bir teslim süresi içinde olası en iyi çözümün mü bulunacağını belirtir.
  • considerRoadTraffic, canlı trafiğin yönlendirme ve GMR tahmini için kullanılıp kullanılmayacağını belirler.
  • populateTransitionPolylines, yanıtta rota çoklu çizgilerinin 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önderilerdeki 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 tamamlanmış olmalı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önderinin alınabileceği veya bırakılabileceği yeri temsil eder. pickups[] ve deliveries[] mülklerinin ikisi de VisitRequest mesajını (REST, gRPC) kullanır.
  • loadDemands, bir aracın sevkiyatı tamamlaması için gereken yükü gösterir. Araçlara karşılık gelen load_limits (REST, gRPC) özelliği, bir aracın tek seferde ne kadar yük barındırabileceğini gösterir. Yükleme Talepleri ve Sınırları bölümünde yükleme hakkında daha fazla bilgi edinebilirsiniz.
  • penalty_cost, bir gönderinin atlanması durumunda tahakkuk eden 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ına başlaması gereken yeri temsil eder. Bu özellik isteğe bağlıdır. Belirtilmezse aracın rotası, atanan ilk sevkiyat noktasından başlar.
  • endLocation, bir aracın rotasını tamamlaması gereken yeri temsil eder. Bu özellik isteğe bağlıdır. Belirtilmezse aracın rotası, atanan son gönderimin bulunduğu yerde sona erer.
  • startTimeWindows[], bir aracın rotasını başlatabileceği zamanı belirtir. Bu özellik isteğe bağlıdır.
  • endTimeWindows[], bir aracın rotasının ne zaman başlatılabileceğini ve sonlandırılabileceğini belirtir. Her iki özellik de isteğe bağlıdır.
  • loadLimits, sevkiyatın yük taleplerini karşılamak için aracın mevcut kapasitesini temsil eder. Yükleme Talepleri ve Sınırları bölümünden yük talepleri ve sınırları hakkında daha fazla bilgi edinebilirsiniz.

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ğinde bulunmadan önce iki yöntem arasındaki farkı anlamak önemlidir:

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