UNIWERSYTET JAGIELLOŃSKI W KRAKOWIE

Wielkość: px
Rozpocząć pokaz od strony:

Download "UNIWERSYTET JAGIELLOŃSKI W KRAKOWIE"

Transkrypt

1 UNIWERSYTET JAGIELLOŃSKI W KRAKOWIE Praca magisterska Zastosowanie metod inteligencji obliczeniowej do rozwiązania problemu komiwojażera Łukasz Piętoń Pracę wykonano w Zakładzie Technologii Informatycznych pod kierunkiem Dr Katarzyny Grzesiak-Kopeć Wydział Fizyki, Astronomii i Informatyki Stosowanej Kraków 2011

2 Wydział Fizyki, Astronomii i Informatyki Stosowanej Uniwersytet Jagielloński Oświadczenie Ja niżej podpisany Łukasz Piętoń (nr indeksu: ) student Wydziału Fizyki, Astronomii i Informatyki Stosowanej Uniwersytetu Jagiellońskiego kierunku informatyka, oświadczam, że przedłożona przeze mnie praca magisterska pt. Zastosowanie metod inteligencji obliczeniowej do rozwiązania problemu komiwojażera przedstawia wyniki badań wykonanych przeze mnie osobiście, pod kierunkiem dr Katarzyny Grzesiak-Kopeć. Pracę napisałem samodzielnie. Oświadczam, że moja praca dyplomowa została opracowana zgodnie z Ustawą o prawie autorskim i prawach pokrewnych z dnia 4 lutego 1994 r. (Dziennik Ustaw 1994 nr 24 poz. 83 wraz z późniejszymi zmianami). Jestem świadom, że niezgodność niniejszego oświadczenia z prawdą ujawniona w dowolnym czasie, niezależnie od skutków prawnych wynikających z ww. ustawy, może spowodować unieważnienie tytułu nabytego na podstawie tej pracy. Kraków, dnia.. podpis studenta

3 Spis treści WSTĘP... 5 Motywacja... 5 Cel pracy... 6 Organizacja pracy PROBLEM KOMIWOJAŻERA Historia Opis Złożoność obliczeniowa Klasa P, problemy rozstrzygalne w czasie wielomianowym Klasa NP, problemy weryfikowalne w czasie wielomianowym Klasa NPC Metody rozwiązywania TSP Algorytmy dokładne Algorytmy heurystyczne Metody heurystyki konstruktywnej Metody heurystyki ulepszającej INTELIGENTNE METODY ROZWIĄZYWANIA TSP Algorytm genetyczny Inteligencja rojowa Kolonia mrówek Rój cząstek OPIS EKSPERYMENTÓW Algorytm genetyczny Algorytm optymalizacji kolonią mrówek...52 [3]

4 3.3 Algorytmu optymalizacji rojem cząstek Porównanie algorytmów...59 PODSUMOWANIE SPIS RYSUNKÓW SPIS TABEL BIBLIOGRAFIA OPIS ZAWARTOŚCI DOŁĄCZONEGO NOŚNIKA [4]

5 Wstęp Motywacja Problem komiwojażera towarzyszy człowiekowi od wieków. Choć został przypisany człowiekowi, którego głównym zadaniem było podróżowanie i kolejność odwiedzanych przez niego punktów podróży miała duży wpływ na całkowity czas jego pracy to w pewnym niewielkim stopniu z problemem komiwojażera do czynienia w codziennym życiu ma każdy z nas. Odwiedzając sklepy, urzędy, centra handlowe czy hipermarkety, każdy stara się zminimalizować czas potrzebny na zmianę lokalizacji odpowiednio planując kolejność załatwiania codziennych spraw. Jest to przykład problemu komiwojażera składający się z kilku może kilkunastu punktów, gdzie już przy odpowiednim rozwiązaniu możemy dostrzec korzyści. Nietrudno sobie wyobrazić jakie ma to znaczenie w przypadku problemu składającego się z kilkuset, kilku tysięcy czy nawet kilku milionów punktów. W czasach szybkiego rozwoju cywilizacyjnego, gdzie ciągle szuka się szybszych, lepszych oraz tańszych rozwiązań, problem komiwojażera ze względu na optymalizacyjny charakter ma szerokie zastosowanie w praktyce. Choć przede wszystkim jest wykorzystywany w dziedzinie logistyki transportu oraz dystrybucji, która jest podstawą funkcjonowania dzisiejszej gospodarki to jego zastosowania są znacznie szersze. Wykorzystywany jest w elektronice w celu optymalnego rozmieszczenia obwodów elektrycznych. W przemyśle podczas organizacji linii produkcyjnych zapewniających jak najniższą rotację elementu produkcyjnego przez obrabiające go maszyny, czy też w sterowaniu ruchem robotów odpowiedzialnych m.in. za nawiercanie otworów, spawanie, cięcie oraz inną obróbkę materiałów. Problem komiwojażera jest wykorzystywany również w informatyce do optymalizacji tras routingu w sieciach komputerowych oraz systemach telekomunikacyjnych. Swoje zastosowanie znalazł, także we współczesnej medycynie np. w analizach mikromacierzy DNA. Z pozoru łatwy problem, okazuje się być w praktyce niemożliwy do rozwiązania przez tradycyjne algorytmy nawet przy użyciu dzisiejszych bardzo szybkich komputerów. Dlatego [5]

6 jest bardzo dobrym przykładem problemu, który można rozwiązać wykorzystując metody inteligencji obliczeniowej, stosowane wszędzie tam gdzie nie są znane lub nie istnieją efektywne metody rozwiązywania problemów. Inteligencja obliczeniowa jest dziedziną szybko rozwijającą się. Pomimo krótkiej historii zawiera wiele opracowanych metod i ciągle jest tematem wielu badań naukowych. Metody sztucznej inteligencji są inspirowane inteligencją dostrzeganą w naturze, dlatego powstałe w ich wyniku algorytmy są niezwykle fascynujące, ponieważ dają rzeczy martwej, jaką jest komputer zdolność do nieprzewidywalnych zachowań. Ponadto w wielu zastosowaniach charakteryzują się wysoką skutecznością oraz efektywnością obliczeń komputerowych. Cel pracy Inteligencja obliczeniowa zawiera zbiór wielu opracowanych metod. Dlatego celem niniejszej pracy będzie weryfikacja działania oraz możliwości wykorzystania tych metod do rozwiązania problemu komiwojażera. Realizacja tego celu będzie obejmowała: Zbadanie problemu komiwojażera. Opracowanie oraz wybór metod inteligencji obliczeniowej. Stworzenie oprogramowania pozwalającego na porównanie wybranych metod. Zbadanie możliwości oraz efektywności wybranych metod inteligencji obliczeniowych. Organizacja pracy W rozdziale pierwszym sformułowano problem komiwojażera oraz przedstawiono jego historię. Dokonano przeglądu klas złożoności obliczeniowej i opisano znane sposoby rozwiązania tego problemu. Rozdział drugi zawiera szczegółowy opis teoretyczny wybranych metod inteligencji obliczeniowej. Do każdej metody opisano budowę stworzonego algorytmu rozwiązującego problem komiwojażera. [6]

7 Rozdział trzeci obejmuje opis przeprowadzonych eksperymentów, które dotyczyły: porównania efektywności proponowanych algorytmów, wpływu poszczególnych parametrów na wyniki obliczeń oraz jakości otrzymanych wyników. Wszystkie eksperymenty zostały przeprowadzone w oparciu o stworzoną aplikację, w której zaimplementowano wybrane algorytmy. [7]

8 1. Problem komiwojażera 1.1 Historia Termin komiwojażer pochodzi z francuskiego zwrotu commis-voyageur (ang. sales representative), który oznaczał wędrownego sprzedawcę-domokrążcę, podróżującego po kraju. Dzisiaj komiwojażerem możemy nazwać typowego przedstawiciela handlowego, czyli agenta zajmującego się szeroko rozumianą sprzedażą związaną m.in. z pozyskiwaniem nowych klientów, zbieraniem zamówień, podpisywaniem umów itd. (1). Celem komiwojażera jest odwiedzenie pewnej określonej liczby miast. Problem stanowi taki wybór trasy, aby wyruszając z określonego miasta wrócić do niego odwiedzając po drodze wszystkie pozostałe miasta tylko jeden raz. Przy czym trasę podróży należy zaplanować w sposób gwarantujący możliwie jak najkrótszą drogę. Oczywiście określenie najkrótsza droga nie zawsze będzie rozumiane jako odległość w kilometrach. Może to być również czas trwania podróży, albo koszt jaki wynika z wyboru danej trasy, na który może się składać np. wartość potrzebnego paliwa lub cena biletu. Powyższy problem określany skrótem TSP (ang. TSP - Travelling Salesman Problem) stał się jednym z najintensywniej badanych problemów optymalizacyjnych na świecie. Już w roku 1800 możemy znaleźć informację na temat badań problemów matematycznych związanych z problemem komiwojażera. Byli to dwaj matematycy: Sir William Rowan Hamilton oraz Thomas Penyngton Kirkman. Natomiast ogólne badania nad TSP zostały zapoczątkowane w 1930 roku przez Karla Mengera w Wiedniu oraz Uniwersytecie Harvard. Problem następnie był badany przez różnych statystyków: Mahalanobis (1940), Jessen (1942), Gosh (1948), Marks (1948), którzy opracowywali problem w połączeniu z aplikacjami agrokulturalnymi (2). Sposób rozwiązania problemu, który polegał na analizie trasy punkt po punkcie stał się niemożliwy w realizacji ze względu na ich bardzo dużą liczbę, natomiast brak innych pomysłów przez długi okres czasu spowodował, iż ostatecznie TSP zyskał miano trudnego problemu optymalizacji kombinatorycznej. Ze względu na złożoność obliczeniową, formalnie problem należy do klasy problemów NP-zupełnych, co dokładniej zostało opisane w Rozdziale [8]

9 Pierwsze rozwiązania problemu zaczęły pojawiać się w połowie lat 50-tych (2), a zapoczątkowała je wcześniejsza publikacja Julii Robinson z 1949 roku On the Hamiltonian Game (A Traveling Salesman Problem), która poruszyła znany problem cyklu hamiltonowskiego i opisała rozwiązanie problemu, który był podobny do TSP. Przełom nastąpił w roku 1954, gdy George Dantzig, Ray Fulkerson, i Selmer Johnson opublikowali, opis metody rozwiązania TSP pt. Solution of a large-scale traveling-salesman problem, gdzie przedstawili możliwości tej metody rozwiązując przykład z 49 miastami. Wybrano do tego celu Waszyngton oraz 48 innych miast, po jednym z każdego z ówczesnych stanów w USA. Obliczenia dotyczyły 42 punktów, ponieważ pozostałe 7 miast znajdowało się na optymalnej drodze pomiędzy tymi punktami. Jednak ostatecznie uznano optymalny wyniki dla 49 miast. Znacznie lepszy wynik otrzymał M. Grötschel w 1977 roku, który przedstawił optymalne rozwiązanie dla 120 miast, należących wtedy do RFN, wykorzystując metodę płaszczyzn tnących (ang. cutting-plane) (2). W następnych latach pojawiło się wiele wyników, które dotyczyły rozwiązań optymalnych, z upływem czasu dla coraz większej liczby miast. Dokładne wyniki na przestrzenni lat prezentuje Tabela 1-1. Rok Autorzy Liczba miast 1954 G. Dantzig, R. Fulkerson, and S. Johnson M. Held and R.M. Karp P.M. Camerini, L. Fratta, and F. Maffioli M. Grötschel H. Crowder and M.W. Padberg M. Padberg and G. Rinaldi M. Grötschel and O. Holland M. Padberg and G. Rinaldi 2, D. Applegate, R. Bixby, V. Chvátal, and W. Cook 7, D. Applegate, R. Bixby, V. Chvátal, and W. Cook 13, D. Applegate, R. Bixby, V. Chvátal, and W. Cook 15, D. Applegate, R. Bixby, V. Chvátal, W. Cook, and K. Helsgaun 24,978 Tabela 1-1 Historia rozwoju TSP na podstawie (2). Imponujący wynik otrzymano w maju 2004 roku, kiedy David Applegate et al. znaleźli optymalną trasę dla miast Szwecji (3). Stwierdzono, że cała trasa liczy łącznie około [9]

