Wykład 6

Transkrypt

Wykład 6
OPTYMALIZACJA W LOGISTYCE
Optymalizacja zadań bazy
transportowej ( część 1 )
Opracowano na podstawie : Stanisław Krawczyk, Metody ilościowe w logistyce ( przedsiębiorstwa ),
Wydawnictwo C. H. Beck, Warszawa 2001
Problem komiwojażera 1
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?
Problem komiwojażera 2
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.
Problem komiwojażera 3
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.
2
3
11
6
4
5
Problem komiwojażera 4
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.
 1, gdy droga i, j cyklu H 
xij  

0,
w
przeciwnym
przypadku


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 :
n
x
ij
i 1
 1, j  1,..., n.
Każdy węzeł może być również tylko raz węzłem końcowym krawędzi, co prowadzi do
układu ograniczeń:
n
x
j 1
ij
 1, i  1,..., n.
Problem komiwojażera 5
Minimalizacja trasy może być ujęta w formie funkcji kryterium:
n
n
z   cij  xij  min
i 1 j 1
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:
n
k = 2,3,…, 2
Problem komiwojażera 6
•
Gdy liczba węzłów n jest nieparzysta:
k = 2,3,…,
n 1
2
2. Dla każdego k tworzymy układ ograniczeń:
xi1i2  xi2i3  ...xik i1  k 1
n
   k  1!
k 
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.
Problem komiwojażera 6
Algorytm droga do najbliższego sąsiada
Założenia startowe
Startujemy węźle a. Symbolem z oznaczamy długość drogi okrężnej.
Przyjmujemy: k1 := a, z := 0.
Iteracje
Numery iteracji będziemy kojarzyć z liczbą odwiedzanych miejscowości, dlatego.
rozpatrujemy iteracje j = 2,3,…,n.
Krok 1
Wskazujemy węzeł kj , dla którego
 
