บทที่ 1

วันจันทร์ 12 จุด

แผนแรกของเรา คลังหนึ่งแห่ง รถแบบเดียว จุดส่ง 12 จุด ไม่มีเงื่อนไขอะไรทั้งนั้น บทนี้คือการใส่ของวันหนึ่งเข้าไป กดปุ่มเดียว แล้วอ่านคำตอบ

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

1เรื่องที่เกิดขึ้น

เราเป็นเจ้าของรถส่งของอยู่สามคัน ที่คลังบางนา เช้าวันจันทร์มีออร์เดอร์เข้ามา 12 จุด ตั้งแต่อ่อนนุชยาวไปถึงเมกาบางนา

เมื่อก่อนเราจัดเองบนกระดาษ ไล่จากจุดที่คุ้นที่สุดไปจุดที่ไกลสุด ใช้เวลาประมาณครึ่งชั่วโมง และตอบไม่ได้สักข้อว่ารถต้องวิ่งกี่กิโล ใช้รถกี่คันถึงจะพอ หรือจะกลับถึงคลังกี่โมง

สามคำถามนี้คือสิ่งที่โปรแกรมตอบให้ได้ในไม่กี่วินาที

2ทำยังไง

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

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

    คลังคือที่ที่รถออกและกลับ ตั้งได้หลายแห่ง แต่บทนี้เอาแห่งเดียวก่อน

    แถวของคลังบางนา ท้ายแถวบอกว่า 3 คัน · 12 จุดส่ง
    ท้ายแถวคลังบอกสองอย่าง มีรถกี่คัน และมีจุดส่งกี่จุดที่คลังนี้ส่งได้ รถ 3 คันคือที่ตั้งไว้ในตัวอย่างนี้ แก้จำนวน เวลาทำงาน และความจุได้ใน ⚙ รายละเอียด ของคลัง
  2. ใส่จุดส่ง กด + เพิ่มจุดส่ง ทีละจุด หรือคลิกขวาบนแผนที่ก็ได้เหมือนกัน แต่ละจุดใส่ชื่อร้าน น้ำหนัก และปริมาตร ถ้าข้อมูลอยู่ใน Excel อยู่แล้ว ข้ามไปบทที่ 15 ได้ ไม่ต้องพิมพ์ทีละแถว

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

    ปุ่ม วางแผนเส้นทาง สีน้ำเงิน มีวงสีแดงรอบ
    ทั้งบทนี้มีปุ่มนี้ปุ่มเดียวที่ต้องกด

3อ่านคำตอบ

บรรทัดแรกที่ขึ้นมาคือคำตอบของทั้งวัน อ่านจากซ้ายไปขวา

บรรทัดสรุปผล: รถ 1 คัน · จุดส่ง 12 จุด · 50.0 กม. · 400 บาท · ตรงเวลาทุกคัน
สิบสองจุดนี้รถคันเดียวเอาอยู่ วิ่ง 50 กิโล และไม่มีคันไหนกลับเลยเวลาเลิกงาน — ตรงเวลาทุกคัน คือคำนั้น

บนแผนที่ ตัวเลขในวงกลมคือลำดับที่รถต้องไป เส้นคือทางที่รถวิ่งจริง

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

การ์ดของรถแต่ละคันบอกรายละเอียดของคันนั้น

การ์ดรถคันที่ 1 ประเภท 4 ล้อ: 50.0 กม. 265 นาที บรรทุก 990.0 กก. เวลาทำงาน 08:00-17:00 กลับถึงคลัง 12:25 ตรงเวลา ใช้เวลาทำงานไป 49% เวลาวิ่ง 79 นาที เวลาที่จุดส่ง 186 นาที จุดส่ง 12 จุด
บรรทัดที่คนมักมองข้ามคือ เวลาวิ่ง / เวลาที่จุดส่ง — 79 นาทีกับ 186 นาที คือวันนี้เวลาหมดไปกับการยืนส่งของ ไม่ใช่การขับรถ ถ้าอยากให้วันสั้นลง ลดเวลาที่จุดส่งได้ผลกว่าหาทางที่ใกล้กว่า

4ที่ยังไม่ได้บอกโปรแกรม

วันนี้เรียบง่ายเพราะเรายังไม่ได้บอกอะไรมาก โปรแกรมจึงคิดว่า ทุกร้านรับของได้ทุกเวลา ของขึ้นรถได้หมด และรถทุกคันเหมือนกัน ซึ่งวันจริงไม่ใช่แบบนั้น

แต่ละบทเพิ่มเงื่อนไขทีละข้อ กับบริษัทเดิม คลังเดิม และรถกองเดิมนี้

ถ้าส่งข้อมูลเข้ามาเป็น JSONสำหรับคนที่ต่อระบบเอง

วันหนึ่งวันคือก้อนเดียว มีคลังกับจุดส่ง จุดส่งบอกน้ำหนักกับปริมาตร และบอกว่าออกจากคลังไหน:

{
  "provider": "osrm",
  "date": "2026-08-24",
  "depots": [
    {
      "depot_id": "บางนา",
      "name": "คลังบางนา",
      "location": { "lat": 13.672, "lng": 100.63 },
      "van_types": [
        { "type_name": "4 ล้อ", "van_count": 3,
          "shift_start": "08:00", "shift_end": "17:00",
          "capacity_kg": 1500, "capacity_cm3": 8000000 }
      ]
    }
  ],
  "jobs": [
    { "order_id": "A-01", "location": { "lat": 13.706, "lng": 100.601 },
      "weight_kg": 80, "volume_cm3": 160000, "depot_id": "บางนา",
      "metadata": { "customer_name": "ร้านของชำอ่อนนุช" } }
  ]
}

provider คือตัวคิดระยะทาง osrm คิดตามถนนจริง อีกตัวคือ haversine ซึ่งลากเส้นตรง เร็วกว่าแต่ระยะไม่ใช่ของจริง ใช้ตอนทดสอบเท่านั้น

ส่งก้อนนี้ไปที่ POST /api/solve จะได้แผนกลับมาเป็น JSON หน้าจอที่เห็นในบทนี้อ่านจากก้อนเดียวกัน

5ลองเอง

สามอย่างที่ควรลองด้วยมือ:

  1. ลบจุดส่งสองสามจุด แล้ววางแผนใหม่ ดูว่าระยะทางลดลงเท่าไหร่ — จุดที่อยู่ปลายทางสุดมักแพงกว่าจุดที่อยู่กลางทาง
  2. แก้เวลาเลิกงานของรถเป็น 11:00 แล้ววางแผนใหม่ บรรทัดสรุปจะเปลี่ยนไป เพราะวันเดียวไม่พอแล้ว
  3. ลากจุดส่งบนแผนที่ให้ออกไปไกล ๆ แล้ววางแผนใหม่ ดูว่าลำดับเปลี่ยนตรงไหน