ความต้องการและขีดจำกัดในการโหลด

พร็อพเพอร์ตี้ loadDemands จะกำหนดไว้ใน ShipmentModel.shipments.Shipment และพร็อพเพอร์ตี้ loadLimits จะกำหนดไว้ใน ShipmentModel.vehicles.Vehicle

ความต้องการและขีดจำกัดของโหลดเป็นข้อจำกัดประเภทหนึ่งที่คุณใช้จัดการความจุได้ โดยระบุความจุที่จําเป็นสำหรับการจัดส่งและความจุสูงสุดของยานพาหนะ ซึ่งช่วยให้คุณเพิ่มประสิทธิภาพการกำหนดเส้นทางตามข้อจำกัดเหล่านี้ได้

ความต้องการและขีดจํากัดของโหลดรองรับวัตถุประสงค์ต่างๆ เช่น

  • ป้องกันไม่ให้ยานพาหนะบรรทุกน้ำหนักเกิน
  • ตรวจสอบการเปลี่ยนแปลงของน้ำหนักบรรทุกของยานพาหนะเมื่อมีการยกเลิกและนำส่งการจัดส่ง
  • จำกัดจำนวนครั้งที่ยานพาหนะเข้าชมสถานที่หนึ่งๆ ได้

ความต้องการและขีดจำกัดของโหลดจะระบุไว้ในพร็อพเพอร์ตี้ต่อไปนี้

  • loadDemands ระบุปริมาณความจุที่การจัดส่งหนึ่งๆ ต้องการ
  • loadLimits ระบุความจุสูงสุดของยานพาหนะหนึ่งๆ

โครงสร้าง

ดังที่แสดงในแผนภาพ ความต้องการและขีดจำกัดของโหลดมีโครงสร้างดังนี้

  • loadDemands เป็นพร็อพเพอร์ตี้ของ Shipment Shipment อาจมีดีมานด์การโหลดหลายรายการ
  • loadLimits เป็นพร็อพเพอร์ตี้ของ Vehicle Vehicle อาจมีขีดจำกัดการโหลดหลายรายการ

พร็อพเพอร์ตี้

ส่วนนี้จะอธิบายพร็อพเพอร์ตี้สำหรับความต้องการและขีดจำกัดของโหลด ดังนี้

  • ประเภทการโหลด: พร็อพเพอร์ตี้ที่แชร์ระหว่างดีมานด์การโหลดและขีดจํากัด
  • Load และ LoadLimit: พร็อพเพอร์ตี้ที่ไม่ซ้ำกันซึ่งแสดงในดีมานด์การโหลดและขีดจำกัดการโหลดตามลำดับ

ประเภทการโหลด

ประเภทน้ำหนักบรรทุกคือคีย์สตริงที่ระบุประเภทของความต้องการน้ำหนักบรรทุกสำหรับการจัดส่งและขีดจำกัดน้ำหนักบรรทุกของยานพาหนะ ประเภทการโหลดมีลักษณะสำคัญต่อไปนี้

  • ผู้ใช้กำหนด: ประเภทการโหลดคือประเภทที่คุณกำหนด ไม่มีตัวแปรระบบที่กําหนดไว้ล่วงหน้าสําหรับประเภทการโหลด
  • แชร์: ประเภทน้ำหนักบรรทุกมีไว้เพื่อแชร์ระหว่างการจัดส่งกับยานพาหนะ ซึ่งหมายความว่าการจัดส่งจะใช้ความจุของยานพาหนะจนเต็มขีดจำกัดเฉพาะเมื่อประเภทน้ำหนักบรรทุกตรงกัน หากยานพาหนะไม่ได้ระบุขีดจำกัดน้ำหนักบรรทุกสำหรับประเภทใดประเภทหนึ่ง ยานพาหนะนั้นจะบรรทุกน้ำหนักบรรทุกประเภทนั้นได้แบบไม่จำกัด

คีย์สตริงที่แสดงประเภทการโหลดใช้ไวยากรณ์ประเภทแผนที่ของ Protocol Buffers คีย์สตริงเหล่านี้ต้องไม่มีค่าเป็น Null เพื่อหลีกเลี่ยงปัญหา เมื่อตั้งชื่อประเภทการโหลด เราขอแนะนำให้ใช้ตัวระบุที่อธิบายประเภทของการโหลดและหน่วยของโหลด เช่น weightKg, volume_gallons, palletcount หรือ frequencyDaily

