Studa Materały. Mscellanea Oeconomcae Rok 6, Nr 2/22 Wydzał Zarządzana Admnstrac Unwersytetu Jana Kochanowskego w Kelcach Z a r z ą d z a n e f n a n s e Rafał Prońko ZASTOSOWANIE KLASYCZNEGO ALGORYTMU GENETYCZNEGO DO ROZWIĄZANIA ZBILANSOWANEGO ZAGADNIENIA TRANSPORTOWEGO. Ops Algorytmu Genetycznego Algorytmy genetyczne w cągu ostatnch 3 lat stały sę przedmotem ntensywnych badań naukowych, ako element nezbędny przy rozwązywanu welu zadań. Dzęk algorytmom genetycznym udało sę rozwązać lub choćby przyspeszyć rozwązane welu różnych problemów np.: dylemat węźna, zadane komwoażera, zadane transportowe, zadana harmonogramowana, podzału obektów grafów, czy choćby optymalzacę parametrów sec neuronowych. W uproszczenu algorytmy genetyczne można porównać do same genetyk. Załóżmy, że mamy populacę lsów wadomo, że lsy muszą być szybke, zwnne, meć rozwnęte zmysły wszystke te elementy będzemy nazywać cecham gatunku (w teor algorytmów genetycznych będzemy e nazywać chromosomam). Na początku stnena populac lsów (zwana rozwązanem początkowym). Cechy te są rozwnęte na pewnym pozome (pozom rozwnęca tych cech został przez naturę wylosowany ). Jednak aby lsy mogły coraz sprawne polować cechy te muszą z każdym pokolenem coraz bardze sę rozwać. Perwszą możlwoścą rozwou tych genów est łączene sę lsów w pary. Następue wtedy wymana genów pomędzy dwoma lsam (w algorytmach genetycznych nazywa sę to krzyżowanem). Jak wadomo z pary lsów ne powstane eden super ls obdarzony nalepszym cecham obu rodzców. W genetyce est tak, że powstae tych lsów trochę węce każdy otrzymał pewne cechy ednego rodzca pewne cechy drugego (wcale ne są one nalepsze). Pytane powstae czy w ten sposób lsy Mgr Rafał Prońko, doktorant Wydzału Matematyk Informatyk Unwersytetu Łódzkego. 35
z każdym pokolenem będą sę rozwać? Odpowedź est oczywsta brzm ne. Zatem co potrzeba aby cechy lsów w każdym pokolenu były coraz lepsze? Z pomocą ednak przychodz matka natura wprowadzaąc tak element ak mutacę genów co powodue ch rozwó, czasem degeneracę. Mutaca polega na ak namnesze zmane poedynczego genu. Dzęk mutac w każdym pokolenu lsów otrzymuemy geny różnące sę trochę od nalepszych genów rodzców. Podczas procesu mutac można powedzeć, że matka natura gra w ruletkę. Nekedy te zmany są na lepsze, ale czasem są na gorsze. W ten sposób z ednego pokolena lsów otrzymuemy w następnym pokolenu osobnk obdarzone lepszym ak równeż gorszym cecham odpowedzalnym za polowane. Zwerzęta obdarzone gorszym cecham nerzadko wymeraą, poneważ ne są w stane polować tak dobrze ak osobnk obdarzone lepszym genam (w teor algorytmów ewolucynych take zachowane nazywa sę selekcą). Ne wszystke ednak lsy obdarzone gorszym genam wymeraą zdarza sę, że lsy take przeżyą także maą możlwość rozmnażana sę co powodue, że w każdym pokolenu lsów występuą cechy gorsze cechy lepsze. Dla genetyk czy też algorytmów genetycznych est to ak nabardze dobre poneważ przeprowadzene mutac na lepszym gene może dać gorsze wynk nż przeprowadzene mutac na gene gorszym. W ten sposób otrzymuemy możlwość dodana genów, które w pewnych warunkach mogą okazać sę dużo lepsze nż geny cały czas rozwane. Tak właśne dzała algorytm genetyczny. Posadamy pewną grupę rozwązań (ne wemy czy są one dobre czy ne), nazywamy tę grupę przestrzeną rozwązań, następne rozwązana krzyżuemy ze sobą. Nowo powstałe rozwązana zmena sę neznaczne w sposób losowy (mutaca). Z rozwązań akch dostaemy w wynku krzyżowana mutac wyberamy pewną grupę a resztę usuwamy. Wybrana grupa est znów poddawana dzałanom krzyżowana mutac tak do momentu uzyskana nalepszych rozwązań. Oczywśce wybór grupy osobnków ne est przypadkowy, podlega on prawom rachunku prawdopodobeństwa, każdy osobnk ma prawo być wybrany ale tylko z pewnym prawdopodobeństwem. To zapewna nam zmenność genów (mogą do następne populac prześć osobnk słabe przystosowane ale po skrzyżowanu z nnym lepe dopasowanym mogą dać rezultaty lepsze nż gdyby skrzyżować osobnk lepe dopasowane). Należy zdać sobe sprawę, że podstawowe operatory genetyczne take ak krzyżowane (łączene sę lsów w pary), czy też mutacę naprośce wykonywać est na łańcuchach bnarnych, choć ne zawsze est to możlwe. Algorytm genetyczny, gdze reprezentaca danych est w postac bnarne nazywa sę algorytmem klasycznym. Parametram algorytmu genetycznego są: prawdopodobeństwo krzyżowana p c prawdopodobeństwo mutac p m. Początkową populacę osobnków doberamy w sposób całkowce losowy. Chromosomy (osobnk) w obecne populac oznaczamy ako v natomast od- 36
powadaące m punkty przestrzen (rozkodowane łańcuchy bnarne) oznaczamy ako: v. Krok algorytmu genetycznego 2. Należy oblczyć wartość dopasowana dla każdego chromosomu eval v = f dla =... n, gdze n oznacza rozmar populac (zwyczaowo ( ) ( ) v oznaczone ako popsze) popsze 2. Oblczyć całkowte przystosowane populac F = eval( v ) =. ( v ) eval 3. Oblczyć prawdopodobeństwo wyboru każdego chromosomu p =, F gdze =...popsze. 4. Oblczyć dystrybuantę (prawdopodobeństwo skumulowane) dla każdego eval( v ) chromosomu q p =. = = F 5. Proces selekc polega na obroce ruletką popsze razy (aby wybrać znów popsze chromosomów do nowe populac) wyborze ednego chromosomu do nowe populac w następuący sposób: wygenerować lczbę z zakresu r, ; wyberz chromosom v dla którego zachodz q < r < q ; oczywśce pewne chromosomy (lepe przystosowane) mogą zostać wybrane węce nż eden raz, 6. proces krzyżowana przeprowadzany est w następuący sposób: wygeneru zmenno przecnkową lczbę z przedzału r, ; eśl r < pc to wyberz rozpatrywany chromosom do krzyżowana: Oczekwana lczba chromosomów, które należy skrzyżować to posze pc. Następne dla każde pary chromosomów losuemy lczbę pos, m, która wyznacza mesce krzyżowana dwóch chromosomów. Załóżmy, że mamy dwa chromosomy () () losuemy pewną lczbę pos = 3 (ak wadomo mus być ona z przedzału od do 7 poneważ welkość naszych chromosomów, lczba zer edynek w nch, wynos 8). Następne rozdzelamy oba chro-,. W ten sposób tworzy sę dwa mosomy po trzecm bce ( ) ( ) potomk, naperw borąc część perwszą (tą przed lną) z perwszego chromoso- 2 Zb. Mchalewcz, Algorytmy genetyczne + struktury danych = programy ewolucyne, WNT, Warszawa 999. 37
mu, następne wybera sę część drugą z drugego chromosomu (tą po ln ponowe), a późne na odwrót. Potomk ake powstały z wybranych chromosomów to:,. ( ) ( ) 7. dla każdego chromosomu dla każdego btu w chromosome wykona: losuemy lczbę r, ; eśl r < pm to zmutu bt (czyl zmeń z na lub odwrotne); Uwaga: każdy bt ma taką samą szansę na to by został zmutowany, zmenony) 8. następne ocenamy populacę wyberamy losowo chromosomy, które są nalepe dopasowane (z pewnym prawdopodobeństwem) Całość algorytmu genetycznego powtarzamy do momentu aż ne zostaną osągnęte warunk stopu (często est to pewna z góry ustalona lość powtórzeń). Zapszmy teraz schemat kroków w postac algorytmu: program AlgorytmGenetyczny t:= ; wyberz populacę początkową P(t) oceń P(t) dopók (ne est spełnony warunek stopu) wykona początek pętl t:=t+; wyberz P(t) z P(t-) // est to selekca zmeń P(t) // operatory genetyczne (krzyżowane, mutace) oceń P(t) konec pętl wyśwetl nalepszy wynk z P(t) Konec programu. Znaąc uż zasadę dzałana algorytmów genetycznych można prześć do rozwązywana zadana transportowego za pomocą algorytmu genetycznego. 2. Defnowane zagadnena transportowego Zagadnene transportowe polega na zaplanowanu przewozów towarów od pewne lczby dostawców (magazynów) do pewne lczby odborców (sklepów), w tak sposób aby koszty transportu były ak nanższe. Założena zagadnena transportowego:. w każdym punkce dostawy można odebrać ne węce towaru nż poemność takego punktu a 2. do każdego punktu odboru można dostarczyć ne węce towaru nż est on w stane przyąć b 38
3. transport odbywa sę tylko wzdłuż zaplanowanych tras, oraz znane są koszty transportu pomędzy dowolnym punktam. Zadane to po sformułowanu można zapsać w postac matematyczne: K = n m = = c x gdze: K koszty transportu c - ednostkowy koszt transportu towaru na trase -; x - lość towaru przewożona na trase -. Funkca ta oznacza funkcę celu (funkca kosztów). Funkce ogranczeń: n = m x = x b a mn () podaż dostawców ne może być przekroczona (2) popyt odborców mus być co namne zaspokoony (3) Tak skonstruowane zadane est zadanem ogólnym, aby rozwązać go metodam analtycznym (z wykorzystanem rachunku macerzowego) należy dokonać zblansowana zadana, czyl zastąpć znak nerównośc znakam równośc poprzez wprowadzene fkcynych punktów odboru źródła. Zagadnene transportowe można rozwązywać za pomocą metod analtycznych takch ak metoda smpleks, kąta północno-zachodnego, namneszego elementu, VAM 3. 3. Przykładowe zagadnene transportowe Załóżmy, że pewna frma ma trzy magazyny trzy sklepy oznaczone odpowedno m s gdze =,2, 3. Ilość towaru w poszczególnych magazynach opsana est wektorem: 2 m = 3 Natomast zapotrzebowane poszczególnych sklepów opsane est wektorem: 5 s = 3 5 3 J. Prońko, Szczególne przypadk programowana lnowego, wykład kursowy dla studentów Wydzału Zarządzana UJK w Kelcach, Kelce 2. 39
W prezentowanym przykładze mamy do czynena z zagadnenem transportowym zblansowanym, poneważ potrzeby sklepów są równe możlwoścom magazynów. Koszty ednostkowe transportu pomędzy poszczególnym magazynam sklepam opsue tabela. Tabela. Jednostkowe koszty transportu mędzy poszczególnym magazynam sklepam. s s 2 s 3 Źródło: Opracowane własne. m 3 4 m 2 5 2 m 3 3 2 8 Sformułowany problem można zapsać w następuące postac macerzowe: f x mn (4) Przy warunkach: A x = b (5) Do rozwązana tak sformułowanego problemu posłużono sę paketem oprogramowana Matlab, w którym funkca rozwązuąca zadane programowana lnowego przymue postać: [ x, fval] = lnprog( f, A, b, Aeq, b, ub) (6) gdze: x wektor rozwązań; fval wartość przy które funkca f x osąga mnmum; f wektor ednostkowych kosztów transportu; A b współczynnk ogranczeń przy zagadnenu nezblansowanym; Aeq beq macerze współczynnków ogranczeń; b dolne ogranczene dla x (od ake wartośc x mus być wększe) ub górne ogranczene dla x (od ake wartośc x mus być mnesze) Jak wynka z funkc (6) rozwązane tego zadana z wykorzystanem paketu matlab wymaga zdefnowana: f = 3 4 5 2 3 2 8 (7) wektora kosztów: [ ] 3
3 macerzy współczynnków ogranczeń: = Aeq (8) wektora ogranczeń: [ ] 5 3 5 3 2 = beq (9) Podstawaąc powyższe dane do funkc (6) otrzymamy: = 5 fval () = 3 5 5 x () Interpretaca wynków. Transportuąc towar z magazynów do sklepów w loścach przedstawonych w tabel 2 koszty te operac będą namnesze wynosą 5. Tabela 2. Natańszy sposób transportu towarów z magazynów do sklepu. s s 2 s 3 m 5 5 m 2 m 3 3 Źródło: Opracowane własne.
4. Rozwązane zagadnena transportowego za pomocą algorytmu genetycznego W klasycznym algorytme genetycznym, ak uż było wspomnane, każdy chromosom est zapsywany w postac bnarne. Należy zatem naperw zdefnować, ak pownny wyglądać rozwązana. Wadomo, że w rozwązuąc zadane transportowe otrzymuemy wynk w postac wektora składaącego sę z klku lczb. Należy zatem każdą z tych lczb zapsać w postac bnarne (czyl zero edynkowe). Każde rozwązane w zadanu transportowy będze sę zatem składać z pewne lczby wektorów zaweraących zera edynk. Załóżmy, że rozwązanem zagadnena transportowego est wektor: x = ( x, x,, x ) T 2 K m (2) Zatem, aby tak wektor był reprezentowany w postac bnarne należy każdy z x, x2, K, xnm zapsać równeż w postac bnarne: x w w, K w w, (3) ( ),, p = gdze { } Parametr p oznacza nawększą lczbę całkowtą aką mogę te wektory reprezentować: p+ 2 Łatwo zauważyć, że taka reprezentaca danych spełna ogranczene x, poneważ każdy z wektorów bnarnych reprezentue tylko lczby dodatne. Wartośc każdego x przy te reprezentac należą do zboru lczb całkowtych. Funkcę oceny przy te reprezentac można zapsać ako: eval ( decmal( x ) decmal( x2 ),, decmal( xm )) =, K f x (4) Funkca decmal oznacza funkcę zamany z postac bnarne na postać dzesętną. Może być ona zapsana w take postac 4 : functon decmal ($lczba) { $losc_mesc = strlen($lczba); $lczb_dzesetna = ; for ($=$losc_mesc;$>-;$--) { $lczba_dzesetna += $lczba[$-]*pow(2,$losc_mesc-$); } return $lczba_dzesetna; } m = 4 Opracowane własne, ęzyk programowana php. 32
Załóżmy, że operatory genetyczne defnowalbyśmy tak, ak w krokach algorytmu genetycznego. Okazue sę, że eśl użyemy klasyczne mutac genów poawa sę problem. Przypomnmy, że mutaca to est mnmalna zmana genów nalepe na poedynczym bce. Załóżmy teraz, że mamy bt postac () co odpowada lczbe. Jeśl zrobmy mnmalną zmanę w tym bce np.: na mescu perwszym wstawmy czyl otrzymamy reprezentacę w postac () co odpowada lczbe. Zmana okazue sę uż ne taka mała ak na początku. Mało tego przy próbe zachowana take mutac powstae koneczność poprawena co namne dwóch nnych genów aby ogranczena zostały zachowane. To wymusło skonstruowane funkc kontrol. Po wprowadzenu te funkc mó algorytm genetyczny spsywał sę bardzo dobrze (zawsze po pewne lczbe terac powstawały odpowedz zblżone często dentyczne ak wynk, który otrzymałem w matlabe). Nestety funkca poprawaąca wynk wydłużyła bardzo czas dzałana algorytmu, co stawa pod znakem zapytana opłacalność stosowana algorytmu genetycznego do rozwązana tego zadana transportowego. Doszedłem ednak do wnosku, że można poprawć dzałana tego algorytmu dodaąc procedurę opsaną przez Zbgnewa Mchalewcza, którą nazwał on ncalzaca: procedure ncalzaca; begn ustaw wszystke pozyce od do m\cdot n ako ne odwedzone repeat wyberz losowo lczbę q z zakresu do m\cdot n ustaw odpowedną pozycę ako odwedzoną podstaw (wersz) =(q-)/k + // zaokrąglamy do dołu podstaw (kolumnę) =(q-) mod k+ podstaw val=mn(s[],d[]) podstaw $x_$ = val podstaw s[] = s[]-val podstaw d[] = d[] - val untl wszystke wartosc będą odwedzone Po zastosowanu te procedury mó algorytm genetyczny stał sę dużo bardze wydany (choć nadal dużo słabszy nż rozwązane w matlab). 5. Wnosk Z moch obserwac wynka, że neopłacalnym est konstruowane algorytmu genetycznego dla lnowego zagadnena transportowego klasy wskazane w przykładze. Chocaż otrzymywane wynk są porównywalne z rozwązanam metodam analtycznym, to ednak algorytmy genetyczne w tym przypadku są dużo wolnesze. Sądzę, ż warto sę zastanowć nad zmaną reprezentac danych w zagadnenu transportowym z bnarnego na bardze naturalną reprezentacę macerzową, pownno to poprawć wynk przyspeszyć dzałane algorytmu genetycznego. 33
Zagadnene przedstawone w przykładze est naprostszą formą zagadnena transportowego. Spore zastrzeżena, przy tak sformułowanym zadanu, budz statyczny ops ednostkowych kosztów transportu. W rzeczywstośc kosztów tych ne da sę tak opsać, poneważ zależność mędzy loścą transportowanego towaru a kosztam tego transportu est nelnowa często równeż skokowa. Jest to zwązane z ładownoścą środków transportu. Jeżel dysponuemy środkem transportu o ładownośc np.: 5t, to transport na określone trase ładunku 5 kg 5 ton będze nemal tak sam. Natomast gdybyśmy zamerzal tym środkem transportu przeweźć 6 ton to koszt będze dwukrotne wększy, poneważ musmy wykonać dwa kursy. Rozwązane takego zagadnena metodam analtycznym est bardzo skomplkowane, o le w ogóle możlwe. Natomast w przypadku zastosowana algorytmów genetycznych możemy take zagadnene rozwązać. Bblografa:. Arabas J., Wykłady z algorytmów ewolucynych, WNT, Warszawa 23. 2. Goldberg Davd E., Algorytmy genetyczne ch zastosowana, WNT, Warszawa 995. 3. Mchalewcz Zb., Algorytmy genetyczne + struktury danych = programy ewolucyne, WNT, Warszawa 999. 4. Prońko J., Szczególne przypadk programowana lnowego, wykład kursowy dla studentów Wydzału Zarządzana UJK w Kelcach, Kelce 2. 5. Rutkowsk L., Metody technk sztuczne ntelgenc, PWN, Warszawa 26. 6. Studnarsk M., Teora algorytmów ewolucynych, wykład kursowy dla doktorantów, Łódź 22. Abstrakt Artykuł zawera podstawowy ops algorytmów genetycznych oraz ch zasadę dzałana. W dalsze częśc defnowane est zagadnene transportowe, oraz sposób ego rozwązana metodam analtycznym. W ostatne częśc artykułu umeszczone est rozwązane lnowego zblansowanego zagadnena transportowego za pomocą algorytmu genetycznego, oraz wnosk płynące z tego rozwązana. Use of Classcal Genetc Algorthm for solvng Balanced Transportaton problems The artcle contans an ntroductory descrpton of genetc algorthms, and the prncple of ther operaton. Later n the artcle, the transportaton problem s defned, as well as the way to solve t by means of analytcal methods. In the last part of the artcle, a soluton of lnear balanced transportaton problem by use of the genetc algorthm s presented, together wth the conclusons whch may be drawn from ths soluton. MBA Rafał Prońko, post-graduate student, Unversty of Lodz. 34