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

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

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

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

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

ที่พัก OptimzeToursRequest แห่ง

พร็อพเพอร์ตี้ที่ใช้กันโดยทั่วไปของข้อความ 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) ที่เกี่ยวข้องกับยานพาหนะแสดงปริมาณน้ำหนักบรรทุกที่ยานพาหนะรองรับได้ในแต่ละครั้ง อ่านเพิ่มเติมเกี่ยวกับโหลดได้ในความต้องการและขีดจำกัดการโหลด
  • penalty_cost แสดงค่าใช้จ่ายที่เกิดขึ้นหากข้ามการจัดส่ง อ่านเพิ่มเติมเกี่ยวกับค่าใช้จ่ายในพารามิเตอร์โมเดลค่าใช้จ่าย

อสังหาริมทรัพย์สำหรับยานพาหนะ

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

  • startLocation แสดงถึงจุดที่ยานพาหนะต้องเริ่มใช้เส้นทาง พร็อพเพอร์ตี้นี้ไม่บังคับ หากไม่ได้ระบุไว้ เส้นทางของรถจะเริ่มต้นจากสถานที่จัดส่งที่กำหนดครั้งแรก
  • endLocation แสดงถึงจุดที่ยานพาหนะต้องสิ้นสุดเส้นทาง พร็อพเพอร์ตี้นี้ไม่บังคับ หากไม่ได้ระบุไว้ เส้นทางของรถไปสิ้นสุดที่ตำแหน่งของการจัดส่งที่มอบหมายครั้งล่าสุด
  • startTimeWindows[] จะแสดงเวลาที่ยานพาหนะสามารถเริ่มใช้เส้นทางได้ พร็อพเพอร์ตี้นี้ไม่บังคับ
  • endTimeWindows[] จะแสดงเวลาที่ยานพาหนะสามารถเริ่มต้นและสิ้นสุดเส้นทาง พร็อพเพอร์ตี้ทั้งสองเป็นตัวเลือกที่ไม่บังคับ
  • 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