Moed B + solutions
Transcription
Moed B + solutions
אוטומטים ושפות פורמליות מבחן מועד א' תשע"א 12.01.2011 פרופ' יעקב הל-אור מספר ת.ז______________________________: מספר מחברת_________________________: שאלה 1 2 3 4 סה"כ ניקוד /25 /25 /25 /25 /100 הנחיות: .1משך הבחינה 3שעות .2יש לענות על דפים אלו בלבד ואין לחרוג מהמקום המוקצה לכל תשובה .יש לענות בכתב יד קריא וברור .תשובה שאיננה קריאה תפסל! .3המבחן עם חומר סגור .דף סיכום מצורף. .4מותר להסתמך בתשובותיכם על טענות שהוכחו בכתה או טענות שמצורפות בדף הסיכום. .5שימו לב :אין צורך ולא כדאי ל"המציא" תשובות .במידה ואינכם יודעים תשובה על סעיף מסויים ניתן לכתוב "אינני יודע" ולקבל 02%מהניקוד עבור הסעיף .תשובה לא נכונה לא תקבל ניקוד כלל. בהצלחה! שאלה 25( 1נקודות) השלם את הטבלה הבאה ,סמן בכל כניסה בטבלה נכון ( )או לא נכון ( .)xאין צורך לנמק! 1 איננה חסרת הקשר חסרת הקשר רגולרית שפה V X X }{anbnc2n | n>0 X V X }{aibjck | i,j,k0, ij or jk X V V {xyz | xzL, yL} and L is regular X V V }{(ab)ka(ba)k | k>0 X V X }{anbmcn | m,n0 and m+n is even Explanations: a. L= anbnc2n is not CFL. Proof: Assume L is a CFL. Define a regular substitution S(c)=c+d. S(L) is a CFL L’= [ S(L) a*b*c*d* ]={anbncndn} is CFL. Define a regular substitution E(d)=. E(L’) is CFL. But E(L’) is anbncn which is known to be non CFL contradiction! b. The language is CFL, where the grammar is: SE | F EaEbC | aA | Bb FAbFc | bB | Cc CcC | BbB | AaA | c. The language is regular. L is regular there is a DFA A s.t. L(A)=L. L is regular ~L (i.e. A complement) is regular there is a DFA B s.t. L(B)=~L. It is possible to build an NFA C for L’={xyz | xzL, yL} s.t. L(C)=L’ L’ is regular. The NFA C is composed as follows: a. We start with the DFA A after making all its accepting states regular states (non-accepting). The starting state is the starting state of A. b. For each state q in A we add an epsilon transition to the starting state of a new DFA Bq which is a copy of the DFA B. c. From each accepting state in Bq we add an epsilon transition to the starting state of a new DFA Aq which is a copy of the DFA A. d. We make all accepting states in Bq, non-accepting states. d. {(ab)ka(ba)k | k>0} is regular. Note that (ab)ka(ba)k = = a (ba)k(ba)k=a(ba)2k=a(baba)(baba)* which is a RE regular e. This is a CFL. We can divide into two cases: n is even and n is odd. The grammar is: SE | aOc EaaEcc | B OaaOcc | bB BbbB | 2 שאלה 25( 2נקודות) לכל אחת מהטענות הבאות הקיפו נכון או לא נכון ונמקו בקצרה (במקום המוקצה לכך בלבד). בכל טענה 3 ,נק' יינתנו לאבחנה נכונה ו 3-נק' לנימוק. א .חיתוך של שפה חפשית הקשר עם שפה סופית היא שפה רגולרית. נכון /לא נכון נימוק: True. The intersection of a finite language with any language is finite regular ב .אוטומט A DFAבעל 6מצבים מזהה שפה Lמעל }. ={0,1 אם בשפה Lיותר מ 70מילים אזי Lאינסופית. נכון /לא נכון נימוק: True. A has 6 states, i.e. if wL and |w|6, w can be pumped using the pumping lemma for RL L is infinite. We will show that there must be a word wL where |w|6. The maximum number of words where for |w|<6 is 1+2+4+8+16+32=63 i.e. there must be a word wL where |w|6 L is infinite. ג .הביטויים הרגולריים הבאים שקולים: *B= (ab*)*ba נכון /לא נכון *A=(a*ba*)*a נימוק: False. For example, aA but aB ד .כל המילים בדקדוק הבא הן בעלות אורך זוגי: נכון /לא נכון נימוק: S AB A aAb | c B bBa | c True. A generates odd length prefix, and B generates odd length suffix. Concatenating together we must have an even length word. שאלה 25( 3נקודות) נתון אוטומט Aהמגדיר שפה ) L=L(Aמעל } .={a,bלכל שפה מהשפות הבאות קבע אם היא שפה רגולרית או לא .במידה ורגולרית הוכח בעזרת בניית אוטומט ( .)NFAבמידה ולא רגולרית הוכח בעזרת לימת הניפוח או בעזרת אי-קיום תכונות סגור. 3 dropa(L)={xy | xayL } .a dropa(L) is regular. We prove it by construction: we will build a NFA B recognizing dropa(L) dropa(L) is regular. Assume A=(Q,,, q0,F). The NFA B=(Qb,b,b, q0b,Fb) is composed of two copies of DFA A, denoted A1=(Q1={qi1},,1, q01,F1) and A2=(Q2={ qi2},,2, q02,F2) as follows: a. Qb= Q1Q2 b. b = c. q0b= q01 d. Fb = F2 e. b = 12{ for each ( (qi1,a)=qj1 )1 add a rule (qi1,)= qj2 } adda*(L) = {xa*y | xyL } .b adda*(L) is regular. We prove it by construction: we will build a NFA B recognizing adda*(L) adda*(L) is regular. Assume A=(Q,,, q0,F). The NFA B=(Qb,b,b, q0b,Fb) is composed of three copies of DFA A, denoted A1=(Q1={qi1},,1, q01,F1) , A2=(Q2={qi2},,2, q02,F2) and A3=(Q3={qi3},,3, q03,F3) as follows: a. Qb= Q1Q2 Q3 b. b = c. q0b= q01 d. Fb = F3 e. b = 13{ for each qi1Q1 add 3 rules: (qi1,)=qi2 , (qi2,a)=qi2 and (qi2,)=qi3 } add_mida (L)={xay | xyL & |x|=|y|} .c add_mida (L) is not necessarily regular. A contrary example: Let L={b2n | n>0}. L is regular (RE exists: L=(bb)* ). L’=add_mida (L)={bnabn | n>0 } L’ is not-regular. Proof: Assume by contradiction that L’ is regular. Define a regular substitution S(b)=b+c. S(L’) is regular. L’’=(S(L’) b*ac* )=bnacn is regular (closure under intersection). Define a regular substitution E(a)= E(L’’) is regular But E(L’’)=bncn is not regular contradiction. 4 ) נקודות25( 4 שאלה אם היא חסרת. לגבי כל שפה החלט אם היא חסרת הקשר או לא. ={0,1} שתי השפות הבאות מוגדרות מעל . ואם איננה חסרת הקשר הוכח בעזרת לימת הניפוח,הקשר בנה דקדוק המזהה את השפה L={xy | |x|=|y| but xy} .a L is CFL (as was shown in class). L={ n0mn1m n1mn0m | m,n0} = { n0nm1m n1nm0m | m,n0} And the grammar is: SAB | BA ADAD | 0 BDBD | 1 D0 | 1 L={x#y | |x|=|y| but xy} .b L is CFL. L={ L1 L2 where L1=n0m#n1m and L2=n1m#n0m | m,n0} Case a: nm L1a= mn-m0m#mn-m1m L2a= mn-m1m#mn-m0m Case b: n<m L1b= n0m-nn #n1m-nn L2b= n1m-nn #n0m-nn Each case can be parsed recursively. For example: L1a= m n-m 0 m # m n-m1m C B1 A1 And the grammar is: SA1 | A2 | A3 | A4 D0 | 1 CDCD | # A1DA1D | B11 B1DB1D | 0C 5 A2DA2D | B20 B2DB2D | 1C A3DA3D | 0B3 B3DB3D | C1 A4DA4D | 1B4 B4DB4D | C0 6