ck j1 ,k j  min ck j1,i , przyczymi  k1 ,..., k j 1
Czyli wskazujemy węzeł, który nie jest zakwalifikowany do drogi i leży najbliżej
ostatniego z już uwzględnionych w drodze.
Krok 2
Tworzymy ciąg [ k1 ,…, kj ].
Problem komiwojażera 7
Krok 3
Przyjmujemy:
z  z  ck j1 ,k j
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:
z  z  ckn , k1
Problem komiwojażera 8
Przykład
KURIER MA DO ROZWIEZIENIA 9 PRZESYŁEK. ABY OBNIŻYĆ KOSZTY DOSTARCZENIA PRZESYŁKI
MUSI ON ZMINIMALIZOWAĆ TRASĘ JAKĄ POKONA. NIESTETY ZE WZGLĘDU NA REMONTY DRÓG
NIE KAŻDA TRASA ŁĄCZĄCA POSZCZEGÓLNYCH ODBIORCÓW JEST PRZEJEZDNA. ODLEGŁOŚCI
MIĘDZY ODBIORCAMI I MAGAZYNEM ORAZ NIEPRZEJEZDNE TRASY PREZENTUJE TABELA:
Przykład opracowali : Sylwia Głowacka, Kacper Mroczek, Kamil Ligenza
Lp
0
1
2
3
4
5
6
7
8
9
Nazwa
nowe rumunki
spaliny
wielkie
koziebrody
twarogi
ruskie
żebrak
piekiełko
potworów
włochy
bujny księże
wągry
0
nowe rumunki
X
201
54
242
203
123
152
111
149
96
1
spaliny wielkie
201
X
157
170
203
228
273
182
322
266
2
koziebrody
54
157
X
212
195
157
202
112
205
145
3
twarogi ruskie
242
170
212
X
100
188
239
162
323
260
4
żebrak
203
203
195
100
X
105
156
98
241
181
5
piekiełko
123
228
157
188
105
X
54
45
140
81
6
potworów
152
273
202
239
156
54
X
91
116
83
7
włochy
111
182
112
162
98
50
91
X
161
102
8
bujny księże
149
322
205
323
241
116
161
X
77
9
wągry
96
266
145
260
181
83
102
77
X
- trasa nieprzejezdna
81
Problem komiwojażera 9
Przykład
- najbliższy, nieodwiedzony wcześniej sąsiad
- odbiorca u którego był już kurier
Lp
0
0
1
2
3
4
5
6
7
8
9
Nazwa
nowe rumunki
spaliny
wielkie
koziebrody
twarogi
ruskie
żebrak
piekiełko
potworów
włochy
bujny księże
wągry
nowe rumunki
X
201
54
242
203
123
152
111
149
96
0
1
2
3
4
5
6
7
8
9
Nazwa
nowe rumunki
spaliny
wielkie
koziebrody
twarogi
ruskie
żebrak
piekiełko
potworów
włochy
bujny księże
wągry
koziebrody
54
157
X
212
195
157
202
112
205
145
0
1
2
3
4
5
6
7
8
9
Nazwa
nowe rumunki
spaliny
wielkie
koziebrody
twarogi
ruskie
żebrak
piekiełko
potworów
włochy
bujny księże
wągry
włochy
111
182
112
162
98
50
91
X
161
102
H:0→2
Lp
2
H:2→7
Lp
7
H : 7→ 5
Problem komiwojażera 10
Przykład
Lp
5
0
1
2
3
4
5
6
7
8
9
Nazwa
nowe rumunki
spaliny
wielkie
koziebrody
twarogi
ruskie
żebrak
piekiełko
potworów
włochy
bujny księże
wągry
piekiełko
123
228
157
188
105
X
54
45
140
81
0
1
2
3
4
5
6
7
8
9
Nazwa
nowe rumunki
spaliny
wielkie
koziebrody
twarogi
ruskie
żebrak
piekiełko
potworów
włochy
bujny księże
wągry
potworów
152
273
202
239
156
54
X
91
116
83
0
1
2
3
4
5
6
7
8
9
Nazwa
nowe rumunki
spaliny
wielkie
koziebrody
twarogi
ruskie
żebrak
piekiełko
potworów
włochy
bujny księże
wągry
wągry
96
266
145
260
181
81
83
102
77
X
H:5→6
Lp
6
H:6→9
Lp
9
H:9→8
Problem komiwojażera 11
Przykład
Lp
8
0
1
2
3
4
5
6
7
8
9
Nazwa
nowe rumunki
spaliny
wielkie
koziebrody
twarogi
ruskie
żebrak
piekiełko
potworów
włochy
bujny księże
wągry
bujny księże
149
322
205
323
241
140
116
161
X
77
0
1
2
3
4
5
6
7
8
9
Nazwa
nowe rumunki
spaliny
wielkie
koziebrody
twarogi
ruskie
żebrak
piekiełko
potworów
włochy
bujny księże
wągry
żebrak
203
203
195
100
X
105
156
98
241
181
0
1
2
3
4
5
6
7
8
9
Nazwa
nowe rumunki
spaliny
wielkie
koziebrody
twarogi
ruskie
żebrak
piekiełko
potworów
włochy
bujny księże
wągry
twarogi ruskie
242
170
212
X
100
188
239
162
323
260
H:8→4
Lp
4
H:4→3
Lp
3
H:3→1
Problem komiwojażera 12
Przykład
Lp
1
0
1
2
3
4
5
6
7
8
9
Nazwa
nowe rumunki
spaliny
wielkie
koziebrody
twarogi
ruskie
żebrak
piekiełko
potworów
włochy
bujny księże
wągry
spaliny wielkie
201
X
157
170
203
228
273
182
322
266
H:1→0
ODPOWIEDŹ:
H = 0 → 2 →7 → 5 → 6 → 9 → 8 → 4 → 3 → 1 → 0
T = 54 + 112 + 50 + 54 + 83 + 77 + 241 + 100 + 170 + 201 = 1142
Problem komiwojażera 10
Przykład 2
1
2
3
4
5
Nazwa
Wrocław
Wałbrzych
Legnica
Poznań
Jelenia Góra
1
Wrocław
∞
83
78
198
131
2
Wałbrzych
83
∞
81
∞
63
3
Legnica
78
81
∞
277
66
4
Poznań
198
∞
277
∞
288
5
Jelenia Góra
131
63
66
288
∞
Lp.
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
- 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
Problem komiwojażera 11
Przykład 2
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 789
Trzeci 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
Problem komiwojażera 12
Przykład 2
Poznań
4
Legnica
3
Jelenia Góra
Wrocław
1
5
2
Wałbrzych
Problem komiwojażera 13
Przykład 2
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 otrzymujemy
rozwiązanie optymalne ale jedynie dopuszczalne.
Problem komiwojażera 14
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
Problem komiwojażera 15
Założenia startowe
Przyjmujemy:
k1  a, k2  b, H  k1, k2 , k1  , z  ck1k2  ck2k1
Iteracje
Numery 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ą :

