จัดลําดับความสําคัญของการเข้าชมใกล้เคียงด้วยแอตทริบิวต์การเปลี่ยน

ตัวอย่างนี้แสดงวิธีใช้แอตทริบิวต์การเปลี่ยนเส้นทางเพื่อจัดลําดับความสําคัญของเส้นทางที่ยานพาหนะคันเดียวกันทำการรับและนำส่งสินค้าที่อยู่ใกล้เคียงในช่วงเวลาเดียวกัน ดูข้อมูลเพิ่มเติมเกี่ยวกับแอตทริบิวต์การเปลี่ยนผ่านได้ที่โมเดลตรรกะทางธุรกิจด้วยแอตทริบิวต์การเปลี่ยนผ่าน

ในตัวอย่างนี้

  • การนำส่งของการจัดส่ง A, B และ C อยู่ใกล้กันบนถนนเดียวกัน
  • เราจะเพิ่มการนําส่งในภายหลัง
  • การนำส่งจะไม่มีเวลานำส่งที่ระบุ
  • ไม่ว่าจะกำหนดเวลาการไปส่งอย่างไร ยานพาหนะจะต้องขับไปตามถนนนี้ 2 ครั้ง ได้แก่ 1 ครั้งในตอนเช้าจากอู่ และ 1 ครั้งในตอนเย็นขากลับ
  • ระยะทางและระยะเวลาในการเดินทางโดยรวมของเส้นทางจะเท่าเดิมเสมอ ไม่ว่าจะดำเนินการ A, B หรือ C เมื่อใดก็ตาม

ตัวอย่างการนำส่งสินค้าบนถนนเดียวกัน มีการจัดส่ง 3 รายการ ได้แก่ ก ข และ ค กำลังเดินทางจากสถานีขนส่งไปยังการจัดส่งอื่นๆ A อยู่ห่างจากอู่ซ่อม 1, 000 เมตร, B อยู่ห่างจากอู่ซ่อม 50 เมตร และ C อยู่ห่างจากอู่ซ่อม 30 เมตรในทิศทางเดียวกัน มีการจัดส่งอื่นๆ อยู่ห่างออกไป 1,000 ม. จาก C

ในกรณีนี้และสำหรับคำขอที่ใช้เฉพาะต้นทุนต่อชั่วโมงและต้นทุนต่อกิโลเมตร เส้นทางที่เพิ่มประสิทธิภาพอาจจัดการ A และ B ในตอนเช้า และจัดการ C ในตอนเย็น และต้นทุนของโซลูชันจะเหมือนกับว่าจัดการทั้ง 3 อย่างพร้อมกัน

ต้นทุนต่อกิโลเมตรที่มีเกณฑ์

หากต้องการจัดกลุ่มการเข้าชมใกล้เคียง คุณต้องเลือกระยะทางเกณฑ์ก่อน ระยะทางสูงสุดระหว่างการเข้าชม 2 ครั้งที่คุณถือว่าอยู่ใกล้เคียงกัน ตัวอย่างนี้ใช้เกณฑ์ 100 เมตร ซึ่งสอดคล้องกับ 1 ช่วงตึกในพื้นที่เมืองโดยประมาณ คุณสามารถเพิ่มหรือลดเกณฑ์ให้ตรงกับความต้องการทางธุรกิจและความต้องการของคนขับได้

หากต้องการจัดกลุ่มการเข้าชมที่อยู่ใกล้เคียงภายในระยะ 100 เมตรจากกัน ให้กําหนดต้นทุนสูงสําหรับระยะ 100 เมตรแรกของการเปลี่ยนแต่ละครั้ง และต้นทุนที่ต่ำลงสําหรับระยะเพิ่มเติมของการเปลี่ยน เนื่องจาก 100 เมตรแรกมีราคาแพงที่สุด เครื่องมือเพิ่มประสิทธิภาพจึงประหยัดค่าใช้จ่ายได้มากที่สุดโดยใช้การเปลี่ยนเส้นทางที่สั้นกว่าเกณฑ์ 100 เมตร แม้ว่าจะต้องเพิ่มความยาวโดยรวมของเส้นทางก็ตาม

