Komputerowy system do篸a艅飁ktywno艣ci metaheurystyki ''System Mr贸wek'' w zakresie optymalizacji dyskretnej


Temat Pracy Magisterskiej:

„Komputerowy system do bada艅 efektywno艣ci meta-heurystyki „System Mr贸wek” w zakresie optymalizacji dyskretnej.”

Promotor:

Spis tre艣ci.

Spis tre艣ci.

1. Wprowadzenie

Wiek XX to gwa艂towny rozw贸j nauk zwi膮zanych z technikami obliczeniowymi. Rozwi膮zano wiele problem贸w, kt贸re ze wzgl臋du na z艂o偶ono艣膰 obliczeniow膮 wydawa艂y si臋 nierozwi膮zywalne. Powsta艂a nowa nauka nazwana „badaniami operacyjnymi”. Jej pocz膮tki zwi膮zane s膮 z drug膮 wojn膮 艣wiatow膮, kiedy w si艂ach zbrojnych USA i Wielkiej Brytanii zosta艂y utworzone specjalne grupy naukowc贸w w celu przygotowywania r贸偶nych wariant贸w rozwi膮za艅 dotycz膮cych organizacji i zabezpieczenia 艣rodk贸w dla dzia艂a艅 bojowych. Po zako艅czeniu wojny metody dzia艂ania bada艅 operacyjnych zostaj膮 przeniesione do innych dzia艂a艅 ludzkiej dzia艂alno艣ci. W dniu dzisiejszym metody bada艅 operacyjnych wykorzystuje si臋 w przemy艣le, gospodarce rolnej, handlu, transporcie, organizacji s艂u偶by zdrowia itp.

Ten gwa艂towny rozw贸j bada艅 operacyjnych w bardzo du偶ym stopniu zwi膮zany jest z pojawieniem si臋 maszyny nazwanej z biegiem czasu komputerem. Komputer ze wzgl臋du na swoj膮 moc obliczeniow膮 pozwoli艂 rozwi膮zywa膰 problemy du偶ych rozmiar贸w, potrzebuj膮ce du偶ych ilo艣ci rachunk贸w. Niemniej zosta艂o jeszcze wiele problem贸w, dla kt贸rych nie znaleziono rozwi膮zania lub znalezione rozwi膮zanie jest niezadowalaj膮ce. Przyk艂adem mo偶e by膰 tzw. problem komiwoja偶era, kt贸rego istota przedstawiona b臋dzie w dalszej cz臋艣ci pracy. Nauka w dalszym ci膮gu poszukuje algorytmy, kt贸re pozwol膮 rozwi膮zywa膰 to zadania w rozs膮dnym czasie, nawet gdy wielko艣膰 zadania jest du偶a. Praca ta ma na celu sprawdzenia, czy algorytm zwany „System mr贸wek” mo偶e znale藕膰 zastosowania w艂a艣nie do tego problemu.

Jako zagadnienie optymalizacji dyskretnej wybrano asymetryczne zagadnienie komiwoja偶era z uwagi na:

2. Podstawowe definicje

Poniewa偶 praca opiera si臋 g艂贸wnie na materia艂ach z konferencji naukowych uzna艂em za stosowne wyja艣nienie pewnych poj臋膰, kt贸re mog膮 by膰 pomocne w odpowiednim zrozumieniu dalszej cz臋艣ci pracy.

2.1 Graf

Graf G definiujemy jako par臋 G = (V, E), gdzie V jest zbiorem sko艅czonym, za艣 E jest relacj膮 binarn膮 w V. Zbi贸r V nazywamy zbiorem wierzcho艂k贸w G, a jego elementy nazywane s膮 wierzcho艂kami. Relacja binarna E jest nazywana zbiorem kraw臋dzi G, a jej elementy kraw臋dziami.

Rozr贸偶niamy dwa podstawowe rodzaje graf贸w:

  1. 0x08 graphic
    Graf nieskierowany, zbi贸r kraw臋dzi E to zbi贸r nieuporz膮dkowanych par wierzcho艂k贸w. Oznacza to, 偶e kraw臋d藕 jest zbiorem {u, v}, gdzie u, v nale偶膮 do zbioru V. Je偶eli ponadto u v, tj. graf nie posiada p臋tli oraz wielokrotnych kraw臋dzi to nazywany jest grafem prostym.

Rys. 1

Na rysunku 1 przedstawiony jest przyk艂ad przedstawienia graficznego grafu nieskierowanego. Wierzcho艂ki przedstawiane s膮 jako k贸艂ka, kraw臋dzie jako linie.

  1. Graf skierowany, to graf gdzie zbi贸r kraw臋dzi E to zbi贸r uporz膮dkowanych par wierzcho艂k贸w. R贸偶nice z grafem opisywanym wcze艣niej s膮 nast臋puj膮ce:

0x08 graphic

Rys. 2

Na rysunku 2 przedstawiony jest obraz grafu skierowanego. Jak mo偶na zauwa偶y膰, r贸偶nica z rysunkiem 1 kryje si臋 w przedstawieniu kraw臋dzi. W grafie skierowanym przedstawiaj膮 je strza艂ki nie kraw臋dzie.

Dla jasnego przeprowadzenia dalszych rozwa偶a艅 nale偶y wyja艣ni膰 dalsze dwa poj臋cia zwi膮zane z grafem:

2.2 Cykl „Hamiltona”

Poj臋cie cyklu „Hamiltona”, zwanego marszrut膮, rozpatrywano ju偶 od przesz艂o stu lat. Zwi膮zane jest ono z poj臋ciem grafu. Formalnie rzecz bior膮c, cykl Hamiltona w grafie nieskierowanym G = (V, E) to cykl prosty zawieraj膮cy wszystkie wierzcho艂ki zbioru V. Graf, kt贸ry ma cykl Hamiltona, nazywamy hamiltonowskim; w przeciwnym razie niehamiltonowskim.

2.3 Heurystyka

Poj臋cie heurystyka jest ma艂o znane, cho膰 popularne s膮 jego r贸偶ne szczeg贸艂owe techniki i metody (a najbardziej intuicyjnie stosowane wskaz贸wki heurystyczne). Trudno jest odnale藕膰 w literaturze definicje tego s艂owa. Nie ma go przyk艂adowo w takich du偶ych opracowaniach encyklopedycznych jak: 30-tomowa Encyclopedia Americana, 29-tomowa Encyclopedia Britannica, 3-tomowa The Canadian Encyclopedia czy te偶 w mniejszych pracach specjalistycznych: S艂ownik poj臋膰 filozoficznych W. Krajewskiego, S艂ownik encyklopedyczny. Filozofia - G. Vesey, P. Foulkes.

W Badaniach Operacyjnych bardzo cz臋sto wykorzystywane jest poj臋cie algorytmu heurystycznego. Odnosi si臋 ono do algorytm贸w wykorzystuj膮cych metody pozwalaj膮ce odkrywa膰 rozwi膮zania z艂o偶onych problem贸w w oparciu o pr贸by zrozumienia i odtworzenia niekt贸rych czynno艣ci umys艂u ludzkiego.

U podstaw tego typu algorytm贸w, le偶y za艂o偶enie, 偶e dla zada艅, w kt贸rych mamy do czynienia z du偶ymi przestrzeniami rozwi膮za艅, wa偶ne jest wczesne odrzucenie nieobiecuj膮cych kierunk贸w przeszukiwania. Zapewnia to ogromne oszcz臋dno艣ci na kosztach obliczeniowych, a w rezultacie przyspiesza znalezienie rozwi膮zania. Wi臋ksza skuteczno艣ci tych metod polega na dostosowaniu kierunk贸w poszukiwania do potrzeb rozwi膮zywanego problemu. W tym celu wykorzystuje si臋 pewne informacje o zadaniu. Heurystyka to wszelkie metody pozwalaj膮ce algorytmowi poszukuj膮cemu rozwi膮zania p贸j艣膰 "na skr贸ty". Skuteczno艣ci krok贸w heurystycznych nie mo偶na w pe艂ni udowodni膰 teoretycznie, mo偶na jedynie pokaza膰 do艣wiadczalnie ich trafno艣膰.

Algorytmy tego typu odegra艂y bardzo wa偶n膮 role w rozwoju nauk zwi膮zanych z obliczeniami komputerowymi. W obecnym czasie zast臋powane s膮 innymi grupami algorytm贸w, np. rozwa偶anymi w tej pracy mata-heurystykami.

2.4 Meta-heurystyka

Dla wielu problem贸w NP-zupe艂nych nauka nie znalaz艂a jeszcze algorytmu pozwalaj膮cego na znalezienie optymalnego rozwi膮zania w czasie umo偶liwiaj膮cym zastosowanie algorytmu w 偶yciu codziennym. Dla wielu problem贸w zaproponowano zdroworozs膮dkowe algorytmy dostarczaj膮ce w kr贸tkim czasie mo偶liwe do przyj臋cia rozwi膮zanie, kt贸re nie zawsze jest rozwi膮zaniem optymalnym. Algorytmy takie wykorzystuj膮 wiedz臋 o specyfice problemu i na tej podstawie znajduj膮 rozwi膮zanie, kt贸re mo偶e by膰 wykorzystane do danego zastosowania.

W obecnym czasie, g艂贸wna uwaga naukowc贸w zajmuj膮cych si臋 Badaniami Operacyjnym skoncentrowana jest na innej, nowej klasie algorytm贸w znanej meta-heurystyk膮. Meta-heurystyka to raczej swoistego rodzaju szkielet algorytmu, kt贸ry mo偶e by膰 modyfikowany i u偶ywany do konkretnych zastosowa艅. Przyk艂adem meta-heurystyk s膮 algorytmy:

Meta-heurystyki bardzo cz臋sto inspirowane s膮 obserwacj膮 przyrody. Wymienione wcze艣niej algorytmy zainspirowane by艂y kolejno: analiz膮 fizycznego procesu wy偶arzania, Darwinowsk膮 teori膮 ewolucji i sprytnym zarz膮dzaniem pami臋ci. Algorytm „system mr贸wek”, kt贸remu po艣wi臋cona jest ta praca tak偶e nale偶y do klasy algorytm贸w meta-heurystycznych.

2.5 Z艂o偶ono艣膰 obliczeniowa algorytm贸w

Klasyfikuj膮c r贸偶ne problemy, mo偶emy na podstawie teorii matematycznych podzieli膰 je na rozwi膮zywalne i nierozwi膮zywalne. Jednak to, co jest teoretycznie rozwi膮zywalnym zadaniem, w praktyce mo偶e okaza膰 si臋 nie do rozwi膮zania w realnym czasie (mo偶e to zaj膮膰 miliony lat nawet najszybszym superkomputerom). Dlatego z praktycznego punktu widzenia zadania zosta艂y podzielone na klasy:

Trudno艣膰 rozwi膮zywania problem贸w NP-zupe艂nych polega na tym, 偶e liczba oblicze艅, jakie trzeba wykona膰, by znale藕膰 rozwi膮zanie, gwa艂townie ro艣nie wraz z rozmiarem problemu. I tak, je艣li pewien ma艂y problem tej klasy daje si臋 rozwi膮za膰 w ci膮gu kilku minut, to ju偶 ten sam problem dwukrotnie wi臋kszy mo偶na rozwi膮zywa膰 kilkaset lat.

Om贸wiona w ten spos贸b z艂o偶ono艣膰 obliczeniowa nazywana jest czasow膮 z艂o偶ono艣ci膮 algorytm贸w (ang. Time Complexitity of an Algorithm). Jej definicje mo偶na przedstawi膰 jako funkcj臋 z艂o偶ono艣ci czasowej, przyporz膮dkowuj膮c膮 ka偶dej warto艣ci rozmiaru instancji I maksymaln膮 liczb膮 elementarnych krok贸w (lub jednostek czasu) maszyny cyfrowej potrzebnych do rozwi膮zania za pomoc膮 algorytmu A instancji o tym rozmiarze, to znaczy funkcj臋:

fA(n) = max { t : (t jest liczb膮 elementarnych krok贸w maszyny cyfrowej niezb臋dn膮 dla rozwi膮zania instancji I nale偶膮cej do Dn)^(n = N(I))},

gdzie Dn jest zbiorem instancji problemu decyzyjnego a n jest rozmiarem ka偶dej instancji.

Zwykle funkcje czasowej z艂o偶ono艣ci obliczeniowej algorytmu fA(n) ocenia si臋 z dok艂adno艣ci膮 do rz臋du.

Drugim rodzajem z艂o偶ono艣ci obliczeniowej jest tzw. pami臋ciowa z艂o偶ono艣膰 obliczeniowa algorytmu (ang. Space Complexitity of an Algorithm) rozumiana jako jest to rozmiar pami臋ci urz膮dzenia licz膮cego niezb臋dny do wykonania algorytmu, wyra偶ony w funkcji rozmiaru problemu. Tego typu z艂o偶ono艣膰 nie jest jednak przedmiotem rozwa偶a艅 w tej pracy i nie b臋dzie rozpatrywana w dalszej jej cz臋艣ci.

3. Opis rozwa偶anego problemu

Jak zosta艂o wspomniane we wst臋pie, w tej pracy zostanie przeprowadzone rozwa偶anie na temat mo偶liwo艣ci zastosowania algorytmu zwanego „System mr贸wek” dla znalezienia rozwi膮zania problemu zwanego „Problemem komiwoja偶era”. W tym rozdziale przedstawiony zostanie opis tego zagadnienia.

3.1 Problem komiwoja偶era

Komiwoja偶er, czyli obwo藕ny sprzedawca towar贸w ustawicznie boryka si臋 z problemem, jak w najkr贸tszym czasie i w najta艅szy spos贸b odwiedzi膰 wszystkich znajduj膮cych si臋 w r贸偶nych miastach klient贸w i znale藕膰 si臋 w ko艅cu w punkcie wyj艣cia. Oczywistym jest fakt, 偶e dwukrotna wizyta u jednego klienta w ci膮gu danego cyklu jest zbyteczna, a przede wszystkim nieekonomiczna i dlatego nale偶y ja wykluczy膰.

Problem komiwoja偶era mo偶na przedstawi膰 za pomoc膮 grafu. Graf przedstawiaj膮cy problem zawiera zbi贸r V (N=|V|) wierzcho艂k贸w, reprezentuj膮cych odwiedzane przez sprzedawc臋 miasta, oraz zbi贸r 艂uk贸w E 艂膮cz膮ce wszystkie wierzcho艂ki N, reprezentuj膮ce drogi mi臋dzy miastami. Je偶eli przez dij oznaczymy miar臋 oznaczaj膮c膮 d艂ugo艣膰 艂uku (i,j) nale偶膮cego do zbioru E, b臋dzie on reprezentowa艂 odleg艂o艣膰 miedzy miastami i oraz j. Rozwi膮zanie Problemu Komiwoja偶era polega na znalezieniu minimalnej warto艣ci cyklu Hamiltona dla grafu G = (V, E). Cykl ten jest zamkni臋ty, znajduje si臋 w nim ka偶dy wierzcho艂ek oraz ka偶dy wierzcho艂ek znajduj臋 si臋 w nim tylko jeden raz.

Wyr贸偶niamy jeszcze „Asymetryczny Problem Komiwoja偶era”, charakteryzuj膮cy si臋 tym, 偶e dij dji. Graf reprezentuj膮cy ten problem jest grafem skierowanym.

W opracowaniach naukowych „Problem komiwoja偶era” oznaczany jest symbole TSP. Skr贸t ten wzi臋ty jest z angielskiej nazwy problemu, tzn. Traveling Salesman Problem. „Asymetryczny Problem Komiwoja偶era” reprezentowany jest symbelem ATSP (Asymmetric Traveling Salesman Problem).

Podsumowuj膮c opis „Problemu Komiwoja偶era”, jego definicj臋 mo偶na przedstawi膰 nast臋puj膮co:

TSP

Niech:

V = {a, ..., z } zbi贸r wierzcho艂k贸w grafu odpowiadaj膮cych miastom, kt贸re ma odwiedzi膰 podr贸偶uj膮cy sprzedawca

E = { (r, s): r, s V } zbi贸r kraw臋dzi grafu, odpowiadaj膮cych drogom pomi臋dzy miastami

d(r, s) = d(s, r) , (r, s) A miara odpowiadaj膮ca odleg艂o艣ci膮 pomi臋dzy poszczeg贸lnymi miastami

Rozwi膮zanie problemu TSP polega na znalezieniu minimalnego pe艂nego cyklu zamkni臋tego, w kt贸rym ka偶de miasto odwiedzane jest tylko raz.

Je偶eli ka偶de miasto r V podane jest poprzez jego wsp贸艂rz臋dne {xr, yr} oraz miara d(s, r) jest miar膮 Euklidesow膮 pomi臋dzy miastami r i s, m贸wimy wtedy, 偶e rozpatrujemy „Euklidesowy Problem Komiwoja偶era”.

ATSP

Je偶eli spotykamy si臋 z problemem r贸偶ni膮cym si臋 od opisywane powy偶ej tylko tym, 偶e d(r, s) d(s, r) wtedy problem oznaczany symbolem TSP staje si臋 Asymetrycznym Problemem Komiwoja偶era (ATSP).

Definicja 1

Z punktu widzenia procesu optymalizacji dyskretnej zagadnienie ATSP jest znacznie trudniejszym problemem ni偶 symetryczne zagadnienie TSP.

3.2 Zastosowanie praktyczne

W tym paragrafie podane zostan膮 przyk艂ady zastosowania problemu komiwoja偶era w 偶yciu codziennym. Przyk艂ady te zaczerpni臋te s膮 z ksi膮偶ki profesora Bogus艂awa Filipowicza „Badania Operacyjne”. Trzeba jednak zauwa偶y膰, i偶 nie s膮 to jednak jedyne przyk艂ady zastosowa艅 tego problemu.

3.2.1 Optymalizacja drogi w transporcie

Spotykanym w 偶yciu codziennym problem optymalizacji drogi formalizowanym w postaci problemu komiwoja偶era jest dob贸r trasy dla ci臋偶ar贸wki zaopatruj膮cej sklepy danego regionu w produkty pobrane w magazynie. Najbardziej reprezentacyjnym przypadkiem jest tu dzia艂alno艣膰 firm kurierskich. Zasada dzia艂ania tych firm opiera si臋 na bardzo sprawnie dzia艂aj膮cej sieci kurier贸w obs艂uguj膮cych przydzielone im regiony. Optymalizacja drogi w rezultacie mo偶e da膰 nie tylko zmniejszenie koszt贸w w艂asnych lecz r贸wnie偶 zredukowa膰 liczb臋 kurier贸w potrzebnych do realizacji zam贸wie艅 firmy. Zauwa偶amy, 偶e optymalizowa膰 mo偶na bezpo艣rednio koszty transportu przeliczane np. na odleg艂o艣膰 wed艂ug liniowej funkcji lub te偶 minimalizowa膰 czas trwania przejazd贸w i t膮 drog膮 osi膮gn膮膰 zwi臋kszenie efektywno艣ci przedsi臋biorstwa.

Kurier i dostawca musz膮 po sko艅czeniu dzia艂ania wr贸ci膰 do bazy, aby podj膮膰 si臋 kolejnych prac i nie jest w ich interesie pojawienie si臋 w tym samym punkcie dwa razy podczas jednego cyklu. Punkty do odwiedzenia to w interpretacji grafowej wierzcho艂ki grafu, odcinki (etapy trasy) 艂膮cz膮ce poszczeg贸lne punkty to kraw臋dzie grafu. Ka偶dej kraw臋dzi przyporz膮dkowuje koszt przemieszczenia si臋 mi臋dzy punktami b臋d膮cymi wierzcho艂kami grafu. Poniewa偶 d膮偶ymy do minimalizacji koszt贸w, kraw臋dziom reprezentuj膮cym niemo偶liwe do realizacji lub nie istniej膮ce w rzeczywisto艣ci po艂膮czenia, przyporz膮dkowuje si臋 koszt niesko艅czenie wielki.

Problem ten staje si臋 coraz bardziej aktualny w dobie rozwoju e-commers. Planowane jest powstanie wielu firm, kt贸rych dzia艂alno艣膰 polega艂a b臋dzie na dostarczaniu do klienta towar贸w zamawianych przez Internet. Problem opisywany w tym paragrafie b臋dzie dla nich jak偶e aktualny.

3.2.2 Optymalizacja drogi w elektronice i mechanice

Bardzo wa偶nym zastosowaniem metod optymalizacji drogi jest wykonanie otwor贸w monta偶owych i lutowanie podzespo艂贸w elektronicznych. Elementy wykonawcze tzn. wiert艂a i lutownice przemieszczaj膮ce si臋 za pomoc膮 specjalnego uk艂adu nap臋dowego. Poniewa偶 s膮 to uk艂ady mechaniczne ich pr臋dko艣膰 dzia艂ania jest ograniczona zar贸wno przez koszty wykonania automatu jak i wytrzyma艂o艣膰 element贸w, z kt贸rych s膮 wykonane. Istotnym czynnikiem w produkcji wieloseryjnej jest czas obr贸bki jednego detalu.

Spos贸b post臋powania przy opisie tego problemu jako zagadnienia komiwoja偶era jest analogiczny jak dla przypadku dostawcy, tzn.:

W masowej produkcji zysk z optymalizacji ma swoje 藕r贸d艂o w sko艅czonym czasie wykonania detalu, ograniczeniu energoch艂onno艣ci oraz zmniejszeniu zu偶ycia mechanicznego automatu.