10 72500km i udowodniono, że krótsza trasa nie istnieje. Większość obliczeń została wykonana na klastrze złożonym z 96 dwurdzeniowych procesorów Intel Xeon 2,8 GHz. Do obliczeń użyto kodu Concorde TSP, rozwiązującego problem za pomocą programowania liniowego metodą simplexu w wersji 6.5 CPLEX. Z uwagi na to, że do obliczeń wykorzystano klaster, który w tym samym czasie był używany również do przeprowadzenia innych obliczeń, trudno jest podać rzeczywisty czas jaki zajęły obliczenia. Natomiast w przeliczeniu na jeden procesor, z jakich składa się klaster, całkowity czas wszystkich obliczeń wynosiłby 91,9 lat (3). 1.2 Opis Problem komiwojażera ma ścisły związek z cyklem Hamiltona. Otóż rozwiązanie TSP w najprostszej postaci sprowadza się do znalezienia minimalnego cyklu Hamiltona w nieskierowanym, pełnym grafie ważonym, gdzie miasta są reprezentowane przez wierzchołki. Każdy z wierzchołków tego grafu musi być połączony z pozostałymi krawędzią, której długość odpowiada odległości między miastami. Rozwiązaniem będzie więc taki cykl w grafie, w którym każdy z wierzchołków oprócz pierwszego (powrót do miejsca startu) będzie przechodzony tylko jeden raz w taki sposób, aby suma krawędzi w ścieżce była minimalna. Przedstawiony powyżej opis dotyczy symetrycznego TSP oznaczanego czasami skrótem STSP (ang. symmetric TSP), czyli takiego problemu komiwojażera, gdzie na odległość między dwoma miastami nie ma wpływu kierunek, tzn. odległość z miasta A do miasta B jest taka sama, jak z miasta B do miasta A. Jeśli natomiast odległości między miastami w zależności od kierunku są różne lub nie istnieje droga w dwóch kierunkach, wtedy mamy do czynienia z asymetrycznym problemem komiwojażera, (ang. asymmetric TSP, ATSP) wówczas wykorzystuje się graf skierowany. Kluczową rolę w TSP odgrywa odległość. Ze względu na sposób obliczenia tego parametru problem komiwojażera dzieli się na metryczny i niemetryczny. O metrycznym pomiarze odległości mówimy, jeżeli długości krawędzi spełniają nierówność trójkąta. Oznacza to, że odległość wynikająca z bezpośredniego połączenia dwóch wierzchołków zawsze będzie mniejsza lub równa odległości między tymi wierzchołkami uwzględniającej na swej drodze dodatkowy wierzchołek:, gdzie,, to punkty, to odległość między punktami i. [10]

11 Powyższy przypadek odpowiada np. sytuacji, gdy przyjmiemy, że wszystkie miasta leżą na płaszczyźnie. Obliczamy między nimi odległość euklidesową przyjmując, że komiwojażer porusza się za pomocą samochodu, jadąc dokładnie w linii prostej między kolejnymi punktami. Jeśli przedstawiona wyżej nierówność trójkąta nie jest spełniona wtedy mówimy o niemetrycznym problemie komiwojażera. Z takim problemem mamy do czynienia jeśli np. komiwojażer decyduje się na podróż samolotem, ponieważ czas podróży jest krótszy pomimo większej odległości między miastami. Poza metryką euklidesową stosuje się jeszcze m.in. metrykę Manhattan lub metrykę maksimum. W metryce Manhattan odległość między dwoma punktami jest równa sumie wartości bezwzględnych różnic ich współrzędnych. Z kolei w metryce maksimum odległość między dwoma punktami jest równa maksymalnej wartości bezwzględnej różnic współrzędnych (porównanie przedstawia Rysunek 1-1). Kolor żółty: metryka euklidesowa = Kolor czerwony: metryka Manhattan = 5 Kolor zielony: metryka maksimum = 3 Rysunek 1-1 Porównanie metryk odległości Metryki Manhattan oraz maksimum są wykorzystywane głównie w przemyśle. Np. w sytuacji jeśli ramię maszyny poruszające się w dwóch wymiarach odpowiedzialne jest za nawiercanie otworów, to w momencie, gdy konstrukcja maszyny pozwala na zmianę położenia jednocześnie tylko według jednej osi współrzędnych x albo y, wtedy korzystne będzie zastosowanie metryki Manhattan. Natomiast w przypadku, gdy urządzenie może zmieniać położenie jednocześnie w dwóch osiach x oraz y, wówczas całkowity czas potrzebny na zmianę położenia jest równy wolniejszemu z dwóch ruchów i w takiej sytuacji wykorzystuje się metrykę maksimum. 1.3 Złożoność obliczeniowa Złożoność obliczeniowa jest często definiowana za pomocą problemów decyzyjnych, z wykorzystaniem aparatu języków formalnych i tak też postanowiliśmy przyjąć w tej pracy, opierając całą tą sekcję na literaturze (4). Przed przystąpieniem do opisu klas złożoności [11]

12 konieczne jest przywołanie kilku definicji, które zawiera Tabela 1-2 Definicje i oznaczenia z teorii języków formalnych na podstawie.tabela 1-2. Alfabet Język nad DEFINICJE I OZNACZENIA skończony, niepusty zbiór symboli dowolny zbiór napisów (słów) złożonych z symboli alfabetu słowo puste język pusty język złożony z wszystkich słów nad alfabetem język nad alfabetem dopełnienie języka : konkatenacja dwóch języków i domknięcie (gwiazdka Kleene ego) języka, gdzie to język otrzymany przez -krotną konkatenację ze sobą Tabela 1-2 Definicje i oznaczenia z teorii języków formalnych na podstawie (4). Przykłady: 1) Jeśli 0, 1 to zbiór 10, 11, 101, 111, 1011, 1101, 10001, jest językiem binarnych reprezentacji liczb pierwszych. 2) Jeśli 0, 1 to, 0, 1, 00, 01, 10, 11, 000, jest zbiorem wszystkich ciągów binarnych. Można teraz przedstawić problem decyzyjny na podstawie teorii języków formalnych. Zbiór egzemplarzy dowolnego problemu decyzyjnego to po prostu zbiór, gdzie 0, 1. Ponieważ problem jest w pełni określony przez te jego egzemplarze, dla których odpowiedzią jest 1 (tak), możemy traktować jako język nad 0, 1, gdzie x : Q x 1 Klasę złożoności nieformalnie można zdefiniować jako zbiór języków, do którego przynależność jest określana pewną miarą złożoności (jak np. czas działania) algorytmu rozstrzygającego, czy dane słowo należy do języka. [12]

13 1.3.1 Klasa P, problemy rozstrzygalne w czasie wielomianowym Problemy klasy P (ang. deterministic polynomial; deterministycznie wielomianowy) dotyczą rozwiązań, które można znaleźć w czasie wielomianowym czyli stosunkowo małym w porównaniu do czasu wykładniczego. Do zdefiniowania klasy P za pomocą terminologii języków formalnych konieczne jest wyrażenie związku między problemami decyzyjnymi, a rozwiązującymi je algorytmami. Mówimy, że Definicja 1-1 Algorytm akceptuje słowo 0, 1, jeśli dla danych wejściowych algorytm oblicza 1. Algorytm odrzuca słowo, jeśli 0. Stąd język akceptowany przez algorytm jest definiowany następująco: Definicja 1-2 Język akceptowany przez algorytm to zbiór 0, 1 : 1, czyli zbiór tych słów, które algorytm akceptuje. Należy zauważyć, że nawet jeśli język jest akceptowany przez algorytm, algorytm nie musi koniecznie odrzucać danego mu na wejściu słowa. Algorytm może się na przykład zapętlić. Dlatego odróżniamy język akceptowany (Definicja 1-2) od języka rozstrzyganego (Definicja 1-3). Definicja 1-3 Język jest rozstrzygany przez algorytm, jeśli każdy ciąg binarny jest albo akceptowany, albo odrzucany przez. Definicja 1-4 Język jest rozstrzygalny w czasie wielomianowym za pomocą algorytmu, jeśli istnieje stała taka, że dla dowolnego słowa 0, 1 długości algorytm rozstrzyga przynależność do w czasie. [13]

14 Korzystając z przedstawionej terminologii języków formalnych, zapis definicji klasy złożoności obliczeniowej P ma postać: Definicja 1-5 0, 1 : istnieje algorytm rozstrzygający o w czasie wielomianowym. Postawienie granicy między wielomianami a funkcjami wykładniczymi jest istotne z kilku powodów (5). Przede wszystkim znacząca różnica w tempie wzrostu typowych funkcji wielomianowych, jak i typowych funkcji wykładniczych, jak 2. Rozważmy n 1000, co jest sensownym rozmiarem słowa wejściowego dla algorytmu. W takim przypadku wartość wynosi miliard, co jest wartością dużą, ale można sobie z nią dać radę. Natomiast 2 jest w tym przypadku liczbą znacznie przekraczającą liczbę atomów we wszechświecie. Algorytmy wielomianowe są więc zazwyczaj wystarczająco szybkie, a algorytmy wykładnicze rzadko kiedy są użyteczne. Powstają najczęściej wówczas, gdy przeszukujemy całą przestrzeń możliwych rozwiązań, co często jest nazywane przeszukiwaniem siłowym. Na przykład, jednym ze sposobów rozłożenia liczby na czynniki pierwsze jest sprawdzenie wszystkich dzielników. Rozmiar przeszukiwania przestrzeni jest wykładniczy, więc przeszukiwanie także zajmuje czas wykładniczy. Czasami wniknąwszy głębiej w problem, można uniknąć przeszukiwania siłowego, co może doprowadzić do odkrycia przydatnego algorytmu wielomianowego. Klasa P jest związana z praktycznymi zastosowaniami. Problemy, które należą do klasy P, mogą być rozwiązane za pomocą metody działającej w czasie, dla pewnej stałej k. Czy jest to czas do zaakceptowania w praktyce, zależy od wartości k i od zastosowania. Oczywiście mało prawdopodobne, by metoda działająca w czasie miała zastosowanie praktyczne. Jednak nazwanie czasu wielomianowego granicą, na której kończy się praktyczna rozwiązywalność problemu ma sens, gdy dla problemu, który jak się dotychczas wydawało wymagał czasu wykładniczego, znajduje się algorytm wielomianowy. Wówczas pojawia się istotnie inny sposób rozumienia tego problemu, za którym często podążają kolejne redukcje złożoności, co w rezultacie może prowadzić do powstania algorytmu przydatnego w praktyce. [14]

15 1.3.2 Klasa NP, problemy weryfikowalne w czasie wielomianowym Kolejną klasą definiującą złożoność obliczeniową jest NP (ang. nondeterministic polynomial; niedeterministycznie wielomianowy) czyli klasa języków, które można weryfikować za pomocą algorytmu wielomianowego. Do zapisu formalnej definicji klasy NP, konieczne jest zdefiniowanie algorytmu weryfikacji. Definicja 1-6 Algorytm weryfikacji definiujemy jako algorytm o dwóch parametrach, z których jeden jest zwykłym wejściowym ciągiem, a drugi to ciąg binarny, zwany świadectwem. Dwuparametrowy algorytm weryfikuje ciąg wejściowy, jeśli istnieje świadectwo takie, że, 1. Definicja 1-7 Język weryfikowalny przez algorytm to 0, 1 : istnieje 0, 1 takie, że, 1 Algorytm weryfikuje język, jeśli dla każdego słowa istnieje świadectwo, którego może użyć w celu wykazania, że. Co więcej dla żadnego słowa nie może istnieć świadectwo tego, że. Odwołując się do powyższego algorytmu weryfikacji, formalna definicja klasy NP ma postać: Definicja 1-8 Język należy do klasy NP wtedy i tylko wtedy, gdy istnieją dwuparametrowy wielomianowy algorytm i stała takie, że 0, 1 : istnieje takie świadectwo, gdzie, że, 1 Mówimy wtedy, że algorytm weryfikuje język w czasie wielomianowym. Nie wiadomo, czy, ale większość badaczy uważa, że i nie są tą samą klasą. Podstawowa różnica między klasą P, a NP polega na tym, iż w przypadku klasy P znalezienie rozwiązania musi mieć złożoność wielomianową, natomiast w klasie NP sprawdzenie konkretnego rozwiązania ma mieć złożoność wielomianową. Jak wiadomo, [15]

