SID Wykład 3 Przeszukiwanie iteracyjne

Podobne dokumenty
Sztuczna Inteligencja i Systemy Doradcze

SID Wykład 2 Przeszukiwanie

wykład 4 Strategie przeszukiwania lokalnego i problemy optymalizacji dr inż. Joanna Kołodziejczyk Zakład Sztucznej Inteligencji ISZiMM

Sztuczna Inteligencja i Systemy Doradcze

Sztuczna Inteligencja i Systemy Doradcze

Optymalizacja. Wybrane algorytmy

Przykłady problemów optymalizacyjnych

Metody przeszukiwania

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

SID Wykład 10 Systemy uczace się

Podstawy sztucznej inteligencji

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

Heurystyczne metody przeszukiwania

Sztuczna Inteligencja Projekt

Algorytmy memetyczne (hybrydowe algorytmy ewolucyjne)

Algorytmy metaheurystyczne podsumowanie

Strategie ewolucyjne. Gnypowicz Damian Staniszczak Łukasz Woźniak Marek

Optymalizacja. Symulowane wyżarzanie

Heurystyki. Strategie poszukiwań

Matematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne

Techniki optymalizacji

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

Optymalizacja. Przeszukiwanie lokalne

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

Wprowadzenie do Sztucznej Inteligencji

Reguły decyzyjne, algorytm AQ i CN2. Reguły asocjacyjne, algorytm Apriori.

SID Wykład 1 Wprowadzenie

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

Wybrane podstawowe rodzaje algorytmów

Wprowadzenie do Sztucznej Inteligencji

Metody Optymalizacji: Przeszukiwanie z listą tabu

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

Problemy z ograniczeniami

B jest globalnym pokryciem zbioru {d} wtedy i tylko wtedy, gdy {d} zależy od B i nie istnieje B T takie, że {d} zależy od B ;

Algorytmy ewolucyjne 1

Algorytmy stochastyczne laboratorium 03

Zadania laboratoryjne i projektowe - wersja β

Algorytmy i struktury danych.

Elementy kognitywistyki II: Sztuczna inteligencja. WYKŁAD V: Agent wciąż szuka rozwiązania (choć już nie na ślepo)

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel

Wprowadzenie do Sztucznej Inteligencji

CLUSTERING. Metody grupowania danych

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

ALGORYTMY GENETYCZNE ćwiczenia

Algorytmy ewolucyjne NAZEWNICTWO

Kolorowanie wierzchołków grafu

Algorytm genetyczny (genetic algorithm)-

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

Techniki optymalizacji

Algorytm simplex i dualność

Problem Komiwojażera - algorytmy metaheurystyczne

Wstęp do sieci neuronowych, wykład 12 Łańcuchy Markowa

Metody Programowania

Przeszukiwanie lokalne

Sortowanie topologiczne skierowanych grafów acyklicznych

Analiza Algorytmów 2018/2019 (zadania na laboratorium)

Algorytm hybrydowy dla alokacji portfela inwestycyjnego przy ograniczonych zasobach

OPTYMALNA ALOKACJA OBIEKTÓW Z WYKORZYSTANIEM ALGORYTMÓW EWOLUCYJNYCH

SZTUCZNA INTELIGENCJA

Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova

Przegląd 4 Aerodynamika, algorytmy genetyczne, duże kroki i dynamika pozycji. Modelowanie fizyczne w animacji komputerowej Maciej Matyka

Sztuczna Inteligencja Projekt

Programowanie dynamiczne cz. 2

Metody Rozmyte i Algorytmy Ewolucyjne

Zbiory przybliżone, cz. 1 (wersja do druku) dr. Piotr Szczuko

procesów Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Zadanie 5 - Algorytmy genetyczne (optymalizacja)

Tabu Search (Poszukiwanie z zakazami)

Wstęp do sieci neuronowych, wykład 12 Wykorzystanie sieci rekurencyjnych w optymalizacji grafowej

Data Mining Wykład 5. Indukcja drzew decyzyjnych - Indeks Gini & Zysk informacyjny. Indeks Gini. Indeks Gini - Przykład

Wyk lad 8: Leniwe metody klasyfikacji

Algorytmy genetyczne

Porządek symetryczny: right(x)

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

LABORATORIUM 7: Problem komiwojażera (TSP) cz. 2

Wykorzystanie algorytmów mrówkowych w dynamicznym problem

