Problem marszrutyzacji: Różnice pomiędzy wersjami
[wersja przejrzana] | [wersja przejrzana] |
Usunięta treść Dodana treść
drobne redakcyjne |
|||
Linia 1:
[[Plik:Vehicle Routing Problem Example.svg|thumb
'''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<ref name="MoVRP">{{Cytuj pismo |autor=Jozefowiez Nicolas, Semet Frédéric, Talbi El-Ghazali |tytuł=Multi-objective vehicle routing problems| czasopismo=[[European Journal of Operational Research]]| wydawca=Elseiver| wydanie=189| wolumin=2| strony=293–309| issn=0377-2217| język=en| data=2008| doi=10.1016/j.ejor.2007.05.055}}</ref>. 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:
* [[problem komiwojażera]] ({{w języku|en|traveling salesman problem}}),
* [[problem chińskiego listonosza]] ({{w języku|en|Chinese postman problem}}),
oraz zaliczany jest do problemów [[Problem NP-trudny|NP-trudnych]]. Z tego względu zazwyczaj jest rozwiązywany przy pomocy metod [[heurystyka (informatyka)|heurystycznych]]. Algorytmy dokładne mogą być wykorzystywane tylko dla problemów o stosunkowo niewielkiej liczbie klientów (do 135)<ref name="Laporte">{{cytuj stronę|url=http://www.transportation.put.poznan.pl/index.php?option=com_content&task=view&id=104&Itemid=1|tytuł=Fifty Years of Vehicle Routing|nazwisko=Laporte|imię=Gilbert|data=2009-04-23|praca=Prezentacja wygłoszona podczas Międzynarodowego Seminarium Transportowego|opublikowany=transportation.put.poznan.pl|język=en|data dostępu=2009-05-10}}</ref>.▼
▲oraz zaliczany jest do problemów [[Problem NP-trudny|NP-trudnych]]. Z tego względu zazwyczaj jest rozwiązywany przy pomocy metod [[heurystyka (informatyka)|heurystycznych]]. Algorytmy dokładne mogą być wykorzystywane tylko dla problemów o stosunkowo niewielkiej liczbie klientów (do 135)<ref name="Laporte">{{cytuj stronę| url=http://www.transportation.put.poznan.pl/index.php?option=com_content&task=view&id=104&Itemid=1| tytuł=Fifty Years of Vehicle Routing| nazwisko=Laporte| imię=Gilbert| data=2009-04-23| praca=Prezentacja wygłoszona podczas Międzynarodowego Seminarium Transportowego| opublikowany=transportation.put.poznan.pl| język=en| data dostępu=2009-05-10}}</ref>.
Problem został po raz pierwszy zaprezentowany przez [[George Dantzig|G.B. Dantziga]] oraz R.H. Ramsera w [[1959]] roku w pracy {{k|en|The Truck Dispatching Problem}} opublikowanej na łamach czasopisma ''[[Management Science]]''<ref>{{lang|en}}([[PDF]])[http://www.ams.org/notices/200703/fea-cottle.pdf Biografia G.B. Dantziga autorstwa Richarda Cottle, Ellisa Johnsona, and Rogera Wetsa]</ref>.▼
▲Problem został po raz pierwszy zaprezentowany przez [[George Dantzig|G.B. Dantziga]] oraz R.H. Ramsera w [[1959]] roku w pracy {{k|en|The Truck Dispatching Problem}} opublikowanej na łamach czasopisma ''[[Management Science]]''<ref>{{lang|en}}([[Portable Document Format|PDF]])[http://www.ams.org/notices/200703/fea-cottle.pdf Biografia G.B. Dantziga autorstwa Richarda Cottle, Ellisa Johnsona, and Rogera Wetsa].</ref>.
== Klasyczne ujęcie problemu ==
W klasycznym ujęciu problem sformułowany jest w postaci [[
Minimalizowana jest funkcja
▲<math> minC = \sum_{r \in R} \sum_{f \in \Psi} \sum_{g \in \Psi} c_{fg} x_{fgr} </math>
:
▲: gdzie:
: <math>c_{fg}</math> – koszt przewozu pomiędzy wierzchołkami
▲: ''r'' – pojazd należący do zbioru jednorodnych (identycznych) pojazdów ''R''
: <math>x_{fgr}</math> – zmienna binarna określająca, czy pomiędzy wierzchołkami
▲: ''f'', ''g'' – wierzchołki pomiędzy, którymi odbywa się przewóz
▲: <math>c_{fg}</math> – koszt przewozu pomiędzy wierzchołkami ''f'' i ''g''
▲: <math>x_{fgr}</math> – zmienna binarna określająca, czy pomiędzy wierzchołkami ''f'' i ''g'' pojazd ''r'' wykonuje przewóz.
[[Warunek ograniczający decyzję|Warunkami ograniczającymi]] są: <!-- W całym akapicie jest coś nie tak z indeksami. Raz zmienne należą do zbioru wierzchołków, a raz do krawędzi. Należy to albo wyjaśnić/sprecyzować, albo poprawić. -->
* 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
*: <math>\forall_{r \in R} \sum_{g \in \epsilon} x_{0,g,r} = 1</math> – dla bazy początkowej,
*: <math>\forall_{r \in R} \sum_{f \in \epsilon} x_{f,n+1,r} = 1</math> – dla bazy końcowej,
*: <math>\forall_{r \in R} \land \forall_{f \in \Psi} \sum_{f \in \epsilon} x_{f,z,r} - \sum_{g \in \epsilon} x_{z,g,r} = 0</math> – dla wierzchołków pośrednich.
*:: W przypadku, gdy istnieje połączenie pomiędzy punktami
* Przypisanie każdemu klientowi dokładnie jednego pojazdu, który zaspokaja jego zapotrzebowanie (dostawy są niedzielone)
*: <math>\forall_{f \in \Psi} \sum_{g \in \epsilon} \sum_{r \in R} x_{fgr} = 1</math> – warunek przypisania dokładnie jednego pojazdu,
*: <math>\forall_{f \in \epsilon} \land \forall_{g \in \epsilon} \land \forall_{r \in R} ~ x_{fgr} \in \{
=== 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).
*: <math>\forall_{r \in R} \sum_{f \in \Psi} d_f \sum_{g \in \Psi} x_{fgr} \
*:: gdzie:
*:: <math>d_f</math> – popyt przypisany do danego klienta,
*:: <math>m_r</math> – 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)
*: <math>\forall_{r \in R} \land \forall_{f \in \Psi} \land \forall_{g \in \Psi} ~ x_{fgr} (t_{fr} + t_{fg} - t_{gr}) \
*:: gdzie:
*:: <math>t_{fr}</math> – czas rozpoczęcia obsługi klienta
*:: <math>t_{fg}</math> – czas przejazdu pomiędzy
*:: <math>t_{gr}</math> – czas rozpoczęcia obsługi klienta
== Rozwinięcia problemu ==
W literaturze występują również rozwinięcia klasycznego problemu marszrutyzacji. Należą do nich m.in.:
*
*
*
*
*
*
*
*
*
*
*
*
*
*
== Problem marszrutyzacji a problemy
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 [[Capacitated Arc Routing Problem|CARP]]. W rzeczywistości sytuacje takie występują przykładowo podczas opracowywania marszrut dla [[zamiatarka|zamiatarek drogowych]], [[śmieciarka|śmieciarek]], czy też [[pługopiaskarka|pługopiaskarek]]<ref name="arcrouting">{{Cytuj pismo| nazwisko=Muyldermans| imię=Luc| tytuł=Routing, districting and location for arc traversal problems| czasopismo=4OR: A Quarterly Journal of Operations Research| wydawca=Springer-Verlag| wolumin=2| strony=169–172| język=en| data=czerwiec 2003| doi=10.1007/s10288-003-0015-5}}</ref>.
== Przypisy ==
Linia 70:
== Bibliografia ==
* {{Cytuj |
== Linki zewnętrzne ==
|