Elementy Sztucznej Inteligencji, UŁ WMiI, Wykłady EL SZT INT, nr2 (1-03-2011)


Elementy Sztucznej Inteligencji (Wykład 2)

Drzewo przeszukiwania grafu

0x01 graphic

Lista OPEN - lista węzłów do przeanalizowania

Lista CLOSED - lista odwiedzonych węzłów, które nie są rozwiązaniami problemu

Szkielet klasycznego algorytmu

OPEN = {pusta} CLOSED = {pusta}

  1. Umieszczamy w OPEN węzeł początkowy

  2. Wyjmujemy z listy OPEN węzeł W

  3. Sprawdzamy czy jest on rozwiązaniem problemu. Jeśli tak to kończymy algorytm

  4. Umieszczamy W na liście CLOSED, a jego potomków dodajemy do listy OPEN

  5. Przechodzimy do punktu 2.

Lista OPEN (Dodawanie i zdejmowanie węzłów)

Dodajemy i zdejmujemy z początku

0x01 graphic

0x01 graphic

W = A

OPEN = {B, C, D} CLOSED = {A}

W = B

OPEN = {E, F, C, D} CLOSED = {A, B}

Powyższy algorytm opiera się o przeszukiwanie wgłąb

Można go zaimplementować rekurencyjnie

Odmianą tego algorytmu jest:

Przeszukiwanie wgłąb z iteracyjnym pogłębianiem (do pewnej głębokości / pewnego poziomu)

Jeśli nie znajdziemy rozwiązania to zwiększamy głębokość

Istnieje też przeszukiwanie wszerz (dodajemy węzły na koniec)

OPEN = {B, C, D, E, F, G, H} CLOSED = {A, ... }

W metodach sztucznej inteligencji interesują nas algorytmy heurystyczne. W nich znajduje się funkcja oceniająca (szacująca) jak blisko jesteśmy rozwiązania

Przykład na podstawie puzzli

Prawidłowe ustawienie elementów

1

2

3

8

0

4

7

6

5

Pomieszane ustawienie elementów

1

2

3

8

4

5

0

7

6

0 - puste pole

Chcemy znaleźć ciąg operacji doprowadzający do rozwiązania.

Trzeba sprawdzić, które klocki są na złych miejscach i jak daleko są od swoich miejsc (ile trzeba wykonać ruchów aby umieścić je na właściwym miejscu).

Jeśli funkcja heurystyczna zakłada, że możemy ustawiać klocek na klocku to:

1 - dobre miejsce

2 - dobre miejsce

3 - dobre miejsce

4 - złe miejsce (potrzebny 1 ruch)

5 - złe miejsce (potrzebny 1 ruch)

6 - złe miejsce (potrzebny 1 ruch)

7 - złe miejsce (potrzebny 1 ruch)

1 + 1 + 1 + 1 = 4 - wartość funkcji heurystycznej zakładającej, że możemy ustawiać klocek na klocku

Inna funkcja heurystyczna może zakładać, że klocki są wyjmowane i wkładane na właściwe miejsce

Na podstawie funkcji heurystycznych konstruujemy graf

0x01 graphic

Istnieją różne algorytmy heurystyczne, np. „Hill Climbing”

Jest to algorytm naiwny, w którym generujemy potomków i jak znajdziemy lepszego potomka to do niego przechodzimy.

Przykładowo jesteśmy w górach i wchodzimy na szczyt krok po kroku. Generując następnego potomka (nasz następny krok) sprawdzamy o ile jesteśmy wyżej i wybieramy tego potomka, który wygenerował najwyższą liczbę. Kontynuujemy algorytm. Niestety „Hill Climbing” nie gwarantuje nam sukcesu, ponieważ możemy „wejść w ślepy zaułek” którym jest jakiś pagórek, który nie generuje potomka dzięki któremu znajdziemy się wyżej w kolejnym kroku.

Algorytm „Best First Search”

Ma cechy przeszukiwania wszerze z funkcją heurystyczną

Lista OPEN jest kolejką priorytetową. Wyjmujemy węzeł o najwyższym priorytecie. W przypadku puzzli, im mniejsza wartość funkcji heurystycznej, tym wyższy priorytet.

0x01 graphic

OPEN = {A(5)} CLOSED = {pusta}

OPEN = {B(3), C(2), D(4)} CLOSED = {A}

OPEN = {B(3), D(4), G(5), H(6)} CLOSED = {A, C}

OPEN = {D(4), G(5), H(6), E(2), F(1)} CLOSED = {A, C, B}

Algorytm A*

Funkcja heurystyczna h*(w) = f(w) + g*(w)

* - wartość przybliżona