16 często trudniej jest rozwiązać problem od początku, niż sprawdzić jasno przedstawione rozwiązanie, zwłaszcza przy narzuconych ograniczeniach czasowych. Większość informatyków sądzi, że analogia ta rozciąga się na klasy i, a więc że zawiera języki nie należące do. Bardziej przekonującym argumentem za tym, że jest istnienie klasy NP zupełnej opisanej w kolejnym podrozdziale Klasa NPC Jeśli przyjmiemy za obliczenia szybkie, te które są rozwiązywane w czasie wielomianowym to można podsumować(5): P = klasa języków, dla których przynależność może być szybko rozstrzygnięta. NP = klasa języków, dla których przynależność może być szybko zweryfikowana. Do zdefiniowania klasy NP zupełnej (ang. NP complete) zapisywanej również w skrócie NPC konieczne jest zdefiniowanie terminu redukowalności. Powracając do terminologii języków formalnych: Definicja 1-9 Język jest redukowalny w czasie wielomianowym do języka, co zapisujemy jako, jeśli istnieje obliczalna w czasie wielomianowym funkcja : 0,1 0,1, taka że dla każdego 0,1 wtedy i tylko wtedy, gdy. Funkcję nazywamy funkcją redukcji. [16]

17 Redukcje w czasie wielomianowym dają formalną metodę dowodzenia, że jeden problem jest przynajmniej tak samo trudny jak inny, z dokładnością do czynnika wielomianowego. Znaczy to, że jeśli, to jest nie więcej niż o wielomianowy czynnik trudniejszy od co tłumaczy użycie w oznaczeniu symbolu mniejsze bądź równe. Możemy teraz zdefiniować zbiór języków NP-zupełnych, czyli najtrudniejszych problemów w klasie NP z punktu widzenia wielomianowej rozwiązywalności: Definicja 1-10 Język 0, 1 jest NP zupełny, jeśli: 1) oraz 2) dla każdego. Pomocna w odpowiedzi na pytanie czy, postawione w poprzednim podrozdziale okazuje się być klasa NPC. Według twierdzenia: Twierdzenie 1-1 Jeśli jakikolwiek problem NP zupełny jest rozwiązywalny w czasie wielomianowym, to. Równoważnie, jeśli jakikolwiek problem w nie jest rozwiązywalny w czasie wielomianowym, to żaden problem NP zupełny nie jest rozwiązywalny w czasie wielomianowym. Powyższe twierdzenie stało się powodem, dla którego próby odpowiedzi na odwrotnie postawione z kolei pytanie do poprzedniego: czy, koncentrują się wokół problemów NP zupełnych. Być może, ktoś znajdzie algorytm wielomianowy dla jakiegoś problemu NP zupełnego, dowodząc w ten sposób, że. Ponieważ jednak dotychczas nie jest znany taki algorytm, większość informatyków sądzi, że, a układ zależności między klasami P, NP, i NPC jest kojarzony według schematu, który prezentuje Rysunek 1-2. NP P NPC Rysunek 1-2 Układ zależności między klasami P, NP i NPC postrzegany przez większość informatyków. [17]

18 Analizowany przez nas problem komiwojażera jest klasy NPC i można go łatwo transponować do cyklu Hamiltona. Modelując problem za pomocą grafu pełnego o wierzchołkach symbolizujących miasta, można powiedzieć, że komiwojażer chce znaleźć marszrutę, czyli cykl Hamiltona, odwiedzając każde miasto tylko raz i wracając do miasta, z którego wystartował. Formalnie, cykl Hamiltona w grafie nieskierowanym G = (V, E) to cykl prosty (przebiega przez wszystkie wierzchołki tylko raz z wyjątkiem pierwszego i ostatniego) przebiegający przez wszystkie wierzchołki zbioru V. Koszt podróży z miasta i do miasta j dla uproszczenia przykładu zostanie oznaczony jako liczba całkowita, którą zaznaczamy c(i, j), a komiwojażer chce przebyć marszrutę o minimalnym łącznym koszcie, na który składa się koszt poszczególnych krawędzi. Rysunek 1-3 przedstawia problem komiwojażera, dla którego optymalną marszrutą jest <u, w, v, x, u> o koszcie 7. u 1 4 v Rysunek 1-3 Problem komiwojażera dla n=4. x 5 w Wracając do teorii języków formalnych, problem komiwojażera można sformułować w następujący sposób: = <,, >: =(, ) jest grafem pełnym, :,, w G istnieje marszruta komiwojażera o koszcie co najwyżej k}. Zgodnie z definicją problemów NPC (Definicja 1-10), dowód przynależności TSP do problemów klasy przeprowadza się w dwóch krokach. Najpierw wykazujemy, że TSP należy do NP. Dla danego egzemplarza jako świadectwa używamy ciągu n wierzchołków marszruty. Stosujemy algorytm weryfikacji, który polega na upewnieniu się, że ciąg zawiera każdy wierzchołek dokładnie raz, zsumowaniu krawędzi i sprawdzeniu, czy otrzymana suma nie przekracza k. Wszystkie te operacje możemy wykonać w czasie wielomianowym. [18]