3.2.3 Optymalizacja drogi w systemach produkcyjnych

W elastycznych systemach produkcyjnych, jednym z element贸w sk艂adowych jest system transportu detali pomi臋dzy stanowiskami roboczymi. Jak wiadomo, spotyka si臋 na og贸艂 trzy rodzaje sieci transportowych: sie膰 drabinkowa, mieszana oraz zamkni臋ta w postaci p臋tli. Funkcjonowanie tej ostatniej mo偶e by膰 zoptymalizowane za pomoc膮 zagadnienia komiwoja偶era.

3.2.4 Optymalizacja drogi w systemach telekomunikacyjnych

Ostatni z przyk艂ad贸w zastosowania problemu komiwoja偶era dotyczy system贸w telekomunikacyjnych. W sieci komputerowej typu „token ring” wymagane jest spe艂nienie warunku zamkni臋cia p臋tli 艂膮cz膮cego wszystkie komputery. Koszty po艂o偶enia jednego metra kabla i jego konserwacja mog膮 by膰 zale偶ne liniowo i odczytywane bezpo艣rednio z macierzy odleg艂o艣ci. W przypadku zr贸偶nicowania koszt贸w jednego metra instalacji macierz koszt贸w uzyskuje si臋 na podstawie odpowiedniej wyceny odcink贸w mi臋dzy stacjami roboczymi i serwerami. Cena po艂膮czenia w obie strony, podobnie jak odleg艂o艣膰 jest zazwyczaj taka sama.

Rozwi膮zuj膮c problem komiwoja偶era obok zysku finansowego mo偶na poprawi膰 r贸wnie偶 mo偶liwo艣ci techniczne sieci. Wynika to z faktu, 偶e pr臋dko艣膰 propagacji sygna艂u w przewodach jest sko艅czona, co nak艂ada ograniczenia na pr臋dko艣膰 pracy takiej sieci oraz jej zasi臋g. Wyznaczenie najkr贸tszego po艂膮czenia pozwala na popraw臋 obu tych parametr贸w.

3.3 Metody rozwi膮zywania problemu komiwoja偶era

Poniewa偶 problem komiwoja偶era nale偶y do problem贸w NP.-zupe艂nych, nie jest 艂atwo znale藕膰 algorytm rozwi膮zuj膮cy przy du偶ych rozmiarach problemu. Jednak ze wzgl臋du na pojawianie si臋 z 偶yciu codziennym zada艅 艂atwo sprowadzalnych do tego problemu, naukowcy zostali zmuszeni do pr贸b opracowania metody rozwi膮zania problemu. Przyk艂adem takich pr贸b s膮 metody:

Tak偶e autorzy meta-heurystyk przeprowadzali dyskusje nad mo偶liwo艣ci膮 zastosowania ich pomys艂u do rozwi膮zywania tego problemu. W dalszej cz臋艣ci tej pracy przedstawiona zostanie meta-heurystyka Dorigo „System mr贸wek” oraz moja pr贸ba realizacji tej meta-heurystyki w艂a艣nie do realizacji problemu komiwoja偶era.

4. Algorytm „System mr贸wek”

Za tw贸rc臋 algorytmu zwanego „System Mr贸wek” uwa偶any jest M. Dorigo. Zaproponowa艂 on nowe wielo-czynnikowe podej艣cie do trudnych problem贸w optymalizacji kombinatorycznej. Algorytm ten wzorowany jest, jak wi臋kszo艣膰 metaheurystyk, na podstawie obserwacji przyrody. Dorigo przez d艂ugi okres czasu przygl膮da艂 si臋 strukturze mrowiska.

Mr贸wki s膮 owadami 偶yj膮cymi w koloniach, w kt贸rych ka偶dy osobnik ma dok艂adnie wyznaczone miejsce i pozycje. Ich zachowanie skierowane jest bardziej w kierunku prze偶ycia ca艂ej kolonii ni偶 jako indywidualnej jednostki. Insekty przyci膮gn臋艂y uwag臋 wielu naukowc贸w ze wzgl臋du na osi膮gni臋cie wysokiego poziomu strukturalnego koloni, zw艂aszcza w por贸wnaniu ze wzgl臋dn膮 prostot膮 jednostek indywidualnych.

Szczeg贸ln膮 uwag臋 Dorigo zwr贸ci艂y prac臋 biolog贸w opisuj膮cych osobniki zajmuj膮ce si臋 transportem po偶ywienia do mrowiska. Mo偶na znale藕膰 w nich stwierdzenie, 偶e droga kt贸r膮 si臋 udaj膮 do mrowiska jest najkr贸tsz膮 jak膮 mo偶na dosta膰 si臋 z miejsca gdzie znajduje si臋 po偶ywienia do mrowiska. Realizowane jest to dzi臋ki temu, 偶e w czasie przemierzanie drogi mi臋dzy 藕r贸d艂em po偶ywienia a gniazdem, mr贸wki sk艂adaj膮 na ziemi substancje zwana feromonem. Insekty te maj膮 zdolno艣膰 wyczuwania feromonu i w chwili wybierania drogi wybieraj膮 te, kt贸ra oznaczona jest silnym st臋偶eniem feromonu.

艢lad feromonu pozwala mr贸wkom na odnalezienie drogi z gniazda do 藕r贸d艂a po偶ywienia i odwrotnie. Ponadto ten 艣lad mo偶e by膰 u偶ywany przez inne mr贸wki do odnalezienia miejsca przechowywania 偶ywno艣ci odnalezionej przez inne mr贸wki. W materia艂ach biolog贸w opisany jest eksperyment wykazuj膮cy, 偶e to zachowanie zwi膮zane ze 艣ladem feromonu jest przyczyn膮 pojawienia si臋 najkr贸tszych 艣cie偶ek. To znaczy gdy wi臋cej 艣cie偶ek jest dost臋pnych z gniazda do 藕r贸d艂a jedzenia , kolonia mr贸wek jest w stanie eksploatowa膰 艣lady feromonu pozostawione przez inne mr贸wki w celu odkrywania najkr贸tszej drogi prowadz膮cej od gniazda do 藕r贸d艂a jedzenia i z powrotem.

Ilustracj膮 obserwacji biolog贸w s膮 umieszczone poni偶ej rysunki.

0x08 graphic
Rys. 3

0x08 graphic
Rysunek 3 przedstawia przemieszczaj膮c膮 si臋 koloni臋 mr贸wek miedzy mrowiskiem a miejscem gdzie znalezione zosta艂o po偶ywienie. Linia znajduj膮ca si臋 na rysunku ma obrazowa膰 pozostawiany przez owady feromon. Widzimy, 偶e przemieszczaj膮ce si臋 mr贸wki, poruszaj膮 si臋 wzd艂u偶 linii, utworzonej z substancji chemicznej.

Rys. 4

Na rysunku 4 uwidocznione jest umieszczenie na linii feromonu przeszkody. Przeszkoda to uniemo偶liwia owadom dalsze poruszanie si臋 po najkr贸tszej drodze miedzy dwoma punktami. W tym momencie rozpoczyna si臋 poszukiwanie najkr贸tszej drogi do obej艣cia przeszkody.

0x08 graphic
Rys. 5

0x08 graphic
Na rysunku 5 widzimy pocz膮tkowy losowy wyb贸r drogi przej艣cia 艂a艅cucha mr贸wek. Pozostawiaj膮 one z dw贸ch stron fenemon, kt贸ry b臋dzie wykorzystany przez nast臋pne osobniki do wyznaczenia kr贸tszej drogi.

Rys. 6

Stan ko艅cowy przedstawiony jest na rysunku 6, gdzie droga pokazana na rysunku, jako droga nad przeszkod膮, okaza艂a si臋 kr贸tsza, feromon pozostawiony na tej 艣cie偶ce wolniej „parowa艂”. 艢lad pozostawianej substancji chemicznej okazywa艂 si臋 silniejszy w艂a艣nie na tej drodze, poniewa偶 jest ona kr贸tsza. Powodowa艂o to, 偶e mr贸wki poruszaj膮ce si臋 p贸藕niej ch臋tniej wybiera艂y w艂a艣nie t臋 艣cie偶k臋. 艢lad feromonu stawa艂 si臋 coraz mocniejszy, a偶 wszystkie mr贸wki porusza艂y si臋 t臋dy.

Nale偶y te偶 zauwa偶y膰, 偶e 艣cie偶ka zostaje wybrana, nawet gdy alternatywna droga jest tej samej d艂ugo艣ci. Te prawid艂owo艣膰 zaobserwowano podczas nast臋pnego do艣wiadczenia.

0x08 graphic
Rys. 7

Jak wida膰 na rysunku 7, kolonia mr贸wek i 藕r贸d艂o jedzenia zosta艂y odgrodzone czym艣 co mo偶na okre艣li膰 jako binarny most. Ka偶da z ga艂臋zi tego mostu by艂a tej samej d艂ugo艣ci. Mr贸wki pozostawiono tak, aby mog艂y swobodnie porusza膰 si臋 mi臋dzy 藕r贸d艂em po偶ywienia a gniazdem i obserwowano ilo艣膰 mr贸wek wybieraj膮cych jedn膮 z dw贸ch ga艂臋zi.

Wykres 1

0x08 graphic
Wyniki do艣wiadczenia widoczne s膮 na wykresie 1. Wida膰 tam, 偶e po okresie przej艣ciowym, w kt贸rym mia艂y miejsce pewne wahania, mr贸wki zacz臋艂y gromadzi膰 si臋 na tej samej (g贸rnej) 艣cie偶ce.

Powodem takiego zachowania mr贸wek jest to, 偶e pocz膮tkowo nie ma feromonu na 偶adnej z ga艂臋zi, kt贸re wybierane s膮 z tym samym prawdopodobie艅stwem. Wahania w okresie przej艣ciowym powoduj膮, 偶e kilka mr贸wek wybiera g贸rn膮 ga艂膮藕. Powoduje to zwi臋kszenie ilo艣ci feromonu na tej ga艂臋zi co z kolei stymuluje inne mr贸wki do jej wybrania itd. Nale偶y jednak zauwa偶y膰, 偶e przy powt贸rzeniu eksperymentu od pocz膮tku, tak samo prawdopodobnym jest wybranie przez mr贸wki drugiej ga艂臋zi.

