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

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

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

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

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

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

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

โครงสร้าง

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

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

รายการตรวจสอบข้อมูลสำคัญ

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

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

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

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

ประเภทน้ำหนักบรรทุก

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

ประเภทน้ำหนักบรรทุกใช้ไวยากรณ์ประเภทแผนที่ Protocol Buffers เมื่อตั้งชื่อประเภทน้ำหนักบรรทุก ให้ใช้ตัวระบุที่อธิบายประเภทน้ำหนักบรรทุกและหน่วยของน้ำหนักบรรทุก เช่น 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 ตัวเลข ค่าใช้จ่ายต่อน้ำหนักบรรทุก 1 หน่วยที่เกิน softMaxLoad ต้องระบุข้อมูลในช่องนี้เมื่อใช้ softMaxLoad ดูข้อมูลเพิ่มเติมเกี่ยวกับค่าใช้จ่ายได้ที่แนวคิดหลักของโมเดลต้นทุน

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

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

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