คู่มือนี้แสดงการใช้งานที่เป็นไปได้ของแอตทริบิวต์การเปลี่ยน โดยจะสอนวิธีสร้างโมเดลสถานการณ์จริงใน 2 ตัวอย่าง ได้แก่ การรวมเวลาจอดรถเข้ากับเส้นทางที่เพิ่มประสิทธิภาพ และการตรวจสอบว่าแต่ละเส้นทางสิ้นสุดด้วยการไปที่สถานที่ตั้งที่เฉพาะเจาะจง
ก่อนเริ่มต้น
คุณใช้แอตทริบิวต์การเปลี่ยนเส้นทางเพื่อเพิ่มค่าใช้จ่ายและความล่าช้าเฉพาะรูปแบบไปยัง การเปลี่ยนเส้นทางบางอย่างในเส้นทางที่เพิ่มประสิทธิภาพ ระบบจะเพิ่มค่าใช้จ่ายและความล่าช้าเหล่านี้ นอกเหนือจากระยะเวลาการเปลี่ยนเส้นทางและค่าใช้จ่ายที่คำนวณจากข้อมูลแผนที่ ตามพารามิเตอร์ของยานพาหนะที่ใช้
การเปลี่ยนเส้นทางคือส่วนของเส้นทางที่เชื่อมต่อสถานที่หนึ่งไปยังสถานที่ถัดไป
ตำแหน่งหมายถึงจุดใดจุดหนึ่งต่อไปนี้ในเส้นทางของยานพาหนะ
- จุดเริ่มต้นของเส้นทาง
- จุดแวะพักที่มีการรับหรือนำส่ง
- จุดสิ้นสุดของเส้นทาง
คุณกำหนดแอตทริบิวต์การเปลี่ยนทั้งหมดสำหรับโมเดลได้โดยการเพิ่มแอตทริบิวต์ลงในรายการ
ShipmentModel.transition_attributes
องค์ประกอบแต่ละรายการในลิสต์จะกำหนดแอตทริบิวต์การเปลี่ยนฉาก 1 ชุด และจะ
จับคู่กับการเปลี่ยนฉากในเส้นทางโดยใช้แท็กในตำแหน่งเริ่มต้นและตำแหน่ง
สิ้นสุดของการเปลี่ยนฉาก ดูข้อมูลเพิ่มเติมเกี่ยวกับแอตทริบิวต์การเปลี่ยนฉากได้ใน
เอกสารอ้างอิงสำหรับ
TransitionAttributes
จำลองสถานการณ์ในโลกแห่งความเป็นจริง
ส่วนนี้แสดงตัวอย่างเล็กๆ 2 ตัวอย่างเกี่ยวกับวิธีกำหนดข้อจำกัดทางธุรกิจในโลกแห่งความเป็นจริงโดยใช้แอตทริบิวต์การเปลี่ยน
จองเวลาสำหรับจอดรถ
ในสถานการณ์นี้ คนขับต้องจอดรถก่อนจึงจะไปที่ ตำแหน่ง ก ได้ สถานที่ B อยู่ใกล้ๆ และคนขับสามารถใช้จุดจอดรถเดียวกัน สำหรับการเข้าชมทั้ง 2 ครั้ง หากคนขับไปที่ B ทันทีหลังจากไปที่ A ก็จะประหยัดเวลาได้เนื่องจาก ไม่ต้องออกจากจุดจอดรถและจอดรถอีกครั้ง ใน Route Optimization API คุณสามารถใช้แอตทริบิวต์การเปลี่ยนผ่านเพื่อเพิ่มเวลาพิเศษในการ จอดรถได้เฉพาะเมื่อคนขับย้ายจากจุดจอดรถหนึ่งไปยังอีกจุดหนึ่งเท่านั้น
เมื่อสร้างโมเดลเวลาจอดรถแยกจากระยะเวลาการเข้าชม คุณจะสร้างเส้นทาง ที่ระบบจะจัดกลุ่มการเข้าชมที่ใช้ที่จอดรถเดียวกันได้ในเวลาที่น้อยลง คุณทำให้โมเดลแม่นยำยิ่งขึ้น และยังทำให้เครื่องมือเพิ่มประสิทธิภาพชอบเส้นทางที่มีการจัดกลุ่มการเข้าชมด้วย
ทำตามขั้นตอนต่อไปนี้เพื่อดำเนินการนี้ในคำขอ Route Optimization API
ใช้
VisitRequest.duration
เฉพาะเวลาที่จำเป็นในการเข้าชมเท่านั้น เช่น เพื่อส่งมอบ พัสดุและรวบรวมลายเซ็นจากลูกค้าสำหรับจุดจอดรถที่แตกต่างกันแต่ละจุดที่ใช้ในโมเดล ให้ใช้แท็กใหม่ที่ไม่ได้ ใช้สำหรับสิ่งอื่นในโมเดล เช่น
PARKING_123
เพิ่มแท็กนี้ไปยังรายการต่อไปนี้
VisitRequest.tags
ในคำขอการเข้าชมทั้งหมดที่ใช้จุดจอดรถนี้Vehicle.start_tags
หากยานพาหนะเริ่มเส้นทางที่จุดจอดรถนี้Vehicle.end_tags
หากยานพาหนะเริ่มและสิ้นสุดเส้นทางที่จุดจอดรถนี้
สำหรับแท็กที่จอดรถใหม่แต่ละรายการ ให้เพิ่มรายการลงใน
ShipmentModel.transition_attributes
ซึ่งจะเพิ่มเวลาที่ใช้ในการจอดรถเมื่อมาจากจุดจอดรถอื่นโดย ทำดังนี้ตั้งค่า
TransitionAttributes.excluded_src_tag
และTransitionAttributes.dst_tag
เป็นPARKING_123
ตั้งค่า
TransitionAttributes.delay
เป็นเวลาที่ต้องใช้ในการจอดรถ
ตัวอย่างเช่น เมื่อแท็กของสถานที่ตั้งคือ
PARKING_123
และใช้เวลา 150 วินาทีในการจอดรถ คุณจะเพิ่มรายการต่อไปนี้ ในShipmentModel.transition_attributes
{ "excluded_src_tag": "PARKING_123", "dst_tag": "PARKING_123", "delay": "150s" }
การทำความสะอาดที่จำเป็นเมื่อสิ้นสุดเส้นทาง
ในสถานการณ์นี้ ต้องทำความสะอาดรถเมื่อสิ้นสุดเส้นทาง โดยมีข้อจำกัดเพิ่มเติมดังนี้
- โดยจะทำความสะอาดที่โรงงานทำความสะอาดเฉพาะทางก่อนส่งคืนไปยัง คลังเก็บยานพาหนะ เส้นทางที่เพิ่มประสิทธิภาพจะใช้สถานที่ทำความสะอาดที่ดีที่สุดตามตำแหน่งของสถานที่นั้นๆ และตำแหน่งของการรับและนำส่งที่ยานพาหนะดำเนินการ
- หลังจากทำความสะอาดแล้ว ยานพาหนะต้องไม่รับหรือนำส่งเพิ่มเติม
- เวลาขับรถไปที่จุดจอดและทำความสะอาดยานพาหนะจะนับรวมในชั่วโมงการทำงานของคนขับ และต้องอยู่ในระยะเวลาสูงสุดของเส้นทาง
คุณสร้างรูปแบบข้อกำหนดนี้ได้โดยอนุญาตเฉพาะเส้นทางที่ว่างเปล่าหรือ เส้นทางที่มีการเข้าชมครั้งสุดท้ายที่สถานีทำความสะอาด ใน Route Optimization API คุณ ทำได้โดยการห้ามการเปลี่ยนไปยังจุดแวะพักสุดท้ายของเส้นทางจาก สถานที่ใดๆ ยกเว้นจากสถานที่ทำความสะอาดหรือจากจุดเริ่มต้นของ เส้นทาง
- เลือกแท็กใหม่ 2 แท็กที่ไม่ได้ใช้ในโมเดล เช่น
CLEANED
และROUTE_END
โดยส่วนแรกใช้สำหรับสถานที่ที่ยานพาหนะเป็นหรือกลายเป็นยานพาหนะสะอาด ส่วนที่สองใช้สำหรับจุดสิ้นสุดของเส้นทาง - สำหรับยานพาหนะแต่ละคัน ให้เพิ่มการจัดส่งใหม่ที่จัดส่งเท่านั้นซึ่งแสดงถึงการเข้าชม
สถานที่ล้างรถพร้อมแอตทริบิวต์ต่อไปนี้
- สถานที่ตั้งของศูนย์ทำความสะอาดแต่ละแห่งควรแสดงเป็นคำขอการเข้าชมเพื่อนำส่ง ของการจัดส่งนี้
- เพิ่ม
CLEANED
ไปยังVisitRequest.tags
ของคำขอเข้าชมแต่ละรายการสำหรับการจัดส่งอุปกรณ์ทำความสะอาด ซึ่งเป็นสัญญาณว่า ยานพาหนะที่ออกจากสถานที่นี้เป็นยานพาหนะสะอาด คำขอการเยี่ยมชมอื่นๆ ใน โมเดลไม่ควรใช้แท็กนี้เพื่อให้ระบบพิจารณาว่ายานพาหนะ "ไม่ สะอาด" เมื่อออกจากสถานที่ดังกล่าว - อนุญาตให้เครื่องมือเพิ่มประสิทธิภาพข้ามการจัดส่งนี้เมื่อไม่ได้ใช้ยานพาหนะ
โดยตั้งค่า
penalty_cost
เป็นตัวเลขน้อยๆ
สำหรับยานพาหนะแต่ละคัน ให้เพิ่ม
CLEANED
ไปยังVehicle.start_tags
โดยใช้เพื่อทำเครื่องหมายว่ายานพาหนะสะอาดก่อนที่จะรับหรือนำส่งใดๆ โดยถือว่ายานพาหนะได้รับการทำความสะอาดเมื่อสิ้นสุดวันทำการก่อนหน้า และอนุญาตให้ยานพาหนะเดินทางจากจุดพักเริ่มต้นไปยังจุดพักสิ้นสุดได้โดยตรง แม้ว่าในทางปฏิบัติแล้วเส้นทางดังกล่าวจะไม่ได้เกิดขึ้นจริง แต่การอนุญาตสถานการณ์นี้จะช่วยให้เครื่องมือเพิ่มประสิทธิภาพค้นหาเส้นทางที่เพิ่มประสิทธิภาพได้มีประสิทธิภาพมากขึ้นสำหรับยานพาหนะแต่ละคัน ให้เพิ่ม
ROUTE_END
ไปยังVehicle.end_tags
เพิ่มรายการใหม่ใน
ShipmentModel.transition_attributes
ที่ห้ามไม่ให้ยานพาหนะมาถึงจุดอ้างอิงสุดท้ายของยานพาหนะเมื่อยานพาหนะ ไม่สะอาด โดยมีพร็อพเพอร์ตี้ต่อไปนี้ตั้งค่า
TransitionAttributes.excluded_src_tag
เป็นCLEANED
ตั้งค่า
TransitionAttributes.dst_tag
เป็นROUTE_END
ตั้งค่า
TransitionAttributes.delay
เป็นค่าที่สูง เมื่อคุณตั้งค่าความล่าช้าให้นานกว่าระยะเวลาสูงสุดของเส้นทาง คุณจะห้ามไม่ให้เครื่องมือเพิ่มประสิทธิภาพใช้การเปลี่ยน เส้นทางนี้ในเส้นทาง
ตัวอย่างเช่น เมื่อช่วงเวลาของโมเดลคือ 1 วันทําการ คุณสามารถ ใช้การหน่วงเวลา 24 ชั่วโมง (86400 วินาที) เพื่อห้ามการเปลี่ยนไป ยังจุดสิ้นสุดของเส้นทางจากทุกที่ ยกเว้นสถานที่ทําความสะอาดและ จุดเริ่มต้นของเส้นทาง
{ "excluded_src_tag": "CLEANED", "dst_tag": "ROUTE_END", "delay": "86400s" }
วิธีเลือกระหว่างความล่าช้าและค่าใช้จ่าย
การเลือกระหว่างความล่าช้าและต้นทุนขึ้นอยู่กับลักษณะของตรรกะทางธุรกิจและข้อจำกัดที่ใช้ การตั้งค่า
TransitionAttributes.delay
เหมาะที่สุดสำหรับการใช้ข้อจำกัดที่เข้มงวดหรือเพื่อแสดงการแลกเปลี่ยนในแง่ของ
เวลาที่ใช้
TransitionAttributes.cost
จะเหมาะสมกว่าเมื่อใช้ค่ากำหนดแบบยืดหยุ่นหรือการแลกเปลี่ยนที่แสดงเป็น
ต้นทุนเพิ่มเติม คุณอาจรวมความล่าช้าและค่าใช้จ่ายโดยพลการเมื่อทั้งเวลา
ที่ใช้และค่าใช้จ่ายเกี่ยวข้อง
ตัวอย่างการล้างยานพาหนะใช้การหน่วงเวลาที่ยาวมาก เนื่องจาก การล้างยานพาหนะที่จุดสิ้นสุดของเส้นทางเป็นข้อกำหนดที่สำคัญ และการหน่วงเวลาที่ยาว จะช่วยไม่ให้เครื่องมือเพิ่มประสิทธิภาพละเลยข้อกำหนด หากคุณตั้งค่าเฉพาะต้นทุน เครื่องมือเพิ่มประสิทธิภาพอาจเลือกที่จะข้ามการทำความสะอาด หากพบวิธีชดเชย ต้นทุนที่อื่น เช่น โดยการนำส่งสินค้าเพิ่มเติมในช่วงเวลาที่ "ประหยัด" ได้จากการไม่ทำความสะอาดรถ
ตัวอย่างการจอดรถใช้การหน่วงเวลาสั้นๆ ซึ่งสอดคล้องกับเวลาเพิ่มเติม ที่ต้องใช้ในการจอดรถ นอกจากนี้ คุณยังใช้ costs ร่วมกับ delays ได้หากคนขับจอดรถในลานจอดรถแบบชำระเงิน
วิธีเพิ่มแอตทริบิวต์การเปลี่ยนเส้นทางที่ตรงกับคำขอเข้าชมทั้งหมด
ตัวอย่างด้านบนใช้แอตทริบิวต์การเปลี่ยนฉากที่ตรงกับสถานที่ตั้งที่มีแท็กที่ระบุ หรือสถานที่ตั้งที่ไม่มีแท็ก แต่หากต้องการเพิ่มแอตทริบิวต์การเปลี่ยนฉากที่ใช้กับการเปลี่ยนฉากทั้งหมด
คุณจะละเว้นแท็กไม่ได้ เนื่องจากข้อความ TransitionAttributes
แต่ละข้อความต้องมีแท็ก TransitionAttributes.src_tag
และ TransitionAttributes.excluded_src_tag
อย่างใดอย่างหนึ่ง รวมถึงแท็ก TransitionAttributes.dst_tag
และ TransitionAttributes.excluded_dst_tag
อย่างใดอย่างหนึ่ง
อย่างไรก็ตาม คุณสามารถจับคู่แท็กทั้งหมดได้โดยการตั้งค่า
TransitionAttributes.excluded_src_tag
หรือ
TransitionAttributes.excluded_dst_tag
เป็นแท็กที่ไม่ได้ใช้ที่ใดในโมเดล การดำเนินการนี้จะจับคู่สถานที่ตั้งทั้งหมด
ที่ไม่มีแท็กนี้ แต่เนื่องจากคุณเลือกแท็กที่ไม่มี
สถานที่ตั้งใดใช้โดยเจตนา แอตทริบิวต์การเปลี่ยนผ่านเหล่านี้จึงจะจับคู่กับสถานที่ตั้งทั้งหมด