Wydaje si臋 by膰 interesuj膮cym fakt 偶e pomimo, i偶 ka偶da z mr贸wek ma zdolno艣膰 rozwi膮zywania problem贸w, tj. odnajdywanie 艣cie偶ki pomi臋dzy pojemnikiem jedzenia a gniazdem to dopiero kolonia mr贸wek charakteryzuje si臋 zdolno艣ci膮 „odnalezienia najkr贸tszej drogi”. R贸wnie偶 warto zaznaczy膰, 偶e mr贸wki zachowuj膮 si臋 tak specyficznie, u偶ywaj膮c prostej formy po艣redniej komunikacji za po艣rednictwem sk艂adowania feromonu, zwanej stigmergy. Nazwa ta zaczerpni臋ta zosta艂a z pracy pana Grass'e „La reconstruction ...”, kt贸ra traktuje o innej spo艂eczno艣ci owad贸w, tzn. termit贸w. W swojej pracy, Grass'e zdefiniowa艂 stigmery jako „stymulowanie robotnik贸w poprzez przedstawianie tego co osi膮gn臋li”. W rzeczywisto艣ci Grass'e zaobserwowa艂, 偶e termity s膮 w stanie zareagowa膰 na tzw. „wa偶ne bod藕ce”, kt贸re uaktywniaj膮 genetycznie zakodowan膮 reakcje. W przypadku insekt贸w stadnych, kt贸rych zar贸wno mr贸wki jak i termity s膮 najlepszym przyk艂adem, skutki takich reakcji mog膮 by膰 kolejnym wa偶nym bod藕cem dla insekt贸w, kt贸re je wyprodukowa艂y jak i dla ca艂ej koloni. Takie wytworzenie nowego bod藕ca mo偶e by膰 okre艣lone jako forma koordynacji dzia艂a艅 i interpretowane jako forma komunikacji po艣redniej. Na tej podstawie Grass'e zdefiniowa艂 stigmery jako 艣rodki komunikacji, kt贸re r贸偶ni膮 si臋 od innych dwoma aspektami:

  1. Fizyczny charakter informacji sk艂adanej przez komunikuj膮ce si臋 insekty

  2. Miejscowy charakter sk艂adanej informacji, kt贸ra mo偶e by膰 udost臋pniona insektom, kt贸re odwiedzaj膮 miejsce, z kt贸rego informacja wysz艂a (lub s膮siedztwo tego miejsca).

Tak przedstawiona definicja dok艂adnie pasuje do sposobu komunikacji mr贸wek poprzez feromon sk艂adany przez nie na ziemi podczas przemieszczania si臋.

Opisane powy偶ej zachowanie zosta艂o zaobserwowane eksperymentalnie, jednak偶e eksperymenty te zosta艂y przeprowadzone w bardzo ograniczonych warunkach. Wysuni臋ta na podstawie wynik贸w teoria jest bardzo sp贸jna, brakuje jednak formalnego dowodu na to, i偶 odnajdywanie najkr贸tszej drogi uzyskiwane jest przez feromon. Pojawi艂y si臋 publikacje inaczej interpretuj膮ce wyniki opisywanych wcze艣niej do艣wiadcze艅 i przypisuj膮ce odnajdywanie najkr贸tszej drogi przez mr贸wki wskaz贸wkami wizualnymi.

Dorigo przychyli艂 si臋 jednak do opinii wi臋kszo艣ci i na podstawie obserwacji biolog贸w oraz swoich przemy艣le艅, zaproponowa艂 spos贸b znajdowania rozwi膮zania problem贸w NP-zupe艂nych wykorzystuj膮cy system agent贸w, zwanych w艂a艣nie mr贸wkami. Idea algorytmu polega na wykorzystaniu kolonii mr贸wek, z kt贸rych ka偶da pozostawia 艣lad na danej kraw臋dzi grafu w postaci substancji chemicznej. Jej ilo艣膰, podobnie jak w biologicznej koloni tych owad贸w, zale偶y od warto艣ci rozwi膮zania znalezionego przez mr贸wk臋. Istotne jest to, 偶e 贸w 艣lad na danej kraw臋dzi sumuje si臋 od ka偶dej mr贸wki i ulega parowaniu w czasie dyskretnym. Wida膰 wi臋c, 偶e algorytm ten jest wzorowany na opisywanych wcze艣niej obserwacjach.

4.1 Opis matematyczny algorytmu

W chwili t=0 wszystkie mr贸wki znajduj膮 si臋 w bazie, a wszystkie kraw臋dzie (i,j) maj膮 przypisane niewielkie, pocz膮tkowe warto艣ci (dobrane eksperymentalnie) 艣ladu feromonu ij(0) r贸wne c.

W chwili t ka偶da mr贸wka wybiera losowo w臋ze艂 grafu, do kt贸rego udaje si臋 w chwili nast臋pnej t+1. W trakcie pojedynczej iteracji algorytmu wyznaczone s膮 przemieszczenia wszystkich m mr贸wek w czasie przedzia艂u czasu (t, t+1). Jeden cykl pracy algorytmu sk艂ada si臋 z n takich iteracji. Na ko艅cu cyklu ka偶da mr贸wka znajduje rozwi膮zanie problemu. W贸wczas wielko艣膰 艣ladu na kraw臋dziach jest modyfikowana zgodnie z formu艂膮:

蟿( t+1 ) = 蟻 鈭 蟿ij( t ) + 螖蟿( t ), (1)

gdzie , 0<<1, jest wsp贸艂czynnikiem takim, 偶e (1-) okre艣la stopie艅 „zanikania” 艣ladu w przedziale czasu (t, t+1), za艣:

0x01 graphic
(2)

jest wzorem okre艣laj膮cym przyrosty 艣ladu, a ijr (t) jest wielko艣ci膮 k艂adzionego na kraw臋dzi (i, j) przez mr贸wk臋 r w przedziale czasu (t, t+1).

Warto艣膰 ta jest obliczana zgodnie z formu艂膮:

0x01 graphic
(3)

Warto艣膰 g贸rna uzyskiwana jest w przypadku, gdy mr贸wka r porusza艂a si臋 po kraw臋dzi (i, j) w przedziale czasu (t, t+1) gdzie Q jest sta艂膮, a L(r) jest kosztem rozwi膮zania znalezionego przez mr贸wk臋 r. W przeciwnym przypadku uzyskiwana jest warto艣膰 dolna.

Mo偶na wi臋c zauwa偶y膰, 偶e mr贸wki, kt贸re znalaz艂y rozwi膮zanie o wy偶szym koszcie, uk艂adaj膮 mniejsz膮 „ilo艣膰” 艣ladu na kraw臋dziach, po kt贸rych przechodz膮. W rezultacie kraw臋dzie te s膮 nie faworyzowane przy kolejnych etapach obliczeniowych.

Podczas poszukiwania rozwi膮zania, mog膮 pojawi膰 si臋 dodatkowe ograniczenia, np. mr贸wka r nie mo偶e odwiedzi膰 偶adnego wierzcho艂ku grafu wi臋cej ni偶 jeden raz. Aby spe艂ni膰 taki wymogi, wprowadza si臋 listy tabu(r) oraz listy allowed(r). Pierwsza lista zawiera w臋z艂y odwiedzone przez mr贸wk臋 r w chwili czasu t, druga zawiera pozosta艂e dost臋pne w臋z艂y. Przy wyborze w臋z艂a, do kt贸rego ma przej艣膰 w chwili t+1, brane s膮 pod uwag臋 w臋z艂y znajduj膮ce si臋 jedynie na li艣cie allowed(r) danej mr贸wki. Na ko艅cu ka偶dego cyklu listy tabu(r) s膮 wykorzystywane do pobrania rozwi膮za艅 znalezionych przez mr贸wki. List te s膮 zerowane przed rozpocz臋ciem ka偶dego cyklu.

Prawdopodobie艅stwo przej艣cia mr贸wki r znajduj膮cej si臋 w w臋藕le i do w臋z艂a j w chwili czasu t+1 jest podane wzorem:

0x01 graphic
(4)

gdzie:

(i,j) - ilo艣膰 feromonu na drodze od miasta i do miasta j

(i,j) - definiowana dowolnie funkcja, w kt贸rej argumentem jest odleg艂o艣膰 pomi臋dzy miastami i oraz j. W opisywanym w p贸藕niejszych rozdzia艂ach zaprojektowanym systemie komputerowym zastosowano funkcj臋 f(x) = 1/x, czyli proporcjonalno艣膰 odwrotn膮.

Jk(r) - lista dozwolonych przej艣膰 dla mr贸wki r w chwili czasu t+1.

Wz贸r ten jest jednak modyfikowany w zale偶no艣ci od rozwi膮zywanego problemu. Pojawiaj膮ce si臋 w nim parametry i pozwalaj膮 kontrolowa膰 relatywny wp艂yw wielko艣ci 艣ladu i innych warto艣ci przy wyborze docelowego w臋z艂a przemieszczenia.

Pseudo-kod rozpatrywanego algorytmu jest nast臋puj膮cy:

: ustaw pozycje startowe algorytmu

: ustaw pocz膮tkow膮 warto艣膰 艣ladu dla wszystkich kraw臋dzi

(i,j) := C dla (i, j) E

for iteracje := 1 do IT

for r := 1 do m

for krok := 1 do n

if ograniczenia nie przekroczone

: okre艣l prawdopodobie艅stwo P(i,j)

wylosowania kraw臋dzi (i,j)

: losuj nast臋pn膮 kraw臋d藕 dla mr贸wki r wg

rozk艂adu P

: modyfikuj list臋 tabu(r) dla kraw臋dzi

end

end

end

: policz warto艣膰 funkcji celu dla rozwi膮zania okre艣lonego przez drog臋 ka偶dej

mr贸wki w oparciu o list臋 tabu( r )

: okre艣l najlepsze rozwi膮zanie w populacji

: policz przyrost 艣ladu dla kij( t ) dla ka偶dej kraw臋dzi ( i, j ) od

ka偶dej mr贸wki k

: oblicz parowanie 艣ladu i dodaj aktualne przyrosty

: wyczy艣膰 listy tabu (r)

: ustaw mr贸wki na pozycjach startowych

: zapisz najlepsze rozwi膮zanie i zapis symboliczny jego grafu w tablicy

best_graf

end

Definicja 2

Algorytm mo偶e zawiera膰 tak偶e pewne zmienne odpowiedzialne za wizualizacje otrzymanych wynik贸w. Nie jest to jednak cz臋艣膰 meta-heurystyki tylko ju偶 konkretnej realizacji algorytmu.

4.2 Z艂o偶ono艣膰 obliczeniowa algorytmu „System mr贸wek”

Oszacowanie z艂o偶ono艣ci obliczeniowej algorytmu, jest problemem stosunkowo 艂atwym. Za艂贸偶my, 偶e ilo艣膰 iteracji oznaczona w definicji 2 przez IT jest r贸wna l. Z艂o偶ono艣膰 obliczeniowa jednej iteracji zdeterminowana jest p臋tlami FOR. Pojedyncza mr贸wka porusza si臋 w czasie O聽(n2聽m), wi臋c z艂o偶ono艣膰 ca艂ego algorytmu jest r贸wna T(n)聽=聽l*n2* m.

gdzie

4.3 Por贸wnanie dw贸ch rodzaj贸w mr贸wek

