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.
  • Prioritaskan penyambungan kendaraan berat dengan pengiriman beban berat.

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:

Checklist dasar-dasar

Checklist berikut menjelaskan pengetahuan penting yang mencegah potensi kesalahan terkait pemuatan. Daftar ini dapat membantu Anda memvalidasi permintaan dan memecahkan masalah respons.

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 Anda terapkan secara merata ke pengiriman dan kendaraan. Jenis beban tunggal berlaku untuk permintaan beban pengiriman serta batas beban kendaraan.

Jenis pemuatan menggunakan sintaksis jenis peta Buffering Protokol. Saat memberi nama jenis beban, 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

Bagian ini membahas tiga jenis contoh:

  • Contoh kode yang mengilustrasikan struktur properti batas dan permintaan beban.
  • Contoh skenario yang menunjukkan salah satu cara menggunakan permintaan dan batas beban dalam permintaan API.
  • Contoh permintaan yang menyertakan nilai yang ditetapkan dalam contoh skenario.

Contoh kode

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

{
  "model": {
    "shipments": [ ...
      {
        "loadDemands": {
          "MATCHING_LOAD_TYPE": {
            "amount": "YOUR_LOAD_AMOUNT"
          }
        }
      }
    ],
    "vehicles": [ ...
    ]
  }
}

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:

{
  "model": {
    "shipments": [ ...
    ],
    "vehicles": [ ...
      {
        "loadLimits": {
          "MATCHING_LOAD_TYPE": {
            "maxLoad": "YOUR_MAX_LOAD"
          }
        }
      }
    ]
  }
}

Contoh skenario

Bagian ini menjelaskan skenario saat Anda memiliki bisnis penitipan dan mengoptimalkan rute untuk mengangkut beberapa dalam kendaraan dengan jumlah kandang yang terbatas.

Setiap pengiriman mewakili satu perhentian tempat Anda mengambil sejumlah. Dalam contoh ini, setiap pengiriman memiliki lokasi pengambilan yang berbeda, yaitu rumah yang Anda rawat, dan semua pengiriman memiliki lokasi pengiriman yang sama, yaitu bangunan penitipan Anda.

Untuk contoh ini, nilai properti dalam permintaan Anda adalah berikut:

Orang tua Properti Jenis Nilai Skenario
loadDemands jenis pemuatan string dogUnit Menentukan jenis muatan untuk pengiriman. Contoh ini menggunakan dogUnit, dengan setiap dogUnit mewakili satu.
loadDemands amount angka Pengiriman ke-1: 1
Pengiriman ke-2: 3
Menentukan jumlah jenis muatan yang ditentukan. Dalam contoh ini, Anda menentukan dua pengiriman, pada pengiriman pertama Anda mengambil satu, pada pengiriman kedua Anda mengambil 3.
loadLimits jenis pemuatan string dogUnit Menentukan jenis batas muatan yang diterapkan pada kendaraan. Jenis muatan ini harus cocok dengan jenis muatan pengiriman agar batasnya relevan.
loadLimits maxLoad angka 6 Menentukan jumlah maksimum jenis muatan yang dapat diangkut kendaraan. Dalam contoh ini, Anda hanya memiliki satu kendaraan dengan kapasitas maksimum 6 dogUnit, dengan setiap dogUnit mewakili satu peti.

Diagram berikut menggambarkan batas muatan kendaraan, permintaan muatan setiap pengiriman, dan cara setiap pengiriman menggunakan batas muatan kendaraan:

Kendaraan memulai rute dengan 6 spasi kosong yang mewakili batas muatan kendaraan. Pengiriman pertama memerlukan ruang untuk satu, pengiriman kedua memerlukan ruang untuk tiga. Status akhir kendaraan adalah memiliki 4 dari 6 ruang yang sekarang terisi, dengan dua ruang kosong yang tersisa.

Dalam contoh ini, permintaan muatan setiap pengiriman dan batas muatan kendaraan memiliki efek berikut:

  • Pengoptimal tidak akan mengalami masalah saat membuat rute untuk kendaraan guna mengangkut, karena kendaraan dapat mengangkut hingga 6, dan Anda hanya mengambil 4.

  • Memiliki batas muatan 6 dogUnit pada kendaraan juga berarti Anda hanya dapat membawa dua lagi di kendaraan tertentu ini.

  • Jika jumlah lebih besar dari batas muatan, pengoptimal akan melewati salah satu pengambilan atau menetapkannya ke kendaraan yang sesuai.

Ingat bahwa tidak ada kumpulan jenis yang telah ditetapkan. Dalam contoh ini, Anda dapat mengubah jenis muatan dari unit menjadi unit berat untuk membatasi berat , atau mengubahnya menjadi pengukuran linear untuk membatasi lebar atau tingginya. Fleksibilitas ini memungkinkan Anda menyesuaikan permintaan dan batas beban dengan kebutuhan spesifik Anda.

Contoh permintaan

Contoh berikut menunjukkan struktur permintaan optimizeTours dasar yang menggabungkan contoh nilai skenario:

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.8024,
              "longitude": -122.4058
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.759773,
              "longitude": -122.427063
            }
          }
        ],
        "label": "One bernese mountain dog",
        "loadDemands": {
          "dogUnit": {
            "amount": "1"
          }
        }
      },
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.7359,
              "longitude": -122.5011
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.759773,
              "longitude": -122.427063
            }
          }
        ],
        "label": "Three chihuahuas",
        "loadDemands": {
          "dogUnit": {
            "amount": "3"
          }
        }
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "endLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "loadLimits": {
          "dogUnit": {
            "maxLoad": "6"
          }
        },
        "costPerKilometer": 1.0
      }
    ]
  }
}

Perlu diingat bahwa, tidak seperti kasus dalam contoh ini, pengiriman dapat memiliki beberapa permintaan muatan, dan kendaraan dapat memiliki beberapa batas muatan, sehingga Anda dapat memberikan batasan kompleks yang perlu dipertimbangkan saat mengoptimalkan rute armada.