Problem marszrutyzacji

Z testwiki
Wersja z dnia 13:30, 18 mar 2025 autorstwa imported>Blakocha (Link)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacji Przejdź do wyszukiwania
Graficzna prezentacja rozwiązania problemu marszrutyzacji (nieoptymalnego!). Zostały wyznaczone trzy marszruty (zobrazowane liniami: ciągłą, przerywaną i kropkowaną), takie że każda swój punkt początkowy i końcowy ma w bazie (żółty prostokąt „D”) oraz każda przebiega przez wszystkie punkty pośrednie (klientów – czerwone, zielone i niebieskie punkty).

Problem marszrutyzacjiproblem 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 Szablon:K opublikowanej na łamach czasopisma Management Science[3].

Klasyczne ujęcie problemu

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

Minimalizowana jest funkcja

minC=rRfΨgΨcfgxfgr,

gdzie:

r – pojazd należący do zbioru jednorodnych (identycznych) pojazdów R,
f, g – wierzchołki pomiędzy, którymi odbywa się przewóz,
cfg – koszt przewozu pomiędzy wierzchołkami f i g,
xfgrzmienna 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:
    rRgϵx0,g,r=1 – dla bazy początkowej,
    rRfϵxf,n+1,r=1 – dla bazy końcowej,
    rRfΨfϵxf,z,rgϵxz,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):
    fΨgϵrRxfgr=1 – warunek przypisania dokładnie jednego pojazdu,
    fϵgϵrRxfgr{0,1} – warunek niedzielonych dostaw.

Przykładowe rozwinięcia problemu

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

  • Warunek nieprzekroczenia pojemności poszczególnych środków transportu (problem CVRP).
    rRfΨdfgΨxfgrmr,
    gdzie:
    df – popyt przypisany do danego klienta,
    mr – 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)
    rRfΨgΨxfgr(tfr+tfgtgr)0,
    gdzie:
    tfr – czas rozpoczęcia obsługi klienta f,
    tfg – czas przejazdu pomiędzy f a g,
    tgr – czas rozpoczęcia obsługi klienta g.

Rozwinięcia problemu

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 Delivery – problem rozwózkowo-zwózkowy),
  • problemy, w których warunki zostały ujęte stochastycznie (Stochastic VRP).

Problem marszrutyzacji a problemy „capacitated arc routing”

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].

Przypisy

Szablon:Przypisy

Bibliografia

Linki zewnętrzne

Szablon:Teoria grafów