W meta-heurystycznej optymalizacji kolonii mr贸wek, kolonia sztucznych mr贸wek wsp贸艂pracuje w celu osi膮gni臋cia rozwi膮zania problemu trudnej optymalizacji dyskretnej. Wsp贸艂praca ta jest kluczowym czynnikiem algorytmu. W艂a艣ciwe rozwi膮zanie problemu mo偶e by膰 wy艂onione tylko na drodze poprawnej interakcji i wsp贸艂pracy mi臋dzy agentami.

Sztuczne mr贸wki maj膮 podw贸jny charakter. Z jednej strony wzorowane s膮 na zachowaniu kolonii prawdziwych mr贸wek w odnalezieniu najlepszego rozwi膮zania. Z drugiej za艣 wzbogacone zosta艂y pewnymi umiej臋tno艣ciami, kt贸rych nie zaobserwujemy w ich naturalnych odpowiednik贸w. Podej艣cie takie wydaje si臋 rozs膮dne poniewa偶 sprawia, 偶e s膮 bardziej skuteczne i sprawne w rozwi膮zywaniu problem贸w.

Postaram si臋 teraz pokaza膰 podobie艅stwa i r贸偶nice pomi臋dzy sztucznymi a prawdziwymi mr贸wkami. Do podobie艅stw nale偶y zaliczy膰:

Opr贸cz wymienionych powy偶ej podobie艅stw istniej膮 tak偶e czynniki r贸偶ni膮ce prawdziwe mr贸wki od sztucznych. Zaliczamy do nich:

4.4 Optymalizacja badanego algorytmu

Po okresie wst臋pnego zafascynowania mo偶liwo艣ciami algorytmu mr贸wkowego stwierdzono, 偶e algorytm „System Mr贸wek” mo偶e by膰 raczej stosowany tylko jako wst臋pne poszukiwanie rozwi膮zania. badanego problemu. Gdy potrzebna jest du偶a efektywno艣膰 przy rozwi膮zywaniu problem贸w kombinatorycznej optymalizacji NP-聽zupe艂nej algorytm ten jest raczej marny w por贸wnaniu z innymi podej艣ciami. Zaproponowane zasta艂y pewne rozszerzenia i ulepszenia, maj膮ce na celu poprawy efektywno艣ci dzia艂ania algorytmu. W tym punkcie zostan膮 przedstawione przyk艂adowe rozszerzenia.

4.4.1 System Koloni Mr贸wek (ang. Ant Colony System - ACS)

Modyfikacja ta, zasta艂a zaproponowana przez samych tw贸rc贸w algorytmu. Sami autorzy stwierdzili, 偶e „System Koloni Mr贸wek” jest w pewnym sensie algorytmem prostszym i z biegiem czasu sta艂 si臋 przez nich preferowanym. R贸偶ni si臋 on od algorytmu opisywanego wcze艣niej trzema g艂贸wnymi aspektami:

Poni偶ej przedstawiamy bardziej szczeg贸艂owo te modyfikacje.

Konstrukcja trasy:

W opisywanej modyfikacji, mr贸wki wybieraj膮 kolejne wierzcho艂ki grafu wykorzystuj膮c zasad臋 pseudo-przypadkowo-proporcjonalnego wyboru (ang. pseudo-random-proportional action choice rule). Polega ona na tym, 偶e gdy mr贸wka k znajduje si臋 w wierzcho艂ku i musi losowo wybra膰 jedna z dw贸ch mo偶liwo艣ci:

il(t) * [畏il] (5)

jest maksymalne, tzn. z prawdopodobie艅stwem q0 zostaje wykonany najlepszy ruch wskazany przez tory feromonu i heurystyczn膮 informacj臋 (wykorzystanie wyuczonej wiedzy)

Lokalna aktualizacja feromonu

W opisywanej modyfikacji mr贸wki korzystaj膮 dodatkowo z zasady lokalnej aktualizacji feromonu, kt贸r膮 stosuj膮 zaraz po przej艣ciu 艂uku w czasie konstrukcji trasy. Opisuje j膮 wz贸r:

ij = (1 - 尉)*蟿ij + 蟿0*尉 (6)

gdzie: 尉, 0 < 尉 < 1 i 蟿0 s膮 dwoma parametrami.

Zasada lokalnej aktualizacji ma za zadanie sprawi膰, aby wybrany 艂uk sta艂 si臋 mniej po偶膮dany dla kolejnej mr贸wki. Tym samym prawdopodobie艅stwo eksploatacji jeszcze nie odwiedzanych 艂uk贸w wzrasta.

4.4.2 Max-Min System Mr贸wek (ang. Max-Min Ant System - MMAS)

Rozwi膮zanie w tej modyfikacji uzyskiwane jest tak samo jak w przypadku bez modyfikacji. Wykorzystywana jest tak偶e pseudo-przypadkowo-proporcjonalna zasada wyboru, opisywana w Systemie Koloni Mr贸wek. G艂贸wne dodatkowe modyfikacje s膮 nast臋puj膮ce:

Aktualizacja szlaku feromonu

Po znalezieniu rozwi膮zania przez wszystkie mr贸wki, szlaki feromonu aktualizowane s膮 wed艂ug wzoru:

ij(t + 1) = (1 - 尉) * 蟿ij(t) + 尉 * 螖蟿ijbest (7)

gdzie: 螖蟿ijbest = 1/Lbest.

Mr贸wka, kt贸ra z艂o偶y feromon, mo偶e znale藕膰 rozwi膮zanie najlepsze w danej iteracji (ang. iteration-best solution Tib) lub globalnie najlepsze (ang. global-best solution Tgb). Zatem, je偶eli konkretne 艂uki s膮 cz臋sto wykorzystywane w najlepszych rozwi膮zaniach, otrzymuj膮 one najwi臋ksz膮 dawk臋 feromonu. Wyniki eksperyment贸w przeprowadzonych przez tw贸rc贸w tej modyfikacji pokaza艂y, 偶e najlepsze wyniki uzyskiwane s膮 poprzez stopniowy wzrost cz臋stotliwo艣ci wyboru Tgb dla aktualizacji szlaku.

Ograniczenia szlaku

W przypadku MIN-MAX narzucone s膮 dolne i g贸rne ograniczenie na mo偶liwe nasycenie feromonu w celu unikni臋cia stagnacji poszukiwa艅. Szczeg贸lnie narzucone ograniczenia odnosz膮 skutek w po艣rednim ograniczeniu prawdopodobie艅stwa pij wyboru wierzcho艂ka j kiedy mr贸wka jest w wierzcho艂ku i do przedzia艂u [pmin, pmax] gdzie 0 < pmin < pij < pmax < 1. Tylko w przypadku, gdy mr贸wka ma jedn膮 mo偶liwo艣膰 wyboru nast臋pnego wierzcho艂ka pmin = pmax. Wyniki eksperymentalne sugeruj膮, 偶e dolne ograniczenia prawdopodobie艅stwa wyboru szlaku wykorzystywane w MIN-MAX s膮 istotniejszymi, poniewa偶 maksymalna moc szlaku na 艂ukach jest na d艂u偶sz膮 met臋 ograniczona z powodu ulatniania si臋 feromonu.

Inicjalizacja szlaku

Szlaki feromonu w MIN-MAX s膮 inicjalizowane od wy偶szych warto艣ci. Dzi臋ki temu poszukiwania najlepszego rozwi膮zania na pocz膮tku dzia艂ania algorytmu wzrasta, poniewa偶 r贸偶nice wzgl臋dne pomi臋dzy mocami szlaku feromonu s膮 mniej wyra藕ne.

4.4.3 System Mr贸wek wykorzystuj膮cy rangi (ang. Rank-Based Version of Ant System - ASrank)

Kolejnym udoskonaleniem algorytmu „System Mr贸wek” jest wersja oparta na rangach (ASrank). W tej modyfikacji korzystamy zawsze z globalnie najlepszego rozwi膮zania w celu aktualizacji 艣lad贸w feromonu. Dodatkowo tylko ograniczona liczba mr贸wek ka偶dej iteracji mo偶e doda膰 feromon. W tym celu mr贸wki s膮 sortowane wed艂ug znalezionych rozwi膮za艅 (L1(t)<L2(t)<...<Lm(t)), a ilo艣膰 mr贸wek, kt贸re mog膮 z艂o偶y膰 feromon jest odmierzana wed艂ug rangi r mr贸wki. Tylko (w - 1) najlepszych mr贸wek ka偶dego powt贸rzenia mo偶e z艂o偶y膰 feromon. Najlepsze globalnie rozwi膮zanie, daj膮ce najsilniejsze sprz臋偶enie zwrotne osi膮ga wag臋 w. Najlepsza mr贸wka r obecnej iteracji przyczynia si臋 do aktualizacji feromonu z wag膮 nadan膮 przez wz贸r:

max {0, r-w} (8)

Zatem zmieniona zasada aktualizacji feromonu wyglada nast臋puj膮co:

0x01 graphic
(9)

gdzie:

0x01 graphic
i 0x01 graphic

Tw贸rcy tej modyfikacji por贸wnywali sw贸j algorytm z algorytmami genetycznymi oraz z algorytmem symulowanego wy偶arzania Okaza艂o si臋, 偶e algorytm oparty na systemie rang dawa艂y dla wi臋kszych problem贸w lepsze wyniki.

4.4.4 Podsumowanie

Wszystkie proponowane opcje algorytm贸w mr贸wkowych maj膮 wiele cech wsp贸lnych. Algorytm w pierwszej formie u偶ywany jest g艂贸wnie jako pierwsze podej艣cie do problemu NP-zupe艂nego i rozwi膮zanie znalezione przez niego jest raczej marne w por贸wnaniu z innymi podej艣ciami. Zaproponowano zatem kilka modyfikacji algorytm贸w dla poprawy jego dzia艂ania.

G艂贸wn膮 cech膮 proponowanych udoskonale艅 jest to, 偶e wykorzystuj膮 one do dalszych poszukiwa艅 najlepsze rozwi膮zania znalezione podczas wcze艣niejszych poszukiwa艅. Osi膮ga si臋 to, poprzez nadanie wi臋ksze wagi lepszym rozwi膮zaniom przy aktualizacji feromonu i cz臋sto dopuszcza si臋 do tworzenia dodatkowego 艣ladu feromonu na 艂ukach globalnie najlepszego rozwi膮zania.

Naturalnie poprzez silniejsze wykorzystywanie najlepszych rozwi膮za艅, 艂uki znajduj膮ce si臋 na najlepszych trasach otrzymuj膮 dodatkowe, silne sprz臋偶enie zwrotne, a zatem s膮 wybierane z wi臋kszym prawdopodobie艅stwem w kolejnych iteracjach algorytmu. Powstaje jednak problem, 偶e wraz z silniejsz膮 eksploatacj膮 najlepszych rozwi膮za艅, doprowadzimy do stagnacji algorytmu, tzn. takiej sytuacji, w kt贸rej wszystkie mr贸wki pod膮偶aj膮 jedn膮 tras膮. Zatem niekt贸re modyfikacje, w szczeg贸lno艣ci ACS i MMAS, wprowadzaj膮 dodatkowe cechy w celu unikni臋cia stagnacji.

