23
OPTYMALIZACJA W LOGISTYCE Optymalizacja zadań bazy transportowej ( część 2 ) Opracowano na podstawie : Stanislaw Krawczyk, Metody ilościowe w logistyce ( przedsiębiorstwa ), Wydawnictwo C. H. Beck, Warszawa 2001

Wykład 2 -_optymalizacja_w_logistyce

  • Upload
    mkrolik

  • View
    452

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Wykład 2 -_optymalizacja_w_logistyce

OPTYMALIZACJA W LOGISTYCE

Optymalizacja zadań bazy transportowej ( część 2 )

Opracowano na podstawie : Stanisław Krawczyk, Metody ilościowe w logistyce ( przedsiębiorstwa ),Wydawnictwo C. H. Beck, Warszawa 2001

Page 2: Wykład 2 -_optymalizacja_w_logistyce

Problem komiwojaŜera

Sformułowanie problemu

Zadanie komiwojaŜera jest znane od kiedy kupcy zaczęli dostarczać produkty klientom.

Podstawową wersję problemu komiwojaŜera moŜna przedstawić w dwóch zdaniach:

1. KomiwojaŜer pragnie odwiedzić pewną liczbę klientów w róŜnych miejscowościach i po zakończeniu odwiedzin wrócić do domu.

2. Jaką drogę powinien wybrać ( w jakiej kolejności powinien odwiedzaćklientów) aby przebyta przez niego droga była moŜliwie najkrótsza?

Page 3: Wykład 2 -_optymalizacja_w_logistyce

Pierwsze reguły wyznaczania trasy zostały opracowane na podstawie doświadczeńpraktycznych juŜ w połowie XIX wieku przez komiwojaŜerów w USA. Jednak dopiero formalne ujęcie matematyczne pozwoliło odkryć, Ŝe to niby proste zadanie obejmuje bardzo szeroką klasę przypadków, z których tylko niektóre moŜna rozwiązać dokładnie.

ZałoŜenia:1. KaŜdego klienta moŜna identyfikować przez podanie miejscowości (węzła w

grafie), w której zamieszkuje ( w jednej miejscowości znajduje się jeden klient ). 2. Między miejscowościami istnieją połączenia pozwalające na przemieszczanie w

obu kierunkach ( krawędzie grafu ).3. KaŜdej krawędzi przyporządkowana jest liczba określająca uogólnioną

odległość.4. WyróŜnione miejscowości oraz potencjalne trasy przejazdu moŜna przedstawić

za pomocą grafu G=[ V , E , c ] , nieskierowanego, spójnego, o n węzłach, w którym liczby przyporządkowane krawędziom są nieujemne – cij = cji ≥ 0

5. Dla dowolnych trzech węzłów i,j,k powinna być spełniona nierówność: cik ≤ cij + cjk

6. Dla dowolnych dwóch miejscowości nie mogą występować połączenia przez inne miejscowości.

7. WyróŜniamy jeden węzeł odpowiadający miejscu startu komiwojaŜera i przyjmujemy, Ŝe jego trasa powinna kończyć się powrotem do tego węzła.

Page 4: Wykład 2 -_optymalizacja_w_logistyce

KaŜdą trasę spełniająca te warunki nazywamy trasą okręŜną komiwojaŜera, która jest optymalna, gdy łączna jej długość jest minimalna. KaŜda z miejscowości ( z wyjątkiem startowej ) musi wystąpić na niej tylko raz. W teorii grafów trasę tego typu nazywa się cyklem Hamiltona. JeŜeli nie wymaga się odwiedzenia wszystkich miejscowości mówimy o cyklu skróconym.

11

2 3

4 5

6

Page 5: Wykład 2 -_optymalizacja_w_logistyce

Poszukiwany cykl Hamiltona oznaczymy krótko symbolem H. Aby móc zapisać, Ŝe pewna krawędź naleŜy do tego cyklu, wprowadzimy zmienne binarne xij , i,j= 1…, n.

PoniewaŜ kaŜda miejscowość moŜe tylko raz wystąpić w trasie, więc kaŜdy węzeł i moŜe tylko raz wystąpić jako węzeł początkowy krawędzi :

KaŜdy węzeł moŜe być równieŜ tylko raz węzłem końcowym krawędzi, co prowadzi do układu ograniczeń:

[ ]

=przypadku przeciwnym w0,

Hcyklu ji, drogagdy ,1ijx

n.1,..., j ,11