19 W drugim kroku skorzystamy z tego, że HAMCYCLE (problem cyklu Hamiltona), jest problemem NP zupełnym, co udowodniono w (4). Aby dowieść, że problem TSP jest ostatecznie problemem NP zupełnym, wykażemy, że. Egzemplarzem problemu HAMCYCLE jest,, natomiast egzemplarz problemu TSP konstruujemy w następujący sposób. Tworzymy graf pełny,, gdzie, :,, i definiujemy następującą funkcję kosztu c : 0, ś (,, (, 1, ś (,. Należy zauważyć, że graf G jest nieskierowany czyli nie zawiera pętli więc,, 1 dla każdego wierzchołka. Egzemplarzem problemu jest wówczas trójka <G, c, 0>, którą możemy skonstruować w czasie wielomianowym. Graf G ma natomiast cykl Hamiltona wtedy i tylko wtedy, gdy graf G zawiera marszrutę o koszcie co najwyżej 0. Załóżmy, że graf G zawiera cykl Hamiltona h. Każda krawędź cyklu h należy do E, a zatem w Grafie G ma koszt 0. Cykl h jest więc marszrutą w G o koszcie 0. Dla dowodu odwrotnej implikacji: graf G zawiera marszrutę h o koszcie co najwyżej 0. Ponieważ koszty krawędzi z E są równe 0 lub 1, koszt marszruty h wynosi dokładnie 0, czyli każda krawędź z marszruty musi mieć koszt 0. Marszruta h zawiera zatem jedynie krawędzie z E. Wnioskujemy stąd, że h jest cyklem Hamiltona w grafie G. 1.4 Metody rozwiązywania TSP Algorytmy dokładne Klasycznym rozwiązaniem jest próba porównania cykli Hamiltona dla wszystkich możliwych permutacji wierzchołków i wybrania w ten sposób optymalnego rozwiązania. W rzeczywistości jednak takie rozwiązanie nie jest praktyczne, bo w konsekwencji prowadzi do złożoności wykładniczej 0 n!. Przy zadaniu z 20 miastami staje się to z praktycznego punktu widzenia niewykonalne przy możliwościach obliczeniowych dzisiejszych, nawet najszybszych procesorów. Dodanie choćby jednego miasta zwiększa w tym wypadku czas obliczeń 21 razy. Dzięki zastosowaniu programowania dynamicznego poprawiono ten wynik uzyskując złożoność obliczeniową: 2. Metoda polega na zapamiętywaniu wyników dla [19]

20 ograniczonej grupy miast. Rozwiązanie rozpoczyna się od pustej grupy, do której dodawane są kolejne miasta i w ten sposób oblicza się najlepszy wynik dla danej grupy Algorytmy heurystyczne Metody heurystyczne nie gwarantują rozwiązania optymalnego, natomiast charakteryzują się bardzo dużą szybkością, dzięki czemu są z powodzeniem stosowane w rozwiązywaniu TSP. Do scharakteryzowania ich możliwości oraz sposobu działania wykorzystano informacje zawarte w (6). Nowoczesne metody potrafią znaleźć rozwiązanie dla ogromnych problemów z milionową liczbą miast w rozsądnym czasie, odbiegające zaledwie 2-3% od optymalnego rozwiązania. Natomiast jest to dział dosyć obszerny, który możemy podzielić na heurystykę konstruktywną, gdzie rozwiązanie jest sukcesywnie budowane z otrzymanych fragmentów, które nie są modyfikowane przez algorytm oraz heurystykę ulepszającą, w której znajdują się metody ulepszające już istniejące rozwiązanie Metody heurystyki konstruktywnej Najbliższy sąsiad (ang. nearest neighbour, NN) Algorytm NN w kolejnym ruchu wybiera najbliższe nieodwiedzone miasto i dołącza je do marszruty komiwojażera. Daje szybkie rozwiązanie, natomiast minusem tego algorytmu jest m.in. fakt, iż nie uwzględnia on odległości między pierwszym i ostatnim miastem. W przypadku losowo wybranych miast na płaszczyźnie, takie podejście daje średnio o 25% dłuższą drogę od najkrótszej. Minimalne drzewo rozpinające (ang. minimum spanning tree, MST) Zasada działania algorytmu MST polega na skonstruowaniu minimalnego drzewa rozpinającego dla grafu miast, w którym wszystkie krawędzie są podwajane. W kolejnym kroku tworzy się cykl Eulera dla otrzymanego grafu (cykl zawierający wszystkie krawędzie grafu i przechodzący przez nie dokładnie jeden raz). Ostatnim krokiem jest przekształcenie cyklu Eulera w cykl Hamiltona. Rozwiązany w ten sposób problem komiwojażera daje rozwiązanie maksymalnie dwukrotnie dłuższe od optymalnego. [20]

21 Metoda Christofidesa Algorytm jest bardzo podobny do MST i również dotyczy skonstruowania minimalnego drzewa rozpinającego. Natomiast zamiast dublowania krawędzi dołączane są krawędzie stanowiące minimalny koszt (odległość) pomiędzy wierzchołkami drzewa posiadającymi nieparzysty stopień. Następnie, tak jak w poprzedniej metodzie, następuje utworzenie cyklu Eulera i przekształcenie go w końcowym etapie w cykl Hamiltona. Dla metrycznego TSP metoda pozwala na uzyskanie w najgorszym przypadku o 50% dłuższej drogi od optymalnej Metody heurystyki ulepszającej Wymiana parami Metoda polega na usuwaniu w kolejnych iteracjach dwóch krawędzi i zastępowaniu ich dwiema innymi krawędziami w taki sposób, aby nowy fragment powstały w wyniku tej operacji dawał w rezultacie krótszą drogę. Jest to szczególny przypadek metody k opt (2- opt). k-opt Zasada działania algorytmu jest podobna do wymiany parami. Różnica polega na możliwości doboru parametru k, czyli liczby krawędzi, które są zastępowane. Najczęściej stosowana konfiguracja to 3-opt. V-opt Jest to odmiana metody k-opt, jednak w tym wypadku parametr k, nie jest sztywno ustalany, lecz zmienia się w czasie działania algorytmu. Najbardziej znana z tej rodziny jest metoda Lin-Kernighana, w której przy każdej iteracji algorytm określa ile krawędzi powinno być zamienionych, w celu znalezienia krótszej trasy. Obliczenia ewolucyjne Polegają na przeszukiwaniu alternatywnych rozwiązań naśladując procesy naturalnej ewolucji jak dziedziczenie, mutacja, krzyżowanie, selekcja. Prowadzą do otrzymywania coraz [21]

22 lepiej przystosowanych osobników, co w tym wypadku oznacza znalezienie coraz krótszej trasy. Dokładniej algorytmy genetyczne zostały opisane w Rozdziale 2.1. Symulowane wyżarzanie Sposób działania algorytmu nawiązuje do procesu wyżarzania w metalurgii, który w uproszczeniu polega na kontrolowanych zmianach temperatury materiału prowadzących do ograniczenia wad w materiale. Poprzez analogię do tego procesu fizycznego, w każdej iteracji algorytmu następuje próba poprawy rozwiązania przez zmniejszanie temperatury układu za pomocą parametru T. Przeszukiwanie Tabu (ang. tabu serach TS) Metoda rozpoczyna operację bazując na wstępnym rozwiązaniu. Mając daną trasę optymalizacja w uproszczeniu sprowadza się do wielokrotnego procesu zamiany kolejności dwóch miast z wykorzystaniem tablicy tabu, która przechowuje zabronione fragmenty trasy. Dzięki tablicy tabu realizowana jest zasada zakazu powrotu do miejsc ostatnio odwiedzonych. Drugą zasadą metody TS jest dopuszczenie wyboru najlepszego spośród niezakazanych ruchów nawet jeżeli prowadzi do gorszego rozwiązania. Dzięki temu metoda ta unika lokalnych optimów. Inteligencja rojowa (ang. swarm intelligence SI) Algorytmy typu SI bazują na samoorganizujących się systemach naturalnych mających miejsce w przyrodzie. System zazwyczaj składa się z populacji agentów, którzy współpracują lokalnie ze sobą i swoim otoczeniem. Agenci nie mają narzuconych zasad, jak powinni się zachowywać i do pewnego stopnia ich zachowania są zupełnie przypadkowe. Jednak interakcja między wszystkimi czynnikami w tej strukturze prowadzi do inteligentnych zachowań globalnych. Naturalne przykłady inteligencji rojowej obejmują różne zachowania: kolonie mrówek, stado ptaków, zwierząt, rozwój bakterii, oraz zjawiska: kształtowania dynamiki rzek, grawitacji, kropli wody, roju cząstek. Dokładniej metoda została opisana w Rozdziale 2.2. [22]

23 2. Inteligentne metody rozwiązywania TSP Inteligencja obliczeniowa (ang. computational intelligence, CI) jest działem, który bardzo intensywnie rozwinął się w ostatnich latach. Metody CI są najczęściej stosowane tam, gdzie tradycyjne metody są nieskuteczne lub nawet niewykonalne. Powstały w wyniku inspiracji światem naturalnym: sieci neuronowe powstały w wyniku zainteresowania funkcjonowaniem układu nerwowego, algorytmy genetyczne inspirowane były teorią ewolucji i genetyką, a z kolei algorytmy rojowe powstały w wyniku obserwacji etologicznych. W analogiczny sposób powstawały kolejne metody m.in. z teorii logicznych, logiki rozmytej itd. Problem komiwojażera okazuje się być tematem, gdzie z powodzeniem można stosować inteligentne metody obliczeniowe. Większość metod należących do CI została wymieniona w Rozdziale 1.4 w grupie metod heurystycznych. Opis działania i sposób funkcjonowania algorytmów kilku z tych metod znajduje się w kolejnych podrozdziałach. Po scharakteryzowaniu metod, na końcu każdego podrozdziału zamieszczono wyznaczoną złożoność obliczeniową proponowanego algorytmu, która została obliczona przyjmując przypadek pesymistyczny każdej rozważanej procedury. 2.1 Algorytm genetyczny Obliczenia ewolucyjne to klasa obliczeń inspirowanych teorią doboru naturalnego i dziedziczenia. Należą do nich algorytmy genetyczne, programowanie genetyczne, strategie ewolucyjne, programowanie ewolucyjne i inne. Algorytmy genetyczne (ang. genetic algorithm, GA) zostały zapoczątkowane przez Johna Hollanda, w wyniku jego prac w późnych latach sześćdziesiątych i wczesnych siedemdziesiątych (7). Do opisu GA wykorzystuje się terminy zapożyczone z genetyki naturalnej. Algorytm bazuje na populacji, która składa się ze zbioru osobników reprezentujących rozwiązanie. Dowolny osobnik zbudowany jest z zespołu chromosomów, z których każdy jest uporządkowanym zbiorem genów (genom). Gen natomiast jest najmniejszą jednostką informacji genetycznej i reprezentuje pojedynczą cechę osobnika. Wartości genu są nazywane allelami i w przypadku, gdy gen jest wartością binarną, to jego allelami są wartości: 0 lub 1. Potencjalne rozwiązanie zadania, reprezentuje genotyp czyli zespół chromosomów opisujących osobnika. Poza genotypem każdy osobnik jest [23]

24 charakteryzowany przez fenotyp, który stanowią rzeczywiste cechy określające jego stopień przystosowania na tle innych osobników w danej przestrzeni rozwiązań. Podsumowując, w populacji mogą znajdować się osobniki o różnych genotypach i tym samym fenotypie natomiast osobniki o tych samych genotypach nie mogą posiadać różnych fenotypów. Podstawowy model algorytmu genetycznego ma postać (Rysunek 2-1): START UTWORZENIE POPULACJI POCZĄTKOWEJ OCENA OSOBNIKÓW STOP? STOP ZASTOSOWANIE OPERATORÓW GENETYCZNYCH SELEKCJA RODZICÓW Rysunek 2-1 Podstawowy algorytm genetyczny (schemat blokowy) Zgodnie z powyższym schematem algorytm dokonuje różnych operacji na osobnikach. Selekcja powoduje na ogół wybór najlepiej przystosowanych osobników do tzw. populacji rodzicielskiej. Rodzicem jest nazywany osobnik, który w parze z drugim rodzicem bierze udział w procesie krzyżowania. Proces ten prowadzi do powstania nowych osobników nazywanych potomkami w wyniku wymiany fragmentów chromosomów rodziców. Poza krzyżowaniem, stosuje się również drugi operator genetyczny nazywany mutacją. Jest to proces polegający na zmianie pojedynczego genu w chromosomie. Dla genów o wartościach binarnych proces sprowadza się do zamiany alleli z wartością 0 na 1 i odwrotnie. Ocena osobników jest przeprowadzana w oparciu o funkcję przystosowania, która polega na ocenie osobnika według jego fenotypu (forma niezakodowana). Służy ona do tego, aby wyłonić [24]

25 najlepszego osobnika dla populacji końcowej, a jeśli populacja nie jest końcowa, zostaje użyta do procesu selekcji rodziców. Przed implementacją algorytmu genetycznego należy wybrać odpowiedni sposób reprezentacji pojedynczego osobnika. W rozważanym algorytmie osobnik jest reprezentowany przez pojedynczy chromosom. W podstawowym modelu zaproponowanym przez Hollanda jest stosowana reprezentacja binarna. Jeśli każdy osobnik populacji reprezentowałby liczbę całkowitą z przedziału: 0, 255, wówczas chromosom przechowywałby zakodowaną wartość w postaci ciągu binarnego składającego się z 8 bitów. Populacja składająca się z 5 osobników mogłaby mieć więc postać: chromosom fenotyp wartość funkcji przystosowania W klasycznym GA stosowana jest selekcja metodą proporcjonalną, koła ruletki. Selekcja prowadzi do wyboru osobników, którym na kole (koło ruletki) przydzielane są sektory proporcjonalne do obliczonych za pomocą funkcji przystosowania wartości. Licząc wkład każdego osobnika w sumę wartości przystosowania wszystkich osobników populacji (Rysunek 2-2). [25]

26 200 34% 30 5% % osobnik 1 osobnik 2 osobnik % % osobnik 4 osobnik 5 Rysunek 2-2 Selekcja metodą koła ruletki dla populacji liczącej pięciu osobników. Większa wartość przystosowania powoduje częstszy wybór do populacji rodzicielskiej, np. osobnik 4 o wartości przystosowania 200 posiada prawdopodobieństwo 34% wylosowania jako potencjalnego rodzica (Rysunek 2-2). Dzięki tej metodzie lepiej przystosowane osobniki mogą być wybierane wielokrotnie powodując eliminację słabszych. Główną metodą reprodukcji w podstawowym algorytmie genetycznym jest krzyżowanie. Mając dwóch rodziców wyłonionych w wyniku procesu selekcji tworzy się dwóch potomków. W tym celu wybierany jest losowo punkt krzyżowania dzielący łańcuch binarny chromosomów rodziców na dwie części, które są następnie wymieniane. Dla losowo wybranego punktu o wartości proces ten wygląda następująco: Rysunek 2-3 Krzyżowanie w podstawowym algorytmie genetycznym Drugim operatorem genetycznym jest mutacja. Jej najprostszy przypadek jest procesem, który powoduje zmianę wartości losowo wybranego genu w chromosomie, czyli negację bitu jaki reprezentuje. Mutacja zachodzi bardzo rzadko, jej prawdopodobieństwo jest zwykle dużo mniejsze niż krzyżowania. Celem tej operacji jest wprowadzenie różnorodności w populacji. Dla wybranego w sposób losowy genu o numerze 3, mutacja chromosomu będzie przebiegać następująco: Rysunek 2-4 Mutacja w podstawowym algorytmie genetycznym [26]

27 W problemie komiwojażera chromosom reprezentuje konkretną trasę podróży czyli kolejność odwiedzanych miast. Od rodzaju reprezentacji zależy później sposób zastosowania operatorów krzyżowania oraz mutacji. Podstawowy algorytm genetyczny zaproponowany przez Hollanda z praktycznego punktu widzenia nie nadaje się do zastosowania w TSP jak zauważono w (8). Problemem jest zakodowanie trasy jako łańcucha binarnego, w którym nie ma zależności od ustawienia lub w którym można w rozsądny sposób używać operatorów. Proste krzyżowanie łańcuchów powoduje podwójne wystąpienia miast lub ich brak. Dlatego do rozwiązania problemu komiwojażera zastosowano odmianę podstawowego algorytmu genetycznego powołując się na (9). Dla TSP można wymienić kilka sposobów reprezentacji: a) Reprezentacja przyległościowa. Polega na reprezentowaniu trasy jako ciągu miast. Miasto znajduje się na pozycji wtedy i tylko wtedy, jeżeli trasa wiedzie z miasta do miasta. Na przykład ciąg: przedstawia trasę: Każda trasa ma tylko jedną reprezentację przyległościową, jednak pewne reprezentacje przyległościowe mogą przedstawiać trasy niedopuszczalne, na przykład: czemu odpowiada trasa: Co jest trasą niekompletną. Ponadto w reprezentacji przyległościowej nie można użyć wprost klasycznego operatora krzyżowania bez użycia algorytmu naprawy. b) Reprezentacja porządkowa. W reprezentacji porządkowej trasa jest reprezentowana jako ciąg miast, przy czym -ty element jest liczbą z zakresu od 1 do 1. Idea reprezentacji porządkowej jest następująca. Mając uporządkowany ciąg miast, który jest punktem odniesienia dla ciągów w reprezentacji porządkowej, na przykład: [27]

28 Trasa: jest reprezentowana przez ciąg wskazań: co należy interpretować następująco: Pierwszą liczbą w ciągu jest 1, więc pierwszym miastem na trasie będzie miasto znajdujące się na pozycji 1 w ciągu, które ustanawiamy punktem startowym trasy i usuwamy z ciągu : Częściowa trasa: Aktualny ciąg : Następną liczbą w ciągu jest 2, więc do trasy dopisujemy miasto znajdujące się na pozycji drugiej aktualnego ciągu i usuwamy daną pozycję z ciągu otrzymując: Częściowa trasa: Aktualny ciąg : Postępując analogicznie przechodzimy przez wszystkie elementy ciągu kompletując całą trasę: Główną zaletą reprezentacji porządkowej jest to, że działa przy niej klasyczne krzyżowanie. Jakiekolwiek dwie trasy w reprezentacji porządkowej, przecięte w pewnym punkcie i zamienione ze soną, prowadzą do dwóch potomków, reprezentujących dopuszczalne trasy. Jednak jak stwierdzono (9), słabe wyniki eksperymentalne wskazują, [28]

29 że ta reprezentacja pomimo zastosowania klasycznego krzyżowania nie jest odpowiednia dla zadania komiwojażera. c) Reprezentacja ścieżkowa. W tworzonym algorytmie zastosowano reprezentację ścieżkową, która jest najbardziej naturalną reprezentacją trasy. Np. trasa przebiegająca przez cztery miasta: 1. Kraków 2. Poznań 3. Warszawa 4. Wrocław Reprezentowana przez ciąg: oznacza następującą kolejność punktów: Kraków Warszawa Poznań Wrocław Podstawą działania algorytmu genetycznego jest cykliczne powtarzanie operacji mające na celu tworzenie nowych lepiej przystosowanych osobników zgodnie ze schematem, który przedstawia Rysunek 2-1. Punktem startowym algorytmu jest tworzenie osobników stanowiących populację początkową. Trasa każdego osobnika jest wybierana w sposób zupełnie losowy poprzez losowanie kolejnego punktu na trasie z danej listy wszystkich punktów. Po każdym wyborze, wybrany punkt jest usuwany z listy w celu uniknięcia powstania trasy niedopuszczalnej (trasa przebiega przez każde miasto tylko raz). Następnie ocenia się przystosowanie osobników. Chromosom najlepiej przystosowany będzie reprezentował trasę o najkrótszej drodze. Każdy punkt jest reprezentowany za pomocą współrzędnych geograficznych w przestrzeni dwuwymiarowej, a całkowita droga jest sumą odległości euklidesowej pomiędzy kolejnymi punktami na trasie. Do kalkulacji odległości algorytm wykorzystuje macierz, która przechowuje obliczone odległości pomiędzy wszystkimi punktami: [29]