f(w) - ilość kroków (połączeń węzłów). Przykładowo w powyższym rysunku od A do C ilość kroków jest równa 1, a od A do F ilość króków jest równa 2. Jest to też nazywane kosztem dotarcia do węzła w

g*(w) - stara funkcja heurystyczna, czyli jak daleko węzeł w znajduje się od rozwiązania. Jeśli jest równa 0 to znaleźliśmy rozwiązanie.

Można ograniczyć ilość używanej pamięci do listy OPEN poprzez ograniczenie wielkości listy analizowanych węzłów, ale to nie gwarantuje znalezienia rozwiązania

0x01 graphic

W grach też występują algorytmy przeszukiwania

0x01 graphic

Algorytm MINIMAX

MINI - ruchy przeciwnika

MAX - nasze ruchy

0x01 graphic

Wartości w nawiasach oznaczają liczbowo ile mamy pionków na planszy (Szachy)

Na podstawie powyższego grafu możemy wyczytać, ze dla nas najlepszym wyjściem jest pójście w kierunku C.

Wyjaśnienie: Jeśli pójdziemy w kierunku B (zostanie nam 5 pionków) to przeciwnik pójdzie w kierunku F (zostaną nam 3 pionki). Jeśli pójdziemy w kierunku D (zostanie nam 10 pionków) to przeciwnik pójdzie w kierunku I (zostaną nam 2 pionki). Najlepszy wyjście jest pójście w kierunku C, bo po ruchu przeciwnika zostanie nam 5 (G) pionków.

W tym algorytmie analizujemy drzewo do któregoś poziomu i aktualizujemy wartości w górę.

0x01 graphic

Algorytm NEGAMAX (?)

0x01 graphic

Funkcja heurystyczna STATIC (Gracz, Plansza) zwraca wartości <-N, N>

STATIC(Gracz, Plansza) = - STATIC(Przeciwnik(Gracz), Plansza)

MOVEGEN (Gracz, Plansza) - zwraca listę plansz

MINIMAX (Gracz, Poziom, Plansza) - zwraca strukturę S, która składa się z dwóch części

MINIMAX (Gracz, Poziom, Plansza)

  1. If(KONIEC (POZIOM) ) return (VALUE: STATIC (Gracz, Plansza), PATH = {pusta})

  2. POTOMKOWIE = MOVEGEN(Gracz, Plansza) //lista plansz, do których moglibyśmy się udać

  3. If (POTOMKOWIE == {pusta}) return (VALUE: STATIC (Gracz, Plansza), PATH = {pusta})

  4. /* trzeba wyszukać potomka o wartości MAX */

BEST_VALUE = -N

BEST_PATH = {pusta}

//dla każdego P z listy POTOMKOWIE policzymy sobie

  1. M = MINIMAX (Ptrzeciwnik(Gracz), Poziom + 1, P)

  2. If (VALUE (M) >= BEST_VALUE)

{

BEST_VALUE = VALUE (M)

BEST_PATH = {P, PATH (M)}

//dodajemy P na początek, a na koniec to co zwróciła lista MINIMAX

}

  1. Return (VALUE: - BEST_VALUE, PATH: BEST_PATH)



Wyszukiwarka

Podobne podstrony:
Elementy Sztucznej Inteligencji
Systemy Operacyjne Wykład 2, UŁ WMiI, Wykłady SYS OP, W 2
Elementy Sztucznej Inteligencji Nieznany
Elementy Sztucznej Inteligencji
Sztuczna inteligencja wykład.cz6.2
Sztuczna inteligencja wyklad 2, WI, Semestr III N2, Metody sztucznej inteligencji
wyklad 7-8, UWM, 7 Semestr, Sztuczna inteligencja
Sztuczna Inteligencja - wyklady streszczenie, Sztuczna Inteligencja cz.2
Sztuczna Inteligencja - wyklady streszczenie, AL - najwazniejsze informacje
wyklad 1-2, UWM, 7 Semestr, Sztuczna inteligencja
Sztuczna inteligencja wyklad 1, WI, Semestr III N2, Metody sztucznej inteligencji
streszczenie, Robotyka, Metody sztucznej inteligencji, Wykład
Sztuczna inteligencja wykład cz4
MSI-program-stacjonarne-15h-2011, logistyka, semestr IV, sieci neuronowe w log (metody sztucznej int
Ściąga ze sztucznej inteligencji(1), uczenie maszynowe, AI
wprowadzenie do sztucznej inteligencji-wyk łady (10 str), Administracja, Administracja, Administracj
system ekspercki i sztuczna inteligencja word 07
NARZĘDZIA SZTUCZNEJ INTELIGENCJI
wykladChK-03, Chemia UŁ, teoretyczna wykład

więcej podobnych podstron