==∑=

n

iijx

n.1,..., i ,11

==∑=

n

jijx

Page 6: Wykład 2 -_optymalizacja_w_logistyce

Minimalizacja trasy moŜe być ujęta w formie funkcji kryterium:

Wprowadzamy sztuczne załoŜenie, na mocy którego, gdy między dwoma węzłami p i r nie istnieje połączenie, to przyjmujemy, Ŝe są one oddalone nieskończenie daleko, a więc cpr = ∞ , oraz równieŜ cii = ∞

Próba tak sformułowanego zadania kończy się jednak bardzo często wskazaniem cykli skróconych, których przyjęte ograniczenia niestety nie wykluczają. Aby do tego nie dopuścić do zadania naleŜy wprowadzićdodatkowe ograniczenia , które czynią zadanie trudnym do praktycznego rozwiązania. W literaturze moŜna spotkać róŜne wersje ograniczeńuniemoŜliwiających powstawanie cykli skróconych. Często spotykaną jest następująca:

1. Rozpatrujemy wszystkie k elementowe permutacje węzłów [ i1 , i2 ,…, ik ] , przy czym

• Gdy liczba węzłów jest parzysta:k = 2,3,…,

min1 1

→∗=∑∑= =

ij

n

i

n

jij xcz

2

n

Page 7: Wykład 2 -_optymalizacja_w_logistyce

• Gdy liczba węzłów n jest nieparzysta:

k = 2,3,…,

2. Dla kaŜdego k tworzymy układ ograniczeń:

NaleŜy teraz wziąć pod uwagę, Ŝe dla kaŜdego k otrzymujemy

ograniczeń. Dla n=6 otrzymamy 55 ograniczeń, ale ich liczba

rośnie bardzo szybko dla n=14 wynosi prawie 3 miliony, co czyni zadanie niemoŜliwym do rozwiązania. Z tego względu w praktyce najczęściej wykorzystywane są algorytmy heurystyczne.

2

1−n

1...13221

−≤++ kxxx iiiiii k

( )! 1−∗

k

k

n

Page 8: Wykład 2 -_optymalizacja_w_logistyce

Algorytm droga do najbli Ŝszego s ąsiada

ZałoŜenia startoweStartujemy węźle a. Symbolem z oznaczamy długość drogi okręŜnej.Przyjmujemy: k1 := a, z := 0.IteracjeNumery iteracji będziemy kojarzyć z liczbą odwiedzanych miejscowości,

dlatego.rozpatrujemy iteracje j = 2,3,…,n.

Krok 1Wskazujemy węzeł kj , dla którego

Czyli wskazujemy węzeł, który nie jest zakwalifikowany do drogi i leŜy najbliŜejostatniego z juŜ uwzględnionych w drodze.

Krok 2Tworzymy ciąg [ k1 ,…, kj ].

{ } 11, ,..., czymprzy ,min,11 −≠=

−− jkkk kkiccijjj

Page 9: Wykład 2 -_optymalizacja_w_logistyce

Krok 3

Przyjmujemy:

Po n iteracjach do ciągu [ k1 ,…, kn-1 , kn ] dołączamy węzeł startowy k1 , tworząc drogę

okręŜną H = [ k1 ,…, kn-1 , kn , k1 ] , której długość wynosi:

jj kkczz ,1−+=

1,kczznk+=

Page 10: Wykład 2 -_optymalizacja_w_logistyce

Przykład

Postępując zgodnie z zasadami wyznaczania najbliŜszego sąsiada wyznaczamy kolejno

w wierszach zaczynając od wiersza 1:• W wierszu 1 : węzeł 3 – czas 78

• W wierszu 3 : węzeł 5 – czas 66

• W wierszu 5 : węzeł 4 – czas 288 ,nie moŜna wybrać 2 bo nie ma z niego dojazdu do 4 , ale z 4 nie moŜliwy jest takŜe dojazd do 2. NaleŜy postępowanie zacząć od początku biorąc pod uwagę, Ŝe najgorszy dojazd jest do 2 i 4

• W wierszu 1 : węzeł 3 – czas 78

• W wierszu 3 : węzeł 2 – czas 81

1 1 2 3 4 5Wrocław 1 ∞ 83 78 198 131

Wałbrzych 2 83 ∞ 81 ∞ 63

Legnica 3 78 81 ∞ 277 66

Poznań 4 198 ∞ 277 ∞ 288

Jelenia Góra