Load และ LoadLimit

ออบเจ็กต์ Load และ LoadLimit มีพร็อพเพอร์ตี้เฉพาะเพื่อกำหนดข้อกำหนดด้านความจุสำหรับการจัดส่งและยานพาหนะ ตารางต่อไปนี้อธิบายพร็อพเพอร์ตี้เหล่านี้

วัตถุ ผู้ปกครอง พร็อพเพอร์ตี้ ประเภทที่พัก คำอธิบายพร็อพเพอร์ตี้
Load loadDemands amount string (รูปแบบ int64) กำหนดข้อกำหนดด้านความจุของการจัดส่งในประเภทที่ระบุ
LoadLimit loadLimits maxLoad string (รูปแบบ int64) กำหนดความสามารถในการบรรทุกสูงสุดของยานพาหนะในประเภทที่ระบุ

ตัวอย่าง

ตัวอย่างต่อไปนี้แสดงโครงสร้างของดีมานด์การโหลดที่คุณสามารถตั้งค่าประเภท loadDemands เป็นสตริงและพร็อพเพอร์ตี้ amount เป็นสตริงในรูปแบบ int64

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

ตัวอย่างต่อไปนี้แสดงโครงสร้างพื้นฐานที่สุดของขีดจํากัดการโหลด ซึ่งคุณสามารถตั้งค่าประเภท loadLimits เป็นสตริง และพร็อพเพอร์ตี้ maxLoad เป็นสตริงในรูปแบบ int64

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

ลองเลย

ใช้ตัวอย่างโค้ดด้านบนเพื่อสร้างสถานการณ์สมมติ ในตัวอย่างนี้ คุณมีการจัดส่งที่มีน้ำหนัก 10 กิโลกรัม และมียานพาหนะที่บรรทุกได้ 100 กิโลกรัม

  1. ในตัวอย่าง loadDemands ให้กําหนดประเภทการโหลดเป็น weightKg

    เมื่อดำเนินการเสร็จแล้ว ประเภทการโหลดในตัวอย่าง loadLimits ก็จะปรากฏขึ้นด้วย โดยแชร์ประเภทการโหลด โปรดทราบว่าประเภทของ loadDemands และ loadLimits ต้องตรงกันเพื่อให้การจัดส่งใช้ขีดจำกัดของยานพาหนะได้

  2. ในตัวอย่าง loadDemands เดียวกัน ให้ตั้งค่าพร็อพเพอร์ตี้ amount เป็น 10

    ซึ่งหมายความว่าการจัดส่งมีน้ำหนัก 10 กิโลกรัม

  3. ในตัวอย่าง loadLimits ให้ตั้งค่าพร็อพเพอร์ตี้ maxLoad เป็น 100

    ซึ่งหมายความว่ายานพาหนะสามารถบรรทุกน้ำหนักได้สูงสุด 100 กิโลกรัม

โปรดทราบว่าไม่มีชุดประเภทที่กำหนดไว้ล่วงหน้า ในตัวอย่างนี้ คุณสามารถเปลี่ยนกิโลกรัมเป็นคะแนน หรือเปลี่ยนเป็นค่าการวัดเชิงเส้นแทนน้ำหนัก ความยืดหยุ่นนี้ช่วยให้คุณปรับความต้องการและขีดจํากัดการโหลดให้เหมาะกับความต้องการที่เฉพาะเจาะจงได้

ตัวอย่างคำขอ

ตัวอย่างต่อไปนี้แสดงโครงสร้างของคําขอ optimizeTours พื้นฐานที่มี loadDemands ในการจัดส่งและ loadLimits ในยานพาหนะ

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

โปรดทราบว่าการจัดส่งอาจมีความต้องการในการบรรทุกหลายรายการ และยานพาหนะอาจมีขีดจำกัดในการบรรทุกหลายรายการ ซึ่งจะช่วยให้คุณระบุข้อจำกัดที่ซับซ้อนเพื่อพิจารณาเมื่อเพิ่มประสิทธิภาพเส้นทางของกลุ่มยานพาหนะได้