3.5 Zªo»ono±¢ automatu F DP LLA(k)
3.5.1 Analiza zªo»ono±ci czasowej
Zaczniemy od oszacowania zªo»ono±ci czasowej. Warto przypomnie¢, i» dziaªanie auto-matu F DP LLA(k) jest opisane diagramem stanów (rys. 3.7 na str. 59). Przetworzenie ka»dego z prymitywów rozmytych skªadaj¡cych si¦ na wej±ciowe sªowo rozmyte, b¦-dzie oznaczaªo dla automatu przej±cie kolejne przez stany Q1, Q2, Q5 lub Q3, Q4, Q6
docelowa). Wystarczy wi¦c oszacowa¢ i zsumowa¢ koszty dziaªania automatu w sta-nach Q1, Q2, Q5 dla wybranego prymitywu rozmytego. Nast¦pnie nale»y tak uzyskane oszacowania zsumowa¢ dla wszystkich prymitywów rozmytych skªadaj¡cych si¦ na wej-±ciowe sªowo rozmyte.
Rozwa»my wariant dziaªania automatu w stanach Q1, Q2, Q5 dla ustalonego pry-mitywu rozmytego ai wymiaru ki. Zaªó»my, »e na ta±mie ¹ródªowej zapisano dane nast¦puj¡cych procesów analizy pr1, ..., prq.
3.5.1.1 Dziaªanie automatu F DP LLA(k) w stanie Q1
(rozpoznanie pojedynczego prymitywu rozmytego wymiaru ki) W stanie Q1 dziaªanie automatu polega na iteracyjnym powtarzaniu nast¦puj¡cych czynno±ci:
1. czynno±¢ 1: przydziaª zada« parserom z puli P P A,
2. czynno±¢ 2: przetworzenie przydzielonych zada« przez parsery,
3. czynno±¢ 3: zapisanie wyników dziaªania parserów na ta±m¦ docelow¡
M EM.T 2.
Kolejno b¦dziemy szacowa¢ koszt wykonania ka»dej z tych czynno±ci w ka»dej z iteracji.
1. Czynno±¢ 1: Polega, na przeczytaniu ta±my P ST od lewej do prawej. Dla par-serów, których status ma warto±¢ I przydzielane s¡ zadania wywodu. Przydziaª ka»dego zadania b¦dzie wi¡zaª si¦ z przepisaniem do bie»¡cej komórki ta±my P ST nast¦puj¡cych informacji:
a) symbolu do wywodu (z ta±my IT ),
b) wska¹nika do danych procesowych (z odpowiedniej ta±my MEM.T 1 lub
M EM.T 2).
Jest to czynno±¢ o koszcie staªym, oznaczmy go l. W pojedynczej iteracji proce-dura ta b¦dzie powtórzona co najwy»ej p razy, a wi¦c koszt pojedynczej iteracji czynno±ci 1 nie b¦dzie przekraczaª l ∗ p = O(p).
2. Czynno±¢ 2: Skopiowanie danych procesów analizy i przetworzenie zada« analizy przez parsery DP LL(k):
a) Skopiowanie danych jest czynno±ci¡ polegaj¡c¡ na przepisaniu w nowy obszar pami¦ci danych procesu znajduj¡cych si¦ w obszarze pami¦ci okre±lonym przez odpowiedni wska¹nik. Wymaga to przepisania sko«czonej liczby sªów, których dªugo±¢ jest co najwy»ej rz¦du O(n). Operacja ta kosztuje wi¦c równie» O(n). b) Przetworzenie przydzielonych zada« analizy. Zgodnie z prac¡ [28] wykonanie zadania wywodu pojedynczego symbolu przez parser klasy DP LL(k) wymaga wykonania O(n) operacji. Do tego nale»y doda¢ koszt obliczenia warto±ci funk-cji steruj¡cej wynosz¡cy nie wi¦cej ni» O(n) (jednokrotnie dla ka»dego z par-serów z puli P P A). Realizacja tej czynno±ci b¦dzie wi¦c wymaga¢ wykonania co najwy»ej p ∗ O(n) + p ∗ O(n) = O(p ∗ n). Je±li chodzi o zªo»ono±¢ czasow¡, b¦dzie to przekªada¢ si¦ na liczb¦ O(p ∗ n).
Razem wszystkie etapy czynno±ci 2, b¦d¡ wi¡zaªy si¦ z wykonaniem O(p ∗ n) operacji.
3. Czynno±¢ 3: Zapisanie wyników dziaªania parserów na ta±m¦ docelow¡
M EM.T 2. Polega, na przeczytaniu ta±my od lewej do prawej. Dla parserów, któ-rych status ma warto±¢ T lub C konieczne jest wypisanie danych procesu na wyj-±cie automatu lub zapisanie wska¹nika do danych w pami¦ci P DS(odpowiednio) na jednej z ta±m MEM.T 1 lub MEM.T 2. Pierwsza z nich wymaga nakªadu rz¦du O(n) (jedna z wªa±ciwo±ci procesu analizy tj. przeczytany ci¡g znaków mo»e mie¢ dªugo±¢ n). Druga czynno±¢ wi¡»e si¦ z kosztem staªym (zapis jednej warto±ci na jednej z ta±m MEM.T 1 lub MEM.T 2). W ka»dym przypadku koszt ten nie b¦dzie przekraczaª rz¦du O(n).
¡czna zªo»ono±¢ czasowa przetworzenia pojedynczej iteracji czynno±ci 1, 2, 3 b¦dzie wynosiªa:
T C1,2,3= O(p) + O(p ∗ n) + O(n) = O(p ∗ n).
Zada« analizy jest q ∗ ki, st¡d przetworzonych zostanie co najwy»ej dq ∗ ki/pe itera-cji zestawu czynno±ci 1, 2, 3. W zwi¡zku z tym koszt przetworzenia wybranego i-tego
prymitywu rozmytego w stanie Q1 b¦dzie wynosiª:
T CQ1 =dq ∗ ki/pe ∗ O(p ∗ n) ¬ O(q ∗ ki/p) ∗ O(p ∗ n) =
=O(q ∗ ki∗ n) ¬ O(m ∗ σ ∗ n)
3.5.1.2 Dziaªanie automatu F DP LLA(k) w stanie Q2, Q5
(rozpoznanie pojedynczego prymitywu rozmytego wymiaru ki) W stanach Q2 oraz Q5 dziaªanie automatu polega przetworzeniu nast¦puj¡cych czyn-no±ci:
1. Czynno±¢ 1: Przetworzenie przydzielonych zada« przez parsery P P A.
2. Czynno±¢ 2: Zapisanie wyników dziaªania parserów na ta±m¦ docelow¡
M EM.T 2 przez automat P ST .
3. Czynno±¢ 3: Powtórna werykacja ta±my P ST i zmiana stanu Q2 na Q3.
Analizuj¡c teraz ka»d¡ czynno±¢ z osobna mamy:
1. Czynno±¢ 1: Przetworzenie przydzielonych zada« przez parsery. Zgodnie z prac¡ [28] wykonanie zadania wywodu pojedynczego symbolu przez parser klasy
DP LL(k)wymaga wykonania O(n) operacji. Do tego nale»y doda¢ koszt oblicze-nia warto±ci funkcji stopu analizy wynosz¡cy nie wi¦cej ni» O(n) (jednokrotnie dla ka»dego z parserów z puli P P A). Realizacja tej czynno±ci b¦dzie wi¦c wyma-ga¢ wykonania co najwy»ej p ∗ O(n) + p ∗ O(n) = O(p ∗ n) operacji.
2. Czynno±¢ 2: Zapisanie wyników dziaªania parserów na ta±m¦ docelow¡
M EM.T 2. Czynno±¢ ta polega, na przeczytaniu ta±my od lewej do prawej przez automat P SA. Dla parserów, których status ma warto±¢ T lub C, konieczne jest wypisanie danych procesu na wyj±cie automatu lub zapisanie wska¹nika do da-nych w pami¦ci P DS na jednej z ta±m MEM.T 1 lub MEM.T 2 (odpowiednio). Pierwsza z nich wymaga nakªadu rz¦du O(n) (jedna z wªa±ciwo±ci procesu analizy tj. przeczytany ci¡g znaków mo»e mie¢ dªugo±¢ n). Druga czynno±¢ wi¡»e si¦ z kosztem staªym (zapis jednej warto±ci na jednej z ta±m MEM.T 1 lub MEM.T 2). W ka»dym przypadku koszt ten nie b¦dzie przekraczaª rz¦du O(n).
3. Czynno±¢ 3: polega na przeczytaniu ta±my P ST i zmianie stanu. Koszt wyko-nania nie b¦dzie przekraczaª O(p).
Czynno±ci te wykonywane s¡ w danej iteracji co najwy»ej raz. ¡czny koszt oblicze-niowy przetworzenia czynno±ci 1, 2, 3 b¦dzie wynosiª:
T C1,2,3 = T CQ2,Q5 = O(p ∗ n) + O(n) + O(p) = O(p ∗ n). 3.5.1.3 Dziaªanie automatu F DP LLA(k) w stanie Q1, Q2, Q5
(rozpoznanie pojedynczego prymitywu rozmytego wymiaru ki) Podsumowuj¡c koszt obliczeniowy analizy prymitywu rozmytego ai wymiaru ki w sta-nach Q1, Q2, Q3 wynosi:
T CQ1,Q2,Q5 = O(m ∗ σ ∗ n) + O(p ∗ n) = O(max(m ∗ σ ∗ n, p ∗ n)) = O(m ∗ σ ∗ n). 3.5.1.4 Dziaªanie automatu F DP LLA(k) w stanie Q1− Q6
(analiza caªego sªowa)
Ostatecznie (sumuj¡c te koszty dla wszystkich prymitywów rozmytych, które buduj¡ dane sªowo), otrzymujemy koszt obliczeniowy analizy sªowa rozmytego w o dªugo±ci n. Wynosi on:
T Cw = O(n ∗ m ∗ σ ∗ n) = O(m ∗ σ ∗ n2).
UWAGA 3.1 Pesymistyczna zªo»ono±¢ czasowa analizy sªowa rozmytego w o dªugo±ci
n przez automat F DP LLA(k) wynosi O(n2).