30 gdzie element x ij reprezentuje odległość x między punktami i i j. Kolejnym bardzo ważnym krokiem w algorytmie genetycznym jest selekcja, która polega na wyborze osobników biorących udział w tworzeniu nowej populacji. Poza znaną już z algorytmu podstawowego selekcją ruletkową istnieją również inne metody selekcji. W algorytmie zaimplementowano selekcję elitarną oraz turniejową, poza nimi znana jest również selekcja rankingowa: Selekcja rankingowa polega na ustawieniu kolejno osobników populacji w zależności od wartości ich funkcji przystosowania na liście rankingowej w kolejności od najlepszego lub najgorszego osobnika. Każdemu z osobników przypisuje się parametr nazywany rangą, natomiast prawdopodobieństwo przejścia i liczba kopii każdego osobnika jest ustalana za pomocą odpowiedniej funkcji dopasowania i ściśle zależy od wyznaczonej rangi. Selekcja turniejowa opiera się na losowaniu par osobników z danej populacji, a następnie dla każdej pary przeprowadzany jest pojedynek pod względem jakości rozwiązania. Do nowej populacji wchodzą zwycięzcy z poszczególnych par. Dzięki temu metoda umożliwia odrzucenie najsłabszych osobników, jak również uniemożliwia zdominowanie populacji przez najlepszego osobnika. Selekcja elitarna - cały proces selekcji sprowadza się do posortowania listy osobników od najlepiej przystosowanego do najgorszego i zatrzymaniu określonej liczby osobników, podanej funkcji jako parametr określający liczebność populacji. Cała reszta osobników jest likwidowana i nie bierze udziału w dalszych operacjach genetycznych. Kolejnym krokiem algorytmu jest proces krzyżowania. Dla wybranej reprezentacji ścieżkowej istnieją co najmniej trzy służące do tego celu operatory opisane dokładnie w (10): krzyżowanie z częściowym odwzorowaniem (PMX), z porządkowaniem (OX) oraz cykliczne (CX). W algorytmie wykorzystano metodę PMX. Metoda polega na tworzeniu potomka wybierając w sposób losowy podtrasę od jednego z rodziców i pozostawiając porządek reszty punktów od drugiego rodzica jeśli tylko jest to możliwe. Mając dwóch rodziców losuje się [30]

31 dwa punkty cięcia zaznaczone czerwoną linią (Rysunek 2-5), a potomków tworzy się wymieniając odcinki między tymi punktami cięcia: Rodzic Potomek Rodzic Rysunek 2-5 Krzyżowanie PMX (krok 1). Potomek Ta wymiana określa ciąg odwzorowań: Rysunek 2-6 Krzyżowanie PMX (ciąg odwzorowań) Następnie wstawia się punkty od początkowych rodziców dla, których nie zachodzi konflikt (nie mogą się dublować): Rodzic Potomek Rodzic Rysunek 2-7 Krzyżowanie PMX (krok 2). Potomek Miejsca, w których nastąpił konflikt wypełnia się korzystając z ciągu odwzorowań (Rysunek 2-6). Do potomka pierwszego w miejsce gdzie powinna być wartość 1 z powodu konfliktu (znajduje się na miejscu trzecim) zastępuje się wartością: 3 według odwzorowania: 1 3; wartość: 2 zastępuje się wartością: 6 (odwzorowanie 2 6) oraz w ten sam sposób wartość: 8 zastępuje się wartością: 4 otrzymując kompletnego potomka. W analogiczny sposób tworzy się drugiego potomka, gdzie oryginalna wartość: 4 zastępowana jest według odwzorowania 8 4 wartością: 8; wartość: 6 według 2 6 wartością: 2 oraz wartość: 3 (odwzorowanie: 1 3) wartością: 1. Otrzymując w ten sposób kompletną parę potomków: [31]

32 Rodzic Potomek Rodzic Rysunek 2-8 Krzyżowanie PMX (krok 3). Potomek Ostatnim krokiem w algorytmie genetycznym jest proces mutacji. W algorytmie wykorzystano operator IVM (ang. Inversion Mutation), który zaproponował David Fogel, ponieważ osiąga bardzo dobre wyniki w stosunku do innych tego typu operatorów jak np. ISM (ang. Insertion Mutation), który powoduje losowe przemieszczenie jednego wybranego miasta. Dokładne informacje na temat tych i innych operatorów można znaleźć w (11). Operator IVM jest podobny do operatora 2-opt, którego autorami są Lin i Kerningham. Polega on na wybraniu podtrasy przez losowe wybranie dwóch punktów oznaczonych linią czerwoną (Rysunek 2-9) i usunięcia jej z oryginalnej trasy osobnika, a następnie wstawia się ją w losowe miejsce (linia zielona Rysunek 2-9) w odwrotnej kolejności. Przykład: Rysunek 2-9 Mutacja IVM Na podstawie przedstawionych powyżej metod powstał algorytm genetyczny rozwiązujący problem komiwojażera. Postać tego algorytmu przedstawia poniższy pseudokod: Algorytm 1 Algorytm genetyczny dla TSP 1) losowe inicjowanie populacji wielkości POP_SIZE 2) 1 3) while _ do 4) ocena przystosowania( ) [32]

33 5) selekcja( ) 6) for ż 7) if rand(0,1)<cros_prob then 8) 1 9) 2 losuj rodzica z populacji 10) krzyżowanie( 1, 2) 11) end if 12) end for 13) for ż 14) if rand(0,1)<mut_prob then 15) mutacja( ) 16) end if 17) end for 18) end while Constants: POP_SIZE liczna osobników MAX_IT liczba iteracji CROS_PROB prawdopodobieństwo krzyżowania <0,1> MUT_PROB - prawdopodobieństwo mutacji <0,1> Variables: - licznik iteracji 1, 2 osobnik populacji Złożoność obliczeniowa elementów algorytmu genetycznego ( ): 1. - losowe inicjowanie osobnika ocena przystosowania osobnika krzyżowanie mutacja. Złożoność obliczeniowa procesu selekcji ( ść ): 1. - selekcja elitarna. [33]

34 2. - selekcja turniejowa. 2.2 Inteligencja rojowa Kolonia mrówek Mrówki należą do bardzo rozpowszechnionej grupy owadów, występującej prawie pod każdą szerokością geograficzną. Do opisu ich charakterystycznych cech, sposobu zachowań oraz algorytmów mrówkowych, których były inspiracją, posłużymy się informacjami zgromadzonymi przez Engelbrechta (12). Mrówki pojawiły się już 100 milionów lat temu, a ich aktualna populacja jest szacowana na liczbę 10 osobników. Większość z nich to owady społeczne żyjące w koloniach od 30 do miliona osobników. Mrówki jako pojedyncze jednostki są prymitywnymi owadami z ograniczoną pamięcią i możliwościami ułatwiającymi wykonanie jedynie prostych czynności. Ze względu na budowę anatomiczną, można je podzielić przynajmniej na trzy rodzaje. Samice i samce zajmują się wyłącznie tworzeniem potomstwa, inne zadania są wykonywane przez wyspecjalizowane robotnice. Polegają one przede wszystkim na: obronie, furażowaniu czyli poszukiwaniu i dostarczaniu pożywienia, opiekowaniu się potomstwem, budowaniu i utrzymaniu mrowiska przez nowe konstrukcje oraz czyszczeniu starych kanałów. Do prowadzenia tych wszystkich zadań niezbędna jest komunikacja. Może ona przebiegać w sposób bezpośredni za pomocą m.in. chemicznego kontaktu lub w sposób pośredni, gdy np. na modyfikacje otoczenia przez jednego osobnika drugi odpowiada w nowym otoczeniu, w późniejszym czasie. Ta forma komunikacji pośredniej nazywana jest stygmerią. Metoda optymalizacyjna z wykorzystaniem kolonii mrówek ACO (ang. ant colony optimization) powstała w wyniku obserwacji przez entymologów procesu furażowania. Mrówki posiadają interesującą umiejętność znajdywania najkrótszej ścieżki z mrowiska do źródła pożywienia, według której powstał pierwszy model algorytmu ACO stworzony przez Marco Dorigo na początku lat 90-tych. Do osiągnięcia tego celu niezbędna jest komunikacja. Mrówki korzystają w tym wypadku ze sposobu komunikacji pośredniej, bazującego na pozostawianiu feromonu (substancji chemicznej) na przebytej ścieżce. Pojedyncza mrówka porusza się w sposób losowy, aż do napotkania śladu feromonu. Wtedy z dużym prawdopodobieństwem podąża za napotkanym śladem. W miarę upływu czasu [34]

Algorytm genetyczny (genetic algorithm)-

Algorytm genetyczny (genetic algorithm)- Optymalizacja W praktyce inżynierskiej często zachodzi potrzeba znalezienia parametrów, dla których system/urządzenie będzie działać w sposób optymalny. Klasyczne podejście do optymalizacji: sformułowanie

Bardziej szczegółowo

Algorytm Genetyczny. zastosowanie do procesów rozmieszczenia stacji raportujących w sieciach komórkowych

Algorytm Genetyczny. zastosowanie do procesów rozmieszczenia stacji raportujących w sieciach komórkowych Algorytm Genetyczny zastosowanie do procesów rozmieszczenia stacji raportujących w sieciach komórkowych Dlaczego Algorytmy Inspirowane Naturą? Rozwój nowych technologii: złożone problemy obliczeniowe w

Bardziej szczegółowo

Algorytmy genetyczne

Algorytmy genetyczne Algorytmy genetyczne Motto: Zamiast pracowicie poszukiwać najlepszego rozwiązania problemu informatycznego lepiej pozwolić, żeby komputer sam sobie to rozwiązanie wyhodował! Algorytmy genetyczne służą

Bardziej szczegółowo

Algorytmy genetyczne. Materiały do laboratorium PSI. Studia stacjonarne i niestacjonarne

Algorytmy genetyczne. Materiały do laboratorium PSI. Studia stacjonarne i niestacjonarne Algorytmy genetyczne Materiały do laboratorium PSI Studia stacjonarne i niestacjonarne Podstawowy algorytm genetyczny (PAG) Schemat blokowy algorytmu genetycznego Znaczenia, pochodzących z biologii i genetyki,

Bardziej szczegółowo

Algorytmy genetyczne. Materiały do laboratorium PSI. Studia niestacjonarne

Algorytmy genetyczne. Materiały do laboratorium PSI. Studia niestacjonarne Algorytmy genetyczne Materiały do laboratorium PSI Studia niestacjonarne Podstawowy algorytm genetyczny (PAG) Schemat blokowy algorytmu genetycznego Znaczenia, pochodzących z biologii i genetyki, pojęć

