Permintaan dan batas pemuatan

Properti loadDemands ditentukan di bagian ShipmentModel.shipments.Shipment dan properti loadLimits di bagian ShipmentModel.vehicles.Vehicle.

Permintaan dan batas beban adalah jenis batasan yang dapat Anda gunakan untuk mengelola kapasitas. Batasan ini menentukan kapasitas yang diperlukan pengiriman dan kapasitas maksimum kendaraan, yang memungkinkan Anda mengoptimalkan penetapan rute berdasarkan batasan ini.

Permintaan dan batas beban dapat mendukung tujuan seperti:

  • Mencegah kendaraan kelebihan muatan.
  • Pantau perubahan muatan kendaraan saat pengiriman diambil dan dikirim.
  • Membatasi frekuensi kendaraan dapat mengunjungi lokasi tertentu.

Batas dan permintaan beban ditentukan dalam properti berikut:

  • loadDemands menentukan jumlah kapasitas yang diperlukan pengiriman tertentu.
  • loadLimits menentukan kapasitas maksimum untuk kendaraan tertentu.

Struktur

Seperti yang ditunjukkan pada diagram, permintaan dan batas beban disusun sebagai berikut:

Properti

Bagian ini menjelaskan properti untuk permintaan dan batas beban, yaitu berikut:

  • Jenis beban: Properti bersama antara permintaan dan batas beban.
  • Load dan LoadLimit: Properti unik yang masing-masing ada dalam permintaan beban dan batas beban.

Jenis pemuatan

Jenis muatan adalah kunci string yang mengidentifikasi jenis permintaan muatan untuk pengiriman dan batas muatan untuk kendaraan. Jenis beban memiliki karakteristik penting berikut:

  • User-defined: Jenis beban adalah jenis yang Anda tentukan. Tidak ada variabel sistem yang telah ditentukan sebelumnya untuk jenis pemuatan.
  • Bersama: Jenis muatan dimaksudkan untuk dibagikan antara pengiriman dan kendaraan. Artinya, pengiriman akan menggunakan kapasitas kendaraan hingga batasnya hanya jika jenis muatannya cocok. Jika tidak menentukan batas beban untuk jenis tertentu, kendaraan dapat membawa jenis beban tersebut dalam jumlah yang tidak terbatas.

Kunci string yang mewakili jenis pemuatan menggunakan sintaksis jenis peta Protocol Buffers. Kunci string ini tidak boleh null untuk menghindari masalah. Saat memberi nama jenis beban, sebaiknya gunakan ID yang menjelaskan jenis beban dan unitnya. Misalnya: weightKg, volume_gallons, palletcount, atau frequencyDaily.

Load dan LoadLimit

Objek Load dan LoadLimit berisi properti tertentu untuk menentukan persyaratan kapasitas pengiriman dan kendaraan, tabel berikut menjelaskan properti ini:

Objek Orang tua Properti Jenis properti Deskripsi properti
Load loadDemands amount string (format int64) Menentukan persyaratan kapasitas pengiriman dalam jenis yang ditentukan.
LoadLimit loadLimits maxLoad string (format int64) Menentukan kapasitas muatan maksimum kendaraan dalam jenis yang ditentukan.

Contoh

Contoh berikut menunjukkan struktur permintaan beban tempat Anda dapat menetapkan jenis loadDemands sebagai string dan properti amount sebagai string dalam format int64:

"loadDemands": {
  "MATCHING_LOAD_TYPE": {
    "amount": "YOUR_LOAD_AMOUNT"
  }
}

Contoh berikut menunjukkan struktur paling dasar dari batas beban, tempat Anda dapat menetapkan jenis loadLimits sebagai string, dan properti maxLoad sebagai string dalam format int64:

"loadLimits": {
  "MATCHING_LOAD_TYPE": {
    "maxLoad": "YOUR_MAX_LOAD"
  }
}

Cobalah

Gunakan contoh kode di atas untuk membuat skenario fiktif. Dalam skenario ini, Anda memiliki paket yang beratnya 10 kilogram, dan kendaraan yang dapat mengangkut 100 kilogram:

  1. Dalam contoh loadDemands, tentukan jenis pemuatan sebagai weightKg.

    Setelah Anda melakukannya, jenis beban dalam contoh loadLimits juga akan terisi, yang berbagi jenis beban. Ingat bahwa jenis loadDemands dan loadLimits harus cocok agar pengiriman menggunakan batas kendaraan.

  2. Dalam contoh loadDemands yang sama, tetapkan properti amount ke 10.

    Artinya, paket tersebut memiliki berat 10 kilogram.

  3. Dalam contoh loadLimits, tetapkan properti maxLoad ke 100.

    Artinya, kendaraan dapat mengangkut maksimum 100 kilogram.

Ingat bahwa tidak ada kumpulan jenis yang telah ditetapkan. Dalam contoh ini, Anda dapat mengubah kilogram menjadi poin, atau mengubahnya menjadi pengukuran linear, bukan berat. Fleksibilitas ini memungkinkan Anda menyesuaikan permintaan dan batas beban dengan kebutuhan spesifik Anda.

Contoh permintaan

Contoh berikut menunjukkan struktur permintaan optimizeTours dasar dengan loadDemands dalam pengiriman dan loadLimits dalam kendaraan:

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 00.000000,
              "longitude": 00.000000
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 00.000000,
              "longitude": 00.000000
            }
          }
        ],
        "loadDemands": {
          "MATCHING_LOAD_TYPE": {
            "amount": "YOUR_LOAD_AMOUNT"
          }
        }
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 00.000000,
          "longitude": 00.000000
        },
        "endLocation": {
          "latitude": 00.000000,
          "longitude": 00.000000
        },
        "costPerKilometer": 1.0,
        "loadLimits": {
          "MATCHING_LOAD_TYPE": {
            "maxLoad": "YOUR_MAX_LOAD"
          }
        }
      }
    ]
  }
}

Ingat bahwa pengiriman dapat memiliki beberapa permintaan muatan, dan kendaraan dapat memiliki beberapa batas muatan, sehingga Anda dapat memberikan batasan yang kompleks untuk dipertimbangkan saat mengoptimalkan rute armada.