รูปแบบต้นทุน

พร็อพเพอร์ตี้ค่าใช้จ่ายจะกำหนดไว้ใน ShipmentModel.shipments.Shipment และ ShipmentModel.vehicles.Vehicle

เป้าหมายหลักของ Route Optimization API คือการค้นหาเส้นทางที่มีต้นทุนต่ำที่สุด ดังนั้น โมเดลต้นทุนจึงเป็นตัวขับเคลื่อนหลักในการเพิ่มประสิทธิภาพเส้นทาง

โมเดลต้นทุนคือชุดพร็อพเพอร์ตี้ที่ระบุต้นทุนทั่วโลก ต้นทุนยานพาหนะ และต้นทุนการจัดส่ง

พร็อพเพอร์ตี้โมเดลต้นทุนรองรับวัตถุประสงค์ในการเพิ่มประสิทธิภาพประเภทต่อไปนี้

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

โครงสร้าง

ดังที่แสดงในแผนภาพ พร็อพเพอร์ตี้โมเดลต้นทุนมีโครงสร้างดังนี้

เอกสารนี้จะเน้นเฉพาะพารามิเตอร์โมเดลต้นทุนที่สำคัญ ดูชุดพารามิเตอร์ต้นทุนทั้งหมดได้ในเอกสารอ้างอิง

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

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

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

ตารางต่อไปนี้แสดงและอธิบายพร็อพเพอร์ตี้โมเดลต้นทุน

ผู้ปกครอง ชื่อพร็อพเพอร์ตี้ ประเภทพร็อพเพอร์ตี้ ต้นทุนต่อ คำอธิบายพร็อพเพอร์ตี้
Shipment penaltyCost ตัวเลข การจัดส่งที่ข้ามไป ต้นทุนที่เกิดขึ้นจากการข้ามการจัดส่ง
API จะข้ามการจัดส่งเมื่อต้นทุนในการดำเนินการให้เสร็จสมบูรณ์สูงกว่าต้นทุนค่าปรับ
  • การตั้งค่า penaltyCost จะจัดลำดับความสำคัญของการจัดส่งที่มีต้นทุนสูงกว่า
  • การไม่ตั้งค่าการจัดส่ง penaltyCost จะทำให้การจัดส่งเป็นสิ่งที่ต้องทำ
  • การตั้งค่าการจัดส่ง penaltyCost เป็น 0 อย่างชัดเจนจะทำให้ API ข้ามการจัดส่งเสมอ เว้นแต่จะมีข้อจำกัดอื่นๆ กำหนดไว้
Vehicle fixedCost ตัวเลข การจัดส่ง ต้นทุนคงที่ที่ใช้หากยานพาหนะนี้ใช้จัดการการจัดส่ง
costPerHour ตัวเลข ชั่วโมง ต้นทุนการใช้งานยานพาหนะต่อชั่วโมง ซึ่งรวมถึงเวลาเดินทาง เวลาพัก เวลาแวะ และเวลาหยุด
เมื่อต้นทุนนี้เพิ่มขึ้น ตัวเพิ่มประสิทธิภาพจะพยายามค้นหาเส้นทางที่เร็วกว่าซึ่งอาจไม่ใช่เส้นทางที่สั้นที่สุด
พร็อพเพอร์ตี้นี้อาจเป็นต้นทุนแบบสแตนด์อโลนที่มีประสิทธิภาพต่อยานพาหนะแต่ละคันเนื่องจากมีความเรียบง่ายและครบถ้วน
costPerKilometer ตัวเลข กิโลเมตร ต้นทุนต่อกิโลเมตรที่ยานพาหนะเดินทาง ซึ่งอาจแสดงถึงต้นทุนเชื้อเพลิงหรือต้นทุนค่าบำรุงรักษายานพาหนะที่คิดค่าเสื่อมราคา
costPerTraveledHour ตัวเลข ชั่วโมง ต้นทุนการใช้งานยานพาหนะต่อชั่วโมงเฉพาะขณะเดินทาง โดยไม่รวมเวลาพัก เวลาแวะ และเวลาหยุด ซึ่งจะจัดลำดับความสำคัญของเส้นทางการเดินทางที่เร็วกว่าเส้นทางที่สั้นกว่า

ตัวอย่าง

ส่วนนี้ครอบคลุมตัวอย่าง 3 ประเภท ได้แก่

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

ตัวอย่างโค้ดต่อไปนี้แสดงโครงสร้างของพร็อพเพอร์ตี้โมเดลต้นทุนใน Shipment

{
  "model": {
    "shipments": [ ...
      {
        "penaltyCost": PENALTY_COST
      }
    ],
    "vehicles": [ ...
    ]
  }
}

ตัวอย่างโค้ดต่อไปนี้แสดงโครงสร้างของพร็อพเพอร์ตี้โมเดลต้นทุนใน Vehicle

