วัตถุประสงค์

พร็อพเพอร์ตี้วัตถุประสงค์ประกอบด้วย `objectives` ใน `ShipmentModel` และ `type` และ `weight` ใน `objectives`

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

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

คุณสามารถใช้เป้าหมายเพื่อควบคุมผลกระทบต่อไปนี้ในแผนเส้นทาง

  • ระยะเวลาเดินทางหรือระยะทางรวมของเส้นทาง
  • เวลาทำงานทั้งหมดในยานพาหนะทุกคัน
  • จำนวนยานพาหนะทั้งหมดที่ใช้

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

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

ช่อง ประเภท คำอธิบาย
type ค่าแจกแจง ระบุเป้าหมายการเพิ่มประสิทธิภาพที่กําหนดไว้ล่วงหน้า ค่าที่ยอมรับมีดังนี้
  • DEFAULT: ใช้ชุดต้นทุนเริ่มต้นเพื่อให้มั่นใจว่ามีโซลูชันพื้นฐาน ซึ่งหมายความว่าโซลูชันจะไม่ใช้ค่าที่มากเกินไปเพื่อให้บรรลุวัตถุประสงค์ ระบบจะเพิ่ม DEFAULT ลงในคำขอที่มีวัตถุประสงค์โดยอัตโนมัติ และจะเพิ่มพร้อมกับ weight ของ 1.0 หากคุณระบุวัตถุประสงค์นี้ในคำขออย่างชัดเจน โซลูชันจะใช้ weight ที่คุณระบุ
  • MIN_DISTANCE: ลดระยะทางรวมที่เดินทาง
  • MIN_WORKING_TIME: ลดเวลาทำงานทั้งหมดที่รวมกันของยานพาหนะทั้งหมด
  • MIN_TRAVEL_TIME: ลดระยะเวลาเดินทางทั้งหมดที่รวมกันของยานพาหนะทั้งหมด
  • MIN_NUM_VEHICLES: ลดจำนวนยานพาหนะที่ใช้
weight ดับเบิล กำหนดความสำคัญสัมพัทธ์ของวัตถุประสงค์นี้ เมื่อใช้วัตถุประสงค์หลายอย่าง ค่า weight จะควบคุมว่าวัตถุประสงค์ที่เฉพาะเจาะจงนี้มีอิทธิพลต่อการเพิ่มประสิทธิภาพเส้นทางโดยรวมมากน้อยเพียงใดเมื่อเทียบกับวัตถุประสงค์อื่นๆ ซึ่งอาจเป็นจำนวนใดๆ ก็ได้ที่ไม่ติดลบและไม่จำเป็นต้องรวมกันเป็น 1 ค่าเริ่มต้นคือ 1.0

ตัวอย่าง

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

  • ตัวอย่างโค้ดที่แสดงโครงสร้างของอาร์เรย์ objectives
  • ตัวอย่างคำขอที่มีอาร์เรย์ objectives

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

ตัวอย่างต่อไปนี้แสดงโครงสร้างของ objectives

"objectives": [
  {
    "type": "OBJECTIVE_TYPE",
    "weight": WEIGHT
  }
]

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

ตัวอย่างต่อไปนี้แสดงโครงสร้างของคำขอ optimizeTours พื้นฐานที่รวมวัตถุประสงค์หลายอย่าง โดยที่ MIN_TRAVEL_TIME มีความสำคัญเป็น 3 เท่า ของ MIN_WORKING_TIME

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.42506261000996,
              "longitude": -122.09535511930135
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.42421503206021,
              "longitude": -122.09526063135228
            }
          }
        ]
      }
    ],
    "vehicles": [
      {
        "travelMode": "DRIVING"
      }
    ],
    "objectives": [
      {
        "type": "MIN_TRAVEL_TIME",
        "weight": 3.0
      },
      {
        "type": "MIN_WORKING_TIME"
      }
    ]
  }
}

สร้างโมเดลต้นทุน

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

คุณสามารถเริ่มพัฒนาโมเดลต้นทุนของคุณเองได้โดยการเพิ่มวัตถุประสงค์ลงในคำขอ จากนั้นแปลงวัตถุประสงค์ในคำขอเป็นพารามิเตอร์โมเดลต้นทุน โดยใช้โหมดTRANSFORM_AND_RETURN_REQUESTการแก้ปัญหา

เมื่อคุณส่งคำขอโดยใช้โหมดการแก้ปัญหานี้ จะเกิดสิ่งต่อไปนี้

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

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

ตัวอย่างต่อไปนี้แสดงคำขอที่ใช้MIN_TRAVEL_TIMEวัตถุประสงค์และ โหมดการแก้ปัญหา TRANSFORM_AND_RETURN_REQUEST

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.42506261000996,
              "longitude": -122.09535511930135
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.42421503206021,
              "longitude": -122.09526063135228
            }
          }
        ]
      }
    ],
    "vehicles": [
      {
        "travelMode": "DRIVING"
      }
    ],
    "objectives": [
      {
        "type": "MIN_TRAVEL_TIME"
      }
    ]
  },
  "solvingMode": "TRANSFORM_AND_RETURN_REQUEST"
}

ตัวอย่างการตอบกลับ

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

{
  "processedRequest": {
    "model": {
      "shipments": [
        {
          "pickups": [
            {
              "arrivalLocation": {
                "latitude": 37.425062610009959,
                "longitude": -122.09535511930135
              }
            }
          ],
          "deliveries": [
            {
              "arrivalLocation": {
                "latitude": 37.424215032060211,
                "longitude": -122.09526063135228
              }
            }
          ]
        }
      ],
      "vehicles": [
        {
          "travelMode": "DRIVING",
          "costPerHour": 30,
          "costPerTraveledHour": 330,
          "costPerKilometer": 0.2
        }
      ],
      "objectives": [
        {
          "type": "MIN_TRAVEL_TIME"
        }
      ]
    },
    "solvingMode": "TRANSFORM_AND_RETURN_REQUEST"
  }
}