TO MOŻE WAM URATOWAĆ DUPĘ!

  1. Wyznaczyć język generowany przez podaną gramatykę

    - reguły (te znaczki po prawej od strzałki) podpisać od 1 do ileśtam zaczynając od pierwszej.
    - zaczynamy od symbolu początkowego np. S

    S -->

    I podpisujemy nad strzałką z której reguł/reguły korzystamy po prostu podstawiając.
    Rekurencja jest kiedy symbol z lewej strony powtarza się z prawej strony i wstawiamy tą regułę priorytetowo(jako pierwszą) podpisując nad strzałką numer reguły z * np 1*. Przykłady rekurencji to: X-->XA, X-->AX
    Po podstawieniu rekurencji symbol stojący z prawej strony dajemy do wymyślonej potęgi. W tym przypadku XA^n lub A^n X
    Zwykłe reguły można wstawiać hurtem wpisując nad strzałką ich numery np. 1,2,3 i zapisuje się je w wyrażeniu w nawiasie ze znakiem + który oznacza w JAO "albo". Np. (<reg1> + <reg2> + <reg3>).
    Ważne aby się trzymać poziomu. Jak S ma reguły 1, 2, 3 to w hurcie nie podstawiamy tez reguły 4 która jest gdzie indziej.

    Gdy nam wyjdzie wyrażenie (y^k)*y lub y*(y^k) to trzeba to skrócić w ten sposób: y^(k+1) lub y^k gdzie k=1,2,3....
    ZAWSZE(!) jak są jakieś potęgi to trzeba podpisać n=0,1,2,3...; k=1,2,3 itd.

    - Zadanie jest dobrze zrobione i nie pochrzaniliśmy kolejności to wyjdą na końcu same małe literki

    2. Przekształcić daną gramatykę na gramatykę bez reguł zerowych

    - reguły zerowe to lambdy. Każdą lambdę trzeba oddzielnie usuwać nie usuwając innych.
    - reguły bezużyteczne to takie do których nie ma dojścia. Np. Jest symbol X z lewej strony a nie pojawia się nigdzie z prawej to się to skreśla Przy każdym przekształceniu warto popatrzeć czy nie występują.

    *Podstawianie działa na zasadzie:

    Podstawiamy A-->lambda

    do B--> AB|AC

    To wyjdzie nam coś takiego: B--> AB|AC|B|C

    Bo pierwsze się przepisuje a potem się wstawia.

    Jak już się wszystko "przemieli" to mamy gotowe zadanko.

    3. Przekształcić daną gramatykę do postaci monotonicznej (sprawdzić czy jest gramatyka bezużyteczna).

    - Tak jak w zagadnieniu nr. 2 (pozbywanie się lambd i wywalanie bezużytecznych reguł)
    - Mają być przynajmniej 2 znaki po prawej stronie
    - Można (a nawet trzeba) podstawiać np. B-->1 ponieważ tak jest łatwo pozbyć się pojedynczych znaków

    4. Przekształcić do postaci Chomskiego
     
       Chomsky - po prawej stronie 2 symbole duże (np. XX) lub 1 mały symbol (np. y)

    - Aby tak zrobić trzeba utworzyć nowe reguły np mamy taki przykład:

    S--> Xb|a
    X--> cY|WW


    robimy:

    S-->Xb zastąp S-->XB; B-->b
    X-->cY zastąp X-->CY; C-->c

    i koniec zadanka:

    S-->XB|a
    X-->CY|WW
    B-->b
    C-->c


    Ważne aby nie powielać reguł np. gdy B-->b to nie tworzyć potem D-->b.

    5. Przekształcić do postaci Greibach

    - Pozbyć się rekurencji, gdzie rekurencją jest A-->AB, a nie A-->BA (rekurencja jest kiedy symbol stoi na pierwszym miejscu)
    - Zawsze sprawdzać czy nie ma reguł zerowych czy bezużytecznych.
    - Rozwiązać tak aby mały symbol stał wszędzie na początku z prawej strony np. S-->aF|b|cDDD


    Mamy przykład: S-->SB|AB|BC

    Zaczynamy od Lematu 2 (pozbywanie się rekurencji)
    S-->SB

    alfa - symbol(e) przy znaku rekurencji
    beta - pozostałe reguły produkcji w regule produkcji

    Czyli w tym przykładzie:
    alfa = B
    beta1 = AB
    beta2 = BC


    Tworzymy nową regułę produkcji z wymyślonym znakiem. Po jej prawej stronie ma być: alfa|alfa_i_nasz_nowy_wymyślony_znak

    kontynuując przykład tworzymy:
    G-->B|BG

    Teraz wypieprzamy na chama rekurencję SB z reguły produkcji S. Ciach
    Dodajemy symbol G tam gdzie wywaliliśmy rekurencję.

    Czyli z tego: S-->SB|AB|BC
    Wychodzi to: S-->AB|BC|ABG|BCG

    i na koniec tych działań mamy tak:

    G-->B|BG
    S-->S-->AB|BC|ABG|BCG


    I teraz:

    Lemat 1 (podstawianie aby były małe symbole na początku)

    Podstawiamy co się da, wywalamy bezużyteczne i koniec zadanka.

    6.Wyznaczyć język bezkontekstowy będący konkatencją, sumą lub domknięciem Kleeniego.

    - suma – dodać wszystko z L1 i L2 (L1+L2)
    - konkatencja – pomnożyć każdy z każdym (L1*L2)
    - domknięcie Kleeniego – na przykładzie L2 leci się ze składnikami do potęg od 0 do iluśtam
     np. L2= {a,cb}
     to L2*= {lambda, a, cb, aa, acb, cba, cbcb....

    9. Podać wzory opisujące elementy tablicy C-Y-K

    - ponumerować dobrze tablicę C-Y-K z V (w prawo rosną dziesiątki, w dół jedności)
    - przepisać cały zapis:
    V<adres szukanego>={X|X → YZ;
    - napisać po średniku V x V w postaci np.
          („e” to należy do)   YeV11, ZeV24 } i podać tutaj k= <liczba jednostek przy pierwszym V>


    np. rozwiązaniem dla V12 jest

    V12={X|X-->YZ; YeV11, ZeV21} k=1

    Przykład dla V15:

    V15={X|X->YZ;YeV11, ZeV24} k=1
                                 YeV12,ZeV33} k=2
                                 YeV13, ZeV42} k=3
                                 YeV14,ZeV51} k=4


    Wyznacza się to wszystko metodą V i koniec (ciach bach to z tym, to z tym i koniec zadania).

    10. Wykorzystując algorytm C-Y-K sprawdzić czy podane słowo należy do gramatyki.

    - narysować tabelę C-Y-K
    - w rogach uzupełnić znakami słowa pierwsze górne kratki
    - obczaić w regułach co produkują dane znaki
    - wypełnic pierwsze górne kratki po kolei tymi regułami
    - zrobić metodą V
    - na końcu (tj. V15) ma wyjść symbol początkowy. Jeżeli nie to słowo nie należy.


    12. Przekształcić daną gramatykę regularną do postaci w której symbol początkowy nie występuje po prawej stronie reguł produkcji. (thx to Smuga)

    to jest to co masz produkcje, rysujesz wykres, po czym dorabiasz kolejny węzeł który produkuje TO SAMO co początkowy i wszystkie węzły które wskazywały na początkowy przerzucamy na niego?
    typu:
    S -> aA | bB
    A -> aA | sS
    B-> bB | sS


    to dorabiamy węzeł K i zamieniamy tak:
    K -> aA | bB
    S -> aA | bB
    A -> aA | sK
    B-> bB | sK


    13. Przekształcić podaną gramatykę do postaci deterministycznej



    14. Przekształcić podaną gramatykę do postaci zupełnej

    Tak jak wyżej (pkt 13.) plus:



    16. Ocenić czy podany język (gramatyka) jest regularny, bezkontekstowy, kontekstowy, rekurencyjnie przeliczalny

    a) Gramatyka regularna - Jest jak po prawej stronie jest jak po prawej stronie jedna mała litera poprzedza jedną dużą (np. aB) lub występuję tylko jedna mała litera (np. a), a po lewej stronie występuje jeden duży symbol (np. A->)

    Przykład:

    S --> aB|aC|bS
    B --> a|aB
    C --> b


    b) Gramatyka bezkontekstowa - Jest jak po lewej stronie występuje jeden duży symbol (np. A -->), a po prawej jest wszystko jedno

    Przykład:

    S --> SBA|a|Lambda
    A --> aA|B|a
    B --> b


    c) Gramatyka kontekstowa - po lewej wszystko jedno i po prawej wszystko jedno. UWAGA - Ilość znaków po lewej musi być mniejsza lub równa, pojedynczym wyrażeniom z prawej.

    Przykład:

    SA --> ABC|aa|AA
    A --> CC|c
    BA --> BGA


    d) Rekurencyjnie przeliczalna - występuje kiedy jest jedna z powyższych. NIE JEST rekurencyjnie przeliczalna kiedy lambda jest po lewej stronie.

    Przykład (kiedy NIE JEST):

    Lambda --> BC|CD
    A --> a|AB



    ------------

    Podsumowując: Jeżeli jest punktem a) to jest także punktem b), c) i d). Jeżeli nie jest punktem  a) i b) ale jest c) to jest także punktem d). Jeżeli nie jest rekurencyjnie przeliczalna to nie jest niczym. Mam nadzieję, że to czujecie.

    17. Ocenić jak liczny jest dany język



    18. Napisać układ równań dla danego automatu Moore'a i rozwiązać go ze względu na dane Txy



    19. Dla automatu Meal'ego podanego w formie tabeli narysować graf automatu.



    20. Napisać układ równań dla danego automatu Mealy'ego i rozwiązać go ze względu na dane Rxy



    21. Dla danego automatu Moore'a napisać równoważny mu automat Mealiego (thx to Smuga)

    jak masz przykład z wykładu:

    Moore

    stan  |  0  |   1   | WY
       L    |  S  |   U   |  K
       U   |  U   |  L    |  A
       S   |  L   |   U   |  T


    tutaj przejście na Mealego jest proste. po prostu w miejsca liter S,U,L dopisujesz /to_co_litera_ma_na_wyjściu
    np:  S ma na wyjściu T,więc w każde S dopisujesz /T
    robisz tak dla wszystkich liter i na końcu usuwasz kolumnę WY. wychodzi Ci:

    Mealy

    stan  |  0  |   1 
       L    |  S/T  |   U/A 
       U   |  U/A   |  L/K
       S   |  L/K   |   U/A


    22. Dla danego automatu Meal'ego napisać równoważny mu automat Moore'a (thx to Smuga)

    gorzej wygląda w drugą stronę, ponieważ jeśli masz np. S/T i S/K  to traktujesz je jako inne węzły i trzeba wszystkie rozpisać. pokaże na drugim przykładzie z forum:
    to /x jest tym co znajdzie się potem w kolumnie WY.

    Mealy

    stan  |  0     |   1 
       A    |  C/Z  |  B/Y
       B    |  B/Z  |  A/X
       C    |  A/Z  |  B/X


    mamy tutaj i B/X i B/Y, trzeba więc wypisać je wszystkie. w kolumny 0 i 1 wpisujemy dla wszystkich wariantów A,B,C i to mamy w tabeli powyżej.

    stan     |    0    |   1     |  WY
      A/Z    |  C/Z  |  B/Y   |   Z   <=== to samo na WY co po /
      A/X    |  C/Z  |  B/Y   |   X   <=== te same produkcje co w tabeli wyżej
       B/X    |  B/Z  |  A/X   |   X
       B/Y    |  B/Z  |  A/X   |   Y
       B/Z    |  B/Z  |  A/X   |   Z
       C/Z    |  A/Z  |  B/X   |   Z


    teraz trzeba każdy kolejny wariant zapisać pod inną literą:

    stan  |  0 |  1   |  WY
       E    |  J  |  H   |   Z   
       F    |  J  |  H   |   X   
       G    |  I  |  F   |   X
       H    |  I  |  F   |   Y
       I     |  I  |  F   |   Z
       J     |  E  |  G  |   Z


    23. Pokazać, czy dane wyrażenie jest akceptowalne przez automat ze stosem. (thx to Bugi89)

    Masz jakąś taśmę np:
    A B B B A LAMBDA

    Stan wewnętrzny automatu np:
    q0

    I stos:
    #

    Bierzesz pierwszy symbol z taśmy (A) stan wewnętrzny automatu (q0) i ostatni symbol ze stosu (#).
    //Jak bierzemy symbol ze stosu to jest on kasowany, oprócz #
    Składasz to w takie coś: (A, q0, #).
    Teraz szukasz w funkcjach przejścia po lewej stronie tego co Ci wyszło czyli (A, q0, #).
    Powiedzmy, że znalazłeś takie coś (A, q0, #) -> (q1, B).
    To w nawiasie po prawej znaczy: stan wewnętrzny automatu zamieniamy na q1 i do stosu dopisujemy B.

    Teraz masz taką taśmę:
    A B B B A LAMBDA

    Stan wewnętrzny automatu:
    q1

    I stos:
    #B

    Bierzesz drugi symbol z taśmy (B) stan wewnętrzny automatu (q1) i ostatni symbol ze stosu (B).
    //Jak bierzemy symbol ze stosu to jest on kasowany, oprócz #
    Składasz to w takie coś: (B, q1, B).
    Teraz szukasz w funkcjach przejścia po lewej stronie tego co Ci wyszło czyli (B, q1, B).
    Powiedzmy, że znalazłeś takie coś (B, q1, B) -> (q0, BB).
    To w nawiasie po prawej znaczy: stan wewnętrzny automatu zamieniamy na q0 i do stosu dopisujemy BB.

    Teraz masz taką taśmę:
    A B B B A LAMBDA

    Stan wewnętrzny automatu:
    q0

    I stos:
    #BB

    Bierzesz trzeci...

TO NIE JEST PEWNE :

VS

1. do postaci monotonicznej
S->AB|ASA|DC|Lambda
A->CA|0
B->1C|1
C->CA|CC
D->DA|1

O ile dobrze pamiętam lambda prodkcji ta reguła >1 nie dotyczy.

S->AB|ASA|DC|lambda
A->CA|0E
B->1C|1E
C->CA|CC
D->DA|1E
E->lambda

Cytat: Vandervir w 2011-01-28, 11:42:33

2. Hierarchia Chomskiego

Cytat: Vandervir w 2011-01-28, 11:42:33

3. L =|a*b*c| wyznaczyc produkcje i narysowac graf



S->aA|bB|cC|
A->aA|bB|cC
B->bB|cC
c->lambda

Cytat: Vandervir w 2011-01-28, 11:42:33

4. do postaci greibach
A->BA|Aa|AB|a
B->BA|BB|b

Poprawione i scalone tutaj rozwiązanie:

Kod: [Zaznacz]

A->BA|Aa|AB|a
       L  L
B->BA|BB|b
    L  L

A->BA|a|BAC|aC
   ^    ^
B->b|bD //OK
C->a|B|aC|BC
^    ^
D->A|B|AD|BD
     ^    ^

---


A->bA|bDA|a|bAC|bDAC|aC //OK
B->b|bD  //OK
C->a|b|bD|aC|bC|bDC  //OK
D->A|b|bD|AD|bD|bDD
   ^      ^
         
---

A->bA|bDA|a|bAC|bDAC|aC    //OK
B->b|bD                                 //OK
C->a|b|bD|aC|bC|bDC          //OK
D->bA|bDA|a|bAC|bDAC|aC|b|bD|bAD|bDAD|aD|bACD|bDACD|aCD|bD|bDD //OK

Cytat: Vandervir w 2011-01-28, 11:42:33

5. Graf moora i wyzznaczyc R31
   abc
1|212|X
2|213|Y
3|322|Z



R31=aR31 + bR21 + cR21
R21=aR21 + bR11 + cR31
R11=aR21 + bR11 + cR21 + lambda //note: moore przyjmuje lambdy na wejściu


R31=a*(b+c)R21  //wyłączyłem R21 (UWAGA! na przed czy po nawiasie z tym wyłączaniem)
R21=a*(bR11 + cR31) //wzór poniżej
R11= b*[(a+c)R21 + lambda] //wzór i wyłączenie R21

Jeśli X=AX + B to:

X= A*B (jeśli lambda *nie* należy do A)
X= A*(B + W) (jeśli lambda należy do A)

gdzie W jest dowolnym wyrażeniem regularnym



R31=a*(b+c)R21
R21=a*bR11 + a*cR31 //bo za chwilę podstawimy za R11
R11= b*(a+c)R21 + b*

R31=a*(b+c)R21
R21=a*b[b*(a+c)R21 + b*] + a*cR31

R31=a*(b+c)R21
R21=a*bb*(a+c)R21 + a*bb* + a*cR31

R31=a*(b+c)R21
R21=[a*bb*(a+c)]*(a*bb* + a*cR31) //ten Wzorek


R31=a*(b+c)R21
R21=[a*bb*(a+c)]*a*bb* + [a*bb*(a+c)]*a*cR31


R31=a*(b+c)[a*bb*(a+c)]*a*bb* + a*(b+c)[a*bb*(a+c)]*a*cR31

R31=[a*(b+c)[a*bb*(a+c)]*a*c]*a*(b+c)[a*bb*(a+c)]*a*bb*


Jeszcze raz przypominam, że nie odpowiadam za jakość tych rozwiązań, choć dołożyłem wszelkich starań, aby były dobre.


Wyszukiwarka

Podobne podstrony:
A TO PEWNA HISTORIA MOZE I WAM ZNANA ALE MI SIE PODOBA
Zamykaj na noc drzwi do sypialni To może uratować życie w przypadku pożaru
Uwaga! To może być depresja
To może być największy huragan w historii wschodniego wybrzeża USA , To może być największy huragan
To może nie jest w 100, religia(1)
4.WLASNOSCI - przekątne w wielokątach 3, TO może się przydać w 4 klasie, MATEMATYKA klasa 4, klasa
naturalne, TO może się przydać w 4 klasie, MATEMATYKA klasa 4, klasa IV
Histochemia i cytochemia, To może się przydać kiedyś
Gronkowce, To może się przydać kiedyś
test wyboru dotyczacy podzielnosci liczb, TO może się przydać w 4 klasie, MATEMATYKA klasa 4, klasa
Zasady badania bakteriologicznego, To może się przydać kiedyś
Sterylizacja medyczna, To może się przydać kiedyś
Ewolucja konia, To może się przydać kiedyś
Ekonomia w pigułce dla studentów od I roku do III Wszystkim się to może przygać., studia, ekonomi
To dzięki Wam Preludium
TO DZIEKI WAM, teksty piosenek

więcej podobnych podstron