Problem marszrutyzacji

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania
Graficzna prezentacja rozwiązania problemu marszrutyzacji (nieoptymalnego!). Zostały wyznaczone trzy marszruty (linie: ciągła, przerywana i kropkowana), które swój punkt początkowy i końcowy mają w bazie (żółty prostokąt "D") oraz przebiegają przez wszystkie punkty pośrednie (klientów - czerwone, zielone i niebieskie punkty).

Problem marszrutyzacji - problem decyzyjny polegający na wyznaczeniu optymalnych tras przewozowych dla pewnej ściśle określonej liczby środków transportu, której zadaniem jest obsłużenie zbioru klientów znajdujących się w różnych punktach przy zachowaniu ograniczeń. Kryterium optymalizacji jest całkowity koszt transportu (wyrażony odległościowo, cenowo lub czasowo). Istnieją również rozwinięcia problemu uwzględniające więcej, niż jedno kryterium optymalizacji[1]. Problem marszrutyzacji należy do podstawowej problematyki zarządzania operacyjnego flotą środków transportu (rzadziej zarządzania na wyższym szczeblu).

Problem ten jest rozwinięciem takich problemów jak:

oraz zaliczany jest do problemów NP-trudnych. Z tego względu zazwyczaj jest rozwiązywany przy pomocy metod heurystycznych. Algorytmy dokładne mogą być wykorzystywane tylko dla problemów o stosunkowo niewielkiej liczbie klientów (do 135)[2].

Problem został po raz pierwszy zaprezentowany przez G.B. Dantziga oraz R.H. Ramsera w 1959 roku w pracy The Truck Dispatching Problem opublikowanej na łamach Management Science[3].

Klasyczne ujęcie problemu[edytuj | edytuj kod]

W klasycznym ujęciu problem sformułowany jest w postaci grafu nieskierowanego \Gamma = (\Psi, \epsilon), gdzie \Psi oznacza zbiór wierzchołków, do których przypisane jest zapotrzebowanie, natomiast \epsilon zbiór krawędzi, do których przypisane są koszty przewozu ewentualnie czas lub długość trasy.

Minimalizowana jest funkcja

 minC = \sum_{r \in R} \sum_{f \in \Psi} \sum_{g \in \Psi} c_{fg} x_{fgr}

gdzie:
r – pojazd należący do zbioru jednorodnych (identycznych) pojazdów R
f, g – wierzchołki pomiędzy, którymi odbywa się przewóz
c_{fg} – koszt przewozu pomiędzy wierzchołkami f i g
x_{fgr} – zmienna binarna określająca, czy pomiędzy wierzchołkami f i g pojazd r wykonuje przewóz.

Warunkami ograniczającymi są:

  • Występowanie tylko jednej bazy początkowej i końcowej (miejsca, z którego pojazdy rozpoczynają/kończą przewóz), z której/do której wyjeżdża dokładnie jeden pojazd r. W przypadku wierzchołków pośrednich liczba pojazdów wjeżdżających jest równa liczbie pojazdów wyjeżdżających.
    \forall_{r \in R} \sum_{g \in \epsilon} x_{0,g,r} = 1 – dla bazy początkowej
    \forall_{r \in R} \sum_{f \in \epsilon} x_{f,n+1,r} = 1 – dla bazy końcowej
    \forall_{r \in R} \and \forall_{f \in \Psi} \sum_{f \in \epsilon} x_{f,z,r} - \sum_{g \in \epsilon} x_{z,g,r} = 0 – dla wierzchołków pośrednich
    W przypadku, gdy istnieje połączenie pomiędzy punktami 0 oraz n+1 to dopuszczalne są puste drogi
  • Przypisanie każdemu klientowi dokładnie jednego pojazdu, który zaspokaja jego zapotrzebowanie (dostawy są niedzielone).
    \forall_{f \in \Psi} \sum_{g \in \epsilon} \sum_{r \in R} x_{fgr} = 1 – warunek przypisania dokładnie jednego pojazdu
    \forall_{f \in \epsilon} \and \forall_{g \in \epsilon} \and \forall_{r \in R} ~ x_{fgr} \in \{ 0,1 \} – warunek niedzielonych dostaw

Przykładowe rozwinięcia problemu[edytuj | edytuj kod]

