09.03.2014 Views

Problem komiwojażera dla kilku centrów dystrybucji - Transportu

Problem komiwojażera dla kilku centrów dystrybucji - Transportu

Problem komiwojażera dla kilku centrów dystrybucji - Transportu

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

PRACE NAUKOWE POLITECHNIKI WARSZAWSKIEJ<br />

z. 70 Transport 2009<br />

Edward MICHLOWICZ<br />

Akademia Górniczo – Hutnicza im. St. Staszica w Krakowie<br />

Wydział Inynierii Mechanicznej i Robotyki<br />

Al. Mickiewicza 30, 30-059 Kraków<br />

e-mail: michlowi@agh.edu.pl<br />

PROBLEM KOMIWOJAERA DLA KILKU CENTRÓW<br />

DYSTRYBUCJI<br />

Streszczenie<br />

<strong>Problem</strong> rozdziału zada przewozowych w typowym zadaniu transportowym jest mało przydatny <strong>dla</strong><br />

rednich firm transportowych obsługujcych wiele <strong>centrów</strong> <strong>dystrybucji</strong>. Z kolei problem komiwojaera dotyczy<br />

tylko wybranych firm. Połczenie obydwu tych zagadnie moe przynie wiele korzyci. W artykule<br />

zaproponowano rozwizanie problemu przy zastosowaniu algorytmu ewolucyjnego. Przedstawiono formalizacj<br />

zadania transportowego oraz formuł minimalnej macierzy wykorzystanej do budowy algorytmu genetycznego.<br />

<strong>Problem</strong> komiwojaera został rozwaony <strong>dla</strong> kadego z wybranych <strong>centrów</strong> <strong>dystrybucji</strong> towarów.<br />

Słowa kluczowe: problem komiwojaera, centrum dystrybucyjne<br />

1. AKTUALNE PROBLEMY OPERATORÓW LOGISTYCZNYCH<br />

Przed operatorem logistycznym staje czsto zadanie ustalenia takiego planu przewozów<br />

towarów, który dawałby optymalne wyniki ze wzgldu na przyjte kryterium optymalizacyjne.<br />

W sytuacji, gdy przedsibiorstwo posiada tylko jedno centrum dystrybucyjne, z którego<br />

dostarcza towary na rynek, wyznaczenie optymalnego planu przewozów wie si ze<br />

znalezieniem najkrótszej drogi pomidzy poszczególnymi nabywcami towaru. Jeli natomiast<br />

takich baz, zlokalizowanych w rónych miejscach, jest wicej, celem jest ustalenie, z którego<br />

centrum dystrybucyjnego ma by zaopatrywany w towar dany odbiorca i w jakiej kolejnoci<br />

maj by oni „odwiedzani”, tak aby koszty transportu towaru były jak najmniejsze, przy<br />

jednoczesnym uwzgldnieniu zasobu dysponowanego przez centra dystrybucyjne towarów.<br />

Okrelenie połcze dostawcy – odbiorcy przy małej liczbie punktów dostaw i odbioru<br />

nie stanowi wikszego problemu. Jednak, gdy w gr wchodzi wiksza liczba tych punktów,<br />

wyznaczenie optymalnego planu przewozów nie jest ju takie oczywiste. W takim przypadku<br />

istnieje wiele kombinacji rónych połcze i wybór kombinacji optymalnej bez wykorzystania<br />

odpowiedniej metody byłby niezwykle trudny.<br />

Powszechnie znane s metody umoliwiajce wyznaczenie optymalnej drogi pomidzy<br />

nabywcami towaru funkcjonujce w literaturze [2, 6, 8] pod nazw „problem komiwojaera”,<br />

takie, jak chociaby: algorytm Little’a, algorytm włczania, algorytm poszukiwa lokalnych<br />

2-optymalny i 3-optymalny oraz inne. Metody te daj rozwizanie jedynie wtedy, gdy<br />

odbiorcy zaopatrywani s z jednego centrum dystrybucyjnego. W przypadku, gdy takich


114<br />

Edward Michlowicz<br />

miejsc zaopatrujcych w towary jest wicej, do rozwizania problemu mona wykorzysta,<br />

szeroko stosowane w rónych dziedzinach nauki algorytmy ewolucyjne.<br />

<strong>Problem</strong> komiwojaera (w skrócie TSP, od angielskiej nazwy „travelling salesperson<br />

problem”) jest jednym z najstarszych problemów optymalizacyjnych wystpujcych<br />

w działalnoci transportowej. Przenoszc zagadnienie do jzyka teorii sieci, problem polega<br />

na znalezieniu najkrótszego cyklu długoci n (zwanego cyklem Hamiltona)<br />

w n-wierzchołkowej sieci pełnej. Znalezienie właciwego cyklu Hamiltona, zwanego<br />

w logistyce marszrut, jest zadaniem bardzo trudnym obliczeniowo. Zadanie to jest zaliczane<br />

do problemów NP-trudnych i jak do tej pory nie udało si znale sposobu, <strong>dla</strong> którego czas<br />

