คู่มือนี้แสดงการใช้งานที่เป็นไปได้ของแอตทริบิวต์การเปลี่ยนผ่าน โดยจะสอนวิธีจำลองสถานการณ์ในโลกแห่งความเป็นจริงด้วยตัวอย่าง 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
เป็นแท็กที่ไม่ได้ใช้ที่ใดก็ได้ในโมเดล ซึ่งจะจับคู่สถานที่ทั้งหมดที่ไม่มีแท็กนี้ แต่เนื่องจากคุณเลือกแท็กที่ไม่มีสถานที่ใดใช้โดยเจตนา แอตทริบิวต์การเปลี่ยนผ่านเหล่านี้จะจับคู่สถานที่ทั้งหมด