Podstawowe własności grafów. Wykład 3. Własności grafów

ALHE Z11 Jarosław Arabas wykład 11

Optymalizacja ciągła

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

Modelowanie motywów łańcuchami Markowa wyższego rzędu

WYKŁAD 11 Uczenie maszynowe drzewa decyzyjne

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

Spacery losowe generowanie realizacji procesu losowego

SID Wykład 8 Sieci neuronowe

Planowanie drogi robota, algorytm A*

Algorytmy metaheurystyczne Wykład 6. Piotr Syga

Generowanie liczb o zadanym rozkładzie. ln(1 F (y) λ

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

Strategie ewolucyjne (ang. evolu4on strategies)

Elementy modelowania matematycznego

Generowanie i optymalizacja harmonogramu za pomoca

Rysunek 8. Rysunek 9.

Przeszukiwanie z nawrotami. Wykład 8. Przeszukiwanie z nawrotami. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279

Programowanie liniowe metoda sympleks

Metody przeszukiwania lokalnego

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

Analiza stanów gry na potrzeby UCT w DVRP

Programowanie liniowe metoda sympleks

Transkrypt:

SID Wykład 3 Przeszukiwanie iteracyjne Wydział Matematyki, Informatyki i Mechaniki UW slezak@mimuw.edu.pl

Iteracyjne poprawianie Przy wielu problemach optymalizacyjnych ścieżka jest nieistotna: stan docelowy sam w sobie jest rozwiazaniem Przestrzeń stanów = zbiór konfiguracji pełnych ; problem wymaga znalezienia konfiguracji optymalnej lub spełniajacej pewne warunki, np. alokacja zasobów w czasie Dla tego typu problemów można użyć algorytmu iteracyjnego poprawiania: przechowuje tylko stan bieżacy i próbuje go poprawić Fakt: Algorytmy iteracyjnego poprawiania wykonywane sa w stałej pamięci

Iteracyjne poprawianie Stany: wszystkie zmienne przypisane, więzy niekoniecznie spełnione Stan poczatkowy: dowolny stan z pełnym przypisaniem zmiennych Funkcja następnika: zmienia wartość zmiennej powodujacej konflikt więzów w bieżacym stanie Cel: wszystkie więzy spełnione

Przeszukiwanie lokalne Przeszukiwanie lokalne zastępuje stan bieżacy jednym z jego bezpośrednich sasiadów function LOCAL-SEARCH(problem) returns a state inputs: problem - a problem local variables: current - a node best - a node current MAKE-NODE(INITIAL-STATE[problem]) best current repeat current any successor of current if VALUE[current] > VALUE[best] then best current end if until best is optimal, or VALUE[best] is high enough, or enough time has elapsed end function

Przykład: przeszukiwanie lokalne - SAT (p 11 p 12... p 1k1 ) (p 21 p 22... p 2k2 )... (p n1 p n2... p nkn ) gdzie p ij sa literałami. Ustalamy pewne wartościowanie zmiennych zdaniowych: x 1 = true,x 2 = false,x 3 = false,...,x M = true x = (1,0,0,...,1) Bezpośredni sasiedzi to takie wartościowania zmiennych, które różnia się wartoświowaniem dokładnie jednej zmiennej zdaniowej.

Hill-climbing Inaczej przeszukiwanie lokalne zachłanne lub wspinanie wzdłuż gradientu. Wybiera zawsze sasiada z największa wartościa funkcji oceny, tzn. wyznaczanego przez gradient funkcji. function HILL-CLIMBING(problem) returns a state that is a local maximum inputs: problem - a problem local variables: current - a node neighbour - a node current MAKE-NODE(INITIAL-STATE[problem]) loop neighbour a highest-valued successor of current if VALUE[neighbour] < VALUE[current] then return STATE[current] end if current neighbour end loop end function

Hill-climbing: lokalne maksima Algorytm może utknać w lokalnym maksimum funkcji oceny stanów. objective function global maximum shoulder local maximum flat local maximum current state state space

Przykład: hill-climbing (MAX-SAT) (p 11 p 12... p 1k1 ) (p 21 p 22... p 2k2 )... (p n1 p n2... p nkn ) gdzie p ij sa literałami. Zaczynamy od pewnego wartościowania zmiennych zdaniowych: x 1 = true,x 2 = false,x 3 = false,...,x M = true x = (1,0,0,...,1) Spośród bezpośrednich sasiadów wybieramy tego, dla którego ocena rozwiazania jest największa.

Start wielokrotny Zaleta: Zwiększa szansę na znalezienie lokalnego maksimum bliskiego optymalnemu rozwiazaniu. Cena: Wielokrotnie większy koszt czasowy. function MULTISTART-HILL-CLIMBING(problem) returns a state that is a local maximum inputs: problem - a problem local variables: initial - an initial node in an iteration localmax - the result of a single hill-climbing best - a best node for a number of iterations do initial a random node localmax HILL-CLIMBING(problem, initial) if VALUE[localmax] > VALUE[best] then best localmax end if end forreturn best end function

Symulowane wyżarzanie Pomysł: dopuszcza złe posunięcia, ale stopniowo maleje ich częstość wraz z upływem czasu function SIMULATED-ANNEALING(problem, schedule) returns a solution state inputs: problem - a problem schedule - a mapping from time to temperature local variables: current - a node next - a node T - a temperature" controlling probability of downward steps current MAKE-NODE(INITIAL-STATE[problem]) for t 1 to do T schedule[t] if T = 0 then return current end if next a randomly selected successor of current E = VALUE[next] - VALUE[current] if E > 0 then current next else current next only with probability e E/T end if end for end function

Symulowane wyżarzanie: funkcja temperatury Wybór temperatury poczatkowej: Na poczatku powinna umożliwiać akceptowanie wszystkich posunięć: e E/T 0 1 Wybór funkcji redukcji temperatury: Redukcja co d kroków (d stopień rozgałęzienia przestrzeni) czynnikiem geometrycznym T := T r, r [0.8;0.99] T k = T 0 log 2 (k+2), wartość po k-tej redukcji

Symulowane wyżarzanie: własności Dla stałej wartości temperatury T, prawdopodobieństwo osięagnięcia stanów zbiega do rozkładu Boltzmana. p(x) = αe E(x) kt jeśli T maleje odpowiednio wolno = najlepszy stan będzie zawsze osiagnięty. Opracowanie: Metropolis i inni, 1953, do modelowania procesów fizycznych Szeroko stosowane m.in. w projektowaniu układów o dużym stopniu scalenia, w planowaniu rozkładu lotów pasażerskich.

Minimalna liczba konfliktow: algorytm Stan poczatkowy: losowy lub zachłannie minimalizujacy liczbę konfliktów CONFLICTS = liczba niespełnionych więzów po przypisaniu var = v function MIN-CONFLICTS(csp, max-steps) returns a solution, or failure inputs: csp - a constraint satisfaction problem max-steps - the number of steps allowed before giving up local variables: current - a complete assignment var - an auxiliary variable value - a value for a variable current an initial complete assignment for csp for i = 1 to max-steps do var a randomly chosen, conflicted variable from VARIABLES[csp] value the value v for var that minimizes CONFLICTS(var, v, current, csp) set var = value in current if current is a solution for csp then return current end if end for return failure end function

Minimalna liczba konfliktow: 4-hetmanów Stany: 4 hetmanów w 4 kolumnach (4 4 = 256 stanów) Operacje: przesunięcie hetmana w kolumnie Cel: brak konfliktów Ocena stanu: h(n) = liczba konfliktów h = 5 h = 2 h = 0

Minimalna liczba konfliktów: efektywność Z dużym prawdopodobieństwem rozwiazuje n-hetmanów z losowego stanu w prawie stałym czasie dla dowolnego n (np. n = 10,000,000). To samo zachodzi dla dowolnego losowo wygenerowanego CSP z wyjatkiem waskiego zakresu wielkości R = liczba więzów liczba zmiennych CPU time critical ratio R

Algorytm genetyczny function GENETIC-ALGORITHM(population, FITNESS-FN) returns an individual inputs: population - a set of individuals new_population empty set repeat for i = 1 to size(population) do x RANDOM-SELECTION(population, FITNESS-FN) y RANDOM-SELECTION(population, FITNESS-FN) child REPRODUCE(x, y) if (small random probability) then child MUTATE(child) end if add child to new_population end for population new_population until some individual is fit enough, or enough time has elapsed return the best individual in population, according to FITNESS-FN end function Funkcja REPRODUCE zwraca nowy stan będacy losowym skrzyżowaniem (kombinacja) dwóch stanów-rodziców. Funkcja MUTATE zmienia losowo pojedyncza informację w stanie.

Algorytm genetyczny

Algorytm genetyczny: kombinowanie i mutacja 24748552 24 31% 32752411 32748552 32748152 32752411 23 29% 24748552 24752411 24752411 24415124 20 26% 32752411 32752124 32252124 32543213 11 14% 24415124 24415411 24415417 (a) Initial Population (b) Fitness Function (c) Selection (d) Crossover (e) Mutation function REPRODUCE(x, y) returns an individual inputs: x,y - parent individuals n LENGTH(x) c random number from 1 to n return SUBSTRING(x, 1, c) + SUBSTRING(y, c + 1, n) end function

Algorytm genetyczny: kombinowanie i mutacja 24748552 24 31% 32752411 32748552 32748152 32752411 23 29% 24748552 24752411 24752411 24415124 20 26% 32752411 32752124 32252124 32543213 11 14% 24415124 24415411 24415417 (a) Initial Population (b) Fitness Function (c) Selection (d) Crossover (e) Mutation function MUTATE(x) returns an individual inputs: x - parent individuals n LENGTH(x) c random number from 1 to n mutated_x x randomly change element on the position c of mutated_x return mutated_x end function

Przykład: Satisfiability problem (SAT) (p 11 p 12... p 1k1 ) (p 21 p 22... p 2k2 )... (p n1 p n2... p nkn ) gdzie p ij sa literałami. Kodowanie problemu za pomoca wektora 0 1. Dobrze zdefiniowane operacje krzyżowania i mutacji.

Przykład: problem komiwojażera - TSP Kodowanie rozwiazania za pomoca permutacji odwiedzonych wierzchołków grafu. Krzyżowanie permutacji. Mutacja - zamiana krawędzi.

Metody hybrydowe Połaczenie metod przeszukujacych z metodami iteracyjnego poprawiania. Działamy na pewnej, dobranej do problemu przestrzeni przeszukiwania. Przygotowujemy wejście dla algorytmów przeszukujacych, które nie jest bezpośrednim zakodowaniem problemu, ale ułatwia wyliczanie rozwiazania. Za pomoca algortymów iteracyjnego poprawiania przeszukujemy przestrzeń zmodyfikowanego problemu.

Przykład: problem plecakowy (knapsack/rucksack problem) Dysponujemy plecakiem o maksymalnej pojemności W. Mamy również do dyspozycji N przedmiotów x 1,x 2,...,x N, gdzie każdy element x i ma określony ciężar w i oraz wartość v i. Chcemy wybrać taki podzbiór przedmiotów, aby ich sumaryczna wartość była jak największa ale tak, by mieściły się w plecaku. Bardziej formalnie: chcemy zmaksymalizować N i=1 v ix i przy ograniczeniu N i=1 w ix i W gdzie x i {0,1} dla i = 1,2,...

Przykład: Australia Western Australia Northern Territory Queensland South Australia New South Wales Victoria Tasmania Zmienne: WA, NT, Q, NSW, V, SA, T Dziedziny: D i = {red,green,blue} Więzy: sasiednie regiony maja mieć różne kolory, np. WA NT Standardowa metoda przeszukiwania nadaje kolory prowincji według zadanej przez permutację kolejności.

Przykład: Maximum Satisfiability problem (MAX-SAT) (p 11 p 12... p 1k1 ) (p 21 p 22... p 2k2 )... (p n1 p n2... p nkn ) gdzie p ij sa literałami. Za pomoca permutacji ustalamy kolejność nadawania wartości zmiennym.

Teoria zbiorów przybliżonych Zbiory przybliżone (Pawlak, 1981) Redukty i reguły generowane z reduktów (Skowron, Rauszer, 1992) A = {a 1,...,a n } zbiór cech (atrybutów) opisujacych przykłady U trn zbiór przykładów opisanych wektorami wartości cech x 1,...,x n Definicja Zbiór atrybutów R A jest reduktem dla zbioru przykładów U trn, jeśli dla każdej pary przykładów x,y U trn o różnych decyzjach dec(x) dec(y) istnieje a i R rozróżniaj acy tę parę przykładów: x i y i R jest minimalnym zbiorem majacym powyższa własność, tzn. dla dowolnego R R istnieje para przykładów w U trn o różnych decyzjach i takich samych wartościach na wszystkich atrybutach a i R

Redukty Definicja Redukt R jest minimalny, jeśli zawiera najmniejsza możliwa liczbę atrybutów, tzn. dla każdego reduktu R : R R Fakt: Problem znalezienia minimalnego reduktu jest NP-trudny Przykład: Redukty: {a,d}, {b,c,d} Redukty minimalne: {a,d} a b c d dec x 1 0 2 1 0 0 x 2 1 2 2 1 0 x 3 2 0 2 1 1 x 4 0 2 1 1 2

Generowanie reguł z reduktu Przykład: Rules(R) := { a i = x i = dec = dec(x) : x U trn } a i R a b c d dec x 1 0 2 1 0 0 x 2 1 2 2 1 0 x 3 2 0 2 1 1 x 4 0 2 1 1 2 Redukt: R = {b,c,d} Reguły: b = 2 c = 1 d = 0 = dec = 0 b = 2 c = 2 d = 1 = dec = 0 b = 0 c = 2 d = 1 = dec = 1 b = 2 c = 1 d = 1 = dec = 2

Skracanie reguł z reduktu Skracanie reguły polega na odrzuceniu niektórych selektorów z warunku reguły. Metoda Reguła α s = dec = d może zostać zastapiona przez α = dec = d, jeśli α = dec = d pozostaje spójna ze zbiorem treningowym. Fakt Może się zdarzyć, że różne reguły z ta sama decyzja zostana skrócone do tej samej postaci = zbiór reguł po skróceniu może być mniejszy niż oryginalny.

Skracanie reguł z reduktu: przykład b = 2 c = 1 d = 0 = dec = 0 b = 2 c = 2 d = 1 = dec = 0 b = 0 c = 2 d = 1 = dec = 1 b = 2 c = 1 d = 1 = dec = 2 a b c d dec x 1 0 2 1 0 0 x 2 1 2 2 1 0 x 3 2 0 2 1 1 x 4 0 2 1 1 2 Po skróceniu: b = 2 d = 0 = dec = 0 lub c = 1 d = 0 = dec = 0 b = 2 c = 2 = dec = 0 b = 0 = dec = 1 c = 1 d = 1 = dec = 2

Klasyfikacja oparta na wsparciu rules zbiór reguł z jednoznaczna decyzja U trn zbiór przykładów treningowych x - obiekt do klasyfikacji Klasyfikacja przez maksymalizację wsparcia: rules(x) = {α = d rules : x spełnia α} maxarg d {y U trn : α = d rules(x)(y spelnia α dec(y) = d)}

Redukty lokalne Zbiór atrybutów R A jest reduktem lokalnym dla przykładu x U trn w zbiorze przykładów U trn, jeśli dla każdego przykładu y U trn z inna decyzja dec(y) dec(x) istnieje a i R rozróżniajacy x od y: x i y i R jest minimalnym zbiorem majacym powyższa własność, tzn. dla dowolnego R R istnieje przykład w U trn z inna decyzja i wartościami taki samymi jak x na wszystkich atrybutach a i R Fakt 1: Liczba reduktów lokalnych dla jednego przykładu może być wykładnicza względem liczby atrybutów i liczby przykładów treningowych Fakt 2: Problem znalezienia minimalnego reduktu lokalnego dla danego przykładu jest NP-trudny

Generowanie reguł z reduktów lokalnych Reguła generowana z reduktu lokalnego R dla przykładu x: a i R a i = x i = dec = dec(x) Fakt 1: Reguła generowana z reduktu lokalnego jest reguła spójna minimalna (tzn. usunięcie któregokolwiek selektora powoduje utratę spójności) Fakt 2: Zbiór reguł wygenerowanych ze wszystkich reduktów lokalnych = zbiór wszystkich minimalnych reguł spójnych = zbiór wszystkich reguł generowanych przez algorytm zupełny (z selektorami równościowymi) Przypomnienie: Liczba wszystkich minimalnych reguł spójnych może być wykładnicza względem liczby atrybutów i przykładów treningowych Fakt 3 (Bazan, 1998): Niech rules all zbiór wszystkich minimalnych reguł spójnych. Istnieje algorytm symulujacy klasyfikację z maksymalizacja wsparcia w zbiorze reguł rules all (bez jawnego liczenia reguł) wykonujacy klasyfikację pojedynczego obiektu w czasie O( U trn 2 A ).

Dziękuję za uwagę!