bd-1

Transkrypt

bd-1
Rozwiązywanie problemów
metodami przeszukiwań
Metody sztucznej inteligencji
Wykład 2
Na podstawie wykładu
S. Russell and P. Norvig Artificial Intelligence: A Modern
Approach Prentice Hall, 2003,
2009-03-02
1
Plan
„
„
„
„
„
Agenci rozwiązujący problemy
Typy problemów
Formułowanie problemów
Przykłady problemów
Podstawowe algorytmy przeszukiwań
2009-03-02
2
Agenci rozwiązujący problemy
2009-03-02
3
Przykład: Rumunia
„
„
„
Wakacje w Rumunii; obecnie w Arad.
Jutro odlot z Bukaresztu
Sformułowanie celu:
„
„
Sformułowanie problemu:
„
„
„
być na czas w Bukareszcie
stany: różne miasta
akcje: przejazd pomiędzy miastami
Rozwiązanie:
„
sekwencja odwiedzanych miast, np. Arad, Sibiu, Fagaras,
Bukareszt
2009-03-02
4
Przykład: Rumunia
2009-03-02
5
Typy problemów
„
Deterministyczne, w pełni obserwowalne Æ problem jednostanowy
„
„
Nie obserwowalne Æ brak sensorów (problem
dostosowania)
„
„
agent nie ma pojęcia gdzie jest; rozwiązanie stanowi sekwencja
Niedeterministyczny i/lub częściowo obserwowalny Æ
problem nieprzewidzialności
„
„
„
agent wie dokładnie w jakim jest stanie; rozwiązanie stanowi
sekwencja
obserwacje wprowadzają nową informację o obecnym stanie
Zwykłe działanie: przeszukiwanie, wykonanie
Nieznana przestrzeń stanów Æ problem eksploracyjny
2009-03-02
6
Przykład: odkurzacz
„
Deterministyczny, start w 5
Rozwiązanie?
[prawo, ssanie]
2009-03-02
7
Przykład: odkurzacz
„
Nieobserwowalny, start w
{1,2,3,4,5,6,7,8}, np.
prawo prowadzi do {2,4,6,8}
Rozwiązanie?
[prawo,ssanie,lewo,ssanie]
2009-03-02
8
Przykład: odkurzacz
„
Nieprzewidzialność
„
„
„
Niedeterministyczny: ssanie
może mieć miejsce na
zabrudzonym jak i czystym
dywanie
Częściowo obserwowalne:
lokacja, brudno w aktualnej
lokacji.
Obseracja: [L, Czysto], np.,
start w 5 lub 7
Rozwiązanie?
[prawo, if brudno then
ssanie]
2009-03-02
9
Problem jednostanowy
Problem definiuje czwórka:
1.
2.
3.
4.
Stan początkowy np.„w Arad"
Akcje lub funkcja rozwinięcia S(x) = zbiór akcji (para stanów)
„
np. S(Arad) = {<Arad Æ Zerind, Zerind>, … }
Celem może być
„
explicite, np. x = „w Bukareszcie"
„
implicite, np. Checkmate(x)
Koszt (sumarycznie)
„
„
„
np. suma odległości, liczba wykonanych akcji cząstkowych, etc.
c(x,a,y) jest koszt cząstkowy, zakładamy, że jest ≥ 0
Rozwiązanie stanowi sekwencja akcji prowadząca od stanu
początkowego do celu
2009-03-02
10
Wybór przestrzeni stanów
„
Świat rzeczywisty jest absurdalnie złożony
Æ przestrzeń stanów musi być wyabstraktowana z sformułownia problemu
„
„
(Abstrakcyjny) stan = zbiór stanów rzeczywistych
(Abstrakcyjna) akcja = złożona kombinacja akcji rzeczywistych
„
„
„
Aby zagwarantować realizowalność, dowolny stan rzeczywisty
("in Arad“) musi osiągać pewien stan rzeczywisty ("in Zerind„)
(Abstrakcyjne) rozwiązanie =
„
„
np. "Arad Æ Zerind" reprezentuje zbiór możliwych dróg, objazdów i przerw
w podróży, etc.
Zbiór rzeczywistych ścieżek reprezentujących rozwiązanie w rzeczywistym
świecie
Każda abstrakcyjna akcja powinna być prostsza od
oryginalnego problemu.
2009-03-02
11
Graf stanów odkurzacza
„
„
„
„
stany? stan czystości, lokalizacja
akcje? lewo, prawo, ssanie
cel? czysto w każdej lokalizacji
koszt? jednostkowy na każdą akcję
2009-03-02
12
Przykład: puzzle 8 elementowe
„
„
„
„
stany? położenie kafelka
akcje? przesuń puste miejsce w lewo, prawo, do góry, w dół
cel? = stan końcowy (dany)
koszt? jednostkowy na każdy ruch
[Uwaga: problem poszukiwania optymalnego rozwiązania dla n puzzli jest
NP-trudny]
2009-03-02
13
Przykład: montaż automatyczny
stany?: współrzędne rzeczywiste i kąty złączy robota,
części obiektu do zmontowania
„ akcje?: ciągły ruch złączy robota
„ cel?: całkowity montaż
„ koszt?: czas wykonania
2009-03-02
14
Przeszukiwanie drzew
„
Podstawowa idea:
„
offline, symulowana eksploracja przestrzeni stanów
poprzez generowanie sukcesorów dotychczas
eksplorowanych stanów
2009-03-02
15
Przykład - przeszukiwanie drzew
2009-03-02
16
Przykład - przeszukiwanie drzew
2009-03-02
17
Przykład - przeszukiwanie drzew
2009-03-02
18
Implementacja: uogólnione
przeszukiwanie drzew
2009-03-02
19
Implementacja: stany vs. wierzchołki
„
Stan reprezentuje konfiguracje fizyczną
Wierzchołek reprezentuje stan
„
Funkcja Expand tworzy nowe wierzchołki.
„
2009-03-02
20
Strategie przeszukiwań
„
„
Strategia przeszukiwań definiuje kolejność wskazań
wierzchołków do ekspansji
Strategie są oceniane według następujących kryteriów:
„
„
„
„
„
zupełność: czy rozwiązanie zawsze jest znalezione, jeśli istnieje?
złożoność czasowa: liczba wygenerowanych wierzchołków
złożoność przestrzenna: maksymalna liczba wierzchołków w pamięci
optimalność: czy znajduje rozwiązanie najniższym kosztem?
Czasowa i przestrzenna złozoność jest mierzona za pomocą
„
„
„
b: maksymalne rozgałęzienie drzewa przeszukiwań
d: głębokość optymalnego rozwiązania
m: maksymalna głębokość przestrzeni stanów (może być ∞)
2009-03-02
21
Proste strategie przeszukiwań
„
„
„
„
„
„
Proste strategie przeszukiwań wykorzystują
jedynie informację osiągalną z definicji
problemu
Przeszukiwanie wszerz (Breadth-first)
Przeszukiwanie po najniższym koszcie
Przeszukiwanie wgłąb (Depth-first)
Przeszukiwanie wgłąb z limitowaną
głębokością
Iteracyjne przeszukiwanie wgłąb
2009-03-02
22
Przeszukiwanie wszerz
„
„
Rozwija najpłytszy nierozwinięty wierzchołek
Implementacja:
„
Wierzchołki ustawiane są w kolejce (FIFO)
2009-03-02
23
Przeszukiwanie wszerz
2009-03-02
24
Przeszukiwanie wszerz
2009-03-02
25
Przeszukiwanie wszerz
2009-03-02
26
Własności przeszukiwania wszerz
„
„
„
„
„
Zupełność? Tak (jeśli b skończone)
Czas? 1+b+b2+b3+… +bd + b(bd-1) = O(bd+1)
Przestrzeń? O(bd+1) (pamietany każdy wierzchołek
w pamięci)
Optymalność? Tak (jeśli koszt = 1 na krok)
Przestrzeń jest najpoważniejszym problemem
(bardziej niż czas)
2009-03-02
27
Przeszukiwanie po najniższym
koszcie
„
„
Rozwija wierzchołek o najniższym koszcie z dotychczas
nierozwiniętych
Implementacja:
„
„
„
„
„
„
Kolejka uporządkowa wg kosztu
Równoważny z przeszukiwaniem wszerz jeśli koszt
wszytkich kroków jest jednakowy
Zupełność? Tak, jeśli koszt ≥ ε
Czas? Liczba wierzchołków o koszcie większym od
optymalnego O(bsup(C*/ ε)) gdzie C* jest kosztem optymalnym
Przestrzeń? Liczba wierzchołków o koszcie większym od
optymalnego O(bsup(C*/ ε)) gdzie C* jest kosztem optymalnym
Optymalność? Tak – nodes expanded in increasing order of
g(n)
2009-03-02
28
Przeszukiwanie w głąb
„
„
Rozwija najgłębszy nierozwinięty wierzchołek
Implementacja:
„
stos (LIFO), tzn. nastepcy na górę stosu
2009-03-02
29
Przeszukiwanie w głąb
2009-03-02
30
Przeszukiwanie w głąb
2009-03-02
31
Przeszukiwanie w głąb
2009-03-02
32
Przeszukiwanie w głąb
2009-03-02
33
Przeszukiwanie w głąb
2009-03-02
34
Przeszukiwanie w głąb
2009-03-02
35
Przeszukiwanie w głąb
2009-03-02
36
Przeszukiwanie w głąb
2009-03-02
37
Przeszukiwanie w głąb
2009-03-02
38
Przeszukiwanie w głąb
2009-03-02
39
Przeszukiwanie w głąb
2009-03-02
40
Własności przeszukiwania w głąb
„
„
Zupełność? Nie: zawodzi przy nieskończonych
głębokościach, przestrzeniach z cyklami
Modyfikacja prowadząca do uniknięcia powtarzania
stanów wzdłuż ścieżki
Æ przy skończonej głębokości
„ Czas? O(bm): okropny jeśli
niż d
„
„
„
m jest znacznie większe
ale jeśli rozwiązanie jest głęboko to może być znacznie
szybsze niż przeszukiwanie wszerz
Space? O(bm), tzn. przestrzeń liniowa!!!
Optimal? Nie
2009-03-02
41
Ograniczone przeszukiwanie w głąb
= przeszukiwanie w głąb z limitowaną głębokością l,
„
Implementacja rekurencyjna:
2009-03-02
42
Przeszukiwanie z iteracyjną
głębokością
2009-03-02
43
Przeszukiwanie z iteracyjną
głębokością l =0
2009-03-02
44
Przeszukiwanie z iteracyjną
głębokością l =1
2009-03-02
45
Przeszukiwanie z iteracyjną
głębokością l =2
2009-03-02
46
Przeszukiwanie z iteracyjną
głębokością l =0
2009-03-02
47
Przeszukiwanie z iteracyjną
głębokością
„
Liczba wygenerowanych wierzchołków w ograniczonym
przeszukiwaniu w głąb z głębokością d i rozgałęzieniem b:
NDLS = b0 + b1 + b2 + … + bd-2 + bd-1 + bd
Liczba wygenerowanych wierzchołków w przeszukiwaniu z
iteracyjną głębokością z głębokością d i rozgałęzieniem b:
NIDS = (d+1)b0 + d b^1 + (d-1)b^2 + … + 3bd-2 +2bd-1 + 1bd
„
„
Dla b = 10, d = 5,
„
„
„
NDLS = 1 + 10 + 100 + 1,000 + 10,000 + 100,000 = 111,111
NIDS = 6 + 50 + 400 + 3,000 + 20,000 + 100,000 = 123,456
Narzut = (123,456 - 111,111)/111,111 = 11%
2009-03-02
48
Własności przeszukiwanie
z iteracyjną głębokością
„
„
Zupełność? Tak
Czas? (d+1)b0 + d b1 + (d-1)b2 + … + bd =
O(bd)
„
„
Przestrzeń? O(bd)
Optymalność? Tak, przy jednostkowym
koszcie jednego kroku
2009-03-02
49
Podsumowanie algorytmów
2009-03-02
50
Stany cykliczne
„
Stany cykliczne mogą prowadzić z liniowego
przeszukiwania do wykładniczego!
2009-03-02
51
Przeszukiwanie grafów
2009-03-02
52

Podobne dokumenty