สร้างข้อความคำขอ

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

  • โมเดลจะบันทึกการตั้งค่าและข้อจำกัดสำหรับทั้งคำขอ ซึ่งมีทั้ง Shipments และ Vehicles
  • การจัดส่งหมายถึงงานหรือการจัดส่งจริงที่รวมการรับสินค้าและการจัดส่ง VisitRequest การจัดส่งมีการตั้งค่าและข้อจำกัดในพื้นที่
  • ยานพาหนะแสดงถึงยานพาหนะ ผู้ขับขี่ หรือบุคลากร รถยนต์ยังมีการตั้งค่า และข้อจำกัดต่างๆ ภายในเครื่องด้วย

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

ดูเอกสารประกอบฉบับสมบูรณ์เกี่ยวกับข้อความแต่ละประเภทได้จากเอกสารอ้างอิงสำหรับข้อความ ShipmentModel (REST, gRPC), Shipment (REST, gRPC) และ Vehicle (REST, gRPC)

ที่พัก OptimizeToursRequest แห่ง

พร็อพเพอร์ตี้ที่ใช้กันโดยทั่วไปของข้อความ OptimizeToursRequest ระดับบนสุด (REST, gRPC) มีดังนี้

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

พร็อพเพอร์ตี้ของโมเดล

พร็อพเพอร์ตี้ที่ใช้กันโดยทั่วไปของข้อความ ShipmentModel (REST, gRPC) มีดังนี้

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

พร็อพเพอร์ตี้การจัดส่ง

พร็อพเพอร์ตี้ที่ใช้กันโดยทั่วไปของข้อความ Shipment (REST, gRPC) มีดังนี้

  • pickups[] และ deliveries[] แสดงถึงตำแหน่งที่สามารถไปรับหรือไปส่งพัสดุภัณฑ์ ทั้ง pickups[] และ deliveries[] ต่างใช้ข้อความ VisitRequest (REST, gRPC)
  • loadDemands แสดงถึงน้ำหนักบรรทุกที่จำเป็นสำหรับยานพาหนะในการจัดส่งให้เสร็จสมบูรณ์ พร็อพเพอร์ตี้ load_limits (REST, gRPC) ที่เกี่ยวข้องของยานพาหนะจะแสดงภาระงานที่ยานพาหนะรองรับได้ต่อ 1 ครั้ง อ่านเพิ่มเติมเกี่ยวกับการโหลดในความต้องการและข้อจำกัดในการโหลด
  • penalty_cost แสดงถึงค่าใช้จ่ายที่เกิดขึ้นหากข้ามการจัดส่ง อ่านเพิ่มเติมเกี่ยวกับต้นทุนในพารามิเตอร์รูปแบบต้นทุน

คุณสมบัติของยานพาหนะ

พร็อพเพอร์ตี้ที่ใช้กันโดยทั่วไปของข้อความ Vehicle (REST, gRPC) มีดังนี้

  • startLocation แสดงถึงตำแหน่งที่ยานพาหนะต้องเริ่มต้นเส้นทาง คุณจะระบุพร็อพเพอร์ตี้นี้หรือไม่ก็ได้ หากไม่ได้ระบุ เส้นทางของยานพาหนะจะเริ่มต้นจากสถานที่ที่มีการจัดส่งสินค้าครั้งแรก
  • endLocation แสดงถึงสถานที่ที่ยานพาหนะต้องสิ้นสุดเส้นทาง พร็อพเพอร์ตี้นี้ใส่หรือไม่ใส่ก็ได้ หากไม่ได้ระบุ เส้นทางของยานพาหนะจะสิ้นสุดที่ตำแหน่งของการจัดส่งล่าสุดที่กำหนด
  • startTimeWindows[] แสดงถึงเวลาที่ยานพาหนะสามารถเริ่มต้นเส้นทางได้ คุณจะระบุพร็อพเพอร์ตี้นี้หรือไม่ก็ได้
  • endTimeWindows[] แสดงถึงเวลาที่ยานพาหนะสามารถเริ่มต้นและสิ้นสุดเส้นทางได้ พร็อพเพอร์ตี้ทั้ง 2 รายการเป็นตัวเลือกที่ไม่บังคับ
  • loadLimits แสดงถึงความจุของยานพาหนะที่มีให้เลือกเพื่อตอบสนองความต้องการในการโหลดของการจัดส่ง อ่านเพิ่มเติมเกี่ยวกับความต้องการและขีดจำกัดในการโหลดในความต้องการและขีดจำกัดในการโหลด

ตัวอย่างคำขอที่สมบูรณ์ในรูปแบบ JSON มีลักษณะดังนี้

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.73881799999999,
              "longitude": -122.4161
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.79581,
              "longitude": -122.4218856
            }
          }
        ]
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        },
        "endLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        },
        "costPerKilometer": 1.0
      }
    ],
   "globalStartTime": "2024-02-13T00:00:00.000Z",
   "globalEndTime": "2024-02-14T06:00:00.000Z"
  }
}

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

การเปรียบเทียบ OptimizeTours และ BatchOptimizeTours