Bardziej szczegółowo

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA ZADANIE KOMIWOJAŻERA METODY ROZWIĄZYWANIA. Specyfika zadania komiwojażera Reprezentacje Operatory

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA ZADANIE KOMIWOJAŻERA METODY ROZWIĄZYWANIA. Specyfika zadania komiwojażera Reprezentacje Operatory PLAN WYKŁADU Specyfika zadania komiwojażera Reprezentacje Operatory OPTYMALIZACJA GLOBALNA Wykład 5 dr inż. Agnieszka Bołtuć ZADANIE KOMIWOJAŻERA Koncepcja: komiwojażer musi odwiedzić każde miasto na swoim

Bardziej szczegółowo

Algorytmy mrówkowe (optymalizacja kolonii mrówek, Ant Colony optimisation)

Algorytmy mrówkowe (optymalizacja kolonii mrówek, Ant Colony optimisation) Algorytmy mrówkowe (optymalizacja kolonii mrówek, Ant Colony optimisation) Jest to technika probabilistyczna rozwiązywania problemów obliczeniowych, które mogą zostać sprowadzone do problemu znalezienie

Bardziej szczegółowo

Wybrane podstawowe rodzaje algorytmów

Wybrane podstawowe rodzaje algorytmów Wybrane podstawowe rodzaje algorytmów Tomasz Głowacki tglowacki@cs.put.poznan.pl Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia na Politechnice Poznańskiej w zakresie technologii informatycznych

Bardziej szczegółowo

Optymalizacja. Wybrane algorytmy

Optymalizacja. Wybrane algorytmy dr hab. inż. Instytut Informatyki Politechnika Poznańska www.cs.put.poznan.pl/mkomosinski, Andrzej Jaszkiewicz Problem optymalizacji kombinatorycznej Problem optymalizacji kombinatorycznej jest problemem

Bardziej szczegółowo

6. Klasyczny algorytm genetyczny. 1

6. Klasyczny algorytm genetyczny. 1 6. Klasyczny algorytm genetyczny. 1 Idea algorytmu genetycznego została zaczerpnięta z nauk przyrodniczych opisujących zjawiska doboru naturalnego i dziedziczenia. Mechanizmy te polegają na przetrwaniu

Bardziej szczegółowo

Algorytmy genetyczne

Algorytmy genetyczne 9 listopada 2010 y ewolucyjne - zbiór metod optymalizacji inspirowanych analogiami biologicznymi (ewolucja naturalna). Pojęcia odwzorowujące naturalne zjawiska: Osobnik Populacja Genotyp Fenotyp Gen Chromosom

Bardziej szczegółowo

ALGORYTMY GENETYCZNE ćwiczenia

ALGORYTMY GENETYCZNE ćwiczenia ćwiczenia Wykorzystaj algorytmy genetyczne do wyznaczenia minimum globalnego funkcji testowej: 1. Wylosuj dwuwymiarową tablicę 100x2 liczb 8-bitowych z zakresu [-100; +100] reprezentujących inicjalną populację

Bardziej szczegółowo

Zadanie 5 - Algorytmy genetyczne (optymalizacja)

Zadanie 5 - Algorytmy genetyczne (optymalizacja) Zadanie 5 - Algorytmy genetyczne (optymalizacja) Marcin Pietrzykowski mpietrzykowski@wi.zut.edu.pl wersja 1.0 1 Cel Celem zadania jest zapoznanie się z Algorytmami Genetycznymi w celu rozwiązywanie zadania

Bardziej szczegółowo

Algorytmy ewolucyjne NAZEWNICTWO

Algorytmy ewolucyjne NAZEWNICTWO Algorytmy ewolucyjne http://zajecia.jakubw.pl/nai NAZEWNICTWO Algorytmy ewolucyjne nazwa ogólna, obejmująca metody szczegółowe, jak np.: algorytmy genetyczne programowanie genetyczne strategie ewolucyjne

Bardziej szczegółowo

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO. Rzeczywistość (istniejąca lub projektowana).. Model fizyczny. 3. Model matematyczny (optymalizacyjny): a. Zmienne projektowania

Bardziej szczegółowo

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott Struktury danych i złożoność obliczeniowa Wykład 7 Prof. dr hab. inż. Jan Magott Problemy NP-zupełne Transformacją wielomianową problemu π 2 do problemu π 1 (π 2 π 1 ) jest funkcja f: D π2 D π1 spełniająca

Bardziej szczegółowo

Metody przeszukiwania

Metody przeszukiwania Metody przeszukiwania Co to jest przeszukiwanie Przeszukiwanie polega na odnajdywaniu rozwiązania w dyskretnej przestrzeni rozwiązao. Zwykle przeszukiwanie polega na znalezieniu określonego rozwiązania

Bardziej szczegółowo

Algorytmika Problemów Trudnych

Algorytmika Problemów Trudnych Algorytmika Problemów Trudnych Wykład 9 Tomasz Krawczyk krawczyk@tcs.uj.edu.pl Kraków, semestr letni 2016/17 plan wykładu Algorytmy aproksymacyjne: Pojęcie algorytmu aproksymacyjnego i współczynnika aproksymowalności.

Bardziej szczegółowo

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott Struktury danych i złożoność obliczeniowa Wykład 5 Prof. dr hab. inż. Jan Magott DMT rozwiązuje problem decyzyjny π przy kodowaniu e w co najwyżej wielomianowym czasie, jeśli dla wszystkich łańcuchów wejściowych

Bardziej szczegółowo

Techniki optymalizacji

Techniki optymalizacji Techniki optymalizacji Algorytm kolonii mrówek Idea Smuga feromonowa 1 Sztuczne mrówki w TSP Sztuczna mrówka agent, który porusza się z miasta do miasta Mrówki preferują miasta połączone łukami z dużą

Bardziej szczegółowo

Algorytmy metaheurystyczne Wykład 6. Piotr Syga

Algorytmy metaheurystyczne Wykład 6. Piotr Syga Algorytmy metaheurystyczne Wykład 6 Piotr Syga 10.04.2017 Wprowadzenie Inspiracje Wprowadzenie ACS idea 1 Zaczynamy z pustym rozwiązaniem początkowym 2 Dzielimy problem na komponenty (przedmiot do zabrania,

Bardziej szczegółowo

Algorytmy genetyczne. Paweł Cieśla. 8 stycznia 2009

Algorytmy genetyczne. Paweł Cieśla. 8 stycznia 2009 Algorytmy genetyczne Paweł Cieśla 8 stycznia 2009 Genetyka - nauka o dziedziczeniu cech pomiędzy pokoleniami. Geny są czynnikami, które decydują o wyglądzie, zachowaniu, rozmnażaniu każdego żywego organizmu.

Bardziej szczegółowo

Efektywność Procedur Obliczeniowych. wykład 5

Efektywność Procedur Obliczeniowych. wykład 5 Efektywność Procedur Obliczeniowych wykład 5 Modele procesu obliczeń (8) Jedno-, wielotaśmowa MT oraz maszyna RAM są równoważne w przypadku, jeśli dany problem jest rozwiązywany przez jeden model w czasie

Bardziej szczegółowo

MIO - LABORATORIUM. Imię i nazwisko Rok ak. Gr. Sem. Komputer Data ... 20 / EC3 VIII LAB...

MIO - LABORATORIUM. Imię i nazwisko Rok ak. Gr. Sem. Komputer Data ... 20 / EC3 VIII LAB... MIO - LABORATORIUM Temat ćwiczenia: TSP - Problem komiwojażera Imię i nazwisko Rok ak. Gr. Sem. Komputer Data Podpis prowadzącego... 20 / EC3 VIII LAB...... Zadanie Zapoznać się z problemem komiwojażera

Bardziej szczegółowo

Problem Komiwojażera - algorytmy metaheurystyczne

Problem Komiwojażera - algorytmy metaheurystyczne Problem Komiwojażera - algorytmy metaheurystyczne algorytm mrówkowy algorytm genetyczny by Bartosz Tomeczko. All rights reserved. 2010. TSP dlaczego metaheurystyki i heurystyki? TSP Travelling Salesman

Bardziej szczegółowo

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott Struktury danych i złozoność obliczeniowa Prof. dr hab. inż. Jan Magott Formy zajęć: Wykład 1 godz., Ćwiczenia 1 godz., Projekt 2 godz.. Adres strony z materiałami do wykładu: http://www.zio.iiar.pwr.wroc.pl/sdizo.html

Bardziej szczegółowo

Generowanie i optymalizacja harmonogramu za pomoca

Generowanie i optymalizacja harmonogramu za pomoca Generowanie i optymalizacja harmonogramu za pomoca na przykładzie generatora planu zajęć Matematyka Stosowana i Informatyka Stosowana Wydział Fizyki Technicznej i Matematyki Stosowanej Politechnika Gdańska

Bardziej szczegółowo

Algorytmy ewolucyjne. wprowadzenie

Algorytmy ewolucyjne. wprowadzenie Algorytmy ewolucyjne wprowadzenie Gracjan Wilczewski, www.mat.uni.torun.pl/~gracjan Toruń, 2005 Historia Podstawowy algorytm genetyczny został wprowadzony przez Johna Hollanda (Uniwersytet Michigan) i

Bardziej szczegółowo

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle Paweł Szołtysek 12 czerwca 2008 Streszczenie Planowanie produkcji jest jednym z problemów optymalizacji dyskretnej,

Bardziej szczegółowo

Obliczenia ewolucyjne - plan wykładu

Obliczenia ewolucyjne - plan wykładu Obliczenia ewolucyjne - plan wykładu Wprowadzenie Algorytmy genetyczne Programowanie genetyczne Programowanie ewolucyjne Strategie ewolucyjne Inne modele obliczeń ewolucyjnych Podsumowanie Ewolucja Ewolucja

Bardziej szczegółowo

Algorytmy ewolucyjne - algorytmy genetyczne. I. Karcz-Dulęba

Algorytmy ewolucyjne - algorytmy genetyczne. I. Karcz-Dulęba Algorytmy ewolucyjne - algorytmy genetyczne I. Karcz-Dulęba Algorytmy klasyczne a algorytmy ewolucyjne Przeszukiwanie przestrzeni przez jeden punkt bazowy Przeszukiwanie przestrzeni przez zbiór punktów

Bardziej szczegółowo

Obliczenia inspirowane Naturą

Obliczenia inspirowane Naturą Obliczenia inspirowane Naturą Wykład 01 Modele obliczeń Jarosław Miszczak IITiS PAN Gliwice 05/10/2016 1 / 33 1 2 3 4 5 6 2 / 33 Co to znaczy obliczać? Co to znaczy obliczać? Deterministyczna maszyna Turinga

Bardziej szczegółowo

Droga i cykl Eulera Przykłady zastosowania drogi i cyku Eulera Droga i cykl Hamiltona. Wykład 4. Droga i cykl Eulera i Hamiltona

Droga i cykl Eulera Przykłady zastosowania drogi i cyku Eulera Droga i cykl Hamiltona. Wykład 4. Droga i cykl Eulera i Hamiltona Wykład 4. Droga i cykl Eulera i Hamiltona 1 / 92 Grafy Eulera Droga i cykl Eulera Niech G będzie grafem spójnym. Definicja Jeżeli w grafie G istnieje zamknięta droga prosta zawierająca wszystkie krawędzie

Bardziej szczegółowo

Optymalizacja. Przeszukiwanie lokalne

Optymalizacja. Przeszukiwanie lokalne dr hab. inż. Instytut Informatyki Politechnika Poznańska www.cs.put.poznan.pl/mkomosinski, Maciej Hapke Idea sąsiedztwa Definicja sąsiedztwa x S zbiór N(x) S rozwiązań, które leżą blisko rozwiązania x

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 14c 2 Definicje indukcyjne Twierdzenia dowodzone przez indukcje Definicje indukcyjne Definicja drzewa

Bardziej szczegółowo

Metody Optymalizacji: Przeszukiwanie z listą tabu

Metody Optymalizacji: Przeszukiwanie z listą tabu Metody Optymalizacji: Przeszukiwanie z listą tabu Wojciech Kotłowski Instytut Informatyki Politechniki Poznańskiej email: imię.nazwisko@cs.put.poznan.pl pok. 2 (CW) tel. (61)665-2936 konsultacje: wtorek

Bardziej szczegółowo

Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie

Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie Więcej o sprawności algorytmów Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie Załóżmy, że możemy wykonać dane zadanie przy użyciu dwóch algorytmów: jednego o złożoności czasowej

Bardziej szczegółowo

Algorytmy genetyczne. Dariusz Banasiak. Katedra Informatyki Technicznej Wydział Elektroniki

Algorytmy genetyczne. Dariusz Banasiak. Katedra Informatyki Technicznej Wydział Elektroniki Dariusz Banasiak Katedra Informatyki Technicznej Wydział Elektroniki Obliczenia ewolucyjne (EC evolutionary computing) lub algorytmy ewolucyjne (EA evolutionary algorithms) to ogólne określenia używane

Bardziej szczegółowo

Odkrywanie algorytmów kwantowych za pomocą programowania genetycznego

Odkrywanie algorytmów kwantowych za pomocą programowania genetycznego Odkrywanie algorytmów kwantowych za pomocą programowania genetycznego Piotr Rybak Koło naukowe fizyków Migacz, Uniwersytet Wrocławski Piotr Rybak (Migacz UWr) Odkrywanie algorytmów kwantowych 1 / 17 Spis

Bardziej szczegółowo

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je. Problem porządkowania zwanego również sortowaniem jest jednym z najważniejszych i najpopularniejszych zagadnień informatycznych. Dane: Liczba naturalna n i ciąg n liczb x 1, x 2,, x n. Wynik: Uporządkowanie

Bardziej szczegółowo

Wykład 4. Droga i cykl Eulera i Hamiltona

Wykład 4. Droga i cykl Eulera i Hamiltona Wykład 4. i Hamiltona Wykład 4. i Hamiltona 1 / 35 Grafy Eulera Niech G będzie grafem spójnym. Definicja Jeżeli w grafie G istnieje zamknięta droga prosta zawierająca wszystkie krawędzie grafu, to taką

Bardziej szczegółowo

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) 16.01.2003 Algorytmy i Struktury Danych PIŁA ALGORYTMY ZACHŁANNE czas [ms] Porównanie Algorytmów Rozwiązyjących problem TSP 100 000 000 000,000 10 000 000