W rozwinięciach klasycznego problemu marszrutyzacji występować mogą dodatkowe ograniczenia. Przykładowo:

  • Warunek nieprzekroczenia pojemności poszczególnych środków transportu (problem CVRP).
    \forall_{r \in R} \sum_{f \in \Psi} d_f \sum_{g \in \Psi} x_{fgr} \le m_r
    gdzie
    d_f – popyt przypisany do danego klienta
    m_r – pojemność pojazdów
  • Ograniczenia czasowe w problemach z oknami czasowymi (pojazd nie przybędzie do określonego wierzchołka przed wykonaniem poprzednich zadań w węzłach poprzedzających)
    \forall_{r \in R} \and \forall_{f \in \Psi} \and \forall_{g \in \Psi} ~ x_{fgr} (t_{fr} + t_{fg} - t_{gr}) \le 0
    gdzie
    t_{fr} – czas rozpoczęcia obsługi klienta f
    t_{fg} – czas przejazdu pomiędzy f, a g
    t_{gr} – czas rozpoczęcia obsługi klienta g

Rozwinięcia problemu[edytuj | edytuj kod]

W literaturze występują również rozwinięcia klasycznego problemu marszrutyzacji. Należą do nich m.in.:

  • Problemy uwzględniające niesymetryczność kosztów przewozu pomiędzy wierzchołkami
  • Problemy uwzględniające niehomogeniczność taboru
  • Problemy uwzględniające przejazdy drobnicowe (Less Than Truckload)
  • Problemy uwzględniające ograniczenie maksymalnej długości trasy
  • Problemy umożliwiające ustalenie baz (jednej lub kilku), w których pojazdy zaczynają i kończą podróż (Multiple Depot VRP)
  • Problemy umożliwiające dodanie baz pomocniczych (VRP with Satellite Facilities)
  • Problemy umożliwiające ustalenie częstotliwości odbioru/dostawy ładunku
  • Problemy umożliwiające uwzględnienie okien czasowych (VRP with Time Windows) odbioru/wysłania towaru.
  • Problemy wiążące problem marszrutyzacji z problemem kontroli zapasów u klientów
  • Problemy uwzględniające możliwość obsługi jednego klienta przez kilka pojazdów (Split Delivery VRP)
  • Problemy w których kosztowa funkcja celu zastąpiona została innymi parametrami (np. czas wykonania zleceń, długość tras, ilość przewiezionego ładunku)
  • Problemy umożliwiające zdefiniowanie kolejności odwiedzania poszczególnych miejsc oraz opcjonalnego odwiedzania niektórych punktów.
  • Problemy uwzględniające możliwości zwrotów i wysyłki towarów przez klientów (VRP with Backhauls oraz VRP with Pick-Up and Delivering – problem rozwózkowo-zwózkowy)
  • Problemy, w których warunki zostały ujęte stochastycznie (Stochastic VRP)

Problem marszrutyzacji a problemy "capacitated arc routing"[edytuj | edytuj kod]

W problemie marszrutyzacji klienci stwarzający popyt na transport są zlokalizowani w wierzchołkach grafu. W rzeczywistości problem ten ma zastosowanie np. w tradycyjnych firmach przewozowych. Problemy, w których popyt jest zlokalizowany na krawędziach grafu należą do grupy problemów arc routing, a odpowiednikiem problemu marszrutyzacji jest problem CARP. W rzeczywistości sytuacje takie występują przykładowo podczas opracowywania marszrut dla zamiatarek drogowych, śmieciarek, czy też pługopiaskarek[4].

Bibliografia[edytuj | edytuj kod]

  • Jacek Żak, Wielokryterialne Wspomaganie Decyzji w Transporcie Drogowym, Wydawnictwo Politechniki Poznańskiej, Poznań, 2005, ISBN 83-7143-591-6

Linki zewnętrzne[edytuj | edytuj kod]

Przypisy

  1. Jozefowiez Nicolas, Semet Frédéric, Talbi El-Ghazali. Multi-objective vehicle routing problems. „European Journal of Operational Research”. 2 (189), s. 293–309, 2008. Elseiver. doi:10.1016/j.ejor.2007.05.055. ISSN 0377-2217 (ang.). 
  2. Gilbert Laporte: Fifty Years of Vehicle Routing (ang.). W: Prezentacja wygłoszona podczas Międzynarodowego Seminarium Transportowego [on-line]. transportation.put.poznan.pl, 2009-04-23. [dostęp 2009-05-10].
  3. (ang.)(PDF)Biografia G.B. Dantziga autorstwa Richarda Cottle, Ellisa Johnsona, and Rogera Wetsa
  4. Luc Muyldermans. Routing, districting and location for arc traversal problems. „4OR: A Quarterly Journal of Operations Research”. 2, s. 169–172, czerwiec 2003. Springer-Verlag. doi:10.1007/s10288-003-0015-5 (ang.).