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 j1 ,k j min ck j1,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 j1 ,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 j1 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 cikt1 ckt kt1 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 cikt1 min ckhi cikh1 ckt kt1 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