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 và giới hạn tải là một loại ràng buộc mà bạn có thể sử dụng để quản lý sức chứa. Ràng buộc này chỉ định dung lượng bắt buộc của chuyến hàngdung lượng tối đa của xe, cho phép bạn tối ưu hoá việc chỉ định tuyến đường dựa trên các ràng buộc này.

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

  • Ngăn chặn tình trạng xe chở quá tải.
  • Theo dõi sự thay đổi về tải trọng của xe khi hàng được lấy và giao.
  • Ưu tiên việc ghép nối xe hạng nặng với các lô hàng có tải trọng lớn.

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

  • loadDemands chỉ định số lượng sức chứa mà một lô hàng cụ thể yêu cầu.
  • 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 và giới hạn tải được cấu trúc như sau:

Danh sách kiểm tra Essentials

Danh sách kiểm tra sau đây mô tả những kiến thức cần thiết giúp ngăn chặn các lỗi có thể xảy ra liên quan đến việc tải. Danh sách này có thể giúp bạn xác thực yêu cầu và khắc phục sự cố về phản hồi.

Thuộc tính

Phần này mô tả các thuộc tính cho nhu cầu và giới hạn tải, cụ thể là:

  • Loại tải: Một thuộc tính chung giữa nhu cầu và giới hạn tải.
  • LoadLoadLimit: Các thuộc tính duy nhất có trong nhu cầu tải và giới hạn tải tương ứng.

Loại cửa

Loại tải là một khoá chuỗi mà bạn áp dụng cho cả lô hàng và xe. Một loại tải duy nhất áp dụng cho nhu cầu tải của lô hàng cũng như giới hạn tải của xe.

Các loại tải sử dụng cú pháp loại bản đồ vùng đệm Giao thức. Khi đặt tên cho một loại tải, hãy sử dụng các giá trị nhận dạng mô tả loại tải và đơn vị của loại 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 các lô hàng và xe. 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 chuỗi (định dạng int64) Xác định yêu cầu về sức chứa của chuyến vận chuyển theo loại được chỉ định.
LoadLimit loadLimits maxLoad chuỗi (định dạng int64) Xác định sức chở tối đa của xe theo loại được chỉ định.

Ví dụ

Phần này trình bày 3 loại ví dụ:

Mã mẫu

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 một chuỗi và thuộc tính amount dưới dạng một chuỗi ở định dạng int64:

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

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 một chuỗi và thuộc tính maxLoad dưới dạng một chuỗi ở định dạng int64:

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

Tình huống ví dụ

Phần này mô tả một tình huống mà bạn có một doanh nghiệp trông giữ chó và bạn đang tối ưu hoá một tuyến đường để vận chuyển một vài chú chó trong một chiếc xe có số lượng lồng hạn chế.

Mỗi chuyến vận chuyển là một điểm dừng nơi bạn đón một số lượng chó nhất định. Trong ví dụ này, mỗi lô hàng có một địa điểm đến lấy hàng riêng (là nhà của những chú chó mà bạn chăm sóc) và tất cả các lô hàng đều có cùng một địa điểm giao hàng (toà nhà của dịch vụ trông giữ chó).

Trong ví dụ này, các giá trị thuộc tính trong yêu cầu của bạn là:

Cha mẹ Thuộc tính Loại Giá trị Trường hợp
loadDemands loại cửa chuỗi dogUnit Xác định loại hàng hoá của lô hàng. Ví dụ này sử dụng dogUnit, trong đó mỗi dogUnit đại diện cho một chú cún.
loadDemands amount số Lô hàng đầu tiên: 1
Lô hàng thứ hai: 3
Chỉ định số lượng của loại tải được xác định. Trong ví dụ này, bạn đang xác định 2 lô hàng, trong đó lô hàng đầu tiên là 1 chú chó và lô hàng thứ hai là 3 chú chó.
loadLimits loại cửa chuỗi dogUnit Xác định loại giới hạn tải trọng áp dụng cho xe. Phải khớp với loại tải của lô hàng thì hạn mức mới có liên quan.
loadLimits maxLoad số 6 Chỉ định số lượng tối đa của loại hàng hoá mà xe có thể chở. Trong ví dụ này, bạn chỉ có một chiếc xe với sức chứa tối đa là 6 dogUnit, trong đó mỗi dogUnit đại diện cho một lồng vận chuyển chó.

Sơ đồ sau đây minh hoạ giới hạn tải của xe, nhu cầu tải của từng lô hàng và cách từng lô hàng tiêu thụ giới hạn tải của xe:

Xe bắt đầu hành trình với 6 ô trống biểu thị giới hạn tải trọng của xe. Lô hàng đầu tiên cần không gian cho một chú chó, lô hàng thứ hai cần không gian cho ba chú chó. Trạng thái cuối cùng của xe là 4 trong số 6 chỗ đã có người ngồi và còn lại 2 chỗ trống.

Trong ví dụ này, nhu cầu tải của mỗi lô hàng và giới hạn tải của xe có những ảnh hưởng sau:

  • Trình tối ưu hoá sẽ không gặp vấn đề khi tạo tuyến đường cho xe để vận chuyển chó, vì xe có thể chở tối đa 6 chú chó và bạn chỉ đón 4 chú chó.

  • Việc giới hạn số lượng người là 6 dogUnit trên xe cũng có nghĩa là bạn chỉ có thể chở thêm 2 chú cún trên chiếc xe cụ thể này.

  • Nếu số lượng chó lớn hơn giới hạn tải, thì trình tối ưu hoá sẽ bỏ qua một trong các lượt đón hoặc chỉ định lượt đón đó cho một chiếc xe phù hợp.

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 loại tải từ đơn vị số lượng chó sang đơn vị trọng lượng để giới hạn trọng lượng của chó, hoặc thay đổi thành đơn vị đo chiều dài để giới hạn chiều rộng hoặc chiều cao của chó. Tính linh hoạt này giúp bạn điều chỉnh nhu cầu và giới hạn tải cho phù hợp với 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 kết hợp các giá trị của tình huống ví dụ:

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

Xin lưu ý rằng không giống như trường hợp trong ví dụ này, một lô hàng có thể có nhiều yêu cầu về tải và một xe có thể có nhiều giới hạn về tải, cho phép bạn cung cấp các ràng buộc phức tạp cần xem xét khi tối ưu hoá các tuyến đường của đội xe.