บทที่ 7
คนขับกินข้าว หนึ่งชั่วโมงนั้นเป็นเวลาจริงที่หายไปจากวัน แผนที่ไม่นับชั่วโมงนั้นไว้ ก็คือแผนที่เลิกงานช้ากว่าที่เขียนไว้หนึ่งชั่วโมง
วันสองเที่ยวจากบทที่ 6 คราวนี้มีพักกลางวันหนึ่งชั่วโมง
วันที่รถกลับถึงคลังก่อนสิบเอ็ดโมง เรื่องพักเที่ยงไม่เกิดขึ้นเลย รถในบทที่ 1 และบทที่ 5 กลับถึงคลังสิบโมงกว่า การ์ดของรถเหล่านั้นเขียนว่าพักกลางวัน ไม่มี — และไม่มีจริง ๆ
แต่วันสองเที่ยวในบทที่ 6 รถเลิกบ่ายสอง ระหว่างนั้นมีเที่ยงวันอยู่ และคนขับก็ต้องกินข้าว บทนี้คือวิธีใส่ชั่วโมงนั้นเข้าไปในแผน แทนที่จะไปโผล่ตอนรถวิ่งจริง
เปิด พักกลางวัน ใน ตัวเลือกการวางแผนเส้นทาง มีสามช่อง
กด วางแผนเส้นทาง
ใส่ 0 ในช่องแรกคือแผนนี้ไม่มีพัก ไม่ใช่ค่าว่าง บางฟลีตจ่ายค่าอาหารแล้วให้คนขับกินระหว่างรอโหลด ก็มีอยู่จริง
วันเดียวกัน สองแผน ต่างกันแค่ช่องพักนานเท่าไร
13:00 กับ 14:00 ต่างกันหนึ่งชั่วโมงพอดี ระยะยัง 53.5 กิโลเท่ากัน จุดส่งครบ 12 จุดเท่ากัน การพักไม่ได้ทำให้เส้นทางแย่ลง แค่กินเวลาไปหนึ่งชั่วโมงตรง ๆ
ในรายการจุดส่งจะมีแถวพักแทรกอยู่ ตรงที่รถหยุดจริง
แท็บ ไทม์ไลน์ เห็นชัดที่สุดว่าวันหมดไปกับอะไร
ตัวอย่างข้างบนตั้งไว้ว่าเริ่มพักได้ตั้งแต่ 11:00 ถึง 13:00 โปรแกรมเลือก 11:00 เพราะพอดีกับที่รถเพิ่งส่งจุดที่ 7 เสร็จ ถ้าบีบช่วงให้แคบลงเป็น 12:00 ถึง 12:15 การพักจะไปอยู่ตรงที่บอก
วันนี้การบีบช่วงไม่ได้ทำให้เลิกช้าลง เพราะยังมีที่ว่างในวันให้ขยับ แต่วันที่แน่นกว่านี้ ช่วงแคบคือทางเลือกที่หายไป ถ้าไม่มีเหตุผลจริงที่ต้องพักตรงเวลา ปล่อยช่วงให้กว้างไว้จะได้แผนที่ดีกว่า
รถที่เลิกก่อนช่วงพัก ไม่พัก
ถ้ารถกลับถึงคลังก่อนที่ช่วงพักจะเปิด โปรแกรมจะไม่แทรกการพักให้ เพราะคนขับที่กลับบ้านสิบโมงครึ่งไม่ได้หยุดกินข้าวกลางทาง นี่คือเหตุผลที่การ์ดรถในบทที่ 5 เขียนว่า ไม่มี ทั้งที่ตั้งค่าพักไว้เหมือนกัน
สามแผนเรียงกันคือ 13:00 · 14:00 · 14:30 ตามการพัก 0 · 60 · 90 นาที ตรงกันหมด การพักไม่ใช่ค่าปรับที่ซ่อนอยู่ เป็นเวลาที่ใส่เข้าไปแล้วได้คืนมาเท่านั้น
ที่ต้องระวังคือกะที่สั้น ถ้ากะเลิก 13:00 แล้วเพิ่มพักหนึ่งชั่วโมงเข้าไป วันที่เคยพอดีจะไม่พอ และจะเห็นจุดที่จัดไม่ได้โผล่ขึ้นมา หรือโปรแกรมไปหยิบรถคันที่สองมาใช้ ถูกทั้งสองทาง
สามฟิลด์ ที่ระดับคำขอ ใช้กับรถทุกคันในแผน:
{
"lunch_duration_min": 60,
"lunch_earliest_start": "11:00",
"lunch_latest_start": "13:00"
}
ใส่ข้างเดียวได้ lunch_earliest_start ลอย ๆ คือ “ไม่ก่อนเวลานี้”
และไม่ได้บอกอะไรเรื่องปลายทาง ถ้าใส่ทั้งสองข้างแล้วปลายมาก่อนต้น
คำขอจะถูกปฏิเสธ ไม่ใช่ถูกบีบเป็นจุดเดียว
รูปแบบเก่าคือ lunch_start ตัวเดียว หมายถึงกลางของช่วง
แล้วขยายออกข้างละหนึ่งชั่วโมง ยังใช้ได้อยู่
และเป็นฟิลด์ที่ตัวอ่านไฟล์ Excel กับ CSV เขียนลงมาให้จากคอลัมน์
lunch_start
ตั้งรายชนิดรถก็ได้ ใส่สามฟิลด์เดียวกันไว้ใน van_types
ทับค่าที่ระดับคำขอเฉพาะรถชนิดนั้น มีไว้สำหรับฟลีตที่คนขับคนละสัญญากัน
รถซับกับรถบริษัทที่ออกจากคลังเดียวกันไม่จำเป็นต้องกินข้าวเวลาเดียวกัน
ในคำตอบ การพักที่เกิดขึ้นจริงอยู่ใน break_start_s กับ
break_end_s ของแต่ละเส้นทาง ทั้งคู่เป็น null
ถ้ารถคันนั้นเลิกก่อนช่วงพัก