H  k1 , k2 ,..., k j 1 , k j

o długości z.
Ze względu na stosowane dalej wzory ostatni z węzłów jest oznaczony przez kj , a w
rzeczywistości jest nim węzeł k1 .
Problem komiwojażera 16
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 :

d p  min ck1 p , ck2 p ,..., ck j1 p

Krok 2
Jako węzeł i , który ma być dołączony do drogi wybieramy ten, dla którego:
d i  max d p
p
Problem komiwojażera 17
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 ]
i
Ckti
kk1
Cikt+1
kt
Kt+1
Cktkt+1
k1
Problem komiwojażera 18
Dołączenie nowych odcinków drogi powoduje zmianę jej długości. Wielkość tej zmiany
oznaczamy symbolem st i obliczamy następująco :
st  ckt i  cikt1  ckt kt1
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:

st  ckt i  cikt1  min ckhi  cikh1  ckt kt1
h 1,..., j 1
Krok 4
Tworzymy nową częściową trasę

H  k1 ,..., kt , i, kt 1 ,..., k j


Problem komiwojażera 19
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
H  k1 ,..., kn , k1 
Problem komiwojażera 20
Przykład
Przykład opracowali : Sylwia Głowacka, Kacper Mroczek, Kamil Ligenza
Lp
0
0
1
2
3
4
5
6
7
8
9
Nazwa
nowe rumunki
spaliny
wielkie
koziebrody
twarogi
ruskie
żebrak
piekiełko
potworów
włochy
bujny księże
wągry
nowe rumunki
X
201
54
242
203
123
152
111
149
96
spaliny wielkie
- NAJDŁUŻSZA PRZEJEZDNA TRASA W OBIE STRONY, MIĘDZY MAGAZYNEM A ODBIORCĄ
H=[0, 1, 0]
T1=402
ITERACJA 1
p=2
r12= min[c02, c12]= min[54, 157]=54
p=3
r13= min[c03, c13]= min[10.000, 170]=170
p=4
r14= min[c04, c14]= min[10.000,203]=203
p=5
r15= min[c05, c15]= min[123, 10.000]=123
p=6
r16= min[c06, c16]= min[152, 273]=152
p=7
r17= min[c07, c17]= min[111, 10.000]=111
p=8
r18= min[c08, c18]= min[149, 10.000]=149
p=9
r19= min[c09, c19]= min[96, 10.000]=96
max r1i = r14=203
Problem komiwojażera 21
Przykład
s10= c04 + c41 - c01=10.000 + 203 - 201=10.002
s11= c14 + c40 - c10= 203 + 10.000 - 201=10.002
H= [0, 1, 4, 0]
T2=201 + 203 + 10.000= T1 + s11= 10.404
Problem komiwojażera 22
Przykład
ITERACJA 2
• p=2 r22= min[c02, c12, c42]= min[54, 157, 195]=54
• p=3 r23= min[c03, c13, c42]= min[10.000, 170, 100]=100
• p=5 r25= min[c05, c15, c42]= min[123, 10.000, 105]=105
• p=6 r26= min[c06, c16, c42]= min[152, 273, 156]=152
• p=7 r27= min[c07, c17, c42]= min[111, 10.000, 10.000]=111
• p=8 r28= min[c08, c18, c42]= min[149, 10.000, 241]=149
• p=9 r29= min[c09, c19, c42]= min[96, 10.000, 181]=96
max r2i = r26=152
Problem komiwojażera 23
Przykład
s20= c06 + c16 - c01=152 + 273 - 201=224
s21= c16 + c64 - c14= 273 + 156 - 203=226
s24= c46 + c60 - c40= 156 + 152 – 10.000=-9692
H= [0, 1, 4, 6, 0]
T3=201 + 203 + 156 + 152 = T2 + s24= 712
Problem komiwojażera 24
Przykład
ITERACJA 3
• p=2 r32= min[c02, c12, c42, c62]= min[54, 157, 195, 10.000]=54
• p=3 r33= min[c03, c13, c43, c63]= min[10.000, 170, 100, 239]=100
• p=5 r35= min[c05, c15, c45, c65]= min[123, 10.000, 105, 54]=54
• p=7 r37= min[c07, c17, c47, c67]= min[111, 10.000, 10.000, 91]=91
• p=8 r38= min[c08, c18, c48, c68]= min[149, 10.000, 241, 116]=111
• p=9 r39= min[c09, c19, c49, c69]= min[96, 10.000, 181, 83]=83
max r3i = r38=111
Problem komiwojażera 25
Przykład
s30= c08 + c18 - c01=149 + 10.000 - 201= 9.948
s31= c18 + c84 - c14= 10.000 + 241 – 203 = 10.038
s34= c48 + c86 - c46= 241 + 116 – 156 = 201
s36= c68 + c80 - c60= 116 + 148 – 152 = 113
H= [0, 1, 4, 6, 8, 0]
T4=201 + 203 + 156 + 116 + 149 = T3 + s36= 825
Problem komiwojażera 26
Przykład
ITERACJA 4
•
•
•
•
•
p=2
p=3
p=5
p=7
p=9
r42= min[c02, c12, c42, c62, c82]= min[54, 157, 195, 10.000, 205]=54
r43= min[c03, c13, c43, c63, c83]= min[10.000, 170, 100, 239, 323]=100
r45= min[c05, c15, c45, c65, c85]= min[123, 10.000, 105, 54, 10.000]=54
r47= min[c07, c17, c47, c67, c87]= min[111, 10.000, 10.000, 91, 161]=91
r49= min[c09, c19, c49, c69, c89]= min[96, 10.000, 181, 83, 77]=77
max r4i = r43=100
Problem komiwojażera 27
Przykład
s40= c03 + c31 - c01=10.000 + 170 - 201=9.969
s41= c13 + c34 - c14= 170 + 100 - 203=67
s44= c43 + c36 - c46= 100 + 239 – 156=183
s46= c63 + c38 - c68= 239 + 323 – 116=446
s48= c63 + c30 - c80= 323 + 10.000 – 149=10.174
H= [0, 1, 3, 4, 6, 8, 0]
T5= 201 + 170 + 100 + 156 + 116 + 149 =T4 + s41 = 892
Problem komiwojażera 27
Przykład
ITERACJA 5
•
•
•
•
p=2
p=5
p=7
p=9
r52= min[c02, c12, c32, c42, c62, c82]= min[54, 157, 212, 195, 10.000, 205] = 54
r55= min[c05, c15, c35, c45, c65, c85]= min[123, 10.000, 188, 105, 54, 10.000] = 54
r57= min[c07, c17, c37, c47, c67, c87]= min[111, 10.000, 50, 10.000, 91, 161] = 50
r59= min[c09, c19,c39, c49, c69, c89]= min[96, 10.000, 10.000, 181, 83, 77] = 77
max r5i = r59=77
Problem komiwojażera 27
Przykład
s50= c09 + c91 - c01=96 + 10.000 - 201=9.895
s51= c19 + c93 - c13= 10.000 + 260 - 170=10.090
s53= c39 + c94 - c34= 260 + 181 – 100=341
s54= c49 + c96 - c46= 181 + 83 – 156=108
s56= c69 + c98 - c68= 83 + 77 – 116=44
s58= c69 + c90 - c80= 77 + 96 – 149=24
H= [0, 1, 3, 4, 6, 8, 9, 0]
T6= 201 + 170 + 100 + 156 + 116 + 77 + 96 =T5 + s58= 916
Problem komiwojażera 28
Przykład
ITERACJA 6
•
•
•
p=2 r62= min[c02, c12, c32, c42, c62, c82, c92]= min[54, 157, 212, 195, 10.000, 205, 145]=54
p=5 r65= min[c05, c15, c35, c45, c65, c85, c95]= min[123, 10.000, 188, 105, 54, 10.000,
10.000]=54
p=7 r67= min[c07, c17, c37, c47, c67, c87, c97]= min[111, 10.000, 50, 10.000, 91, 161, 102]=50
max r6i = r62=r65=54
Problem komiwojażera 29
Przykład
•
•
•
•
•
•
•
s60= c02 + c21 - c01=54 + 157 - 208=10
s61= c12 + c23 - c13= 157 + 212 - 170=199
s63= c32 + c24 – c34= 212 +195 - 100=307
s64= c42 + c26 - c46= 195 + 10.000 – 156=10.039
s66= c62 + c28 - c68= 10.000 + 205– 116=10.089
s68= c82 + c29 - c89= 205 + 145 – 77=273
s69= c92 + c20 - c90= 145 + 54 – 96=103
H= [0, 2, 1, 3, 4, 6, 8, 9, 0]
T7= 54 + 157 + 170 + 100 + 156 + 116 + 77 + 96 = T6 + s60 = 926
Problem komiwojażera 30
Przykład
ITERACJA 7
• p=5 r75= min[c05, c25, c15, c35, c45, c65, c85, c95]= min[123, 157, 10.000, 188,
105, 54, 10.000, 10.000]=54
• p=7 r77= min[c07, c27, c17, c37, c47, c67, c87, c97]= min[111, 112, 10.000, 50,
10.000, 91, 161, 102]=50
max r7i = r675=54
Problem komiwojażera 31
Przykład
•
•
•
•
•
•
•
•
s70= c05 + c52 - c02=123 + 157 - 54=226
s72= c15 + c51 - c21= 157 + 10.000 - 157=10.000
s71= c15 + c53 - c13= 10.000 + 188 – 170=10.018
s73= c35 + c54 – c34= 188 + 105– 100=193
s74= c45 + c56 - c46= 105 + 54 – 156=3
s76= c65 + c58 - c68= 54 + 10.000 – 116=9.938
s78= c85 + c59 - c89= 10.000 + 10.000 – 77=19.923
s79= c95 + c50 - c90= 10.000 + 123 – 96= 10.027
H= [0, 2, 1, 3, 4, 5, 6, 8, 9, 0]
T8= 54 + 157 + 170 + 100 + 105 + 54 + 116 + 77 + 96 = T7 + s74 = 929
Problem komiwojażera 32
Przykład
s80= c07 + c72 - c02=111 + 112 - 54=169
s82= c17 + c71 - c21= 112 + 10.000 - 157=9.955
s81= c17 + c73 - c13= 10.000 + 162 – 170=9.945
s83= c37 + c74 – c34= 162 + 10.000 – 100=10.062
s84= c47 + c75 - c45= 10.000 + 50 – 105=9.945
s85= c57 + c76 - c56= 50 + 91 – 54=87
s86= c67 + c78 - c68= 91 + 161 – 116=136
s88= c87 + c79 - c89= 161 + 102 – 77=186
s79= c97+ c70 - c90= 102 + 111 – 96= 117
ODPOWIEDŹ:
H= [0, 2, 1, 3, 4, 5, 7, 6, 8, 9, 0]
T9= 54 + 157 + 170 + 100 + 105 + 50 + 91 + 116 + 77 + 96 = T7 + s85 = 1.016
0
2
1
3
4
5
7
6
8
9
0

Podobne dokumenty