Tải nhu cầu và giới hạn

Thuộc tính loadDemands được xác định trong ShipmentModel.shipments.Shipment và thuộc tính loadLimits trong ShipmentModel.vehicles.Vehicle.

Nhu cầu tải và giới hạn tải là một loại quy tắc ràng buộc mà bạn có thể sử dụng để quản lý dung lượng. Các thông số này chỉ định dung lượng cần thiết của lượt vận chuyển và dung lượng tối đa của xe, cho phép bạn tối ưu hoá việc chỉ định tuyến dựa trên các quy tắc ràng buộc này.

Yêu cầu và giới hạn tải có thể hỗ trợ các mục tiêu như:

  • Ngăn tình trạng xe chở quá tải.
  • Theo dõi cách tải xe thay đổi khi các lô hàng được lấy và giao.
  • Hạn chế số lần một xe có thể ghé thăm một vị trí cụ thể.

Yêu cầu và giới hạn tải được chỉ định trong các thuộc tính sau:

  • loadDemands chỉ định dung lượng mà một lượt vận chuyển cụ thể cần.
  • loadLimits chỉ định sức chứa tối đa cho một xe nhất định.

Cấu trúc

Như minh hoạ trong sơ đồ, nhu cầu tải và giới hạn được cấu trúc như sau:

Thuộc tính

Phần này mô tả các thuộc tính cho nhu cầu tải và giới hạn tải, bao gồm:

  • Loại tải: Một thuộc tính dùng chung giữa các yêu cầu tải và giới hạn tải.
  • LoadLoadLimit: Các thuộc tính riêng biệt có trong nhu cầu tải và giới hạn tải tương ứng.

Loại tải

Loại tải là khoá chuỗi xác định loại nhu cầu tải cho một lô hàng và giới hạn tải cho một xe. Các loại tải có những đặc điểm quan trọng sau:

  • Do người dùng xác định: Loại tải là loại do bạn xác định. Không có biến hệ thống được xác định trước cho các loại tải.
  • Được chia sẻ: Loại tải được dùng chung giữa các lô hàng và xe. Điều này có nghĩa là một lô hàng sẽ tiêu thụ hết dung lượng của xe chỉ khi loại tải của lô hàng khớp với loại tải của xe. Nếu không chỉ định giới hạn tải cho một loại tải cụ thể, thì xe có thể chở số lượng không giới hạn loại tải đó.

Các khoá chuỗi đại diện cho các loại tải sử dụng Ngữ pháp loại bản đồ Vùng đệm giao thức. Các khoá chuỗi này không được rỗng để tránh gặp vấn đề. Khi đặt tên cho một loại tải, bạn nên sử dụng giá trị nhận dạng mô tả loại tải và đơn vị của tải đó. Ví dụ: weightKg, volume_gallons, palletcount hoặc frequencyDaily.

LoadLoadLimit

Các đối tượng LoadLoadLimit chứa các thuộc tính cụ thể để xác định yêu cầu về sức chứa cho lô hàng và xe cộ. Bảng sau đây mô tả các thuộc tính này:

Đối tượng Cha mẹ Thuộc tính Loại khách sạn Nội dung mô tả về cơ sở lưu trú
Load loadDemands amount string (định dạng int64) Xác định yêu cầu về dung lượng của lô hàng trong loại đã chỉ định.
LoadLimit loadLimits maxLoad string (định dạng int64) Xác định trọng tải tối đa của xe theo loại được chỉ định.

Ví dụ

Ví dụ sau đây cho thấy cấu trúc của một yêu cầu tải, trong đó bạn có thể đặt loại loadDemands dưới dạng chuỗi và thuộc tính amount dưới dạng chuỗi ở định dạng int64:

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

Ví dụ sau đây cho thấy cấu trúc cơ bản nhất của giới hạn tải, trong đó bạn có thể đặt loại loadLimits dưới dạng chuỗi và thuộc tính maxLoad dưới dạng chuỗi ở định dạng int64:

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

Dùng thử

Sử dụng các ví dụ về mã ở trên để tạo một tình huống giả định. Trong trường hợp này, bạn có một lô hàng nặng 10 kg và một xe có thể chở 100 kg:

  1. Trong ví dụ về loadDemands, hãy xác định loại tải là weightKg.

    Sau khi bạn thực hiện việc này, loại tải trong ví dụ loadLimits cũng sẽ được điền sẵn, chia sẻ loại tải. Hãy nhớ rằng các loại loadDemandsloadLimits phải khớp để lô hàng sử dụng hết hạn mức của xe.

  2. Trong cùng một ví dụ về loadDemands, hãy đặt thuộc tính amount thành 10.

    Điều này có nghĩa là lô hàng nặng 10 kg.

  3. Trong ví dụ về loadLimits, hãy đặt thuộc tính maxLoad thành 100.

    Điều này có nghĩa là xe có thể chở tối đa 100 kg.

Hãy nhớ rằng không có tập hợp các loại được xác định trước. Trong ví dụ này, bạn có thể thay đổi đơn vị kilôgam thành điểm hoặc thay đổi đơn vị này thành đơn vị đo lường tuyến tính thay vì trọng lượng. Tính linh hoạt này cho phép bạn điều chỉnh các yêu cầu và giới hạn tải theo nhu cầu cụ thể của mình.

Ví dụ về yêu cầu

Ví dụ sau đây cho thấy cấu trúc của một yêu cầu optimizeTours cơ bản với loadDemands trong một lô hàng và loadLimits trong một xe:

{
  "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"
          }
        }
      }
    ]
  }
}

Hãy nhớ rằng một lô hàng có thể có nhiều yêu cầu về tải trọng và một xe có thể có nhiều giới hạn tải trọng, cho phép bạn đưa ra các quy tắc ràng buộc phức tạp để cân nhắc khi tối ưu hoá tuyến đường của đội xe.