โซลูชันที่แทรกอยู่ในคำขอ รวมถึงข้อมูลว่าต้องจำกัดการเข้าชมใดบ้างและวิธีการจำกัดการเข้าชม
การแสดง JSON |
---|
{ "routes": [ { object ( |
ช่อง | |
---|---|
routes[] |
เส้นทางของโซลูชันที่จะแทรก บางเส้นทางอาจถูกตัดออกจากโซลูชันเดิม เส้นทางและการจัดส่งที่ข้ามไปต้องเป็นไปตามสมมติฐานเกี่ยวกับความถูกต้องพื้นฐานที่ระบุไว้สำหรับ |
skippedShipments[] |
ข้ามการจัดส่งโซลูชันที่จะใส่ โซลูชันบางอย่างอาจไม่รวมอยู่ในโซลูชันต้นฉบับ โปรดดูช่อง |
constraintRelaxations[] |
สําหรับกลุ่มยานพาหนะ 0 กลุ่มขึ้นไป ให้ระบุเวลาและระยะเวลาที่จะลดข้อจํากัด หากช่องนี้เว้นว่างไว้ ระบบจะจำกัดเส้นทางยานพาหนะทุกเส้นทางที่ไม่ว่างเปล่าให้หมด |
ConstraintRelaxation
สำหรับกลุ่มยานพาหนะ ให้ระบุว่าข้อจำกัดในการเข้าชมใดที่จะมีการผ่อนปรนและที่ระดับใด ระบบจะจำกัดการจัดส่งที่ระบุในช่อง skipped_shipment
กล่าวคือ ทำให้ไม่สามารถดำเนินการได้
การแสดง JSON |
---|
{
"relaxations": [
{
object ( |
ช่อง | |
---|---|
relaxations[] |
การผ่อนปรนข้อจำกัดการเข้าชมทั้งหมดที่จะมีผลกับการเข้าชมบนเส้นทางที่มียานพาหนะใน |
vehicleIndices[] |
ระบุดัชนียานพาหนะที่ข้อจำกัดการเข้าชม ดัชนีรถยนต์ได้รับการแมปเหมือนกับ |
การพักผ่อน
หาก relaxations
ว่างเปล่า เวลาเริ่มต้นและลำดับการเข้าชมทั้งหมดในวันที่ routes
จะถูกจำกัดอย่างสิ้นเชิง และจะไม่สามารถแทรกหรือเพิ่มการเข้าชมใหม่ลงในเส้นทางเหล่านั้นได้ นอกจากนี้ เวลาเริ่มต้นและสิ้นสุดของยานพาหนะใน routes
จะมีข้อจำกัดโดยสมบูรณ์ ยกเว้นในกรณีที่รถว่างเปล่า (กล่าวคือ ไม่มีการเข้าชมและตั้งค่า usedIfRouteIsEmpty
เป็น "เท็จ" ในรุ่น)
relaxations(i).level
ระบุระดับการผ่อนปรนข้อจำกัดที่ใช้กับการเข้าชม #j ซึ่งเป็นไปตามเงื่อนไขต่อไปนี้
route.visits(j).start_time >= relaxations(i).threshold_time
และj + 1 >= relaxations(i).threshold_visit_count
ในทำนองเดียวกัน การสตาร์ทรถจะผ่อนปรนถึง relaxations(i).level
หากเป็นไปตามเงื่อนไขต่อไปนี้
vehicleStartTime >= relaxations(i).threshold_time
และrelaxations(i).threshold_visit_count == 0
และจุดสิ้นสุดยานพาหนะจะผ่อนปรนถึงrelaxations(i).level
หากเป็นไปตามเงื่อนไขต่อไปนี้vehicleEndTime >= relaxations(i).threshold_time
และroute.visits_size() + 1 >= relaxations(i).threshold_visit_count
หากต้องการใช้ระดับการผ่อนคลายหากการเข้าชมตรงกับ thresholdVisitCount
หรือ thresholdTime
เพิ่ม relaxations
2 รายการซึ่งมี level
เดียวกัน: รายการหนึ่งมี thresholdVisitCount
ที่ตั้งไว้ และอีกรายการมี thresholdTime
เท่านั้น หากการเข้าชมเป็นไปตามเงื่อนไขของ relaxations
หลายรายการ ระบบจะใช้ระดับที่ผ่อนคลายมากที่สุด ผลที่ตามมาคือ ระดับความผ่อนคลายจะไม่ลดลงตั้งแต่ที่ยานพาหนะเริ่มผ่านการเข้าชมเส้นทางไปจนถึงจุดสิ้นสุดของยานพาหนะ กล่าวคือ ระดับการผ่อนคลายจะไม่ลดลงเมื่อเส้นทางคืบหน้าไปเรื่อยๆ
เวลาและลำดับของการเข้าชมเส้นทางที่ไม่ตรงกับเงื่อนไขของเกณฑ์ของ relaxations
จะถูกจำกัดอย่างสมบูรณ์ และไม่สามารถแทรกการเข้าชมลงในลำดับเหล่านี้ได้ นอกจากนี้ หากสตาร์ทหรือท้ายรถไม่เป็นไปตามเงื่อนไขของการผ่อนปรน เวลาจะคงที่เว้นแต่จะว่าง
การแสดง JSON |
---|
{
"level": enum ( |
ช่อง | |
---|---|
level |
ระดับการผ่อนปรนข้อจำกัดที่มีผลเมื่อเป็นไปตามเงื่อนไขที่หรือหลังจาก |
thresholdTime |
เวลาที่อาจใช้ การประทับเวลาจะอยู่ในรูปแบบ RFC3339 UTC "Zulu" ที่มีความละเอียดระดับนาโนวินาทีและมีตัวเลขที่เป็นเศษส่วนได้สูงสุด 9 หลัก ตัวอย่าง: |
thresholdVisitCount |
จำนวนการเข้าชมที่ หากเป็น |
ระดับ
แสดงระดับการผ่อนปรนข้อจำกัดต่างๆ ซึ่งใช้สำหรับการเข้าชมและระดับที่ตามมาเมื่อเป็นไปตามเงื่อนไขของเกณฑ์
แจกแจงด้านล่างตามลำดับเพื่อความผ่อนคลายมากขึ้น
Enum | |
---|---|
LEVEL_UNSPECIFIED |
ระดับความผ่อนคลายเริ่มต้นโดยนัย: ไม่มีข้อจำกัดใดๆ กล่าวคือ การเข้าชมทั้งหมดจะถูกจำกัดทั้งหมด ต้องไม่ใช้ค่านี้อย่างชัดเจนใน |
RELAX_VISIT_TIMES_AFTER_THRESHOLD |
เวลาเริ่มต้น/สิ้นสุดของยานพาหนะจะผ่อนปรน แต่การเยี่ยมชมแต่ละครั้งจะยังคงผูกอยู่กับรถคันเดียวกัน และจะต้องสังเกตลำดับการเข้าชม โดยไม่สามารถแทรกการเข้าชมระหว่างสองหรือก่อนการเข้าชมได้ |
RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD |
เหมือนกับ RELAX_VISIT_TIMES_AFTER_THRESHOLD แต่ลำดับการเข้าชมก็ผ่อนคลายเช่นกัน กล่าวคือ การเข้าชมจะยังคงเชื่อมโยงกับยานพาหนะเท่านั้น |
RELAX_ALL_AFTER_THRESHOLD |
เหมือนกันกับ RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD แต่ยานพาหนะก็ผ่อนคลายเช่นกัน กล่าวคือ การเข้าชมจะไม่เสียค่าใช้จ่ายใดๆ เลยในเวลาตามเกณฑ์หรือหลังจากพ้นเวลาที่กำหนด และอาจไม่มีประสิทธิภาพ |