5 131 63 66 288 ∞

Page 11: Wykład 2 -_optymalizacja_w_logistyce

• W wierszu 2 : węzeł 5 – czas 63

• W wierszu 5 : węzeł 4 - czas 288• W wierszu 4 : węzeł 1 - czas 198

Łączny czas przejazdu 708

Drugi wariant drogi okręŜnej• W wierszu 1 : węzeł 3 – czas 78

• W wierszu 3 : węzeł 4 – czas 277

• W wierszu 4 : węzeł 5 - czas 288• W wierszu 5 : węzeł 2 - czas 63

• W wierszu 2 : węzeł 1 – czas 83

Łączny czas przejazdu 789Trzeci wariant drogi okręŜnej:

• W wierszu 1 : węzeł 2 – czas 83

• W wierszu 2 : węzeł 5 – czas 63• W wierszu 5 : węzeł 3 - czas 66

• W wierszu 3: węzeł 4 - czas 277

• W wierszu 4 : węzeł 1 – czas 198Łączny czas przejazdu 687

Page 12: Wykład 2 -_optymalizacja_w_logistyce

5

3

2

4

1

Poznań

Wrocław

Wałbrzych

Legnica

Jelenia Góra

Page 13: Wykład 2 -_optymalizacja_w_logistyce

Jak widać algorytmu nie da się zawsze zastosować nie odchodząc od wcześniej przedstawionych regułpostępowania. Wszystko zaleŜy od konfiguracji połączeń. Dlatego naleŜy pamiętać, Ŝe stosując algorytmy heurystyczne nie zawsze otrzymujemyrozwiązanie optymalne ale jedynie dopuszczalne.

Page 14: Wykład 2 -_optymalizacja_w_logistyce

Algorytm sukcesywne doł ączanie w ęzłów.

Dla z góry zadanego węzła startowego a naleŜy juŜ na starcie wybrać inny węzeł b i

utworzyć początkową trasę z a do b i powrotem: [a,b,a]. W trakcie postępowania

będziemy sukcesywnie modyfikować tę drogę przez dołączanie nowych węzłów.

Wybór nowego węzła nie jest jednoznacznie określony, ale korzystnie jest stosować

następująca regułę:

Najmniejsza z odległości dołączanego węzła do wcześniej określonej drogi powinna.

być moŜliwie największa. Przyjmujemy zatem:

• a – węzeł startowy,• b – węzeł najbardziej oddalony od a,

• z – określona długość okręŜnej drogi; w iteracja pośrednich – drogi częściowej,

• H – cykl węzłów tworzących drogę okręŜną; w iteracjach pośrednich jest to droga częściowa

Page 15: Wykład 2 -_optymalizacja_w_logistyce

ZałoŜenia startowePrzyjmujemy:

IteracjeNumery iteracji kojarzyć będziemy z liczbą odwiedzonych miejscowości,

dlatego.

rozpatrujemy iteracje j = 3,…,n. Przyjmijmy, Ŝe w iteracji (j-1) otrzymaliśmy częściową.

drogę okręŜną :

o długości z. Ze względu na stosowane dalej wzory ostatni z węzłów jest oznaczony przez kj

, a wrzeczywistości jest nim węzeł k1 .

[ ]1221k12121 cz , ,,kH b, , kkk ckkkak +====

[ ]jj kkkkH ,,...,, 121 −=

Page 16: Wykład 2 -_optymalizacja_w_logistyce

W kaŜdej iteracji naleŜy wskazać, który z nie uwzględnionych jeszcze węzłów powinien

być dołączony i rozstrzygnąć, między którymi węzłami istniejącej trasy powinien być

Dołączony.

Krok 1

Dla kaŜdego węzła p ≠ k1 , k2 ,…, kj-1 obliczamy :

Krok 2

Jako węzeł i , który ma być dołączony do drogi wybieramy ten, dla którego:

( )pjkpkpkp cccd

121,...,,min

−=

pp

i dd max=

Page 17: Wykład 2 -_optymalizacja_w_logistyce

Krok 3

Mając wybrany węzeł i musimy rozstrzygnąć, między które węzły drogi H wstawić ten.

węzeł. W nowej drodze pojawiają się krawędzie [kt , i] oraz [i , kt+1 ] natomiast wypada z

niej krawędź [kt , kt+1 ]

kk1 kt Kt+1 k1

i

Cikt+1Ckti

Cktkt+1

Page 18: Wykład 2 -_optymalizacja_w_logistyce

