คู่มือนี้แสดงการใช้งานที่เป็นไปได้ของแอตทริบิวต์การเปลี่ยนผ่าน โดยจะสอนวิธีจำลองสถานการณ์จริงด้วยตัวอย่าง 2 กรณี ได้แก่ การรวมเวลาจอดรถไว้ในเส้นทางที่เพิ่มประสิทธิภาพแล้ว และการตรวจสอบว่าแต่ละเส้นทางสิ้นสุดด้วยการเข้าชมสถานที่ที่เฉพาะเจาะจง
ก่อนเริ่มต้น
คุณใช้แอตทริบิวต์การเปลี่ยนผ่าน เพื่อเพิ่มค่าใช้จ่ายและความล่าช้าที่เฉพาะเจาะจงของโมเดลลงใน การเปลี่ยนผ่าน บางอย่างในเส้นทางที่เพิ่มประสิทธิภาพแล้ว ระบบจะเพิ่มค่าใช้จ่ายและความล่าช้าเหล่านี้ นอกเหนือจากระยะเวลาและ ค่าใช้จ่ายในการเปลี่ยนผ่านที่คำนวณจากข้อมูล แผนที่ตามพารามิเตอร์ของยานพาหนะที่ใช้
การเปลี่ยนผ่าน คือส่วนของเส้นทางที่เชื่อมต่อสถานที่หนึ่งไปยังอีกสถานที่หนึ่ง
สถานที่ หมายถึงจุดใดจุดหนึ่งต่อไปนี้ในเส้นทางของยานพาหนะ
- จุดเริ่มต้นของเส้นทาง
- จุดแวะพักเพื่อรับหรือส่งสินค้า
- จุดสิ้นสุดของเส้นทาง
คุณกำหนดแอตทริบิวต์การเปลี่ยนผ่านทั้งหมดสำหรับโมเดลโดยเพิ่มแอตทริบิวต์เหล่านั้นลงในรายการ
ShipmentModel.transition_attributes
องค์ประกอบแต่ละรายการในรายการจะกำหนดแอตทริบิวต์การเปลี่ยนผ่าน 1 ชุด และระบบจะจับคู่กับเส้นทางการเปลี่ยนผ่านโดยใช้แท็กในสถานที่เริ่มต้นและสถานที่สิ้นสุดของการเปลี่ยนผ่าน ดูข้อมูลเพิ่มเติมเกี่ยวกับแอตทริบิวต์การเปลี่ยนผ่านได้ที่
เอกสารอ้างอิงสำหรับ
TransitionAttributes
จำลองสถานการณ์จริง
ส่วนนี้แสดงตัวอย่างเล็กๆ 2 ตัวอย่างเกี่ยวกับวิธีใช้ข้อจำกัดทางธุรกิจในโลกแห่งความเป็นจริงโดยใช้แอตทริบิวต์การเปลี่ยนผ่าน
จองเวลาจอดรถ
ในสถานการณ์นี้ ผู้ขับต้องจอดรถก่อนจึงจะเข้าชมสถานที่ A ได้ สถานที่ 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แท็กแรกใช้สำหรับสถานที่ที่ยานพาหนะสะอาดหรือจะสะอาด และแท็กที่ 2 ใช้สำหรับจุดสิ้นสุดของเส้นทาง - สำหรับยานพาหนะแต่ละคัน ให้เพิ่มการจัดส่งใหม่แบบส่งเท่านั้นซึ่งแสดงถึงการเข้าชมศูนย์ทำความสะอาดโดยมีแอตทริบิวต์ต่อไปนี้
- สถานที่ตั้งของศูนย์ทำความสะอาดแต่ละแห่งควรแสดงเป็นคำขอการเข้าชมเพื่อส่งของการจัดส่งนี้
- เพิ่ม
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
เหมาะกว่าเมื่อใช้ค่ากำหนดที่ไม่เข้มงวดหรือการแลกเปลี่ยนที่แสดงเป็นค่าใช้จ่ายเพิ่มเติม คุณสามารถรวมความล่าช้าและค่าใช้จ่ายได้ตามต้องการเมื่อพิจารณาทั้งเวลาที่ใช้และค่าใช้จ่าย
ตัวอย่างการทำความสะอาดยานพาหนะใช้ ความล่าช้า ที่ยาวมาก เนื่องจากยานพาหนะต้องได้รับการทำความสะอาดเมื่อสิ้นสุดเส้นทาง และความล่าช้าที่ยาวนาน จะป้องกันไม่ให้เครื่องมือเพิ่มประสิทธิภาพละเลยข้อกำหนด หากคุณตั้งค่าเฉพาะ ค่าใช้จ่าย เครื่องมือเพิ่มประสิทธิภาพอาจเลือกที่จะข้ามการทำความสะอาด หากพบวิธีชดเชย ค่าใช้จ่ายที่อื่น เช่น โดยการจัดส่งสินค้าเพิ่มเติมในเวลาที่ "ประหยัด" ได้จากการไม่ทำความสะอาดยานพาหนะ
ตัวอย่างการจอดรถใช้ ความล่าช้า สั้นๆ ซึ่งสอดคล้องกับเวลาเพิ่มเติมที่จำเป็นในการจอดรถ คุณยังใช้ ค่าใช้จ่าย ร่วมกับความล่าช้าได้ด้วย หากผู้ขับแวะจอดที่ลานจอดรถแบบเสียเงิน
วิธีเพิ่มแอตทริบิวต์การเปลี่ยนผ่านที่ตรงกับคำขอการเข้าชมทั้งหมด
ตัวอย่างข้างต้นใช้แอตทริบิวต์การเปลี่ยนผ่านที่ตรงกับสถานที่ที่มีแท็กที่กำหนด หรือสถานที่ที่ไม่มีแท็ก แต่หากคุณต้องการเพิ่มแอตทริบิวต์การเปลี่ยนผ่านที่ใช้กับการเปลี่ยนผ่านทั้งหมดล่ะ
คุณไม่สามารถละเว้นแท็กได้ เนื่องจากแต่ละ
TransitionAttributes
ข้อความต้องมี
TransitionAttributes.src_tag
และ
TransitionAttributes.excluded_src_tag
และหนึ่งใน
TransitionAttributes.dst_tag
และ
TransitionAttributes.excluded_dst_tag
อย่างไรก็ตาม คุณสามารถจับคู่แท็กทั้งหมดได้โดยตั้งค่า
TransitionAttributes.excluded_src_tag
หรือ
TransitionAttributes.excluded_dst_tag
เป็นแท็กที่ไม่ได้ใช้ที่ใดก็ได้ในโมเดล ซึ่งจะตรงกับสถานที่ทั้งหมดที่ไม่มีแท็กนี้ แต่เนื่องจากคุณเลือกแท็กที่ไม่มีสถานที่ใดใช้โดยเจตนา แอตทริบิวต์การเปลี่ยนผ่านเหล่านี้จึงตรงกับสถานที่ทั้งหมด