บทที่ 6
บทที่ 5 แก้ปัญหาของไม่พอลงรถด้วยการเพิ่มรถอีกคัน บทนี้แก้ด้วยรถคันเดิม กลับมาโหลดของแล้วออกไปอีกรอบ
วันจันทร์เดิม รถ 500 กิโลเหมือนบทที่ 5 แต่กลับมาโหลดของได้
การ์ดรถในบทที่ 5 บอกว่ารถทั้งสองคันกลับถึงคลังสิบโมงกว่า ใช้เวลาไปคันละหนึ่งในสี่ของกะเก้าชั่วโมง เห็นตัวเลขนั้นแล้วคำถามถัดไปชัดเจน ว่าทำไมไม่ให้คันเดียววิ่งสองรอบ
คำถามนี้ตอบด้วยเงินได้ตรง ๆ รถคันที่สองคือค่าเช่าหรือค่าคนขับอีกคน ส่วนรอบที่สองของคันเดิมคือเวลา ทางไหนถูกกว่าขึ้นอยู่กับว่าเรามีอะไรเหลือ
ตั้ง เที่ยวสูงสุดต่อคัน ให้มากกว่า 1 อยู่ในรถแต่ละชนิด ใน ⚙ รายละเอียด ของคลัง
ใส่ เวลาโหลดของ (นาที) ของคลัง คือเวลาที่รถจอดอยู่ที่คลังระหว่างสองเที่ยว
กด วางแผนเส้นทาง
53.5 กิโลเท่ากันเป๊ะ ไม่ใช่เรื่องบังเอิญ จุดส่งอยู่ที่เดิม ถนนเส้นเดิม ระยะที่ต้องวิ่งจึงเท่าเดิม สิ่งที่เปลี่ยนคือใครวิ่ง
บรรทัด บรรทุก 495.0 กก. คือของที่ขึ้นรถรอบหนึ่ง ไม่ใช่ของทั้งวัน วันนี้รถขนไป 990 กิโลด้วยรถที่รับ 500 เพราะขนสองรอบ
ในรายการจุดส่งจะมีแถวคลังแทรกอยู่กลาง บอกว่ารถกลับมาตอนไหนและออกไปตอนไหน
ราคาที่เห็นยังเท่าเดิม 428 บาท
บทที่ 5 ใช้รถสองคัน บทนี้ใช้คันเดียว แต่บรรทัดสรุปบอก 428 บาททั้งคู่ เพราะเลขนั้นคิดจากกิโลเมตร และกิโลเมตรเท่ากัน ค่ารถต่อคันยังไม่ได้เข้ามาในสมการ เรื่องนั้นอยู่ในบทที่ 8
เที่ยวที่สองกินเวลา ถ้ากะจบก่อนที่เที่ยวสองจะเสร็จ โปรแกรมจะไม่ฝืน ลองฟลีตเดิมกับกะที่เลิก 13:30
สังเกตว่าโปรแกรมไม่ได้ถามว่าจะยอมเลิกงานสายไหม โปรแกรมเลือกแผนที่จบในเวลาทำงานที่บอกไว้ ถ้ายอมให้เลิกช้าได้จริง วิธีบอกคือขยาย เวลาทำงาน ของรถ ไม่ใช่ปล่อยให้แผนล้นออกไปเอง
สองอย่างพร้อมกัน คือมีรถคันเดียวและกะเลิกบ่ายโมง ตอนนี้ไม่มีทั้งรถให้เพิ่มและเวลาให้ยืม
สามจุดที่ค้างคือคาเฟ่เมกาบางนา โรงแรมบางนา กม.6 และร้านชำหนามแดง ตัดสินใจได้ตั้งแต่เมื่อวาน ไม่ใช่ตอนรถคันนั้นไปถึงหน้าร้านตอนบ่ายสอง แล้วโทรมาบอกว่าไม่ทัน
เวลาโหลดของ 30 นาทีที่ใส่ไว้เป็นตัวเลขที่ควรวัดจริง ไม่ใช่เดา เพราะโปรแกรมเอาไปตัดสินว่าคุ้มจะกลับมาโหลดไหม
วิธีวัดง่ายที่สุดคือจับเวลาจากรถเข้าลานถึงรถออกจากลาน ในวันที่ปกติ รวมเวลารอคิวโหลดด้วย เพราะระหว่างที่รอ รถคันนั้นก็ไม่ได้วิ่งอยู่แล้ว
สองที่ max_trip อยู่บนชนิดรถ ส่วนเวลาโหลดอยู่บนคลัง:
{
"depot_id": "บางนา",
"location": { "lat": 13.672, "lng": 100.63 },
"reload_time_min": 30,
"van_types": [
{
"type_name": "4 ล้อ",
"van_count": 3,
"shift_start": "08:00",
"shift_end": "17:00",
"capacity_kg": 500,
"capacity_cm3": 8000000,
"max_trip": 5
}
]
}
ส่ง reload_time_min ที่ระดับคำขอก็ได้ ใช้กับทุกคลังในแผนนั้น
ตัวที่อยู่บนคลังทับตัวนั้นเฉพาะคลังนี้ มีคลังเดียวก็ให้แผนเหมือนกัน
เที่ยวที่สองไม่ใช่รถคันที่สอง ในคำตอบยังเป็น vehicle_id เดิมหนึ่งตัว
โดยมีการกลับคลังอยู่ใน reloads พร้อม
after_stop_index บอกว่าแทรกหลังจุดที่เท่าไหร่:
"reloads": [
{ "after_stop_index": 5, "arrival_s": 36520, "leave_s": 38320 }
]
ที่เป็นอย่างนี้เพราะรถคันหนึ่งคือรถคันหนึ่ง ทั้งในเรื่องค่าใช้จ่าย ในการนับจำนวนรถ ในการพักกลางวัน และในลิงก์ที่คนขับเปิด