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

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

  • โมเดลจะบันทึกการตั้งค่าและข้อจำกัดสําหรับคําขอทั้งหมด ซึ่งรวมถึงทั้ง 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