หากต้องการตั้งค่าค่าใช้จ่าย ให้เพิ่มรายการใหม่ใน ShipmentModel.transition_attributes โดยมีพร็อพเพอร์ตี้ต่อไปนี้

{
  "model": {
    "transitionAttributes": [
      {
        "excluded_dst_tag": "UNUSED_TAG",
        "excluded_src_tag": "UNUSED_TAG",
        "distanceLimit": {
          "softMaxMeters": 100,
          "costPerKilometerBelowSoftMax": 50,
          "costPerKilometerAboveSoftMax": 1,
        }
      }
    ]
  }
}

การจัดส่งหรือยานพาหนะต้องไม่ใช้แท็ก #unused_tag# เพื่อจับคู่กับการเปลี่ยนสถานะทั้งหมดที่เป็นไปได้ ดูข้อมูลเพิ่มเติมได้ที่วิธีจับคู่คําขอเข้าชมทั้งหมด

วิธีการทำงานของต้นทุนสูงต่ำกว่าเกณฑ์

ส่วนนี้จะแสดงว่าค่าใช้จ่ายที่ต่ำกว่าและสูงกว่าเกณฑ์ส่งผลต่อค่าใช้จ่ายโดยรวมของโซลูชันต่างๆ ในสถานการณ์ตัวอย่างอย่างไร

วิธีที่ 1: ดำเนินการ A, B ขาไป และ C ขากลับ

ในโซลูชันนี้ การจัดส่งจะแบ่งออกเป็น 2 เส้นทางบนถนนสายนี้ ระบบจะส่ง 2 รายการในการเรียกดูครั้งแรก และส่งรายการที่เหลือในการเรียกดูครั้งที่ 2 การเปลี่ยนมี 5 ประเภทดังนี้

ทรานซิชัน ระยะทาง ต่ำกว่าเกณฑ์ สูงกว่าเกณฑ์
ระยะทาง ค่าใช้จ่าย ระยะทาง ค่าใช้จ่าย
depot →A 1,000 ม. 100 เมตร 5 900 ม. 0.9
A→B 50 ม. 50 ม. 2.5 0 ม. 0
B→อื่นๆ 1,030 ม. 100 เมตร 5 930 ม. 0.93
อื่นๆ→C 1,000 ม. 100 เมตร 5 900 ม. 0.9
C→depot 1,080 ม. 100 เมตร 5 980 ม. 0.98
รวม 450 เมตร 22.5 3,710 ม. 3.71

ต้นทุนโดยรวมจะคํานวณจากผลรวมของต้นทุน 2 รายการต่อกิโลเมตร ดังนี้

  • ค่าใช้จ่ายต่อกิโลเมตรต่ำกว่าเกณฑ์ (50) คูณระยะทางรวมที่เดินทางต่ำกว่าเกณฑ์ (450 ม. = 0.45 กม.)
  • ต้นทุนต่อกิโลเมตรที่เกินเกณฑ์ (1) คูณด้วยระยะทางรวมที่เดินทางเกินเกณฑ์ (3710 ม. = 3.71 กม.)

ดังนั้นต้นทุนโดยรวมคือ 0.45 * 50 + 3.71 * 1 = 22.5 + 3.71 = 26.21

โซลูชันที่ 2: ดำเนินการ A, B, C ขาไป ดำเนินการใดๆ ขากลับ

ในโซลูชันนี้ การจัดส่งทั้งหมด 3 รายการจะได้รับการนําส่ง "เป็นกลุ่ม" ในระหว่างการวิ่งบนถนน 1 ครั้ง ซึ่งแตกต่างจากโซลูชันที่ 1 ในการข้ามอีกฝั่งหนึ่ง ยานพาหนะไม่ได้หยุดเลย อีกครั้ง ทรานซิชันมี 5 แบบ แต่ความยาวและองค์ประกอบจะแตกต่างกันไป ดังนี้

