โซลูชันที่แทรกในคําขอ รวมถึงข้อมูลเกี่ยวกับการเข้าชมที่ต้องจํากัดและวิธีจํากัด
การแสดง JSON |
---|
{ "routes": [ { object ( |
ช่อง | |
---|---|
routes[] |
เส้นทางของโซลูชันที่จะแทรก ระบบอาจละเว้นเส้นทางบางเส้นทางจากโซลูชันเดิม เส้นทางและการจัดส่งที่ข้ามต้องเป็นไปตามสมมติฐานพื้นฐานเกี่ยวกับความถูกต้องที่ระบุไว้สำหรับ |
skipped |
ข้ามการจัดส่งโซลูชันที่จะแทรก บางรายการอาจไม่รวมอยู่ในโซลูชันต้นฉบับ ดูที่ช่อง |
constraint |
สำหรับกลุ่มยานพาหนะตั้งแต่ 0 กลุ่มขึ้นไป ให้ระบุเวลาและจำนวนที่จะผ่อนคลายข้อจำกัด หากช่องนี้ว่างเปล่า เส้นทางยานพาหนะที่ไม่ใช่ค่าว่างทั้งหมดจะถูกจำกัดอย่างสมบูรณ์ |
ConstraintRelaxation
สําหรับกลุ่มยานพาหนะ ให้ระบุเกณฑ์ที่ระบบจะผ่อนคลายข้อจํากัดการเข้าชมและระดับที่ผ่อนคลาย ระบบจะข้ามการจัดส่งที่แสดงในช่อง skipped_shipment
กล่าวคือ การดำเนินการดังกล่าวจะดำเนินการไม่ได้
การแสดง JSON |
---|
{
"relaxations": [
{
object ( |
ช่อง | |
---|---|
relaxations[] |
การผ่อนคลายข้อจำกัดการเข้าชมทั้งหมดที่จะมีผลกับการเข้าชมในเส้นทางที่มียานพาหนะใน |
vehicle |
ระบุดัชนียานพาหนะที่ข้อจำกัดการเข้าชม ดัชนียานพาหนะจะแมปเหมือนกับ |
การพักผ่อน
หาก relaxations
ว่างเปล่า ระบบจะจำกัดเวลาเริ่มต้นและลําดับการเข้าชมทั้งหมดใน routes
อย่างสมบูรณ์ และจะไม่แทรกหรือเพิ่มการเข้าชมใหม่ลงในเส้นทางเหล่านั้น นอกจากนี้ เวลาเริ่มต้นและสิ้นสุดของยานพาหนะใน routes
จะถูกจำกัดอย่างสมบูรณ์ เว้นแต่ยานพาหนะจะว่างเปล่า (กล่าวคือ ไม่มีการเข้าชมและตั้งค่า usedIfRouteIsEmpty
เป็นเท็จในโมเดล)
relaxations(i).level
ระบุระดับการผ่อนคลายข้อจำกัดที่ใช้กับการเข้าชม #j ที่ตรงกับเงื่อนไขต่อไปนี้
route.visits(j).start_time >= relaxations(i).threshold_time
ANDj + 1 >= relaxations(i).threshold_visit_count
ในทำนองเดียวกัน ระบบจะผ่อนปรนการสตาร์ทยานพาหนะเป็น relaxations(i).level
หากมีคุณสมบัติตรงตามข้อกำหนดต่อไปนี้
vehicleStartTime >= relaxations(i).threshold_time
ANDrelaxations(i).threshold_visit_count == 0
และปลายรถจะผ่อนปรนเป็นrelaxations(i).level
หากเป็นไปตามข้อกำหนดต่อไปนี้vehicleEndTime >= relaxations(i).threshold_time
ANDroute.visits_size() + 1 >= relaxations(i).threshold_visit_count
หากต้องการใช้ระดับการผ่อนคลายในกรณีที่การเข้าชมตรงกับ thresholdVisitCount
หรือ thresholdTime
ให้เพิ่ม relaxations
2 รายการที่มี level
เดียวกัน โดยรายการหนึ่งตั้งค่าเป็น thresholdVisitCount
เท่านั้น และอีกรายการตั้งค่าเป็น thresholdTime
เท่านั้น หากการเข้าชมตรงตามเงื่อนไขของ relaxations
หลายรายการ ระบบจะใช้ระดับที่ผ่อนปรนที่สุด ด้วยเหตุนี้ ตั้งแต่จุดเริ่มต้นของยานพาหนะไปจนถึงจุดสิ้นสุดของยานพาหนะ ระดับความผ่อนคลายจะผ่อนคลายมากขึ้น กล่าวคือ ระดับความผ่อนคลายจะไม่ลดลงเมื่อเส้นทางดำเนินไป
ช่วงเวลาและลําดับการเข้าชมเส้นทางที่ไม่เป็นไปตามเงื่อนไขเกณฑ์ของ relaxations
ใดๆ จะถูกจํากัดอย่างสมบูรณ์และจะไม่มีการแทรกการเข้าชมลงในลําดับเหล่านี้ นอกจากนี้ หากการเริ่มต้นหรือสิ้นสุดของยานพาหนะไม่เป็นไปตามเงื่อนไขของการผ่อนปรนใดๆ ระบบจะกำหนดเวลาให้คงที่ เว้นแต่ว่ายานพาหนะจะว่างเปล่า
การแสดง JSON |
---|
{
"level": enum ( |
ช่อง | |
---|---|
level |
ระดับการผ่อนคลายข้อจำกัดที่มีผลเมื่อเงื่อนไขตั้งแต่ |
threshold |
เวลาที่จะใช้การผ่อนปรน การประทับเวลาจะอยู่ในรูปแบบ RFC3339 UTC "Zulu" ที่มีความละเอียดระดับนาโนวินาทีและทศนิยมสูงสุด 9 หลัก ตัวอย่างเช่น |
threshold |
จํานวนการเข้าชมที่จะเริ่มใช้การผ่อนปรน หากเป็น |
ระดับ
แสดงระดับการผ่อนคลายข้อจำกัดต่างๆ ซึ่งมีผลกับการเข้าชมและการเข้าชมที่ตามมาเมื่อเป็นไปตามเงื่อนไขเกณฑ์
การแจกแจงด้านล่างนี้จัดเรียงตามระดับความผ่อนคลายที่เพิ่มขึ้น
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 แต่ยานพาหนะจะผ่อนปรนด้วยเช่นกัน นั่นคือการเข้าชมจะฟรีโดยสมบูรณ์เมื่อถึงหรือหลังจากเวลาที่กำหนด และอาจไม่มีการเรียกใช้ |