11 Automat skonczony

Transkrypt

11 Automat skonczony
9. Automat skończony.
Automat skończony jest matematycznym modelem systemu, który składa się ze
skończonej ilości konfiguracji, zwanych stanami oraz zbioru przejść z jednego stanu
do drugiego, zachodzących w odpowiedzi na dane wejściowe. Automaty skończone są
najpowszechniej stosowaną techniką programowania sztucznej inteligencji w grach.
Automat przedstawiamy jako piątkę uporządkowaną {Q, Σ, δ, q0 , F } gdzie:
Q - skończony zbiór stanów;
Σ - skończony alfabet wejściowy. Może mieć on różne postacie np.: binarną Σ =
{0, 1}, wtedy dane wejściowe mogą mieć postać 01101100, alfabetyczną Σ = {a, b, c, d}
z wejściem postaci abcccdaa lub jak ma to miejsce w przypadku gier, składać się z
wydarzeń jakie mogą zajść w czasie rozgrywki Σ = {strzał, błysk, krzyk};
δ - funkcja przejścia, odwzorowująca Q × Σ w Q czyli taka, która każdemu stanowi q i każdemu symbolowi wejściowemu a przyporządkowuje nowy stan δ(q, a);
q0 - należące do Q, stan początkowy, czyli taki od którego automat rozpoczyna
działanie;
F ⊆ Q - zbiór stanów końcowych.
Graficzną reprezentacją automatu skończonego jest graf skierowany, którego wierzchołki odpowiadają stanom automatu, krawędzie zaś przejściom ze stanu do stanu,
zgodnie ze zwrotem strzałki. Każda krawędź opatrzona jest etykietą symbolu wejściowego, dla którego zachodzi dane przejście.
Mówimy, że automat akceptuje dany łańcuch wejściowy, jeśli ciąg przejść odpowiadający poszczególnym symbolom łańcucha prowadzi od stanu początkowego do
jakiegoś stanu końcowego.
Automat Moore’a.
Automatem Moore’a nazywamy automat z wyjściem rozszerzonym. Ten rodzaj automatów (określany również mianem maszyny stanów) różni się od wcześniej omówionego tym, że sygnały wyjściowe generowane są każdorazowo po przetworzeniu
symbolu wejściowego. Nie występuje tu pojęcie stanu końcowego.
Automat Moore’a definiujemy jako szóstkę uporządkowaną {Q, Σ, ∆, δ, λ, q0 }
gdzie:
Q, Σ, ∆, q0 - określone są tak jak w przypadku automatów z wyjściem binarnym;
∆ - alfabet wyjściowy;
λ - funkcja zwracająca wyjście związane z każdym ze stanów, czyli odwzorowu1
jąca Q w ∆. Wyjściem zwróconym dla łańcucha wejściowego a1 a2 ... an , n ­ 1
jest λ(q1 ) λ(q2 ) ... λ(qn ) gdzie q0 , q1 , q2 , ..., qn jest ciągiem stanów takim, że
δ(qi−1 , ai ) = qi dla 1 ¬ i ¬ n. Należy zauważyć, że model ten zwraca sygnał wyjściowy dla łańcucha wejściowego dowolnej długości, w szczególności 0. Mamy wtedy
do czynienia z tzw. pustym wejściem, któremu odpowiada wyjście λ(q0 ).
Adaptując dla potrzeb gry komputerowej dowolny typ automatu z wyjściem rozszerzonym, możemy traktować symbole wyjściowe jako akcje (lub zbiory akcji), które
należy podjąć w związku z przejściem z jednego stanu do drugiego.
Opisany powyżej typy automatu skończonego (z wyjściem binarnym i rozszerzonym) nazywany jest również deterministycznym. Jego cechą charakterystyczną jest
bowiem istnienie tylko jednego przejścia ze stanu do stanu przy danym symbolu
wejściowym.
Zadanie
Zadanie polega na napisaniu prezentacji życia 4 osobników poruszających się po
planszy na podstawie zdefiniowanych reguł. Narzędziem sterującym będzie automat
Moore’a. Planszą, po której poruszają się osobniki jest prostokąt (macierz) wymiaru
n×m. Każdy z osobników jest na początku umieszczony w rogu planszy. Osobnik porusza się w pionie, poziomie i po skosie o jedno pole. Każdy osobnik ma tzw. wartość
punktów życia. Jest określona maksymalna wartość punktów i jest ona zmniejszana
wraz z wykonaniem ruchu przez osobnika. Na planszy znajdują się specjalne pola z
pożywieniem. Jeżeli osobnik wejdzie na takie pole regeneruje punkty życia i dodatkowo zapamiętuje gdzie jest punkt z pożywieniem i ile jest w nim pożywienia. Każdy
punkt pożywienia ma określoną wartość, która jest pomniejszana przy regeneracji
punktów życia przez osobnika. Nie jest to wartość odnawialna, tzn. że w czasie gry
wartość pożywienia w danym punkcie może się tylko zmniejszać, aż osiągnie wartość
zero czyli zniknie.
Jeżeli osobnik wejdzie na pole, w którym znajduje się inny osobnik następuje rozmowa w trakcie której osobniki przekazują sobie informacje o miejscach z
pożywieniem. Osobnik zapamiętuje informacje o nowych punktach pożywienia lub
aktualizuje swoje informacje. Może się bowiem zdarzyć, że dwa osobniki mają informacje o jednym punkcie z żywnością. Informacją bardziej aktualną jest ta, która
ma mniejszą wartość pożywienia dla tego samego punktu.
Dla osobnika korzystną sytuacją jest ta, w której ma maksymalną liczbę punktów. Jeśli natomiast liczba punktów życia osiąga minimalny poziom osobnik ma
pójść do punktu z pożywieniem i zregenerować punkty życia. Dokonuje tego na
podstawie posiadanych informacji. Jeśli ma do wyboru kilka możliwości wybiera
najbardziej dla siebie korzystną (w sensie odległości i liczby punktów do zregenerowania). Ponadto istotne jest aby osobnik posiadał jak najwięcej informacji o punktach z pożywieniem i aby te informacje były na bieżąco aktualizowane. Osobnik
umiera gdy liczba punktów życia osiąga wartość 0.
W zależności od ilości punktów i sytuacji w jakiej się znajdujemy możemy określić
stan osobnika. Automat Moore’a, dla powyższego zadania jest zdefiniowany poniżej:
Q = {P AT ROL, P OSZU KIW AN IE, JEDZEN IE, ROZM OW A, SM IERC}
gdzie:
PATROL - stan początkowy polegający na beztroskim zwiedzaniu okolicy.
2
ROZMOWA - po napotkaniu osobnika dysponującego nowymi informacjami o punktach regeneracji, następuje krótka konwersacja i wymiana danych.
POSZUKIWANIE - stan, w którym osobnik korzystając z wiedzy zdobytej w czasie PATROLU lub wymiany informacji z innymi osobnikami w stanie ROZMOWA,
szuka miejsca, w którym mógłby odnowić swój zasób punktów życia.
JEDZENIE - regeneracja sił.
SMIERC - po wyczerpaniu puli punktów życia osobnik ginie.
Alfabet wejściowy jest zbiorem komunikatów postaci:
K1: mała liczba punktów życia (1 - 4999),
K2: duża liczba punktów życia (5000 - 9999),
K3: maksymalna liczba punktów życia (10000),
K4: wyczerpany zasób punktów życia (0),
K5: nowe informacje,
K6: brak nowych informacji,
K7: odnaleziono miejsce z pożywieniem,
K8: wyczerpanie zasobów pożywienia.
Funkcja przejścia określona następująco:
(bieżący stan, symbol wejściowy) → (nowy stan)
1. (P AT ROL, K5) → (ROZM OW A);
2. (P AT ROL, K1) → (P OSZU KIW AN IE);
3. (ROZM OW A, K6) → (P AT ROL);
4. (P OSZU KIW AN IE, K7) → (JEDZEN IE);
5. (P OSZU KIW AN IE, K4) → (SM IERC);
6. (JEDZEN IE, K3, K8 ∧ K2) → (P AT ROL);
7. (JEDZEN IE, K8 ∧ K1) → (P OSZU KIW AN IE).
Należy dodefiniować brakujące parametry i napisać animację sterowaną automatem Moore’a do przedstawionego zadania.
3