OR-Tools • Útvonaloptimalizálás
Melegétel-kiszállítás

Intelligens címkiosztás és útvonaltervezés

Időérzékeny rendelések (≤ X perc), prioritás (AZONNALI), futárok terhelésének kiegyensúlyozása. Kimenet JSON, integráció Google Maps / Waze felé.

Kiindulópont
Étterem címe
Max idő
Paraméterezhető (pl. 60p)
API
REST JSON

Előszó

A melegétel-kiszállítás időkritikus: az ételnek forrón, pontosan és hatékonyan kell megérkeznie.

  • Kézi címkiosztás → késések, ingadozó minőség
  • Futárok terhelése nem kiegyenlített
  • Prioritások (AZONNALI) kezelése hiányos

Probléma

  • Nem garantált a kiszállítás ≤ beállított max szállítási idő (pl. 60p)
  • Nem optimális útvonalak → hosszabb menetidő
  • AZONNALI rendelések nem kapnak automatikus elsőbbséget

Megoldás: Google OR-Tools + REST API + VPS

  • OR-Tools VRP: futárokra bontott optimális útvonalak (Vehicle Routing)
  • Hostolás: saját VPS környezet
  • Hívás: REST API (JSON), rendeléskezelőből/ERP-ből
  • Kimenet: futáronkénti stoplista (lat/lng + cím + ETA + prioritás)

Architektúra & adatáramlás (VPS)

A kliens rendszerek (Web/ERP) hívják a REST API-t. A szolgáltatás a VPS-en fut, OR-Tools-szal optimalizál, Distance Matrix alapján időket számol, majd JSON útvonalakat ad vissza.

  • Bejövő: rendelés + címek (lat/lng, cím, prioritás)
  • Feldolgozás: OR-Tools VRP (időlimit, max cím/futár)
  • Kimenet: futárútvonalak (stops + ETA)
Kliens (Web/ERP) REST API VPS (Docker) OR-Tools Optimizer Distance Matrix Kimenet: JSON (routes → stops: lat/lng, cím, ETA, prioritás)

Fő funkciók

  • Kiindulópont: étterem címe (depot)
  • Max szállítási idő: paraméterezhető (X perc, pl. 60)
  • Több cím/futár + max cím/futár korlát
  • Prioritás: AZONNALI előresorolás/külön kör
  • Valós menetidő: Distance Matrix (perc)
  • Szolgáltatási idő: átvétel/átadás beszámítása

REST API – bemenet/kimenet példa

Bemenet (POST /optimize):

{
  "depot": { "address": "Budapest, Étterem u. 1.", "lat": 47.4979, "lng": 19.0402 },
  "max_delivery_minutes": 60,
  "max_stops_per_courier": 6,
  "couriers": [ {"id": 1}, {"id": 2}, {"id": 3}, {"id": 4}, {"id": 5} ],
  "orders": [
    { "id": "R-1001", "address": "Váci út 85.", "lat": 47.5311, "lng": 19.0741, "priority": true,  "service_min": 3 },
    { "id": "R-1002", "address": "Fő utca 12.", "lat": 47.5123, "lng": 19.0345, "priority": false, "service_min": 3 }
  ]
}

Kimenet:

{
  "routes": [
    {
      "courier_id": 1,
      "total_time_min": 48,
      "stops": [
        { "order_id": "R-1001", "address": "Váci út 85.", "lat": 47.5311, "lng": 19.0741, "eta": "2025-10-14T12:32:00Z", "priority": true },
        { "order_id": "R-1002", "address": "Fő utca 12.", "lat": 47.5123, "lng": 19.0345, "eta": "2025-10-14T12:50:00Z", "priority": false }
      ]
    }
  ]
}

A lat/lng + cím kombinációt a Google Maps, Waze és egyéb térképek gond nélkül kezelik.

Eredmény

  • Minden cím ≤ X perc (ha lehetséges megoldás létezik)
  • AZONNALI rendelések azonnali kiszállítása
  • Kiegyensúlyozott futárterhelés, kevesebb üresjárat
  • Alacsonyabb üzemanyagköltség és gyorsabb kiszállítás

Összegzés

OR-Tools alapú, VPS-en futó szolgáltatásunk REST API-n keresztül fogadja a rendeléseket és visszaadja a futár-útvonalakat JSON-ben. A megoldás egyszerre kezeli az időkorlátot, a prioritásokat és a futárok kapacitását.

  • Gyors integráció: egyszerű JSON séma
  • Rugalmas paraméterezés: X perc, max cím/futár
  • Valós menetidő, ETA-k, lat/lng + cím