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

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

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

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

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

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

  • 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 ประเภท ได้แก่

ตัวอย่างโค้ด

ตัวอย่างต่อไปนี้แสดงโครงสร้างของดีมานด์การโหลดที่คุณสามารถตั้งค่าประเภท 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 ช่อง ซึ่งแสดงถึงขีดจำกัดน้ำหนักบรรทุกของยานพาหนะ การจัดส่งแรกต้องใช้พื้นที่สำหรับสุนัข 1 ตัว ส่วนการจัดส่งที่ 2 ต้องใช้พื้นที่สำหรับสุนัข 3 ตัว สถานะสุดท้ายของยานพาหนะคือมีรถจอดอยู่ 4 จาก 6 ช่อง และเหลือพื้นที่ว่าง 2 ช่อง

ในตัวอย่างนี้ ดีมานด์การบรรทุกของการจัดส่งแต่ละรายการและขีดจำกัดน้ำหนักบรรทุกของยานพาหนะมีผลดังนี้

  • เครื่องมือเพิ่มประสิทธิภาพจะไม่มีปัญหาในการสร้างเส้นทางสำหรับยานพาหนะเพื่อขนส่งสุนัข เนื่องจากยานพาหนะสามารถบรรทุกสุนัขได้สูงสุด 6 ตัว และคุณกำลังจะไปรับสุนัขเพียง 4 ตัว

  • การมีขีดจำกัดน้ำหนักบรรทุก 6 dogUnit ในยานพาหนะยังหมายความว่าคุณจะสามารถขนสุนัขเพิ่มอีก 2 ตัวในยานพาหนะคันนี้ได้เท่านั้น

  • หากจำนวนสุนัขมากกว่าขีดจำกัดน้ำหนักบรรทุก ตัวเพิ่มประสิทธิภาพจะข้ามการรับส่งสุนัข 1 รายการหรือมอบหมายให้ยานพาหนะที่เหมาะกับสุนัข

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

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

ตัวอย่างต่อไปนี้แสดงโครงสร้างของคําขอ 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
      }
    ]
  }
}

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