rozwizania problemu byłby proporcjonalny do wielomianu zmiennej n.<br />

Poszukiwanie najkrótszej marszruty poprzez sprawdzenie i porównanie wszystkich<br />

moliwych marszrut prowadzi do wykładniczej klasy złoonoci obliczeniowej O(n!).<br />

Formułujc przedstawiony problem w sposób bardziej formalny: dany jest zbiór n miast<br />

oraz nieujemna, kwadratowa macierz odległoci (kosztów) C=[c ij ] stopnia n:<br />

C<br />

c11 c12 .... c1<br />

n <br />

<br />

c c .... c<br />

<br />

<br />

<br />

.... .... .... ....<br />

<br />

<br />

cn1 cn2<br />

.... cnn<br />

21 22 2n<br />

= <br />

gdzie: c ij -okrela odległo (koszt przejazdu) midzy miastem i a miastem j.<br />

Rozpatrywane zagadnienie sprowadza si do znalezienia drogi zamknitej (i 1 ,i 2 ,...,i n ,i 1 ),<br />

czyli marszruty, <strong>dla</strong> której suma c + c + ... + c + c osiga minimum.<br />

ii 12 i23 i in−1in ini1<br />

<strong>Problem</strong> komiwojaera mona przedstawi jako zadanie wyznaczenia takiego x ij oraz<br />

z j , aby:<br />

n<br />

n<br />

i= 1 j=<br />

1<br />

(1)<br />

cx ij ij → min<br />

(2)<br />

gdzie: x ij – zmienna decyzyjna,<br />

1, jeeli marszruta zawiera odcinek ( i,<br />

j)<br />

xij<br />

= (3)<br />

0 w przeciwnym przypadku.<br />

Ograniczenia:<br />

n<br />

∀ i ∈ N xij<br />

= 1<br />

(4)<br />

j=<br />

1<br />

N<br />

∀ j ∈ N xij<br />

= 1<br />

(5)<br />

i=<br />

1<br />

∀ i, j ∈ N(zi − zj+ nx ij) ≤n-1, i ≠ j, z i, z j ∈ R<br />

(6)<br />

1<br />

− marszruta zawiera odcinek (i, j)<br />

x = <br />

(7)<br />

i, j N ij<br />

0 − w przeciwnym przypadku<br />

∀ ∈<br />

gdzie: z i , z j – parametry ograniczenia.


<strong>Problem</strong> komiwojaera <strong>dla</strong> <strong>kilku</strong> <strong>centrów</strong> <strong>dystrybucji</strong><br />

115<br />

Funkcja celu (2) postuluje minimalizacj długoci (kosztu) marszruty. Warunki<br />

(4) oznaczaj, e z kadego miasta komiwojaer musi wyjecha jeden raz, a warunki (5), e<br />

do kadego miasta moe wjecha tylko jeden raz. Warunki (6) zapewniaj, e ze zbioru<br />

n odcinków moe by utworzona marszruta przechodzc przez n miast, czyli, e elementy<br />

zbioru {(i,j): x ij =1} mona ustawi w cig (i 1 ,i 2 ),(i 2 ,i 3 ),(i n-1 ,i n ),(i n ,i 1 ) . Oznacza to, e<br />

warunki (6) zapobiegaj przed pojawieniem si rozwizania składajcego si z marszruty nie<br />

przechodzcej przez wszystkie miasta.<br />

Znanych jest kilka odmian zdefiniowanego powyej problemu, a mianowicie:<br />

cij ≠ cji<br />

• wagi połcze nie musz by symetryczne (czyli ) – w tym przypadku mamy do<br />

czynienia z sieci skierowan, a rozpatrywany problem nosi nazw asymetrycznego<br />

problemu komiwojaera.<br />

• rozwaany graf nie jest pełny, czyli zawiera par nie połczonych wierzchołków.<br />

Wszystkie grafy pełne maj cykl długoci n, natomiast graf, który nie jest pełny, nie musi<br />

mie takiego cyklu. W takich grafach problem komiwojaera nie ma rozwizania.<br />

• komiwojaer po odwiedzeniu wszystkich miejscowoci (dokładnie raz), nie musi wraca<br />

do miejscowoci, z której wyruszył. W takim przypadku naley znale najkrótsz drog<br />

o długoci n-1, zamiast cyklu długoci n.<br />

<strong>Problem</strong> komiwojaera jest jednym z tych problemów optymalizacji kombinatorycznej,<br />

<strong>dla</strong> których nie jest znany efektywny algorytm rozwizywania, tj. algorytm, który znajdowałby<br />

rozwizanie optymalne w czasie wielomianowym, czyli w czasie bdcym wielomianem<br />

zmiennej n, reprezentujcej liczb wierzchołków w sieci.<br />

Rozpatrujc problemem tak duych rozmiarów, w celu jego rozwizania, mona<br />

zastosowa jedno z praktycznych podej [3, 4], polegajce na osłabieniu dania, by<br />

algorytm dostarczał rozwizania optymalne i zadowoli si rozwizaniami przyblionymi,<br />