ทรานซิชัน ระยะทาง ต่ำกว่าเกณฑ์ สูงกว่าเกณฑ์
ระยะทาง ค่าใช้จ่าย ระยะทาง ค่าใช้จ่าย
depot →A 1,000 ม. 100 เมตร 5 900 ม. 0.9
A→B 50 ม. 50 ม. 2.5 0 ม. 0
B→C 30 เมตร 30 เมตร 1.5 0 ม. 0
C→อื่นๆ 1,000 ม. 100 เมตร 5 900 ม. 0.9
other→depot 2,080 ม. 100 เมตร 5 1,980 ม. 1.98
รวม 380 เมตร 19 3,780 ม. 3.78

เมื่อใช้การคํานวณแบบเดียวกับในโซลูชันที่ 1 ต้นทุนโดยรวมคือ 0.38 * 50 + 3.78 * 1 = 19 + 3.78 = 22.78 และการเรียกใช้การเข้าชมทั้งหมดในบล็อกเวลาเดียวมีต้นทุนต่ำกว่าการเรียกใช้ใน 2 กลุ่ม คุณสามารถเพิ่มความเข้มของเอฟเฟกต์นี้ได้ด้วยการทำให้DistanceLimit.cost_per_kilometer_below_soft_max เพิ่มขึ้น

สาเหตุที่ราคาต่อกิโลเมตรที่ต่ำต่ำกว่าเกณฑ์ใช้ไม่ได้

เนื่องจากคุณต้องการเปลี่ยนเส้นทางระยะสั้นมากกว่าระยะยาว คุณจึงอาจต้องการกำหนดต้นทุนต่อกิโลเมตรที่สูงสำหรับการเปลี่ยนเส้นทางระยะยาว และกำหนดต้นทุนต่อกิโลเมตรที่ต่ำสำหรับการเปลี่ยนเส้นทางระยะสั้น แต่ความจริงแล้ว การดำเนินการนี้กลับส่งผลตรงกันข้าม เนื่องจากช่วง 100 เมตรแรกของการเปลี่ยนเส้นทางมีต้นทุนถูกที่สุด เครื่องมือเพิ่มประสิทธิภาพจึงใช้เมตร "ราคาถูก" เหล่านี้ให้เกิดประโยชน์สูงสุดโดยเลือกการเปลี่ยนเส้นทางที่มีระยะทางใกล้หรือมากกว่า 100 เมตร

คุณจะเห็นผลลัพธ์นี้ในโซลูชันตัวอย่าง 2 รายการ หากคุณเปลี่ยนต้นทุนต่อกิโลเมตรให้ต่ำกว่าและสูงกว่าเกณฑ์ ค่าใช้จ่ายของเส้นทางจะเปลี่ยนแปลงดังนี้

ค่าใช้จ่ายสูงเกินเกณฑ์ ต้นทุนสูงต่ำกว่าเกณฑ์
โซลูชันที่ 1 โซลูชันที่ 2 โซลูชันที่ 1 โซลูชัน 2
KM ต่ำกว่าเกณฑ์ 0.45 0.38 0.45 0.38
ต้นทุนต่อ KM ต่ำกว่าเกณฑ์ 40.00 40.00 50.00 50.00
กม. สูงกว่าเกณฑ์ 3.71 3.78 3.71 3.78
ต้นทุนต่อ KM ที่สูงกว่าเกณฑ์ 50.00 50.00 40.00 40.00
ค่าใช้จ่ายทั้งหมด 185.95 189.38 26.21 22.78

สำหรับแต่ละเวอร์ชัน ระบบจะไฮไลต์ต้นทุนรวมที่ต่ำที่สุดของโซลูชัน 2 รายการเป็นตัวอักษรหนา คุณจะเห็นว่าเมื่อใช้ต้นทุนสูงเกินเกณฑ์ ต้นทุนรวมของเส้นทางที่กลุ่มการเข้าชมอยู่จะสูงขึ้น ซึ่งขัดแย้งกับสิ่งที่คุณต้องการ