Buat Pesan Permintaan

Seperti yang dijelaskan secara singkat dalam Ringkasan Pengoptimalan Rute, permintaan dasar terdiri dari Model, Pengiriman, dan Kendaraan sebagai entitas yang diperlukan:

  • Model merekam setelan dan batasan untuk seluruh permintaan, mencakup Shipments dan Vehicles.
  • Pengiriman menunjukkan tugas atau pengiriman sebenarnya yang mencakup pengambilan dan pengiriman VisitRequest dtk. Pengiriman memiliki setelan dan batasan lokal.
  • Kendaraan mewakili kendaraan, pengemudi, atau personel. Kendaraan juga memiliki pengaturan dan batasan lokal.

Setiap properti entitas menjelaskan bagian dari masalah pengoptimalan pada tingkat perincian tertentu. Batasan seluruh model diterapkan ke semua pengiriman dan kendaraan, sedangkan batasan dan properti yang ditentukan pada pengiriman atau kendaraan hanya untuk satu pengiriman atau kendaraan.

Untuk dokumentasi lengkap tentang setiap jenis pesan, lihat dokumentasi referensi untuk ShipmentModel (REST, gRPC), Shipment (REST, gRPC), dan pesan Vehicle (REST, gRPC).

OptimizeToursRequest properti

Beberapa properti yang umum digunakan dari pesan OptimizeToursRequest tingkat teratas (REST, gRPC) mencakup hal berikut:

  • searchMode menunjukkan apakah akan menampilkan solusi pertama yang memenuhi batasan tertentu atau menemukan solusi terbaik dalam satu set pengiriman untuk memenuhi tenggat waktu itu.
  • considerRoadTraffic menentukan apakah traffic live akan digunakan atau tidak untuk penentuan rute dan estimasi PWT.
  • populateTransitionPolylines menentukan apakah polyline rute yang ditampilkan dalam respons.

Properti model

Beberapa properti pesan ShipmentModel yang umum digunakan (REST, gRPC) mencakup:

  • globalStartTime menunjukkan waktu mulai paling awal untuk rute di semua kendaraan dan pengiriman. Tidak ada kendaraan yang dapat memulai transisi pertamanya dan pengiriman sebelum waktu tersebut.
  • globalEndTime menunjukkan waktu berakhir rute terbaru di semua kendaraan dan pengiriman. Semua pengiriman dan transisi yang ditetapkan harus selesai sebelum waktu ini.

Properti pengiriman

Beberapa properti pesan Shipment yang umum digunakan (REST, gRPC) termasuk:

  • pickups[] dan deliveries[] menunjukkan tempat pengiriman dapat diambil atau menurun. Properti pickups[] dan deliveries[] sama-sama menggunakan Pesan VisitRequest (REST, gRPC).
  • loadDemands menunjukkan beban yang diperlukan kendaraan untuk menyelesaikan pengiriman. Kendaraan load_limits yang sesuai (REST, gRPC) menunjukkan berapa banyak beban yang dapat ditampung kendaraan pada satu waktu. Baca selengkapnya tentang beban di Permintaan dan Batas Beban.
  • penalty_cost menunjukkan biaya yang timbul jika pengiriman dilewati. {i>Read<i} lebih lanjut tentang biaya di Parameter Model Biaya.

Properti kendaraan

Beberapa properti pesan Vehicle yang umum digunakan (REST, gRPC) termasuk:

  • startLocation menunjukkan tempat kendaraan harus memulai rutenya. Ini bersifat opsional. Jika tidak ditentukan, rute kendaraan dimulai di lokasi pengiriman pertama yang ditugaskan.
  • endLocation menunjukkan tempat kendaraan harus mengakhiri rutenya. Properti ini bersifat opsional. Jika tidak ditentukan, rute kendaraan berakhir di lokasi pengiriman yang terakhir ditugaskan.
  • startTimeWindows[] menunjukkan kapan kendaraan dapat memulai rutenya. Ini bersifat opsional.
  • endTimeWindows[] menunjukkan kapan kendaraan dapat memulai dan mengakhiri rutenya. Kedua properti bersifat opsional.
  • loadLimits menunjukkan kapasitas kendaraan yang tersedia untuk memenuhi pengiriman permintaan beban. Baca lebih lanjut tentang permintaan dan batas beban di Permintaan Beban dan Batas.

Contoh permintaan lengkap dalam format JSON terlihat seperti ini:

{
  "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 dan BatchOptimizeTours sama-sama menggunakan pesan permintaan seperti contoh di atas, tetapi dengan cara yang berbeda. Sebelum melakukan Pengoptimalan Rute , penting untuk memahami perbedaan antara kedua metode tersebut:

Membandingkan OptimizeTours dan BatchOptimizeTours