Bardziej szczegółowo

Algorytmy Mrówkowe. Daniel Błaszkiewicz. 11 maja 2011. Instytut Informatyki Uniwersytetu Wrocławskiego

Algorytmy Mrówkowe. Daniel Błaszkiewicz. 11 maja 2011. Instytut Informatyki Uniwersytetu Wrocławskiego Algorytmy Mrówkowe Instytut Informatyki Uniwersytetu Wrocławskiego 11 maja 2011 Opis Mrówki w naturze Algorytmy to stosunkowo nowy gatunek algorytmów optymalizacyjnych stworzony przez Marco Dorigo w 1992

Bardziej szczegółowo

Algorytmy metaheurystyczne podsumowanie

Algorytmy metaheurystyczne podsumowanie dr hab. inż. Instytut Informatyki Politechnika Poznańska www.cs.put.poznan.pl/mkomosinski, Andrzej Jaszkiewicz Problem optymalizacji kombinatorycznej Problem optymalizacji kombinatorycznej jest problemem

Bardziej szczegółowo

Teoria obliczeń i złożoność obliczeniowa

Teoria obliczeń i złożoność obliczeniowa Teoria obliczeń i złożoność obliczeniowa Kontakt: dr hab. inż. Adam Kasperski, prof. PWr. pokój 509 B4 adam.kasperski@pwr.wroc.pl materiały + informacje na stronie www. Zaliczenie: Egzamin Literatura Problemy

Bardziej szczegółowo

Aproksymacja funkcji a regresja symboliczna

Aproksymacja funkcji a regresja symboliczna Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(x), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(x), zwaną funkcją aproksymującą

Bardziej szczegółowo

Lista 6 Problemy NP-zupełne

Lista 6 Problemy NP-zupełne 1 Wprowadzenie Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Teoretyczne Podstawy Informatyki Lista 6 Problemy NP-zupełne Problem abstrakcyjny Q jest to relacja dwuargumentowa

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

Matematyczne Podstawy Informatyki Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 03/0 Przeszukiwanie w głąb i wszerz I Przeszukiwanie metodą

Bardziej szczegółowo

Wyznaczanie optymalnej trasy problem komiwojażera

Wyznaczanie optymalnej trasy problem komiwojażera Wyznaczanie optymalnej trasy problem komiwojażera Optymalizacja w podejmowaniu decyzji Opracowała: mgr inż. Natalia Malinowska Wrocław, dn. 28.03.2017 Wydział Elektroniki Politechnika Wrocławska Plan prezentacji

Bardziej szczegółowo

Plan. Zakres badań teorii optymalizacji. Teoria optymalizacji. Teoria optymalizacji a badania operacyjne. Badania operacyjne i teoria optymalizacji

Plan. Zakres badań teorii optymalizacji. Teoria optymalizacji. Teoria optymalizacji a badania operacyjne. Badania operacyjne i teoria optymalizacji Badania operacyjne i teoria optymalizacji Instytut Informatyki Poznań, 2011/2012 1 2 3 Teoria optymalizacji Teoria optymalizacji a badania operacyjne Teoria optymalizacji zajmuje się badaniem metod optymalizacji

Bardziej szczegółowo

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA OPERATOR KRZYŻOWANIA ETAPY KRZYŻOWANIA

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA OPERATOR KRZYŻOWANIA ETAPY KRZYŻOWANIA PLAN WYKŁADU Operator krzyżowania Operator mutacji Operator inwersji Sukcesja Przykłady symulacji AG Kodowanie - rodzaje OPTYMALIZACJA GLOBALNA Wykład 3 dr inż. Agnieszka Bołtuć OPERATOR KRZYŻOWANIA Wymiana

Bardziej szczegółowo

Algorytmy genetyczne dla problemu komiwojażera (ang. traveling salesperson)

Algorytmy genetyczne dla problemu komiwojażera (ang. traveling salesperson) Algorytmy genetyczne dla problemu komiwojażera (ang. traveling salesperson) 1 2 Wprowadzenie Sztandarowy problem optymalizacji kombinatorycznej. Problem NP-trudny. Potrzeba poszukiwania heurystyk. Chętnie

Bardziej szczegółowo

Programowanie dynamiczne cz. 2

Programowanie dynamiczne cz. 2 Programowanie dynamiczne cz. 2 Wykład 7 16 kwietnia 2019 (Wykład 7) Programowanie dynamiczne cz. 2 16 kwietnia 2019 1 / 19 Outline 1 Mnożenie ciągu macierzy Konstruowanie optymalnego rozwiązania 2 Podstawy

Bardziej szczegółowo

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II Wykład 6. Drzewa cz. II 1 / 65 drzewa spinające Drzewa spinające Zliczanie drzew spinających Drzewo T nazywamy drzewem rozpinającym (spinającym) (lub dendrytem) spójnego grafu G, jeżeli jest podgrafem

Bardziej szczegółowo

Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące.

Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące. Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące. Łukasz Kuszner pokój 209, WETI http://www.sphere.pl/ kuszner/ kuszner@sphere.pl Oficjalna strona wykładu http://www.sphere.pl/

Bardziej szczegółowo

AiSD zadanie trzecie

AiSD zadanie trzecie AiSD zadanie trzecie Gliwiński Jarosław Marek Kruczyński Konrad Marek Grupa dziekańska I5 5 czerwca 2008 1 Wstęp Celem postawionym przez zadanie trzecie było tzw. sortowanie topologiczne. Jest to typ sortowania

Bardziej szczegółowo

Algorytmy genetyczne w optymalizacji

Algorytmy genetyczne w optymalizacji Algorytmy genetyczne w optymalizacji Literatura 1. David E. Goldberg, Algorytmy genetyczne i ich zastosowania, WNT, Warszawa 1998; 2. Zbigniew Michalewicz, Algorytmy genetyczne + struktury danych = programy

Bardziej szczegółowo

Działanie algorytmu oparte jest na minimalizacji funkcji celu jako suma funkcji kosztu ( ) oraz funkcji heurystycznej ( ).

Działanie algorytmu oparte jest na minimalizacji funkcji celu jako suma funkcji kosztu ( ) oraz funkcji heurystycznej ( ). Algorytm A* Opracowanie: Joanna Raczyńska 1.Wstęp Algorytm A* jest heurystycznym algorytmem służącym do znajdowania najkrótszej ścieżki w grafie. Jest to algorytm zupełny i optymalny, co oznacza, że zawsze

Bardziej szczegółowo

1 Wprowadzenie do algorytmiki

1 Wprowadzenie do algorytmiki Teoretyczne podstawy informatyki - ćwiczenia: Prowadzący: dr inż. Dariusz W Brzeziński 1 Wprowadzenie do algorytmiki 1.1 Algorytm 1. Skończony, uporządkowany ciąg precyzyjnie i zrozumiale opisanych czynności

Bardziej szczegółowo

Algorytmy genetyczne

Algorytmy genetyczne Politechnika Łódzka Katedra Informatyki Stosowanej Algorytmy genetyczne Wykład 2 Przygotował i prowadzi: Dr inż. Piotr Urbanek Powtórzenie Pytania: Jaki mechanizm jest stosowany w naturze do takiego modyfikowania

Bardziej szczegółowo

Algorytm dyskretnego PSO z przeszukiwaniem lokalnym w problemie dynamicznej wersji TSP

Algorytm dyskretnego PSO z przeszukiwaniem lokalnym w problemie dynamicznej wersji TSP Algorytm dyskretnego PSO z przeszukiwaniem lokalnym w problemie dynamicznej wersji TSP Łukasz Strąk lukasz.strak@gmail.com Uniwersytet Śląski, Instytut Informatyki, Będzińska 39, 41-205 Sosnowiec 9 grudnia

Bardziej szczegółowo

Algorytmy sztucznej inteligencji

Algorytmy sztucznej inteligencji www.math.uni.lodz.pl/ radmat Przeszukiwanie z ograniczeniami Zagadnienie przeszukiwania z ograniczeniami stanowi grupę problemów przeszukiwania w przestrzeni stanów, które składa się ze: 1 skończonego

Bardziej szczegółowo

Matematyka dyskretna dla informatyków

Matematyka dyskretna dla informatyków Matematyka dyskretna dla informatyków Część I: Elementy kombinatoryki Jerzy Jaworski Zbigniew Palka Jerzy Szymański Uniwersytet im. Adama Mickiewicza Poznań 2007 4 Zależności rekurencyjne Wiele zależności

Bardziej szczegółowo

Maszyna Turinga języki

Maszyna Turinga języki Maszyna Turinga języki Teoria automatów i języków formalnych Dr inż. Janusz Majewski Katedra Informatyki Maszyna Turinga (1) b b b A B C B D A B C b b Q Zależnie od symbolu obserwowanego przez głowicę

Bardziej szczegółowo

Algorytmy stochastyczne, wykład 01 Podstawowy algorytm genetyczny

Algorytmy stochastyczne, wykład 01 Podstawowy algorytm genetyczny Algorytmy stochastyczne, wykład 01 J. Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2014-02-21 In memoriam prof. dr hab. Tomasz Schreiber (1975-2010) 1 2 3 Różne Orientacyjny

Bardziej szczegółowo

Algorytmy mrówkowe. P. Oleksyk. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Inteligentne systemy informatyczne

Algorytmy mrówkowe. P. Oleksyk. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Inteligentne systemy informatyczne y mrówkowe P. Oleksyk Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Inteligentne systemy informatyczne 14 kwietnia 2015 1 Geneza algorytmu - biologia 2 3 4 5 6 7 8 Geneza

Bardziej szczegółowo

Algorytmy ewolucyjne 1

Algorytmy ewolucyjne 1 Algorytmy ewolucyjne 1 2 Zasady zaliczenia przedmiotu Prowadzący (wykład i pracownie specjalistyczną): Wojciech Kwedlo, pokój 205. Konsultacje dla studentów studiów dziennych: poniedziałek,środa, godz