odpowiednio bliskimi rozwiza optymalnych.<br />

Osłabienie warunku optymalnoci pozwala czsto zredukowa czas oblicze<br />

z wykładniczego do wielomianowego, przy niewielkiej utracie optymalnoci. Algorytmy<br />

przyblione stanowi jedyny realistyczny sposób rozwizywania obliczeniowo trudnych<br />

problemów duych rozmiarów. Istnieje wiele algorytmów przyblionych rozwizywania<br />

problemu komiwojaera, z których jednym z najbardziej efektywnych jest algorytm<br />

przeszukiwa lokalnych.<br />

Jedn z najbardziej znanych i stosowanych z najwikszym powodzeniem heurystyk<br />

otrzymywania niemal optymalnych rozwiza problemu komiwojaera jest algorytm<br />

przeszukiwa lokalnych. Polega on na wyznaczeniu dowolnej marszruty (G) i usuniciu z niej<br />

r odcinków. Otrzymuje si w ten sposób r dróg (z których niektóre mog by izolowanymi<br />

wierzchołkami), które łczc z innymi r odcinkami tworz marszrut (G'). Marszruty<br />

G i G' róni si od siebie dokładnie r odcinkami, natomiast pozostałe (n – r) odcinków maj<br />

takie same. Przykładow ilustracj wymiany dwóch łuków (marszruty G i G’) przedstawiono<br />

na rysunku 1.


116<br />

Edward Michlowicz<br />

G-a-b<br />

G'=(G-a-b)+x+y<br />

ródło: opracowanie własne.<br />

Rys. 1. Ilustracja wymiany dwóch łuków (wg [7])<br />

Jeli waga (G') marszruty G' jest mniejsza od wagi (G) marszruty G, to marszruta<br />

G zastpowana jest marszrut G' i wymiana zostaje ponawiana. W przeciwnym przypadku<br />

naley spróbowa wymieni inny zbiór r odcinków z marszruty G. Ten sposób wymiany jest<br />

kontynuowany do momentu, w którym nie jest moliwe dalsze polepszanie rozwizania.<br />

Rozwizanie kocowe, którego poprawa poprzez wymian r odcinków nie jest ju moliwa,<br />

nazywane jest rozwizaniem r-optymalnym.<br />

Na ogół ta procedura wymiany odcinków koczy działanie poprzez wyznaczenie<br />

lokalnego optimum, dajc w ten sposób przyblione rozwizanie problemu komiwojaera.<br />

Przedstawiony powyej algorytm jest przykładem ogólnego podejcia do rozwizywania<br />

wielu problemów optymalizacji kombinatorycznej, zwanego przeszukiwaniem lokalnym lub<br />

przeszukiwaniem ssiedztwa. Metoda sukcesywnego polepszania trasy komiwojaera za<br />

pomoc wymiany r odcinków moe by stosowana zarówno do problemów symetrycznych,<br />

jak te i niesymetrycznych.<br />

Dla sieci symetrycznej z n (n > 5) wierzchołkami, r moe si zmienia od 2 do<br />

n. Natomiast <strong>dla</strong> sieci skierowanej r nie moe by mniejsze od 3.<br />

Ogólnie, im wiksza jest ilo odcinków r podlegajcych wymianie w procedurze, tym<br />

lepsze otrzymuje si rozwizanie. Z drugiej jednak strony, kady wzrost iloci odcinków<br />

r znacznie zwiksza czas oblicze. Marszruta z n krawdziami zawiera n podzbiorów<br />

<br />

r<br />

<br />

złoonych z r krawdzi. Oznacza to, e czas wykonania zamiany kadego z podzbiorów<br />

przynajmniej raz wynosi O(n r ). Naley wic dokona przemylanego wyboru rozwaajc<br />

z jednej strony dokładno rozwizania, a z drugiej nakład oblicze. Std te przy<br />

podejmowaniu decyzji naley opiera si na intuicji i badaniach empirycznych.<br />

2. WYZNACZANIE TRAS TRANSPORTU PRZY KILKU DOSTAWCACH<br />

W przypadku, w którym przedsibiorstwo posiada kilka <strong>centrów</strong> dystrybucyjnych<br />

(magazynów), problem operatora logistycznego polega na takim przydzieleniu dostawcom<br />

odpowiednich odbiorców, aby suma zapotrzebowa odbiorców nie przekraczała moliwoci<br />

zaopatrzeniowych poszczególnych dostawców oraz aby całkowity koszt transportu był<br />

moliwie najmniejszy.<br />

Na rysunku 2 przedstawiono interpretacj tego problemu w postaci grafu.


<strong>Problem</strong> komiwojaera <strong>dla</strong> <strong>kilku</strong> <strong>centrów</strong> <strong>dystrybucji</strong><br />

117<br />

ródło: opracowanie własne.<br />

Rys. 2. Graf rozdziału zada przewozowych<br />

Opisany wyej problem funkcjonuje w literaturze pod pojciem zadanie transportowe.<br />

Zadanie to (zagadnienie) mona interpretowa w ten sposób, e z poszczególnych <strong>centrów</strong><br />

dystrybucyjnych, wyjeda tylu komiwojaerów ilu jest odbiorców zaopatrywanych z danego<br />

magazynu. W takim przypadku kady komiwojaer obsługuje jednego odbiorc, po czym<br />

wraca do miejsca, z którego wyruszył (rys.3).<br />

Alternatyw <strong>dla</strong> tego zagadnienia jest opracowanie algorytmu, <strong>dla</strong> którego z kadego<br />

magazynu wysyłany jest tylko jeden komiwojaer, który odwiedza wszystkich przydzielonych<br />

mu odbiorców, po czym wraca do miejsca pocztkowego. <strong>Problem</strong> ten na potrzeby<br />

niniejszego opracowania został nazwany „<strong>Problem</strong>em komiwojaera z wieloma centrami<br />

dystrybucyjnymi” (w skrócie TSP-ZT), a jego graficzn interpretacj przedstawiono na<br />

rysunku 4.<br />

ródło: opracowanie własne.<br />

Rys. 3. Graf struktury <strong>dla</strong> zadania transportowego<br />

<strong>Problem</strong> komiwojaera z wieloma centrami dystrybucyjnymi jest połczeniem dwóch<br />

opisanych wczeniej zagadnie: problemu komiwojaera oraz zadania transportowego.


118<br />

Edward Michlowicz<br />

Rys. 4. Graf struktury problemu komiwojaera z wieloma centrami dystrybucyjnymi<br />

ródło: opracowanie własne.<br />

Zatem zadanie mona interpretowa nastpujco:<br />

Danych jest n dostawców, z których kady dysponuje odpowiednio a i jednostkami<br />

towaru (i=1, 2,…,n), oraz m odbiorców, z których kady zgłasza zapotrzebowanie na towar<br />

w wysokoci b j jednostek (j=1, 2,…,m). Kady z dostawców moe zaopatrywa dowolnych<br />

odbiorców i odwrotnie, kady odbiorca moe otrzymywa towar od dowolnych dostawców.<br />

Kady komiwojaer moe tylko raz wyruszy z bazy i po dostarczeniu towaru do odbiorców<br />

musi do tej bazy powróci. Kade z miast moe by odwiedzone przez danego dostawc tylko<br />

jeden raz, przy czym miasta mog by odwiedzane w dowolnej kolejnoci. Zakłada si, e<br />

odległoci a tym samym koszty transportu midzy kad par miejscowoci s znane, a take<br />

suma dostaw do poszczególnych odbiorców równa jest ich zapotrzebowaniu oraz suma<br />

dostaw wysłanych przez dostawców nie przekracza iloci, jak kady z dostawców dysponuje.<br />

Całkowity koszt transportu natomiast jest równy sumie kosztów transportu kadego<br />

z dostawców.<br />

Zadanie transportowe sprowadza si wic do znalezienia minimum funkcji:<br />

n<br />

c0 ki x0ki c j0 i x j0<br />

i c jk x<br />

(8)<br />

jki<br />

i= 1 j∈M k∈M<br />

min z = ( + + )<br />

gdzie: i – dostawca nalecy do zbioru dostawców N,<br />

j, k – odbiorcy pomidzy którymi odbywa si przewóz, nalecy do zbioru<br />

odbiorców M,<br />

c jk – koszt przewozu pomidzy odbiorcami j i k,<br />

c 0ki – koszt przewozu pomidzy i-tym dostawc a k-tym odbiorc,<br />

c j0i – koszt przewozu pomidzy j-tym odbiorc a i-tym dostawc,<br />

x jki – zmienna binarna okrelajca, czy pomidzy odbiorcami j i k dostawca<br />

i wykonuje przewóz,<br />

x 0ki – zmienna binarna okrelajca, czy pomidzy dostawc i a odbiorc k jest<br />

wykonywany przewóz,


<strong>Problem</strong> komiwojaera <strong>dla</strong> <strong>kilku</strong> <strong>centrów</strong> <strong>dystrybucji</strong><br />

119<br />

x j0i – zmienna binarna okrelajca, czy pomidzy odbiorc j a dostawc i jest<br />

wykonywany przewóz.<br />

Warunki ograniczajce:<br />

gdzie:<br />

q<br />

ij<br />

m<br />

∀ i ∈ N<br />

x0ki<br />

= 1<br />

(9)<br />

k = 1<br />

m<br />

∀ i ∈ N x j0i=<br />

1<br />

(10)<br />

j=<br />

1<br />

i ∈ N j ∈ M<br />

x jki<br />

2; j k,<br />

(11)<br />

k∈M<br />

∀ ∧ ∀ < ≠<br />

∀i<br />

∈ N ∧ ∀j<br />

∈ M xkji<br />

− x jli<br />

= 0; j ≠ k, j ≠ l , (12)<br />

k∈M<br />

l∈M<br />

m<br />

i ∈ N ai<br />

, (13)<br />

ij<br />

j=<br />

1<br />

∀ q ≤<br />

n<br />

∀ q = b<br />

j ∈ M<br />

ij<br />

j , (14)<br />

i=<br />

1<br />

∀i<br />

∈ N ∧ ∀j<br />

∈ M qij ≥ 0<br />

(15)<br />

– wielko zaopatrzenia od i-tego dostawcy do j-tego odbiorcy.<br />

Warunek (9) zapewnia, e komiwojaer wyjeda z bazy tylko raz, a warunek (10) – e<br />

wjeda tylko raz. Warunek (11) zapewnia, e komiwojaer moe wjecha do okrelonego<br />

miasta maksymalnie jeden raz, natomiast warunek (12) gwarantuje, e po wjechaniu do<br />

danego miasta komiwojaer musi z tego miasta wyjecha. Warunek (13) oznacza, e ilo<br />

towaru, w jak dostawca zaopatruje odbiorców nie przekracza jego moliwoci<br />

dystrybucyjnych, warunek (14) – e wielko zaopatrzenia od dostawców musi by równa<br />

iloci, jakiej oczekuj odbiorcy, natomiast warunek (15) chroni przed wprowadzaniem<br />

zaopatrze ujemnych.<br />

3. ROZWIZANIE ZADANIA<br />

Przedstawione powyej zagadnienie naley do zada NP-trudnych i jedynym<br />

racjonalnym podejciem do jego rozwizania jest zastosowanie heurystycznych algorytmów<br />

optymalizacyjnych. Wykorzystane do tego celu zostan algorytmy ewolucyjne, które co<br />

prawda nie gwarantuj otrzymania rozwiza optymalnych, ani nawet nie pozwalaj<br />

oszacowa błdów rozwiza przyblionych, ale w wielu przypadkach prowadz do<br />

rozwiza dostatecznie dobrych z punktu widzenia praktycznych zastosowa.<br />

Algorytmy ewolucyjne [1] to cile zdefiniowane matematyczne procedury stosowane<br />

do rozwizywania niektórych problemów optymalizacyjnych lub decyzyjnych, <strong>dla</strong> których<br />

standardowe algorytmy s nieznane lub ich czas działania jest zbyt długi, by mogły by<br />

praktycznie zastosowane.<br />

Podstawowe typy algorytmów ewolucyjnych:<br />

• algorytm genetyczny,<br />

• strategie ewolucyjne,<br />

- strategia (1+1),


120<br />

Edward Michlowicz<br />

- strategia (+),<br />

- strategia (, ),<br />

• programowanie ewolucyjne.<br />

Algorytm ewolucyjny moe koczy swoje działanie:<br />

• gdy przystosowanie osobników jest odpowiednio due,<br />

• gdy stan populacji bazowej wiadczy o stagnacji algorytmu,<br />

• po okrelonej z góry iloci cyklów ewolucyjnych.<br />

Terminologia wykorzystywana w nazewnictwie elementów algorytmów ewolucyjnych<br />

jest do specyficzna, bowiem powstała wskutek inspiracji genetyk i ewolucj.<br />

Działanie algorytmu ewolucyjnego polega na przetwarzaniu populacji osobników,<br />

z których kady stanowi propozycj rozwizania postawionego problemu. Kady osobnik jest<br />

wyposaony w informacj tzw. genotyp, na podstawie, którego generowany jest fenotyp –<br />

zestaw cech, które podlegaj ocenie rodowiska. Proces tworzenia fenotypu z genotypu<br />

nazywa si kodowaniem. Fenotyp jest punktem w przestrzeni rozwiza problemu, genotyp<br />

za – punktem w przestrzeni kodów. Przystosowania osobnika na podstawie jego genotypu<br />

dokonuje si za pomoc funkcji przystosowania. Funkcja ta moe by stacjonarna, zmienna w<br />

czasie lub moe zawiera element losowoci. Genotyp osobnika złoony jest z chromosomów,<br />

z których co najmniej jeden zawiera kod okrelajcy fenotyp. Chromosomy natomiast składaj<br />

si z mniejszych elementów, zwanych genami, które reprezentuj elementarne informacje.<br />

Wraz z rozwojem i coraz wikszym zainteresowaniem algorytmami ewolucyjnymi<br />

podstawowe typy algorytmów zaczły si do siebie nawzajem upodabnia. W programowaniu<br />

ewolucyjnym sposób optymalizacji numerycznej został zbliony do strategii ewolucyjnych.<br />

Algorytmy genetyczne wprowadziły schematy selekcji znane ze strategii ewolucyjnych<br />

i programowania ewolucyjnego, natomiast strategie ewolucyjne, opierajc si na algorytmach<br />

genetycznych, wzbogaciły operacje genetyczne o operator krzyowania. W wyniku<br />

wzajemnego przenikania si, algorytm genetyczny, strategia ewolucyjna czy programowanie<br />

ewolucyjne w swoich pierwotnych postaciach praktycznie ju nie wystpuj, a nowo powstałe<br />

algorytmy wykorzystujce ich własnoci nosz ogóln nazw: algorytmy ewolucyjne.<br />

Do rozwizania zadania komiwojaera obsługujcego kilka <strong>centrów</strong> <strong>dystrybucji</strong> został<br />

napisany program komputerowy „Vitrans” przy uyciu narzdzia programistycznego Borland<br />

C++ Builder, przeznaczonego do tworzenia aplikacji w jzyku C++.<br />

Program „Vitrans” oparty o własnoci algorytmów ewolucyjnych, umoliwia<br />

wyznaczenie zada przewozowych <strong>dla</strong> standardowego problemu komiwojaera, jak równie<br />

<strong>dla</strong> jego rozszerzonej wersji z wieloma centrami dystrybucyjnymi.<br />

Posługujc si nazewnictwem stosowanym w algorytmach ewolucyjnych, program<br />

wyznacza osobnika o najlepszym przystosowaniu, czyli takiego, <strong>dla</strong> którego całkowity koszt<br />

transportu jest najmniejszy sporód wszystkich rozpatrywanych rozwiza.<br />

Przystosowanie osobnika obliczane jest na podstawie informacji, w które kady osobnik<br />

jest wyposaony (genotyp, fenotyp). Dla rozpatrywanych problemów genotypem s<br />

miejscowoci reprezentujce dostawców i odbiorców towaru, natomiast fenotypem –<br />

połczenia (trasy) pomidzy tymi miejscowociami.<br />

W algorytmie ewolucyjnym przetwarzana jest populacja składajca si z jednego<br />

osobnika. Do inicjacji pocztkowego rozwizania bazowego wykorzystano metod „minimum<br />

macierzy kosztów”.


<strong>Problem</strong> komiwojaera <strong>dla</strong> <strong>kilku</strong> <strong>centrów</strong> <strong>dystrybucji</strong><br />

121<br />

Otrzymane rozwizanie pocztkowe poddawane zostaje ocenie rodowiska, podczas<br />

której obliczane jest przystosowanie osobnika na podstawie funkcji przystosowania osobnika<br />

(funkcja z wg równania 8).<br />

Załoono, e koszt przewozu zwizany jest bezporednio z odległoci d pomidzy<br />

poszczególnymi miejscowociami reprezentujcymi dostawców i odbiorców, <strong>dla</strong>tego te do<br />

oblicze przyjto warto odległoci pomidzy miejscowociami. Odległo d mierzona jest<br />

w linii prostej na podstawie współrzdnych geograficznych i wyliczana z nastpujcego<br />

wzoru:<br />

d = R a cos (sin(lat 1 )sin(lat 2 ) + cos(lat 1 )cos(lat 2 )cos(lon 1 – lon 2 ) (16)<br />

gdzie: R – promie Ziemi (równikowy); R=6378,137 km,<br />

lat1(2) – szeroko geograficzna,<br />

lon1(2) – długo geograficzna.<br />

Po obliczeniu przystosowania osobnika program przystpuje do głównej ptli, w której<br />

ilo iteracji uzaleniona jest od wprowadzonej przez uytkownika wartoci.<br />

W ptli głównej osobnik bazowy poddawany jest reprodukcji, w wyniku czego<br />

stworzona zostaje jego kopia, która jest przechowywana w pamici, natomiast procesom<br />

mutacji poddawany jest osobnik bazowy.<br />

Mutacja nastpuje w trzech etapach. Kady etap powtarzany jest dopóty, dopóki<br />

warunek stopu nie zostanie spełniony. Zatrzymanie ptli kadego etapu mutacji zawiera<br />

w sobie element losowoci, <strong>dla</strong>tego te nie mona okreli iloci powtórze kadego etapu,<br />

a jedynie prawdopodobiestwo jego zajcia.<br />

W pierwszym etapie losowo wybrani odbiorcy zmieniaj swoj kolejno<br />

„odwiedzania” ich przez przydzielonych im dostawców, czyli rozwizywany jest typowy<br />

problem komiwojaera. Prawdopodobiestwo zajcia mutacji w tym etapie wynosi 70%.<br />

W drugim etapie nastpuje przydzielenie odbiorcom nowych dostawców wg równa<br />

z rozdziału 2, w taki sposób, aby całkowita ilo dostaw kadego z dostawców nie uległa<br />

zmianie. Mutacja w tym etapie zachodzi wówczas, gdy odbiorców zaopatruje wicej ni jeden<br />

dostawca a jej prawdopodobiestwo zajcia wynosi 60%.<br />

Trzeci etap mutacji zachodzi wtedy, gdy mamy do czynienia z wieloma centrami<br />

dystrybucyjnymi a ponadto, gdy całkowita ilo dostaw przekracza całkowit ilo<br />

zapotrzebowa. W etapie tym nastpuje przerzucanie dostaw pomidzy dostawcami, przy<br />

zachowaniu odpowiednich równa, a prawdopodobiestwo jego zajcia wynosi 80%.<br />

Po zakoczonym procesie mutacji osobnik poddawany jest ocenie rodowiska,<br />

a nastpnie jego przystosowanie porównywane jest z przystosowaniem jego kopii sprzed<br />

etapu mutacji. W nastpnej iteracji osobnikiem bazowym staje si ten, który charakteryzuje<br />

si lepszym przystosowaniem.<br />

4. PRAKTYCZNE ZASTOSOWANIE PROGRAMU „VITRANS V1.0”<br />

W celu sprawdzenia działania programu „Vitrans” oraz przedstawienia jakoci<br />

generowanych przez program wyników, wyznaczono trasy transportu towarów <strong>dla</strong> danych<br />

zawartych w tablicy 1.<br />

Na rysunku 5 przedstawiono okno główne programu po wprowadzeniu powyszych<br />

danych. Ilo iteracji programu ustawiono na 100 tysicy kroków.


122<br />

Edward Michlowicz<br />

Rys. 5. Okno główne programu Vitrans V1.0 z naniesionymi danymi.<br />

ródło: opracowanie własne.<br />

Ilo całkowitego zasobu dysponowanego przez dostawców wynosiła 540 jednostek<br />

towaru, z czego Kraków miał w dyspozycji 160 jednostek, Łód – 100, Warszawa –<br />

150, natomiast Wrocław 130 jednostek. Kademu z odbiorców przydzielono wymagan ilo<br />

towaru, która w sumie wyniosła 515 jednostek. Po rozdysponowaniu towaru pomidzy<br />

odbiorcami w magazynach pozostało 25 jednostek towaru zapasu, przy czym w Krakowie<br />

pozostało 11 jednostek, w Łodzi – 5, w Warszawie – 6, a we Wrocławiu – 3 jednostki.<br />

Całkowita droga do pokonania przez komiwojaerów wyniosła 3449.17 km.<br />

Rozwizanie zadania <strong>dla</strong> 10 5 iteracji przedstawiono na rysunku 6.<br />

Rys. 6. Okno programu z rozwizaniem <strong>dla</strong> 105 iteracji<br />

ródło: opracowanie własne.


<strong>Problem</strong> komiwojaera <strong>dla</strong> <strong>kilku</strong> <strong>centrów</strong> <strong>dystrybucji</strong><br />

123<br />

Tablica 1. Zestawienie danych zadania.<br />

Lp. Dostawca Limit towaru Lp. Odbiorca Zapotrzebowanie<br />

1 Kraków 160 1 Białystok 20<br />

2 Łód 100 2 Bielsko-Biała 18<br />

3 Warszawa 150 3 Chełm 21<br />

4 Wrocław 130 4 Chorzów 22<br />

SUMA = 540 5 Dbica 20<br />

6 Elblg 19<br />

7 Ełk 20<br />

8 Gdask 25<br />

9 Gniezno 18<br />

10 Grudzidz 20<br />

11 Jarocin 14<br />

12 Kalisz 17<br />

13 Kielce 24<br />

14 Kołobrzeg 20<br />

15 Krosno 21<br />

16 Lubin 19<br />

17 Malbork 17<br />

18 Nysa 23<br />

19 Płock 23<br />

20 Pozna 26<br />

21 Przemyl 24<br />

22 Radom 22<br />

23 Sandomierz 20<br />

24 Suwałki 17<br />

25 Szczecin 25<br />

SUMA = 515<br />

ródło: opracowanie własne<br />

Program „Vitrans” do wyznaczania tras transportu wykorzystuje własnoci algorytmów<br />

ewolucyjnych, <strong>dla</strong>tego te nie wiadomo czy wygenerowane rozwizanie jest rozwizaniem<br />

optymalnym, ani te jak bardzo si od niego róni. W celu okrelenia jakoci otrzymanego<br />

rozwizania przeprowadzono kilka symulacji tego samego problemu <strong>dla</strong> rónych wartoci<br />

liczby iteracji. Wyniki symulacji przedstawiono na poniszym wykresie (rys. 7).<br />

Dla niewielkiej liczby kroków (100) program wygenerował rozwizanie o blisko 30%<br />

gorsze, ni <strong>dla</strong> 10 5 kroków. Jednak dalsze zwikszanie liczby iteracji, powyej 10 5 kroków,<br />

nie spowodowało wygenerowania rozwizania lepszego, a w przypadku liczby iteracji równej<br />

10 6 otrzymano nawet rozwizanie niewiele gorsze, co moe sugerowa, e dalsze zwikszanie<br />

liczby kroków nie polepszy znaczco rozwizania, a jedynie zwikszy czas wykonywania<br />

oblicze przez program. Moe to oznacza, e rozwizanie, <strong>dla</strong> którego całkowita droga<br />

transportu wynosi 3449.17 km jest rozwizaniem optymalnym lub lecym bardzo blisko<br />

takiego rozwizania.


124<br />

Edward Michlowicz<br />

Rys.7. Wykres zalenoci wygenerowanego rozwizania od liczby iteracji.<br />

ródło: opracowanie własne<br />

4. PODSUMOWANIE I DALSZE BADANIA<br />

<strong>Problem</strong> wyznaczenia optymalnego planu przewozów towarów pomidzy dostawcami<br />

a odbiorcami jest problemem NP-trudnym, co oznacza, e nie istnieje algorytm rozwizujcy<br />

ten problem w czasie wielomianowym. Przy rozwizywaniu takich problemów (duych<br />

rozmiarów) czsto rezygnuje si ze spełnienia warunku by algorytm dostarczał rozwizanie<br />

optymalne i zadowala rozwizaniem przyblionym, lecym blisko rozwizania optymalnego.<br />

Zastosowanie heurystycznych algorytmów optymalizacyjnych czsto pozwala zredukowa<br />

czas oblicze z wykładniczego do wielomianowego, przy niewielkiej utracie optymalnoci.<br />

Do napisania programu „Vitrans” wykorzystano jeden z heurystycznych algorytmów<br />

optymalizacyjnych, jakim jest algorytm ewolucyjny, ze wzgldu na jego prostot schematu,<br />

dziki któremu algorytmy tego typu znajduj liczne zastosowania praktyczne w rónych<br />

dziedzinach nauki.<br />

W zastosowanym algorytmie bazowe rozwizanie pocztkowe nie jest generowane<br />

losowo, lecz przy wykorzystaniu metody „minimum macierzy kosztów”, dziki czemu ju na<br />

pocztku otrzymane rozwizanie jest w znacznym stopniu przyblione do optymalnego.<br />

Program „Vitrans” w krótkim czasie generuje rozwizanie bardzo trudnych<br />

obliczeniowo zada, co czyni go programem atrakcyjnym <strong>dla</strong> operatorów logistycznych, firm<br />

spedycyjnych czy te firm produkcyjno – dystrybucyjnych.<br />

Rozwaany w opracowaniu problem warto rozwin. Znane w badaniach operacyjnych<br />

tzw. zadanie transportowo – produkcyjne dotyczy optymalizacji łcznych kosztów transportu<br />

i przerobu jednorodnych surowców dostarczonych do zakładów przetwarzajcych te surowce<br />

na wyroby gotowe. W odniesieniu do zakładów przetwórstwa odpadów powstaje złoony<br />

problem zbierania, gromadzenia i przetwarzania tych odpadów przy nieliniowej funkcji<br />

kosztów przerobu. W wielu przypadkach zgromadzenie odpowiednio uzasadnionej


<strong>Problem</strong> komiwojaera <strong>dla</strong> <strong>kilku</strong> <strong>centrów</strong> <strong>dystrybucji</strong><br />

125<br />

ekonomicznie iloci odpadów (masa, objto) w miejscach składowania (centrach) wymaga<br />

wielokrotnej obsługi rozproszonych punktów zbiórki odpadów. Z wstpnych bada [5] mona<br />

wywnioskowa, e koszty utylizacji mog by aproksymowane wielomianami drugiego<br />

stopnia. Uwzgldniaj one tylko koszty zmienne, czyli zalene od rozmiarów produkcji.<br />

Rozwizanie tak postawionego zadania transportowo – produkcyjnego z kwadratow<br />

funkcj kosztów przerobu polega na wyznaczeniu takiego planu dostaw surowca (odpadów)<br />

do poszczególnych zakładów i jego przetworzenia w tych zakładach, aby łczne koszty<br />

transportu i przerobu były minimalne.<br />

LITERATURA<br />

[1] Arabas J.: Wykłady z algorytmów ewolucyjnych. WNT, Warszawa 2001.<br />

[2] Ignasiak E.: Badania operacyjne. PWE, Warszawa 2001.<br />

[3] Jacyna M., Jachimowski R., Pryciski P.: Wspomaganie komputerowe wyznaczania<br />

optymalnych tras w wieloszczeblowym systemie <strong>dystrybucji</strong>. Wybrane Zagadnienia Logistyki<br />

Stosowanej. Wydawnictwa AGH, Kraków 2009.<br />

[4] Michlowicz E.: Optymalizacja zada operatora logistycznego. Logistyka nr 3/2009.<br />

[5] Michlowicz E.: Transportation − Production Task Pertaining to Waste Disposal with Use of<br />

Cost Convex Function. Polish Journal of Environmental Studies. Vol. 18, No. 3A, 2009. Hard<br />

Publishing Comp., Olsztyn 2009.<br />

[6] Sikora W.: Badania operacyjne. PWE, Warszawa 2008.<br />

[7] Sysło M.M., Deo N., Kowalik J.S.: Algorytmy optymalizacji dyskretnej.PWN, Warszawa 1995.<br />

[8] Waters D.: Zarzdzanie operacyjne: towary i usługi. PWN, Warszawa 2001.<br />

TRAVELING SALESMAN PROBLEM FOR A NUMBER OF DISTRIBUTION CENTERS<br />

Abstract<br />

The problem of allocation tasks in a typical transport issue is not useful for medium-sized transport<br />

companies operating multiple distribution centers. The bagman problem affects only the selected companies. The<br />

combination of both of these issues can bring many benefits. This paper proposes a solution to the problem using<br />

the evolutionary algorithm.<br />

Key words: travelling salesperson problem, distribution center<br />

Recenzent: Marianna Jacyna

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!