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

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

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

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

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

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

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

โครงสร้าง

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

  • loadDemands เป็นพร็อพเพอร์ตี้ของ Shipment Shipment 1 รายการอาจมีดีมานด์โหลดหลายรายการ
  • loadLimits เป็นพร็อพเพอร์ตี้ของ Vehicle Vehicle 1 รายการมีขีดจำกัดการโหลดได้หลายรายการ

รายการตรวจสอบ Essentials

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

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

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

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

ประเภทการใส่ผ้า

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

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

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

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

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

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