{
  "model": {
    "shipments": [ ...
    ],
    "vehicles": [ ...
      {
        "fixedCost": FIXED_COST,
        "costPerKilometer": KILOMETER_COST,
        "costPerHour": HOUR_COST,
        "costPerTraveledHour": TRAVELED_HOUR_COST
      }
    ]
  }
}

สถานการณ์ตัวอย่าง

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

สำหรับตัวอย่างนี้ หน่วยต้นทุน 1 หน่วยแสดงถึง 1 ดอลลาร์ ซึ่งหมายความว่าค่าพร็อพเพอร์ตี้โมเดลต้นทุนในคำขอของคุณมีดังนี้

พร็อพเพอร์ตี้ ค่า สถานการณ์
penaltyCost 10 แสดงถึงค่าปรับที่คุณเสนอให้ลูกค้าที่ไม่มารับสุนัขในวันที่กำหนด ทุกครั้งที่คุณไม่มารับสุนัขในวันที่กำหนด ลูกค้าจะได้รับส่วนลด 40 ดอลลาร์จากยอดรวมค่าบริการ
fixedCost 30 แสดงถึงต้นทุนรายวันของการผ่อนชำระสินเชื่อยานพาหนะ ซึ่งอยู่ที่ 30 ดอลลาร์ต่อวัน
costPerKilometer 0.08 แสดงถึงปริมาณน้ำมันเบนซินที่ยานพาหนะใช้ต่อกิโลเมตร ยานพาหนะของคุณต้องใช้น้ำมัน 0.04 แกลลอนต่อกิโลเมตรในการเคลื่อนที่ และต้นทุนต่อแกลลอนในภูมิภาคของคุณคือ 2 ดอลลาร์
costPerHour 27 แสดงถึงจำนวนเงินที่คุณจ่ายให้คนขับสำหรับการขับยานพาหนะ คุณจ่ายให้คนขับ 27 ดอลลาร์ต่อชั่วโมง
costPerTraveledHour 2.5 แสดงถึงจำนวนเงินที่คุณต้องจ่ายสำหรับเครื่องปรับอากาศของยานพาหนะต่อชั่วโมงสำหรับสุนัขขณะอยู่บนท้องถนน เมื่อยานพาหนะไม่เคลื่อนที่ คนขับสามารถเปิดประตูหลังและปิดเครื่องปรับอากาศได้

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

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

ยานพาหนะมี 2 เส้นทางที่เป็นไปได้ โดยเส้นทางหนึ่งแสดงด้วยเส้นประสีเขียวซึ่งยาวกว่าแต่ไม่มีเหตุการณ์ใดๆ และอีกเส้นทางหนึ่งแสดงด้วยเส้นประสีแดงซึ่งสั้นกว่าแต่มีเหตุรถชนอยู่ตรงกลาง

ในสถานการณ์นี้ ความสมดุลของต้นทุนของเส้นทางทั้ง 2 เส้นทางมีดังนี้

  • เส้นประสีเขียวมี costPerHour และ costPerTraveledHour ต่ำเนื่องจากเป็นเส้นทางที่รวดเร็วและหลีกเลี่ยงการจราจร ซึ่ง คุ้มค่ากว่า แม้ว่า costPerKilometer จะสูงก็ตาม

  • เส้นประสีแดงมี costPerKilometer ต่ำเนื่องจากเป็น เส้นทางตรง แต่ costPerHour และ costPerTraveledHour สูง เกินไปเนื่องจากเวลาที่ต้องรอในการจราจร ทำให้เส้นทางนี้มีราคาแพงที่สุด

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

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

ตัวอย่างต่อไปนี้แสดงโครงสร้างของคำขอพื้นฐาน optimizeTours ที่รวมค่าที่ตั้งไว้ในสถานการณ์ตัวอย่าง

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.8024,
              "longitude": -122.4058
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.759773,
              "longitude": -122.427063
            }
          }
        ]
        "penaltyCost": 40
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "endLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "fixedCost": 30,
        "costPerKilometer": 0.08,
        "costPerHour": 27,
        "costPerTraveledHour": 2.5
      }
    ]
  }
}

พร็อพเพอร์ตี้การตอบกลับ

ข้อความ OptimizeToursResponse มีพร็อพเพอร์ตี้ต้นทุน ที่อธิบายต้นทุนที่เกิดขึ้นในกระบวนการดำเนินการเส้นทางให้เสร็จสมบูรณ์

  • metrics.costs: ต้นทุนทั้งหมดในทุกเส้นทางที่แบ่งตามช่องคำขอที่เกี่ยวข้องกับต้นทุน
  • metrics.totalCost: ต้นทุนทั้งหมดในทุกเส้นทางรวมกัน