Wszystkie opisane modyfikacje algorytmu wykazuj膮 znacznie lepsze dzia艂anie przy rozwi膮zywaniu problem贸w optymalizacji kombinatorycznej i wykazuj膮 silniejsz膮 eksploatacje najlepszych rozwi膮za艅 znalezionych przez mr贸wki. Rozs膮dnym b臋dzie wi臋c stwierdzenie, 偶e koncentracja poszukiwa艅 wok贸艂 najlepszych rozwi膮za艅 znalezionych w czasie poszukiwa艅 jest kluczem do udoskonalenia dzia艂ania algorytmu.

4.5 Zastosowanie algorytm贸w mr贸wkowych dla rozwi膮zania problemu komiwoja偶era

W przypadku problemu komiwoja偶era, ka偶da pojedyncza mr贸wka konstruuje rozwi膮zanie podr贸偶uj膮c mi臋dzy poszczeg贸lnymi miastami. W czasie inicjalizacji umieszczamy wszystkie mr贸wki w mie艣cie b臋d膮cym miastem startowym algorytmu, nast臋pnie modyfikujemy algorytm w ten spos贸b, aby mr贸wki po przej艣ciu wszystkich miast, odwiedzi艂y ka偶de miasto tylko jeden raz a nast臋pnie powr贸ci艂y do punktu startowego algorytmu.

W trakcie implementacji algorytmu nale偶y zwr贸ci膰 uwag臋 na poprawn膮 obs艂ug臋 list tabu(r) oraz allowed(r). S膮 one niezb臋dne dla spe艂nienia warunku pobytu komiwoja偶era w ka偶dym mie艣cie tylko jeden raz.

5. Opis systemu komputerowego

5.1 Dane techniczne

System komputerowy to aplikacja mog膮ca pracowa膰 pod kontrol膮 system贸w Windows 95/98/NT/2000. Minimalne parametry komputera na kt贸rym mo偶e pracowa膰 system to:

5.2 Dane wej艣ciowe

Pierwszym krokiem niezb臋dnym do rozpocz臋cia pracy aplikacji testowej jest wprowadzenie danych wej艣ciowych zawieraj膮cych macierz odleg艂o艣ci pomi臋dzy poszczeg贸lnymi miastami. Mo偶na to zrobi膰 na dwa sposoby:

5.2.1 Wczytywanie danych z pliku

Plik z danymi jest plikiem tekstowym o rozszerzeniu ATS. Sk艂ada si臋 on z dw贸ch cz臋艣ci:

NAME: ftv33

TYPE: ATSP

COMMENT: Asymmetric TSP (Fischetti)

DIMENSION: 34

EDGE_WEIGHT_TYPE: EXPLICIT

EDGE_WEIGHT_FORMAT: FULL_MATRIX

Plik z danymi mo偶na odczyta膰 za pomoc膮 opcji „Open” dost臋pnej w pasku narz臋dzi lub rozwijalnym menu aplikacji. Po aktywacji tej opcji pojawia si臋 standardowy dla wszystkich wersji dedykowanego systemu operacyjnego okienko dialogowe pozwalaj膮ce na wybranie pliku (zobacz rys. 8).

0x08 graphic

Rys. 8

Wybrany plik zostaje wczytany do pami臋ci operacyjnej komputera. W wyniku tego aktywne staj膮 si臋 opcj臋 aplikacji s艂u偶膮ce do inicjalizacji oblicze艅, opisane w dalszej cz臋艣ci rozdzia艂u.

Do wersji instalacyjnej systemu dostarczone s膮 pliki zawieraj膮ce przyk艂adowe zagadnienia ATSP zaczerpni臋te z biblioteki TSPLIB. S膮 to zagadnienia ATSP, dla kt贸rych znane jest rozwi膮zanie optymalne. Dziki temu, podczas testowania systemu, mo偶na por贸wna膰 znalezione przez aplikacje rozwi膮zanie z rozwi膮zaniem optymalnym.

5.2.2 Tworzenie nowego problemu.

0x08 graphic
System komputerowy pozwala tak偶e na stworzenie nowego problemu poprzez generacje macierzy odleg艂o艣ci pomi臋dzy miastami. Mo偶liwe jest poprzez opcje „New” dost臋pn膮 w pasku narz臋dzi lub rozwijalnym menu aplikacji. Po aktywacji tej opcji pojawia si臋 nast臋puj膮ce okienko dialogowe:

Rys. 9

Pozwala ono na wybranie sposobu wprowadzania danych, tzn.:

Po wybraniu ka偶dego rodzaju wprowadzania danych pojawia si臋 okienko dialogowe, s艂u偶膮ce do weryfikacji lub edytowania dych:

0x08 graphic

Rys. 10

Okienko dialogowe widoczne na rysunku 10 pozwala w 艂atwy spos贸b dokonywa膰 zmian w macierzy opisuj膮cej odleg艂o艣ci pomi臋dzy miastami. Weryfikacja taka mo偶e odbywa膰 si臋 nie tylko podczas tworzenia problemu, lecz tak偶e w czasie pracy aplikacji, gdy macierz danych wej艣ciowych znajduje si臋 w pami臋ci operacyjnej komputera. Mo偶na to uzyska膰 poprzez opcj臋 „Data Review” dost臋pnej w pasku narz臋dzi oraz rozwijalnym menu aplikacji.

5.2.3 Zapis danych do pliku

Nowowprowadzone lub zmodyfikowane dane wej艣ciowe mog膮 by膰 zapisane do pliku. W przypadku modyfikacji danych, zapis danych do istniej膮cego ju偶 pliku uzyskujemy poprzez opcje „Save” dost臋pn膮 w pasku narz臋dzi oraz w rozwijalnym menu aplikacji. Aktywacja tej opcji powoduje nadpisanie pliku ze zmodyfikowan膮 macierz膮 odleg艂o艣ci.

0x08 graphic
Zapis danych do nowego pliku uzyskujemy poprzez opcje „Save as...” dost臋pn膮 w rozwijalnym menu aplikacji. Po aktywacji tej opcji pojawia si臋 standardowy dla wszystkich wersji dedykowanego systemu operacyjnego okienko dialogowe pozwalaj膮ce na wprowadzenia nazwy pliku , pod kt贸r膮 maj膮 zapisane by膰 dane (zobacz rys. 11).

Rys. 11

Zapis danych do pliku nie powoduje ich kasacji z pami臋ci operacyjnej komputera, w dalszym ci膮gu mo偶liwa jest praca aplikacji na zapisanych wcze艣niej danych.

5.3 Ustawienie parametr贸w procesu oblicze艅

0x08 graphic
System komputerowy posiada implementacje algorytmu „System Mr贸wek” oraz jego modyfikacji zaproponowanej przez Dorigo, tzn. „System Koloni Mr贸wek”. Przed rozpocz臋ciem procesu oblicze艅 nale偶y wybra膰 interesuj膮c膮 nas opcj臋 algorytmu oraz wprowadzi膰 warto艣ci parametr贸w wyst臋puj膮cych we wzorach matematycznych, na kt贸rych bazuj膮 algorytmy. S艂u偶y do tego celu okienko dialogowe dost臋pne poprzez opcj臋 „Settings” dost臋pn膮 w pasku narz臋dzi oraz rozwijalnym menu aplikacji.

Rys. 12

Opr贸cz opcji algorytmu, kt贸ra b臋dzie wykonywana w procesie oblicze艅 w okienku dialogowym pokazanym na rysunku oznaczonym numerem 12 mo偶emy okre艣li膰 nast臋puj膮ce warto艣ci:

Wszystkie wymienione wcze艣niej warto艣ci maj膮 znacz膮cy wp艂yw na znalezione przez system rozwi膮zanie, nale偶y wiec dobiera膰 je dla ka偶dego rozpatrywanego problemu. Z艂e warto艣ci parametr贸w mog膮 powodowa膰 niepoprawn膮 prac臋 algorytmu.

5.4 Proces oblicze艅

Proces oblicze艅 aktywowany jest poprzez opcje „Run” dost臋pn膮 w pasku narz臋dzi oraz w rozwijalnym menu aplikacji. Aktywacja tej opcji powoduje zablokowanie innych opcji, kt贸rych u偶ycie podczas procesu oblicze艅 mog艂oby by膰 krytyczne dla poprawnej pracy algorytmu.

D艂ugo艣膰 procesu oblicze艅 jest zale偶na od nast臋puj膮cych czynnik贸w

Wida膰 wi臋c, 偶e mo偶e by膰 on wzgl臋dnie d艂ugi, dla r贸偶nych ustawie艅 aplikacji i聽danych wej艣ciowych. Dla ilustracji post臋p贸w pracy algorytmu, oraz czasu jaki pozosta艂 do zako艅czenia pracy, w g艂贸wnym oknie aplikacji umieszczone zasta艂y dwa paski post臋pu (zobacz rysunek 13)

0x08 graphic
Rys. 13

Opisywane wcze艣niej paski post臋pu widoczne s膮 w prawym rogu g艂贸wnego okna aplikacji. Pierwszy nazwany „Iteration Progress” informuje o ilo艣ci wykonanych przez algorytm iteracji, drugi nazwany „Ant Progress” informuje o ilo艣ci mr贸wek, kt贸re poszukiwa艂y ju偶 rozwi膮zania podczas ka偶dej iteracji.

5.5 Wyniki oblicze艅

0x08 graphic
Po zako艅czeniu procesu oblicze艅 samoczynnie wy艣wietlane jest okienko dialogowe pokazuj膮ce szczeg贸艂owo najlepsze znalezione rozwi膮zanie. Okienko to jest dost臋pne tak偶e w opcji „Result” dost臋pnej w pasku narz臋dzi oraz w rozwijalnym menu aplikacji.

Rys. 14

W opisywanym okienku dialogowym mo偶emy zobaczy膰 warto艣膰 najlepszego rozwi膮zania znalezionego przez aplikacje w procesie oblicze艅 oraz dok艂adny opis drogi.

Wyniki oblicze艅 widoczne s膮 tak偶e w g艂贸wnym oknie aplikacji. Znajduj膮 si臋 tam dwa wykresy wizualizuj膮ce:

Wykresy te pojawiaj膮 si臋 tak偶e na zako艅czenie procesu oblicze艅.

5.6 Pliki pomocy

