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

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

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

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

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

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

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

โครงสร้าง

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

  • loadDemands เป็นพร็อพเพอร์ตี้ของ Shipment A Shipment หนึ่งรายการมีความต้องการในการบรรทุกได้หลายรายการ
  • loadLimits เป็นพร็อพเพอร์ตี้ของ Vehicle A Vehicle หนึ่งคันสามารถมีขีดจำกัดในการบรรทุกได้หลายรายการ

รายการตรวจสอบที่สำคัญ

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

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

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

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

ประเภทการบรรทุก

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

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

Load และ LoadLimit

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

ออบเจ็กต์ ผู้ปกครอง พร็อพเพอร์ตี้ ประเภทพร็อพเพอร์ตี้ คำอธิบายพร็อพเพอร์ตี้
Load loadDemands amount สตริง (รูปแบบ int64) กำหนดข้อกำหนดด้านความจุของการจัดส่งในประเภทที่ระบุ
LoadLimit loadLimits maxLoad สตริง (รูปแบบ 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 ช่องซึ่งแสดงถึงขีดจำกัดการบรรทุกของยานพาหนะ การจัดส่งครั้งแรกต้องการพื้นที่สำหรับสุนัข 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
      }
    ]
  }
}

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

ขีดจำกัดในการบรรทุกแบบไม่เข้มงวด

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

คุณสามารถใช้ maxLoad และ softMaxLoad ร่วมกันเพื่อตั้งค่าขีดจำกัดในการบรรทุกแบบเข้มงวด และแบบไม่เข้มงวด ในกรณีนี้ softMaxLoad จะตั้งค่าการบรรทุกที่สามารถ เกินได้ และ maxLoad จะตั้งค่าขีดจำกัดแบบเข้มงวดที่ไม่สามารถเกินได้ เมื่อ ใช้ทั้ง 2 ค่า maxLoad ต้องมีค่ามากกว่า softMaxLoad

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

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

ผู้ปกครอง ชื่อพร็อพเพอร์ตี้ ประเภทพร็อพเพอร์ตี้ คำอธิบายพร็อพเพอร์ตี้
loadLimits softMaxLoad สตริง (รูปแบบ int64) การบรรทุกสูงสุดที่ต้องการสำหรับยานพาหนะ หากการบรรทุกของยานพาหนะเกินค่านี้ จะมีค่าใช้จ่ายเกิดขึ้น
loadLimits costPerUnitAboveSoftMax ตัวเลข ค่าใช้จ่ายต่อหน่วยการบรรทุกที่เกิน softMaxLoad ต้องระบุข้อมูลในช่องนี้เมื่อใช้ softMaxLoad ดูข้อมูลเพิ่มเติมเกี่ยวกับค่าใช้จ่ายได้ที่แนวคิดหลักของโมเดลต้นทุน

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

ตัวอย่างต่อไปนี้แสดงโครงสร้างของพร็อพเพอร์ตี้ข้อจำกัดแบบไม่เข้มงวดของ loadLimits

{
   "loadLimits": {
        "LOAD_TYPE": {
          "softMaxLoad": "LOAD_AMOUNT",
          "costPerUnitAboveSoftMax": COST_PER_UNIT
        }
      }
}