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

พร็อพเพอร์ตี้ 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 ตัว

  • การมี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
        }
      }
}