ดีมานด์และขีดจำกัดของโหลดเป็นข้อจำกัดประเภทหนึ่งที่คุณใช้เพื่อจัดการความจุได้ ข้อจํากัดนี้ระบุความจุที่ต้องการของการจัดส่งและความจุสูงสุดของยานพาหนะ ซึ่งช่วยให้คุณเพิ่มประสิทธิภาพการกําหนดเส้นทาง ตามข้อจํากัดเหล่านี้ได้
ดีมานด์และขีดจำกัดในการโหลดสามารถรองรับวัตถุประสงค์ต่างๆ เช่น
- ป้องกันไม่ให้ยานพาหนะบรรทุกน้ำหนักเกิน
- ตรวจสอบว่าน้ำหนักบรรทุกของยานพาหนะเปลี่ยนแปลงไปอย่างไรเมื่อมีการรับและนำส่งสินค้า
- ให้ความสำคัญกับการจับคู่ยานพาหนะสำหรับงานหนักกับการจัดส่งที่มีน้ำหนักมาก
ความต้องการและขีดจำกัดในการโหลดจะระบุไว้ในพร็อพเพอร์ตี้ต่อไปนี้
loadDemands
ระบุจำนวนความจุที่การจัดส่ง หนึ่งๆ ต้องการloadLimits
ระบุความจุสูงสุดสำหรับยานพาหนะที่กำหนด
โครงสร้าง
ดังที่แสดงในแผนภาพ ความต้องการและขีดจำกัดของโหลดมีโครงสร้างดังนี้
loadDemands
เป็นพร็อพเพอร์ตี้ของShipment
Shipment
อาจมีดีมานด์การโหลดหลายรายการloadLimits
เป็นพร็อพเพอร์ตี้ของVehicle
Vehicle
มีขีดจำกัดการโหลดได้หลายรายการ
รายการตรวจสอบ Essentials
รายการตรวจสอบต่อไปนี้อธิบายความรู้ที่จำเป็นซึ่งจะช่วยป้องกันข้อผิดพลาดที่อาจเกิดขึ้นเกี่ยวกับการโหลด รายการนี้จะช่วยให้คุณตรวจสอบคำขอและ แก้ปัญหาการตอบกลับได้
พร็อพเพอร์ตี้
ส่วนนี้จะอธิบายพร็อพเพอร์ตี้สำหรับดีมานด์และขีดจำกัดของโหลด ซึ่งมีดังนี้
- ประเภทโหลด: คุณสมบัติที่ใช้ร่วมกันระหว่างความต้องการโหลดและขีดจำกัด
Load
และLoadLimit
: พร็อพเพอร์ตี้ที่ไม่ซ้ำกันซึ่งมีอยู่ในดีมานด์การโหลดและขีดจำกัดการโหลดตามลำดับ
ประเภทการโหลด
ประเภทการโหลดคือคีย์สตริงที่คุณใช้กับการจัดส่งและยานพาหนะอย่างเท่าเทียมกัน ประเภทการโหลดเดียวใช้กับดีมานด์การโหลดของการจัดส่งและขีดจำกัดการโหลดของยานพาหนะ
ประเภทการโหลดใช้ไวยากรณ์ประเภทแผนที่ Protocol Buffers เมื่อ ตั้งชื่อประเภทการโหลด ให้ใช้ตัวระบุที่อธิบายประเภทการโหลดและหน่วย ของการโหลด เช่น weightKg, volume_gallons, palletcount หรือ frequencyDaily
Load
และ LoadLimit
ออบเจ็กต์ Load
และ LoadLimit
มีพร็อพเพอร์ตี้เฉพาะเพื่อ
กำหนดข้อกำหนดด้านความจุสำหรับการจัดส่งและยานพาหนะ ตารางต่อไปนี้
อธิบายพร็อพเพอร์ตี้เหล่านี้
วัตถุ | ผู้ปกครอง | พร็อพเพอร์ตี้ | ประเภทที่พัก | คำอธิบายพร็อพเพอร์ตี้ |
---|---|---|---|---|
Load |
loadDemands |
amount |
string (รูปแบบ int64) | กำหนดข้อกำหนดด้านความจุของการจัดส่งในประเภทที่ระบุ |
LoadLimit |
loadLimits |
maxLoad |
string (รูปแบบ int64) | กำหนดความสามารถในการรับน้ำหนักสูงสุดของยานพาหนะในประเภทที่ระบุ |
ตัวอย่าง
ส่วนนี้จะครอบคลุมตัวอย่าง 3 ประเภท ได้แก่
- ตัวอย่างโค้ดที่แสดงโครงสร้างของพร็อพเพอร์ตี้ความต้องการและขีดจำกัดของโหลด
- สถานการณ์ตัวอย่างที่แสดงวิธีหนึ่งในการใช้ความต้องการโหลดและ ขีดจำกัดในคำขอ API
- ตัวอย่างคำขอที่มีค่าที่ตั้งไว้ใน สถานการณ์ตัวอย่าง
ตัวอย่างโค้ด
ตัวอย่างต่อไปนี้แสดงโครงสร้างของดีมานด์การโหลดที่คุณตั้งค่าประเภท loadDemands
เป็นสตริงและพร็อพเพอร์ตี้ amount
เป็นสตริงได้
ในรูปแบบ int64
{ "model": { "shipments": [ ... { "loadDemands": { "MATCHING_LOAD_TYPE": { "amount": "YOUR_LOAD_AMOUNT" } } } ], "vehicles": [ ... ] } }
ตัวอย่างต่อไปนี้แสดงโครงสร้างพื้นฐานที่สุดของขีดจำกัดการโหลด ซึ่งคุณ
สามารถตั้งค่าประเภท loadLimits
เป็นสตริง และพร็อพเพอร์ตี้ maxLoad
เป็นสตริงในรูปแบบ int64 ได้
{ "model": { "shipments": [ ... ], "vehicles": [ ... { "loadLimits": { "MATCHING_LOAD_TYPE": { "maxLoad": "YOUR_MAX_LOAD" } } } ] } }
สถานการณ์ตัวอย่าง
ส่วนนี้จะอธิบายสถานการณ์ที่คุณมีธุรกิจรับฝากเลี้ยงสุนัขและ คุณกำลังเพิ่มประสิทธิภาพเส้นทางเพื่อขนส่งสุนัข 2-3 ตัวในยานพาหนะที่มี กรงจำนวนจำกัด
การจัดส่งแต่ละครั้งหมายถึงจุดแวะพัก 1 แห่งที่คุณรับสุนัขจำนวนหนึ่ง ใน ตัวอย่างนี้ การจัดส่งแต่ละครั้งมีสถานที่รับสินค้าแตกต่างกัน ซึ่งก็คือบ้าน ของสุนัขที่คุณดูแล และการจัดส่งทั้งหมดมีสถานที่นำส่งเดียวกัน ซึ่งก็คืออาคารของศูนย์รับฝากสุนัข
สำหรับตัวอย่างนี้ ค่าพร็อพเพอร์ตี้ในคำขอของคุณคือค่าต่อไปนี้
ผู้ปกครอง | พร็อพเพอร์ตี้ | ประเภท | ค่า | สถานการณ์ |
---|---|---|---|---|
loadDemands |
ประเภทการใส่ผ้า | สตริง | dogUnit |
กำหนดประเภทการโหลดสำหรับการจัดส่ง ตัวอย่างนี้ใช้ dogUnit โดยที่ dogUnit แต่ละรายการแสดงถึงสุนัข 1 ตัว |
loadDemands |
amount |
ตัวเลข | การจัดส่งครั้งที่ 1: 1 การจัดส่งครั้งที่ 2: 3 |
ระบุจำนวนประเภทการโหลดที่กำหนด ในตัวอย่างนี้ คุณกำลังกำหนดการจัดส่ง 2 รายการ โดยรายการแรกเป็นการรับสุนัข 1 ตัว และรายการที่ 2 เป็นการรับสุนัข 3 ตัว |
loadLimits |
ประเภทการใส่ผ้า | สตริง | dogUnit |
กำหนดประเภทขีดจำกัดน้ำหนักที่ใช้กับยานพาหนะ ต้องตรงกันกับประเภทการโหลดของการจัดส่งเพื่อให้ขีดจำกัดมีความเกี่ยวข้อง |
loadLimits |
maxLoad |
ตัวเลข | 6 |
ระบุปริมาณสูงสุดของประเภทสัมภาระที่ยานพาหนะบรรทุกได้ ในตัวอย่างนี้ คุณมีรถเพียงคันเดียวที่มีความจุสูงสุด 6 dogUnit โดย dogUnit แต่ละรายการหมายถึงกรงสุนัข 1 กรง |
แผนภาพต่อไปนี้แสดงขีดจํากัดการรับน้ำหนักของยานพาหนะ ความต้องการในการรับน้ำหนักของสินค้าแต่ละรายการ และวิธีที่สินค้าแต่ละรายการใช้ขีดจํากัดการรับน้ำหนักของยานพาหนะ
ในตัวอย่างนี้ ความต้องการในการโหลดของการจัดส่งแต่ละครั้งและขีดจำกัดการโหลดของ ยานพาหนะมีผลดังนี้
เครื่องมือเพิ่มประสิทธิภาพจะไม่มีปัญหาในการสร้างเส้นทางให้ยานพาหนะขนส่งสุนัข เนื่องจากยานพาหนะสามารถบรรทุกสุนัขได้สูงสุด 6 ตัว และคุณรับสุนัขเพียง 4 ตัว
การมี
dogUnit
ขีดจำกัดการบรรทุก 6 ตัวในยานพาหนะยังหมายความว่าคุณ จะบรรทุกสุนัขได้อีกเพียง 2 ตัวในยานพาหนะคันนี้เท่านั้นหากจำนวนสุนัขมากกว่าขีดจำกัดการรับส่ง ตัวเพิ่มประสิทธิภาพจะข้ามการรับส่งครั้งใดครั้งหนึ่งหรือมอบหมายให้ยานพาหนะที่เหมาะสม
โปรดทราบว่าไม่มีชุดประเภทที่กำหนดไว้ล่วงหน้า ในตัวอย่างนี้ คุณสามารถ เปลี่ยนประเภทการโหลดจากหน่วยสุนัขเป็นหน่วยน้ำหนักเพื่อจำกัดน้ำหนักของ สุนัข หรือเปลี่ยนเป็นหน่วยวัดเชิงเส้นเพื่อจำกัดความกว้างหรือความสูงของสุนัข ความยืดหยุ่นนี้ช่วยให้คุณปรับแต่งความต้องการในการโหลดและขีดจำกัดให้ตรงกับความต้องการเฉพาะของคุณได้
ตัวอย่างคำขอ
ตัวอย่างต่อไปนี้แสดงโครงสร้างของคำขอ optimizeTours
พื้นฐาน
ซึ่งรวมค่าสถานการณ์ตัวอย่าง
{ "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 } ] } }
โปรดทราบว่าการจัดส่งอาจมีข้อกำหนดในการโหลดหลายรายการและยานพาหนะอาจมีขีดจำกัดในการโหลดหลายรายการ ซึ่งต่างจากตัวอย่างนี้ ซึ่งจะช่วยให้คุณระบุข้อจำกัดที่ซับซ้อนเพื่อนำมาพิจารณาเมื่อเพิ่มประสิทธิภาพเส้นทางของกลุ่มยานพาหนะได้
ขีดจำกัดการโหลดแบบไม่เข้มงวด
คุณกำหนดขีดจำกัดการบรรทุกเป็นข้อจำกัดแบบยืดหยุ่นได้โดยการเพิ่ม softMaxLoad
และ
costPerUnitAboveSoftMax
ใน loadLimits
ของยานพาหนะ ซึ่งจะช่วยให้
เครื่องมือเพิ่มประสิทธิภาพบรรทุกเกินน้ำหนักสูงสุดของยานพาหนะได้โดยมีค่าใช้จ่าย เพื่อให้ความสำคัญกับการ
เดินทางถึงจุดหมายมากกว่าการปฏิบัติตามขีดจำกัดน้ำหนักอย่างเคร่งครัด
คุณใช้ maxLoad
และ softMaxLoad
ร่วมกันเพื่อกำหนดทั้งขีดจำกัดการโหลดแบบเข้มงวดและแบบยืดหยุ่นได้ ในกรณีนี้ softMaxLoad
จะกำหนดภาระงานที่เกินได้ และ maxLoad
จะกำหนดขีดจำกัดที่เกินไม่ได้ เมื่อใช้ทั้ง 2 อย่าง maxLoad
ต้องมากกว่า softMaxLoad
พร็อพเพอร์ตี้
ตารางต่อไปนี้อธิบายพร็อพเพอร์ตี้ข้อจำกัดแบบยืดหยุ่นสำหรับความต้องการในการโหลด และขีดจำกัด
ผู้ปกครอง | ชื่อพร็อพเพอร์ตี้ | ประเภทที่พัก | คำอธิบายพร็อพเพอร์ตี้ |
---|---|---|---|
loadLimits |
softMaxLoad |
string (รูปแบบ int64) | น้ำหนักบรรทุกสูงสุดที่แนะนำสำหรับยานพาหนะ หากน้ำหนักบรรทุกของยานพาหนะเกินค่านี้ ระบบจะเรียกเก็บค่าใช้จ่าย |
loadLimits |
costPerUnitAboveSoftMax |
ตัวเลข | ค่าใช้จ่ายต่อหน่วยของน้ำหนักที่เกิน softMaxLoad ต้องระบุข้อมูลในช่องนี้เมื่อใช้ softMaxLoad ดูข้อมูลเพิ่มเติมเกี่ยวกับค่าใช้จ่ายได้ที่แนวคิดหลักของรูปแบบต้นทุน |
ตัวอย่างโค้ด
ตัวอย่างต่อไปนี้แสดงโครงสร้างของพร็อพเพอร์ตี้ข้อจำกัดแบบยืดหยุ่นของ
loadLimits
:
{ "loadLimits": { "LOAD_TYPE": { "softMaxLoad": "LOAD_AMOUNT", "costPerUnitAboveSoftMax": COST_PER_UNIT } } }