Dołączenie nowych odcinków drogi powoduje zmianę jej długości. Wielkość tej zmiany

oznaczamy symbolem st i obliczamy następująco :

Jesteśmy zainteresowani takim rozwiązaniem, które będzie powodowało najmniejszy .

przyrost długości drogi, dlatego postępujemy zgodnie z następującym kryterium:

Krok 4Tworzymy nową częściową trasę

11 ++−+=

tttt kkikikt cccs

( )111 min

1,...,1+++

−+=+=−=

tthhtt kkikikjh

ikikt cccccs

[ ]jtt kkikkH ,...,,,,..., 11 +=

Page 19: Wykład 2 -_optymalizacja_w_logistyce

Krok 5

Sprawdzamy czy zostały uwzględnione wszystkie węzły. JeŜeli nie to przechodzimy

do następnej iteracji. JeŜeli tak wyznaczanie trasy komiwojaŜera kończy się.

Otrzymujemy drogę okręŜną, która jest cyklem Hamiltona

[ ]11 ,,..., kkkH n=

Page 20: Wykład 2 -_optymalizacja_w_logistyce

Przykład

Przyjmujemy jako a węzeł 1, jako b naleŜy przyjąć węzeł 4, do którego czas przejazdu . jest najdłuŜszy i wynosi 198 min. Otrzymujemy drogę H1= [1,4,1] , z=198 + 198 = 396

Iteracja 3

Wyznaczamy węzeł, który dołączymy do drogi H1:

p=2 r21 = min { 83 , 10000 } = 83

P=3 r31 = min { 78 , 277 } = 78

1 1 2 3 4 5Wrocław 1 ∞ 83 78 198 131

Wałbrzych

2 83 ∞ 81 ∞ 63

Legnica 3 78 81 ∞ 277 66

Poznań 4 198 ∞ 277 ∞ 288

Jelenia Góra

5 131 63 66 288 ∞

Page 21: Wykład 2 -_optymalizacja_w_logistyce

P=5 r51 = min { 131, 288 } = 131

Do drogi H1 dołączamy węzeł 5. Musimy teraz rozstrzygnąć na które miejsce w ty celu.

obliczmy wskaźniki st :

s1 = c15 + c54 – c14 = 131 + 288 – 198 = 221s4 = c45 + c51 - c41 = 288 + 131 – 198 = 221

Wybór jest dowolny, załóŜmy, Ŝe wybieramy s1 co oznacza, Ŝe tworzymy nowąokręŜną.

trasę H2 = [1, 5, 4, 1 ]

Iteracja 4

P = 2 r22 = min { c21 , c25 , c24 } =min {83 , 63 , 10000 } = 63P = 3 r32 = min { c31 , c35 , c34 } = min {78 , 66 , 277 } = 66

Do drogi H2 dołączamy węzeł 3.

Page 22: Wykład 2 -_optymalizacja_w_logistyce

Musimy teraz rozstrzygnąć na które miejsce w ty celu obliczmy wskaźniki st :s1 = c13 + c35 – c15 = 78 + 66 – 131 = 13

s5 = c53 + c34 - c54 = 66 + 277 – 288 = 55

S4 = c43 + c31 – c41 = 277 + 78 – 198 = 157wybieramy s1 co oznacza, Ŝe węzeł 3 dołączamy do drogi H2 po węźle 1.

Otrzymujemytrasę H3 = [1 , 3 , 5 , 4 , 1] z = 78 + 66 + 288 + 198 = 630

Iteracja 5

P = 2 r23 = min {83 , 273 , 81 , 63 } = 63Musimy teraz rozstrzygnąć na które miejsce wprowadzimy węzeł 2 w ty celu

obliczmy.

wskaźniki st :

s1 = c12 + c23 – c13 = 83 + 81 – 78 = 86s3 = c32 + c24 - c34 = 81 + 63 – 66 = 78

S4 = c42 + c21 – c41 = 10000 + 83 – 198 = 9885

S5 = c52 + c24 - c54 = 63 + 10000 - 288 = 9777wybieramy s1 co oznacza, Ŝe węzeł 2 dołączamy do drogi H3 po węźle 1.

Otrzymujemytrasę H3 = [1 , 3 , 2 , 5 , 4 , 1] z = 78 + 81 + 63 + 288 + 198 = 708

Page 23: Wykład 2 -_optymalizacja_w_logistyce

1

4

2

5

3