Bardziej szczegółowo

Minimalne drzewa rozpinające

Minimalne drzewa rozpinające KNM UŚ 26-28 listopada 2010 Ostrzeżenie Wprowadzenie Motywacja Definicje Niektóre pojęcia pojawiające się podczas tego referatu są naszymi autorskimi tłumaczeniami z języka angielskiego. Nie udało nam

Bardziej szczegółowo

Systemy mrówkowe. Opracowali: Dawid Strucker, Konrad Baranowski

Systemy mrówkowe. Opracowali: Dawid Strucker, Konrad Baranowski Systemy mrówkowe Opracowali: Dawid Strucker, Konrad Baranowski Wprowadzenie Algorytmy mrówkowe oparte są o zasadę inteligencji roju (ang. swarm intelligence). Służą głównie do znajdowania najkrótszej drogi

Bardziej szczegółowo

ALGORYTMY GENETYCZNE (wykład + ćwiczenia)

ALGORYTMY GENETYCZNE (wykład + ćwiczenia) ALGORYTMY GENETYCZNE (wykład + ćwiczenia) Prof. dr hab. Krzysztof Dems Treści programowe: 1. Metody rozwiązywania problemów matematycznych i informatycznych.. Elementarny algorytm genetyczny: definicja

Bardziej szczegółowo

Systemy uczące się Lab 4

Systemy uczące się Lab 4 Systemy uczące się Lab 4 dr Przemysław Juszczuk Katedra Inżynierii Wiedzy, Uniwersytet Ekonomiczny 26 X 2018 Projekt zaliczeniowy Podstawą zaliczenia ćwiczeń jest indywidualne wykonanie projektu uwzględniającego

Bardziej szczegółowo

Heurystyki. Strategie poszukiwań

Heurystyki. Strategie poszukiwań Sztuczna inteligencja Heurystyki. Strategie poszukiwań Jacek Bartman Zakład Elektrotechniki i Informatyki Instytut Techniki Uniwersytet Rzeszowski DLACZEGO METODY PRZESZUKIWANIA? Sztuczna Inteligencja

Bardziej szczegółowo

Strefa pokrycia radiowego wokół stacji bazowych. Zasięg stacji bazowych Zazębianie się komórek

Strefa pokrycia radiowego wokół stacji bazowych. Zasięg stacji bazowych Zazębianie się komórek Problem zapożyczania kanałów z wykorzystaniem narzędzi optymalizacji Wprowadzenie Rozwiązanie problemu przydziału częstotliwości prowadzi do stanu, w którym każdej stacji bazowej przydzielono żądaną liczbę

Bardziej szczegółowo

Programowanie celowe #1

Programowanie celowe #1 Programowanie celowe #1 Problem programowania celowego (PC) jest przykładem problemu programowania matematycznego nieliniowego, który można skutecznie zlinearyzować, tzn. zapisać (i rozwiązać) jako problem

Bardziej szczegółowo

Problem komiwojażera ACO. Zagadnienie optymalizacyjne, polegające na znalezieniu minimalnego cyklu Hamiltona w pełnym grafie ważonym.

Problem komiwojażera ACO. Zagadnienie optymalizacyjne, polegające na znalezieniu minimalnego cyklu Hamiltona w pełnym grafie ważonym. Problem komiwojażera ACO Zagadnienie optymalizacyjne, polegające na znalezieniu minimalnego cyklu Hamiltona w pełnym grafie ważonym. -Wikipedia Problem do rozwiązania zazwyczaj jest przedstawiany jako

Bardziej szczegółowo

Matematyka dyskretna

Matematyka dyskretna Matematyka dyskretna Wykład 13: Teoria Grafów Gniewomir Sarbicki Literatura R.J. Wilson Wprowadzenie do teorii grafów Definicja: Grafem (skończonym, nieskierowanym) G nazywamy parę zbiorów (V (G), E(G)),

Bardziej szczegółowo

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1 Wykład Algorytmy grafowe metoda zachłanna. Właściwości algorytmu zachłannego:. W przeciwieństwie do metody programowania dynamicznego nie występuje etap dzielenia na mniejsze realizacje z wykorzystaniem

Bardziej szczegółowo

Zaawansowane algorytmy i struktury danych

Zaawansowane algorytmy i struktury danych Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań teoretycznych z egzaminów. Strona 1 z 12 Pytania teoretyczne z egzaminu pisemnego z 25 czerwca 2014 (studia dzienne)

Bardziej szczegółowo

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych.

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych. Grafy Graf Graf (ang. graph) to zbiór wierzchołków (ang. vertices), które mogą być połączone krawędziami (ang. edges) w taki sposób, że każda krawędź kończy się i zaczyna w którymś z wierzchołków. Graf

Bardziej szczegółowo

Algorytmy mrówkowe. H. Bednarz. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Inteligentne systemy informatyczne

Algorytmy mrówkowe. H. Bednarz. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Inteligentne systemy informatyczne Algorytmy mrówkowe H. Bednarz Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Inteligentne systemy informatyczne 13 kwietnia 2015 1 2 3 4 Przestrzeń poszukiwań Ograniczenia

Bardziej szczegółowo

Klasyczne zagadnienie przydziału

Klasyczne zagadnienie przydziału Klasyczne zagadnienie przydziału Można wyodrębnić kilka grup problemów, w których zadaniem jest odpowiednie rozmieszczenie posiadanych zasobów. Najprostszy problem tej grupy nazywamy klasycznym zagadnieniem

Bardziej szczegółowo

LABORATORIUM 4: Algorytmy ewolucyjne cz. 2 wpływ operatorów krzyżowania i mutacji na skuteczność poszukiwań AE

LABORATORIUM 4: Algorytmy ewolucyjne cz. 2 wpływ operatorów krzyżowania i mutacji na skuteczność poszukiwań AE Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny, Politechnika Śląska www.imio.polsl.pl METODY HEURYSTYCZNE LABORATORIUM 4: Algorytmy ewolucyjne cz. 2 wpływ operatorów krzyżowania

Bardziej szczegółowo

Ćwiczenie 1 Planowanie trasy robota mobilnego w siatce kwadratów pól - Algorytm A

Ćwiczenie 1 Planowanie trasy robota mobilnego w siatce kwadratów pól - Algorytm A Ćwiczenie 1 Planowanie trasy robota mobilnego w siatce kwadratów pól - Algorytm A Zadanie do wykonania 1) Utwórz na pulpicie katalog w formacie Imię nazwisko, w którym umieść wszystkie pliki związane z

Bardziej szczegółowo

Algorytmiczna teoria grafów

Algorytmiczna teoria grafów Przedmiot fakultatywny 20h wykładu + 20h ćwiczeń 21 lutego 2014 Zasady zaliczenia 1 ćwiczenia (ocena): kolokwium, zadania programistyczne (implementacje algorytmów), praca na ćwiczeniach. 2 Wykład (egzamin)

Bardziej szczegółowo

Metody Programowania

Metody Programowania POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Metody Programowania www.pk.edu.pl/~zk/mp_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład 8: Wyszukiwanie

Bardziej szczegółowo

Heurystyczne metody przeszukiwania

Heurystyczne metody przeszukiwania Heurystyczne metody przeszukiwania Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 Politechnika Wrocławska Pojęcie heurystyki Metody heurystyczne są jednym z ważniejszych narzędzi sztucznej inteligencji.

Bardziej szczegółowo

Algorytmy genetyczne w interpolacji wielomianowej

Algorytmy genetyczne w interpolacji wielomianowej Algorytmy genetyczne w interpolacji wielomianowej (seminarium robocze) Seminarium Metod Inteligencji Obliczeniowej Warszawa 22 II 2006 mgr inż. Marcin Borkowski Plan: Przypomnienie algorytmu niszowego

Bardziej szczegółowo

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami dr inż. Mariusz Uchroński Wrocławskie Centrum Sieciowo-Superkomputerowe Agenda Cykliczny problem przepływowy

Bardziej szczegółowo

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa. Plan Procedura decyzyjna Reguły α i β - algorytm Plan Procedura decyzyjna Reguły α i β - algorytm Logika obliczeniowa Instytut Informatyki 1 Procedura decyzyjna Logiczna konsekwencja Teoria aksjomatyzowalna

Bardziej szczegółowo

Algorytm. Krótka historia algorytmów

Algorytm. Krótka historia algorytmów Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne

Bardziej szczegółowo

Algorytmy genetyczne

Algorytmy genetyczne Politechnika Łódzka Katedra Informatyki Stosowanej Algorytmy genetyczne Wykład 2 Przygotował i prowadzi: Dr inż. Piotr Urbanek Powtórzenie Pytania: Jaki mechanizm jest stosowany w naturze do takiego modyfikowania

Bardziej szczegółowo

Programowanie dynamiczne i algorytmy zachłanne

Programowanie dynamiczne i algorytmy zachłanne Programowanie dynamiczne i algorytmy zachłanne Tomasz Głowacki tglowacki@cs.put.poznan.pl Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia na Politechnice Poznańskiej w zakresie technologii

Bardziej szczegółowo

Dobór parametrów algorytmu ewolucyjnego

Dobór parametrów algorytmu ewolucyjnego Dobór parametrów algorytmu ewolucyjnego 1 2 Wstęp Algorytm ewolucyjny posiada wiele parametrów. Przykładowo dla algorytmu genetycznego są to: prawdopodobieństwa stosowania operatorów mutacji i krzyżowania.

Bardziej szczegółowo

Zadania laboratoryjne i projektowe - wersja β

Zadania laboratoryjne i projektowe - wersja β Zadania laboratoryjne i projektowe - wersja β 1 Laboratorium Dwa problemy do wyboru (jeden do realizacji). 1. Water Jug Problem, 2. Wieże Hanoi. Water Jug Problem Ograniczenia dla każdej z wersji: pojemniki

Bardziej szczegółowo

Suma dwóch grafów. Zespolenie dwóch grafów

Suma dwóch grafów. Zespolenie dwóch grafów Suma dwóch grafów G 1 = ((G 1 ), E(G 1 )) G 2 = ((G 2 ), E(G 2 )) (G 1 ) i (G 2 ) rozłączne Suma G 1 G 2 graf ze zbiorem wierzchołków (G 1 ) (G 2 ) i rodziną krawędzi E(G 1 ) E(G 2 ) G 1 G 2 G 1 G 2 Zespolenie

Bardziej szczegółowo

TEORIA GRAFÓW I SIECI

TEORIA GRAFÓW I SIECI TEORIA GRAFÓW I SIECI Temat nr 3: Marszruty, łańcuchy, drogi w grafach dr hab. inż. Zbigniew TARAPATA, prof. WAT e-mail: zbigniew.tarapata@wat.edu.pl http://tarapata.edu.pl tel.: 261-83-95-04, p.225/100

Bardziej szczegółowo

Techniki optymalizacji

Techniki optymalizacji Techniki optymalizacji Dokładne algorytmy optymalizacji Maciej Hapke maciej.hapke at put.poznan.pl Problem optymalizacji kombinatorycznej Problem optymalizacji kombinatorycznej jest problemem minimalizacji

Bardziej szczegółowo

Techniki optymalizacji

Techniki optymalizacji Techniki optymalizacji Metaheurystyki oparte na algorytmach lokalnego przeszukiwania Maciej Hapke maciej.hapke at put.poznan.pl GRASP Greedy Randomized Adaptive Search Procedure T.A. Feo, M.G.C. Resende,

Bardziej szczegółowo

Tomasz M. Gwizdałła 2012/13

Tomasz M. Gwizdałła 2012/13 METODY METODY OPTYMALIZACJI OPTYMALIZACJI Tomasz M. Gwizdałła 2012/13 Informacje wstępne Tomasz Gwizdałła Katedra Fizyki Ciała Stałego UŁ Pomorska 149/153, p.523b tel. 6355709 tomgwizd@uni.lodz.pl http://www.wfis.uni.lodz.pl/staff/tgwizdalla

Bardziej szczegółowo

OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI

OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI Autoreferat do rozprawy doktorskiej OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI Michał Mazur Gliwice 2016 1 2 Montaż samochodów na linii w

Bardziej szczegółowo