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 i ich zastosowań w przemyśle" POKL.04.01.02-00-189/10
Wybrane podstawowe rodzaje algorytmów algorytmy dokładne i przybliżone algorytmy pełnego przeglądu metoda podziału i ograniczeń metaheurystyki algorytmy zachłanne algorytmy aproksymacyjne programowanie dynamiczne 2
Problem Komiwojażera - wprowadzenie Problem Komiwojażera (Travelling Saleseman Problem) w wersji optymalizacyjnej polega na znalezieniu cyklu Hamiltona o minimalnej długości w grafie ważonym Problem TSP jest silnie NP-trudny 3
Problem TSP-path Polega na znalezieniu najkrótszej ścieżki Hamiltona w grafie ważonym Problem TSP-path jest silnie NP-trudny 4
Algorytm pełnego przeglądu Wymagają wygenerowania i sprawdzenia każdego dopuszczalnego rozwiązania Wymagają systematycznej metody przeglądu zbioru wszystkich możliwych rozwiązań 5
Algorytm pełnego przeglądu dla problemu TSP-path Wygenerowanie wszystkich rozwiązań dopuszczalnych: wygenerowanie wszystkich możliwych ścieżek Hamiltona Sprawdzenie długości każdej ścieżki Hamiltona i wybranie jako rozwiązania ścieżki Hamiltona o najmniejszej możliwej długości Systematyczna metoda przeszukania zbioru wszystkich możliwych rozwiązań: Metoda rekurencyjna: wygenerowanie wszystkich możliwych permutacji n wierzchołków (wybranie pierwszego elementu i wygenerowanie (n-1)! Permutacji) Sprawdzenie permutacji wierzchołków, które są rozwiązaniami dopuszczalnymi 6
Algorytm pełnego przeglądu - zadanie Znaleźć najkrótszą drogę przechodzącą przez wszystkie miasta (Toruń, Bydgoszcz, Włocławek, Poznań), wiedząc, że odległości między miastami wynoszą: Toruń Bydgoszcz (40 km) Toruń Włocławek (50 km) Toruń Poznań (140 km) Bydgoszcz Włocławek (80 km) Bydgoszcz Poznań (150 km) Włocławek Poznań (180 km) 7
Metoda podziału i ograniczeń (B&B) Przegląd zupełny zastępowany jest przeglądem ukierunkowanym Rozwiązania są dzielone na rozłączne zbiory (podział) Definiuje się ograniczenia: Ograniczenie górne: pewne dopuszczalne rozwiązanie uzyskane z bieżącego częściowego rozwiązania za pomocą np. heurystyki Ograniczenie dolne: wyznacza się poprzez osłabienie ograniczeń obszaru dopuszczalnego Część zbiorów rozwiązań może zostać odrzucona bez potrzeby przeglądania ich (odcięcie) 8
Zadanie znajdź metodą B&B rozwiązanie problemu TSP-path Problem przedstawiony jako drzewo wyborów kolejnych wierzchołków w ścieżce Hamiltona Podział wg kolejnego wierzchołka w ścieżce Hamiltona Ograniczenie (reprezentacja: macierz sąsiedztwa n*n): Upper bound wartość najlepszego aktualnie znalezionego rozwiązania problemu TSP (na początku wartość dowolnej ścieżki Hamiltona) Lower bound wartość częściowego rozwiązania dla danego poddrzewa o wysokości k, powiększona o sumę n-k najmniejszych wartości z macierzy sąsiedztwa, wybranych dowolnie z tych wierszy i kolumn, z których elementy nie znajdują się w częściowym rozwiązaniu 9
Algorytm zachłanny W każdym kroku algorytmu dokonuje się lokalnie optymalnego wyboru Algorytm zachłanny nie musi gwarantować znalezienia optymalnego rozwiązania Należy zdefiniować: Zbiór kandydatów Funkcję oceny doboru kandydata Ocenę możliwości wybrania kandydata Funkcję celu Funkcję sprawdzającą, czy znaleziono pełne rozwiązanie 10
Zadanie znajdź metodą zachłanną rozwiązanie problemu TSP-path Wybór dowolnego wierzchołka (miasta) startowego z listy wszystkich możliwych kandydatów jako rozwiązania częściowego i usunięcie tego wierzchołka (miasta) z listy kandydatów Łańcuch stanowiący rozwiązanie częściowe jest rozszerzany, poprzez dodanie na jego końcu wierzchołka (miasta), do którego łuk prowadzący z ostatniego wierzchołka (miasta) rozwiązania częściowego ma najniższą wagę (odległość pomiędzy miastami jest najmniejsza) Wybrany do rozwiązania częściowego wierzchołek (miasto) jest usuwany z listy kandydatów Jeśli lista kandydatów jest niepusta to następuje powrót do 2 kroku algorytmu 11
Metaheurystyki Ogólny sposób postępowania do znajdowania przybliżonych rozwiązań problemów obliczeniowych Wielomianowa metoda obliczeniowa iteracyjnie polepszająca rozwiązanie Definiuje się pojęcie sąsiedztwa danego rozwiązania Najbardziej znane metaheurystyki to: Taboo Search Algorytm Ewolucyjny Symulowane wyżarzanie GRASP 12
Algorytm ewolucyjny Metoda optymalizacyjna inspirowana ewolucją biologiczną; wprowadza się pojęcia: Populacja Osobnik Genotyp Fenotyp Wykorzystuje mechanizmy zaczęrpnięte z przyrody takie jak: Rekombinacja Selekcja Mutacja Reprodukcja 13
Zadanie algorytm ewolucyjny do rozwiązania problemu TSP-path (1) Populacja: zbiór ścieżek Hamiltona w grafie ważonym Funkcja oceny heurystycznej: długość ścieżki Hamiltona w grafie Krzyżowanie: wybór najdłuższych wspólnych podścieżek dwóch osobników i ich permutacja Mutacja: zamiana miejscem dwóch wierzchołków w rozwiązaniu (ścieżki Hamiltona) Zwykle w procesie eksperymentu obliczeniowego określa się parametry problemu takie jak wielkość populacji, prawdopodobieństwo mutacji, liczba iteracji 14
Zadanie algorytm ewolucyjny do rozwiązania problemu TSP-path (2) Populacja: Poznań, Toruń, Bydgoszcz, Włocławek Włocławek, Bydgoszcz, Poznań, Toruń Poznań, Bydgoszcz, Toruń, Włocławek Liczba iteracji: 2 Prawdopodobieństwo mutacji : 0.05 Wielkość populacji: 3 15
Algorytmy aproksymacyjne Algorytm znajdujący przybliżone ( prawie optymalne ) rozwiązanie problemu optymalizacyjnego w czasie wielomianowym Najważniejszą różnicą pomiędzy heurystykami a algorytmami aproksymacyjnymi jest ograniczenie względne p(n) występujące dla algorytmów aproksymacyjnych: gdzie: max( C C - C* to koszt rozwiązania optymalnego, * C C - C to koszt rozwiązania znalezionego przez przez algorytm aproksymacyjny * ) p( n) 16
Biblioteki oligonukleotydów antykomplementarnych sformułowanie problemu 5 6 2 11 18 14 7 3 22 12 8 9 4 2 15 16 SUMA = 110 17
Biblioteki oligonukleotydów antykomplmentarnych- algorytm aproksymacyjny Metoda aproksymacyjna Wybierana jest ćwiartka o najwyższej sumie elementów Wybierana jest ćwiartka leżąca naprzeciwko tej ćwiartki 5 6 2 11 18 14 7 3 22 12 8 9 4 2 15 16 SUMA = 91 18
Biblioteki oligonukleotydów antykomplementarnych oszacowanie jakości algorytmu aproksymacyjnego Metoda aproksymacyjna: Wybierana jest ćwiartka o najwyższej sumie elementów Wybierana jest ćwiartka leżąca naprzeciwko tej ćwiartki n-1 1 n n-1 19