Zaimplementowany system komputerowy posiada tak偶e rozwini臋ty system plik贸w pomocy. Zaopatrzony jest w pomoc kontekstow膮 mog膮c膮 by膰 pomocn膮 podczas pracy z aplikacj膮 przez u偶ytkownik贸w nie zapoznanych z tre艣ci膮 cz臋艣ci pisemnej pracy. Pomoc kontekstowa uaktywniana jest za pomoc膮 klawiatury komputerowej przyciskiem聽F1.

5.7 Opis implementacji systemu.

System komputerowy zosta艂 zaimplementowany przy u偶yciu 艣rodowiska programistycznego Visual C++, z wykorzystaniem biblioteki MFC (Microsoft Foundation Class ). Jest to system dwu-w膮tkowy, w kt贸rym wszystkie obliczenia odbywaj膮 si臋 w oddzielnym w膮tku, dla unikni臋cia blokady ca艂ego systemu podczas procesu oblicze艅.

Klasy zaimplementowane podczas realizacji systemu mo偶na podzieli膰 na nast臋puj膮ce grupy:

5.7.1 G艂贸wne klasy aplikacji

5.7.1.1 Klasa CAntApp

Nazwa klasy

CAntApp

Klasa bazowa

CWinApp

Kr贸tki opis

Implementacja obiektu aplikacji. Zawiera wszystkie obiekty i zmienne globalne, do kt贸rych jest dost臋p we wszystkich w膮tkach systemu.

Uwagi

Warto艣ci zmiennych, kt贸re zawieraj膮 warto艣ci parametr贸w oblicze艅 zapisywane s膮 w rejestrze systemowym i odczytywane przy ponownym uruchomieniu aplikacji.

Tabela 1

Diagram dziedziczenia dla klasy CAntApp.

0x01 graphic

Diagram wsp贸艂pracy dla klasy CAntApp

0x01 graphic

Spis metod oraz zmiennych klasy

  1. Metody Publiczne

  1. Atrybuty Publiczne

5.7.1.2 Klasa CAntDoc

Nazwa klasy

CAntDoc

Klasa bazowa

CDocument

Kr贸tki opis

Implementacja obiektu dokumentu, niezb臋dnego do realizacji architektury Widok-Dokument, preferowanej w MFC.

Uwagi

Brak

Tabela 2

Diagram dziedziczenia dla CAntDoc

0x01 graphic

Diagram wsp贸艂pracy dla CAntDoc:

0x01 graphic

Spis metod klasy

  1. Metody Publiczne

  1. Metody Chronione

5.7.1.3 Klasa CAntView

Nazwa klasy

CantView

Klasa bazowa

CformView

Kr贸tki opis

Implementacja obiektu widoku, niezb臋dnego do realizacji architektury Widok-Dokument, preferowanej w MFC.

Uwagi

Brak

Tabela 3

Diagram dziedziczenia dla klasy CAntView

0x01 graphic

Diagram wsp贸艂pracy dla klasy CAntView:

0x01 graphic

Spis metod i zmiennych klasy

  1. Metody Publiczne

  1. Atrybuty Publiczne

  1. Metody Chronione

  1. Metody Prywatne

5.7.1.4 Klasa CAntFrame

Nazwa klasy

CAntFrame

Klasa bazowa

CFrameWnd

Kr贸tki opis

Implementacja obiektu szkieletu okna, wyst臋puj膮cego w aplikacji typu SDI (Single document interface).Zawiera obs艂ug臋 wszystkich wiadomo艣ci przekazywanych przez w膮tek roboczy do g艂贸wnego w膮tku aplikacji..

Uwagi

Brak

Tabela 4

Diagram dziedziczenia dla klasy CAntFrame

0x01 graphic

Diagram wsp贸艂pracy dla klasy CAntFrame:

0x01 graphic

Spis metod i zmiennych klasy

  1. Metody Publiczne

  1. Atrybuty Publiczne

  1. Metody Chronione

  1. Atrybuty Chronione

5.7.1.4 Klasa CAntThread

Nazwa klasy

CAntThread

Klasa bazowa

CWinThread

Kr贸tki opis

Implementacja w膮tku roboczego aplikacji. Posiada zaimplementowane dwa algorytmy obliczeniowe, tzn. „Ants System” oraz „Ants Colony System”.

Uwagi

Praca aplikacji nie mo偶e by膰 zako艅czona podczas pracy obiektu tej klasy. Grozi to pozostawieniem przez aplikacj臋 nie zwolnionej pami臋ci operacyjnej.

Tabela 5

Diagram dziedziczenia dla klasy CAntThread

0x01 graphic

Diagram wsp贸艂pracy dla klasy CAntThread:

0x01 graphic

Spis metod i zmiennych klasy

  1. Metody Publiczne

  1. Metody Chronione

  1. Atrybuty Chronione

  1. Atrybuty Prywatne

5.7.2 Klasy implementacji okienek dialogowych

5.7.2.1 Klasa CAboutDlg

Nazwa klasy

CAboutDlg

Klasa bazowa

CDialog

Kr贸tki opis

Implementacja dialogu zawieraj膮cego kr贸tki opis aplikacji.

Uwagi

Brak

Tabela 6

Diagram dziedziczenia dla klasy CAboutDlg

0x01 graphic

Diagram wsp贸艂pracy dla klasy CAboutDlg:

0x01 graphic

Spis metod klasy

  1. Metody Publiczne

  1. Metody Chronione

5.7.2.2 Klasa CAntDataReviewDlg

Nazwa klasy

CAntDataReviewDlg

Klasa bazowa

CDialog

Kr贸tki opis

Implementacja dialogu pozwalaj膮cego na weryfikacje macierzy odleg艂o艣ci wprowadzonej jako dane wej艣ciowe do aplikacji.

Uwagi

Brak

Tabela 7

Diagram dziedziczenia dla klasy CAntDataReviewDlg

0x01 graphic

Diagram wsp贸艂pracy dla klasy CAntDataReviewDlg:

0x01 graphic

Spis metod i zmiennych klasy

  1. Metody Publiczne

  1. Atrybuty Publiczne

  1. Metody Chronione

5.7.2.3 Klasa CAntGridDlg

Nazwa klasy

CAntGridDlg

Klasa bazowa

CDialog

Kr贸tki opis

Implementacja dialogu pozwalaj膮cego wprowadzenie macierzy odleg艂o艣ci podczas tworzenia nowego problemu.

Uwagi

Brak

Tabela 8

Diagram dziedziczenia dla klasy CAntGridDlg

0x01 graphic

Diagram wsp贸艂pracy dla klasy CAntGridDlg:

0x01 graphic

Spis metod i zmiennych klasy

  1. Metody Publiczne

  1. Atrybuty Publiczne

  1. Metody Chronione

5.7.2.3 Klasa CAntNewProblem

Nazwa klasy

CAntNewProblem

Klasa bazowa

CDialog

Kr贸tki opis

Implementacja dialogu pozwalaj膮cego na wybranie rodzaju wprowadzania danych oraz rozmiaru nowego problemu.

Uwagi

Brak

Tabela 9

Diagram dziedziczenia dla klasy CAntNewProblem

0x01 graphic

Diagram wsp贸艂pracy dla klasy CAntNewProblem:

0x01 graphic

Spis metod i zmiennych klasy

  1. Metody Publiczne

  1. Atrybuty Publiczne

  1. Metody Chronione

  1. Metody Prywatne

5.7.2.4 Klasa CAntResultDlg

Nazwa klasy

CAntResultDlg

Klasa bazowa

CDialog

Kr贸tki opis

Implementacja dialogu pozwalaj膮cego na obejrzenie szczeg贸艂贸w dotycz膮cych najlepszego rozwi膮zania znalezionego podczas procesu oblicze艅.

Uwagi

Brak

Tabela 10

Diagram dziedziczenia dla klasy CAntResultDlg

0x01 graphic

Diagram wsp贸艂pracy dla klasy CAntResultDlg:

0x01 graphic

Spis metod i zmiennych klasy

  1. Metody Publiczne

  1. Atrybuty Publiczne

  1. Metody Chronione

  1. Metody Prywatne

5.7.2.5 Klasa CAntSettingsDlg

Nazwa klasy

CAntSettingsDlg

Klasa bazowa

CDialog

Kr贸tki opis

Implementacja dialogu pozwalaj膮cego na ustawienie parametr贸w oblicze艅.

Uwagi

Brak

Tabela 11

Diagram dziedziczenia dla klasy CAntSettingsDlg

0x01 graphic

Diagram wsp贸艂pracy dla klasy CAntSettingsDlg:

0x01 graphic

Spis metod i zmiennych klasy

  1. Metody Publiczne

  1. Atrybuty Publiczne

  1. Metody Chronione

5.7.3 Klasy pomocnicze

5.7.3.1 Klasa CAntChart

Nazwa klasy

CAntChart

Klasa bazowa

CStatic

Kr贸tki opis

Implementacja klasy odpowiedzialnej za wykresy wy艣wietlane w g艂贸wnym oknie aplikacji.

Uwagi

Brak

Tabela 12

Diagram dziedziczenia dla klasy CAntChart

0x01 graphic

Diagram wsp贸艂pracy dla klasy CAntChart:

0x01 graphic

Spis metod i zmiennych klasy

  1. Metody Publiczne

  1. Atrybuty Publiczne

  1. Metody Chronione

  1. Atrybuty Chronione

  1. Atrybuty Prywatne

5.7.3.2 Klasa CAntElement

Nazwa klasy

CAntElement

Klasa bazowa

CObject

Kr贸tki opis

Klasa odpowiedzialna za przetrzymywanie warto艣ci rozwi膮za艅 znalezionych w poszczeg贸lnych iteracjach.

Uwagi

Konieczno艣膰 implementacji tej klasy wynika艂o z u偶ycia klas kontener贸w zaimplementowanych w MFC.

Tabela 13

Diagram dziedziczenia dla klasy CAntElement

0x01 graphic

Diagram wsp贸艂pracy dla klasy CAntElement:

0x01 graphic

Spis metod i zmiennych klasy

  1. Metody Publiczne

  1. Atrybuty Prywatne

5.7.3.3 Klasa CAntFileManager

Nazwa klasy

CAntFileManager

Klasa bazowa

Kr贸tki opis

Klasa odpowiedzialna za operacje na plikach z danymi, tzn. zapis pliku na dysk i odczyt pliku z dysku.

Uwagi

Brak

Tabela 14

  1. Metody Publiczne

5.7.3.4 Klasa CAntGrid

Nazwa klasy

CAntGrid

Klasa bazowa

CWnd

Kr贸tki opis

Klasa odpowiedzialna za obs艂ug臋 siatki u偶ytej do wprowadzania i weryfikacji danych wej艣ciowych.

Uwagi

Brak

Tabela 15

Diagram dziedziczenia dla klasy CAntGrid

0x01 graphic

Diagram wsp贸艂pracy dla klasy CAntGrid:

0x01 graphic

Spis metod i zmiennych klasy

  1. Metody Publiczne

  1. Metody Chronione

5.7.3.5 Klasa CAntRandom

