INF2820 V2017 Oppgavesett 6 Gruppe 7.3 Oppgave 1: Lag en kontekstfri grammatikk som beskriver samme språk som nettverket under. S a S S c S S b A1 A1 a S A1 c S A1 b A2 A2 c S A2 a S A2 b A3 A3 a A3 A3 b A3 A3 c A3 A3 Oppgave 2: Lag CFG er for følgende språk: a) A = {a, b, c}, L = {w A* w inneholder minst 3 b er på rad}. Hvor og hvor mange a er og c er er uinteressant. S b b b S a S S b S S c S S S a S S b S S c 1
b) A = {a, b, c}, L = {ww R A* w A }. w R er ordet w skrevet baklengs. S S a S a S b S b S c S c c) L = {a n b m c k A* n > 2(m + k) }. S a S S a a S c S B B B a a B b d) A = {a, b}, L = {w A* w inneholder like mange a er som b er}. Rekkefølgen av a ene og b ene er her uinteressant. S S a S b S b S a S SS Oppgave 3 Egenskaper ved kontekstfrie språk Vi har tidligere sett at klassen av regulære språk har en del pene egenskaper. Fra definisjonen av regulære språk følger det at viss L1 og L2 begge er regulære, så er også L1 L2, unionen av L1 og L2, regulært. Vi kunne så bevise at også snittet av L1 og L2, i symboler L1 L2, er regulært, og at komplementet til L1 er regulært. Vi skal nå undersøke hvilke av disse egenskapene som gjelder for klassen av kontekstfrie språk. La L1 = {a n b n c* n > 0} og la L2={a*b n c n n > 0}. a. Vis at L1 er kontekstfritt og at L2 er kontekstfritt. For L1 f.eks. S S c S F F afb F L2, tilsv. 2
b. Vis at språket L3=L1 L2 er kontekstfritt. Vi kan gå ut i frå at mengden av ikketerminaler for L1 er disjunkt fra mengden av ikketerminaler for L2 og at L1 har hovedsymbol S1 og L2 har hovedsymbol S2 og at ingen av dem bruker ikketerminalen S. Om nødvendig skifter vi navn på ikketerminalene for å få til dette. La ny grammatikk inneholde alle reglene i L1 og alle reglene i L2 og to nye regler S L1 S L2 Det er rett frem å se at den nye grammatikken gjør jobben. c. Gitt to kontekstfrie grammatikker, G1 og G2. Gi en generell oppskrift for å lage en kontekstfri grammatikk for språket som er unionen av språkene generert av de to grammatikkene, L = L(G1) L(G2). Mao. vis at unionen av to kontekstfrie språk er kontekstfritt. Gjort i b. d. Men det er ikke slik at L1 L2 behøver å være kontekstfritt, selv om både L1 og L2 er det. På forelesningen skal vi se at språket der A = {a, b, c}, L = {a n b n c n n > 0} ikke er kontekstfritt. Vis at L = L1 L2. Da har vi funnet to kontekstfrie språk som har et snittspråk som ikke er kontekstfritt. Anta at w er I L. Da må w være på formen a n b n c n for en n. Men dette uttrykket tilfredstiller også beskrivelsene a n b n c* og a*b n c n. Omvendt, hvis w er i L1 og i L2 så er w på formen a n b n c*for en n og på formen a*b m c m for en m. Men siden antall b er er bade m og n, må m være lik n og w på formen a n b n c n. e. Det er heller ikke slik at komplementet til et kontekstfritt språk behøver å være kontekstfritt. La L4 være komplementet til L, mao L4={ w A* w a n b n c n for alle n > 0}. Vis at L4 er kontekstfritt. (Hint. L4 er unionen av flere kontekstfrie språk: Alle uttrykk som ikke er på formen a*b*c*, de som er på formen a n b k c m der m n, osv.) Dermed har vi funnet et kontekstfritt språk, L4, som har et komplement, L, som ikke er kontekstfritt. S S1 S2 S3 S4 S5 S6 S1 W c W a W S2 W c W b W S3 W b W a W W a W b W c W W S4 S4 c S4 a A A a A 3
A a A b A S4 B b B B b B a B b B S5 og S6 tilsv. Eksamen INF2820, 2013, oppgave 1 Oppgave 1 La G1 være grammatikken med hovedsymbol S og følgende regler: 1. S > NP VP 2. VP > IV 3. VP > TV NP 4. NP > DET N 5. N > N R 6. R > RP S_NP 7. S_NP > NP_NP VP 8. S_NP > NP VP_NP 9. VP_NP > TV NP_NP 10. NP_NP > 11. IV > 'smiled' 'slept' 'danced' 12. TV > 'chased' 'saw' 'owned' 13. N > 'cat' 'dog' 'child' 14. DET > 'a' 'the' 'some' 15. RP > 'that' S_NP er her en regulær ikke terminal med samme status som f.eks. TV, og det er NP_NP og VP_NP også. Spørsmål 1.1 (10%) Tegn trærne (eller treet) grammatikken tilordner til a) the cat that the child owned smiled 4
Spørsmål 1.2 (5%) Hva vil det si at et språk er regulært? +++++++++ Definisjon av regulære språk 1. Språkene Ø { } { a } for alle a A er regulære 2. Hvis M og L er regulære, er L M LM L* regulære Men det gir også (begrenset) uttelling å si Språk som kan beskrives at et regulært uttrykk Språk som kan beskrives av en FSA 5
Spørsmål 1.3 (10%) Er språket L(G1), dvs. språket generert av G1, et regulært språk? Begrunn svaret! (i) Nei, det er ikke regulært (ii) Vi ser at N N R N RP S_NP N RP NP VP_NP N RP DET N TV NP_NP N RP DET N TV Da vil også N (N RP DET) n N TV n Og L1 = DET (N RP DET) n N TV n IV blir en delmengde av L(G1) (iii) Det er kjent at L1 ikke er regulært (Det kan avbildes på a n b n som ikke er regulært.) (iv) Vi ser også at DET (N RP DET) m N TV n IV ikke er i L(G1) for m=/= n (iv) La L2 = DET (N RP DET)* N TV* IV Da er L1 = L(G1) L2 L2 er regulært Siden snittet av et kontekstfritt språk og et regulært språk er regulært, L2 er regulært og L1 ikke er regulært, så er ikke L(G1) regulært. Kommentar: Jeg forventer ikke fullstendig besvarelse, men jeg forventer litt begrunnelse. SLUTT 6