Nazwa klasy

CAntRandom

Klasa bazowa

CObject

Kr贸tki opis

Implementacja generatora liczb pseudo-losowych. Obiekty tej klasy u偶ywane s膮 podczas generacji nowych problem贸w oraz podczas wyboru drogi w czasie procesu oblicze艅.

Uwagi

Ustawienie punktu startowego generatora odbywa si臋 w konstruktorze, ale mo偶e by膰 zmieniane podczas 偶ycia obiektu.

Tabela 16

Diagram dziedziczenia dla klasy CAntRandom

0x01 graphic

Diagram wsp贸艂pracy dla klasy CAntRandom:

0x01 graphic

Spis metod i zmiennych klasy

  1. Metody Publiczne

  1. Atrybuty Chronione

Wersja instalacyjna systemu komputerowego zawarta jest na kr膮偶ku CD-R do艂膮czonym do tekstu pracy. Znajduje si臋 na nim plik wykonywalny o nazwie AntSetup.exe, uruchomienie kt贸rego powoduje rozpocz臋cie procesu instalacji. Po pomy艣lnym zako艅czeniu procesu instalacji aplikacja gotowa jest do u偶ytku.

6. Przyk艂ady i wnioski

System komputerowy zosta艂 wykonany zgodnie z projektem przedstawionym w poprzednim rozdziale, zaimplementowany w j臋zyku programowania C++, przy u偶yciu klas MFC. Testy systemy przeprowadzone zosta艂y na komputerze z procesorem Pentium 166 MHz, 32 MB pami臋ci operacyjnej RAM pod kontrol膮 systemu operacyjnego Windows 98.

Testowanie systemu zosta艂o ukierunkowane na por贸wnanie wynik贸w uzyskiwanych przez zaimplementowane algorytmy z optymalnymi rozwi膮zaniami znanych problem贸w. Wykorzystano do tego przyk艂adowe zagadnienia ATSP zaczerpni臋te z biblioteki TSPLIB. Wyniki tych test贸w przedstawione s膮 w tabeli.

Nazwa problemu

AS

ACS

Najlepsze znane rozwiazanie

ft70

39831

38781

38673

kro124p

38361

36241

36230

p43

2840

2810

2810

ry48p

15343

14422

14422

Tabela 17

Na postawie danych zawartych w tabeli 17, mo偶na stwierdzi膰, 偶e uzyskane podczas test贸w najlepsze rozwi膮zania s膮 bardzo zbli偶one do najlepszych znanych rozwi膮za艅 problem贸w, w niekt贸rych przypadkach s膮 nawet r贸wne najlepszym rozwi膮zaniom.

Naturalnym wydaje si臋 spostrze偶enie, 偶e g艂贸wny wp艂yw na wyniki oblicze艅 maj膮 dwa czynniki, tzn.

0x08 graphic
Wp艂yw tych czynnik贸w na warto艣膰 znalezionego rozwi膮zania przedstawia wykres:

Wykres 2

0x08 graphic
Na podstawie wykresu wyra藕nie wida膰, 偶e wraz ze wzrostem warto艣ci tych parametr贸w wzrasta efektywno艣膰 tych parametr贸w. Niestety radykalnie wzrasta czas pracy algorytmu.

Wykres 3

Nale偶y jednak podkre艣li膰, 偶e system operacyjny pod kt贸ry dedykowana jest aplikacja nie pozwala na dok艂adne badanie zale偶no艣ci czasowych.

Innymi czynnikami maj膮cymi wp艂yw na efektywno艣膰 algorytmu s膮 warto艣ci parametr贸w, kt贸re mo偶na zmienia膰 za pomoc膮 okienka dialogowego „Settings”. Nie potrafi艂em jednak znale藕膰 og贸lnych zasad, wed艂ug kt贸rych mo偶na ustala膰 najlepsze warto艣ci tych parametr贸w. Podczas testowania aplikacji, dobierane one by艂y eksperymentalnie w zale偶no艣ci od problemu. Wed艂ug moich eksperyment贸w, najlepsze wyniki otrzymywane by艂y z nast臋puj膮cymi warto艣ciami parametr贸w:

0x08 graphic
Aplikacja pozwala na badanie wp艂ywu tych czynnik贸w na warto艣ci rozwi膮za艅 znajdywane przez algorytm. Jako przyk艂ad zamieszczamy wp艂yw parametru .

Wykres 4

Pragn臋 jednak podkre艣li膰, 偶e w przypadku wybrania innego problemu, wykres ten m贸g艂by wygl膮da膰 inaczej i 偶e nie mo偶na jednoznacznie okre艣li膰 najlepszych warto艣ci opisywanych parametr贸w.

Jednak na podstawie wszystkich eksperyment贸w, jestem w stanie stwierdzi膰, 偶e efektywno艣膰 metaheurystyki „Ant Colony System” jest du偶a, pozwalaj膮ca my艣le膰 o zastosowaniu metaheurystyki w opracowaniu rozwi膮za艅 do problem贸w 偶ycia codziennego i nale偶y j膮 propagowa膰. By膰 mo偶e praca ta b臋dzie mia艂a czynny udzia艂 w propagowaniu tej metaheurystyki.

7. Literatura

  1. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest. Wprowadzenie do algorytm贸w. Warszawa 1997, 1998.

  2. Bogus艂aw Filipowicz. Badania operacyjne. Wybrane metody obliczeniowe i algorytmy. Cz臋艣膰 1. Krak贸w 1997

  3. Antoni Ko艣cieliski. Teoria oblicze艅. Wyk艂ady z metematycznych podstaw informatyki. Wydawnictwo Uniwersytetu Wroc艂awskiego 1997.

  4. Aleksej Anisimow. Hipertekstowy s艂ownik informatyczny. Praca magisterska napisana pod kierunkiem dr in偶. Tomasza Bilskiego.

  5. Pawe艂 Martynowicz. Badania operacyjne - referat, AGH Krak贸w, Wydzia艂 EAIiE.

  6. Miros艂aw Jab艂o艅ski. Zagadnienie podgrafu g臋stego w grafie zwyk艂ym. Projekt z przedmiotu Automatyzacja Proces贸w Dyskretnych pod przewodnictwem prof. dr hab. In偶. Konrada Wali, AGH Krak贸w, Wydzia艂 EAIiE.

  7. Vittorio Maniezzo, Alberto Colornii. The Ant System Applied to the Quadratic Assignment Problem.

  8. Zbigniew J. Czech, Ewa Marzec. Heuristic Algorythms for Solving the Set-partitioning Problem.

  9. Urszula Boryczka, MARIUSZ Boryczka, Daniel Kuna. Generative Policies in the Job-shop Scheduling Problem.

  10. Marco Dorigo, Vittorio Maniezzo, Alberto Colorni. The Ant System: Optimization by a colony of cooperating agents.

  11. Marco Dorigo, Luca Maria Gambardella. Ant colonies for the traveling salesman problem.

  12. Marco Dorigo, Luca Maria Gambardella. Ant-Q: A Reinforcement Learning approach tothe traveling salesman problem.

  13. Marco Dorigo, Gianni Di Caro, Luca Maria Gambardella. Ant Algorithms for Discrete Optimization.

  14. Luca Maria Gambardella, Marco Dorigo. Has-Sop: Hybrid Ant System for The Sequential Ordering Problem.

  15. Luca Maria Gambardella, Marco Dorigo. An Ant Colony System Hybridized with a New Local Search for the Sequential Ordering Problem

  16. Luca Maria Gambardella, Marco Dorigo. Solving Symmetric and Asymmetric TSPs by Ant Colonies.

  17. Thomas Stutzle, Marco Dorigo. ACO Algorithms for the Traveling Salesman Problem.

T. H. Cormen, Ch. E. Leiserson, R. L. Rivest, „Wprowadzenie do algorytm贸w”, Warszawa 1997, 1998

A. Ko艣cieliski, „Teoria oblicze艅. Wybrane metody obliczeniowe i algorytmy”, Krak贸w 1997

A. Anisimow, „Hipertekstowy s艂ownik informatyczny”, Praca magisterska napisana pod kierunkiem dr in偶. T. Bileckiego.

B. Filipowicz, „Badania operacyjne. Wybrane metody obliczeniowe i algorytmy”, Krak贸w 1997.

P. Martynowicz, „Badania operacyjne- referat”, AGH Krak贸w.

M. Dorigo, V. Maniezzo, A. Colorni, „The Ant System: Optimization by a colony of cooperating agents”.

M. Jab艂o艅ski, „Zagadnienie podgrafu g臋stego w grafie zwyk艂ym”, projekt, AGH Krak贸w.

M. Dorgio, G. Di Carlo, L. M. Gambardella, „Ant Algorithms for Discrete Optimization”

M. Dorigo, V. Maniezzo, A. Colorni, „The Ant System: Optimization by a colony of cooperating agents”.

Informatyka w Sterowaniu i Zarz膮dzaniu 0x01 graphic

3

Informatyka w Sterowaniu i Zarz膮dzaniu 0x01 graphic

3

2

6

5

4

1

2

3

6

5

4

1

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic



Wyszukiwarka

Podobne podstrony:
Komputerowy system do?da艅?ektywno艣ci metaheurystyki ''System Mr贸wek'' w zakresie optymalizacj
Optymalizacja pracy Windows, Szko艂a, Systemy Operacyjnie i sieci komputerowe, systemy, semestr II
Komputerowe systemy zarz膮dzania produkcj膮
format[1], Szko艂a, Systemy Operacyjnie i sieci komputerowe, systemy, semestr I
KOMPUTEROWE SYSTEMY STEROWANIA Nieznany
Program Laboratorium Komputerowe systemy pomiarowe Gaw臋dzki KSP
Komputerowe systemy automatyki przemys艂owej
ksa4, Edukacja, studia, Semestr VIII, Komputerowe Systemy Automatyki, KSA-lab
Dyski twarde-woluminy, Szko艂a, Systemy Operacyjnie i sieci komputerowe, systemy, semestr II
raczynski 2, Edukacja, studia, Semestr VII, Komputerowe Systemy Automatyki
Komputerowy system rejestracji?nych pomiarowych PC Link Plus
EEG komputerowy system
Etapy uruchamiania komputera, systemu
INF II stopien Grafika komputerowa i systemy multimedialne
Normy prawne dotycz膮ce rozpowszechniania program贸w komputerowych, 1.Systemy operacyjne i sieci kompu
Labolatorium komputerowych system贸w automatyki, Systemy wizualizacji i sterowania, Politechnika Lube
Labolatorium komputerowych system贸w automatyki, Systemy wizualizacji i sterowania, Politechnika Lube
Komputerowy system DAMB analizy dynamicznej budynk贸w wysokich usztywnionych konstrukcjami 艣cianowymi
Architektura komputer贸w i systemy operacyjne

wi臋cej podobnych podstron