Moed B + solutions

‫אוטומטים ושפות פורמליות‬
‫מבחן מועד ב' תשע"א ‪23.02.2011‬‬
‫פרופ' יעקב הל‪-‬אור‬
‫מספר ת‪.‬ז‪______________________________:‬‬
‫מספר מחברת‪_________________________:‬‬
‫שאלה‬
‫‪1‬‬
‫‪2‬‬
‫‪3‬‬
‫‪4‬‬
‫סה"כ‬
‫ניקוד‬
‫‪/25‬‬
‫‪/25‬‬
‫‪/25‬‬
‫‪/25‬‬
‫‪/100‬‬
‫הנחיות‪:‬‬
‫‪ .1‬משך הבחינה ‪ 3‬שעות‬
‫‪ .2‬יש לענות על דפים אלו בלבד ואין לחרוג מהמקום המוקצה לכל תשובה‪ .‬יש לענות בכתב יד קריא וברור‪ .‬תשובה‬
‫שאיננה קריאה תפסל!‬
‫‪ .3‬המבחן עם חומר סגור‪ .‬דף סיכום מצורף‪.‬‬
‫‪ .4‬מותר להסתמך בתשובותיכם על טענות שהוכחו בכתה או טענות שמצורפות בדף הסיכום‪.‬‬
‫‪ .5‬שימו לב‪ :‬אין צורך ולא כדאי ל"המציא" תשובות‪ .‬במידה ואינכם יודעים תשובה על סעיף מסויים ניתן לכתוב‬
‫"אינני יודע" ולקבל ‪ 02%‬מהניקוד עבור הסעיף‪ .‬תשובה לא נכונה לא תקבל ניקוד כלל‪.‬‬
‫בהצלחה!‬
‫שאלה ‪ 25( 1‬נקודות)‬
‫השלם את הטבלה הבאה‪ ,‬סמן בכל כניסה בטבלה נכון (‪ )‬או לא נכון (‪ .)x‬אין צורך לנמק!‬
‫איננה חסרת‬
‫הקשר‬
‫חסרת‬
‫הקשר‬
‫רגולרית‬
‫‪V‬‬
‫‪V‬‬
‫}‪{w | w is not a palindrom‬‬
‫‪V‬‬
‫‪V‬‬
‫} ‪{an(a+b)m | m0, and n is a prime number‬‬
‫}|‪{vb*w | v{a,b}*, w{b,c}* and |v|=|w‬‬
‫} )‪{ 0i1j0k | kmax(i,j‬‬
‫‪V‬‬
‫‪V‬‬
‫‪1‬‬
‫שפה‬
‫‪V‬‬
‫} |‪{xy | x,y{a,b}* and |x|=|y‬‬
A. w is not a palindrom can be expressed (over ={0,1}) as k02n1k or k12n2k
each of which can be easily defined by a CF grammar.
B. The language {an(a+b)m | m0, and n is a prime number} is eventually a(a+b)*
C. Can be defined by the CFG: SASB | C ; Aa | b ; Bb | c ; CbC | 
D. Non CFL. Can be shown by the pumping lemma for CFL using the word
w=0p1p1p (we solved in class a similar problem).
E. ()*
)‫ נקודות‬25( 2 ‫שאלה‬
.)‫לכל אחת מהטענות הבאות קבע אם נכון או לא נכון ונמק בקצרה (במקום המוקצה לכך בלבד‬
.‫ נק' לנימוק‬3-‫ נק' יינתנו לאבחנה נכונה ו‬3 ,‫בכל טענה‬
‫ היא שפה המכילה את כל תתי המילים‬subs(L) ‫ ( ז"א‬subs(L)={y | xyzL } :‫ נגדיר‬L ‫ עבור שפה‬.‫א‬
.‫ היא בהכרח ח"ה‬subs(L) ‫ היא שפה ח"ה אזי‬L ‫ אם‬.)L ‫שבשפה‬
:‫נימוק‬
‫ לא נכון‬/‫נכון‬
True.
Proof: Apply a CF substitution F()=’. Intersect with the regular language ’**’*
Apply a CF substitution G(’)=
.‫ שפה המקיימת את לימת הניפוח עבור שפות ח"ה ניתנת לזיהוי ע"י אוטומט מחסנית‬.‫ב‬
:‫נימוק‬
‫ לא נכון‬/‫נכון‬
Wrong.
LCFL  L satisfies the pumping lemma for CFL, but not vice versa.
.‫ רגולרית‬L1 ‫ אזי‬L1L2=L4 ‫ וגם‬L1L2=L3 ‫ הן שפות רגולריות ומתקיים‬L2, L3, L4 ‫ אם השפות‬.‫ג‬
:‫נימוק‬
‫ לא נכון‬/‫נכון‬
True.
L’=L3-L2 is regular (closure of RL under subtraction).
L1=L’L4 is regular (closure of RL under union)
‫ כך שמתקיים‬C ‫ וקיים אוטומט מינימלי‬,(DFA) ‫ הם אוטומטים דטרמניסטיים‬B -‫ ו‬A ‫ אם שני אוטומטים‬.‫ד‬
) X ‫| מציין מספר המצבים באוטומט‬X| ( |C||A|*|B| ‫ אזי‬, L(C)=L(A)L(B)
:‫נימוק‬
‫ לא נכון‬/‫נכון‬
True.
C can be built by the product automaton of A and B which has |A|*|B| states.
Since C is minimal |C|  |A|*|B|
2
)‫ נקודות‬25( 3 ‫שאלה‬
‫ במידה‬.‫ לכל שפה מהשפות הבאות קבע אם היא שפה רגולרית או ח"ה‬. ={a,b } ‫השפות הבאות מוגדרות מעל‬
‫ ובנה דקדוק או אוטומט מחסנית‬,‫ במידה ולא רגולרית הוכח זאת‬.)NFA( ‫ורגולרית הוכח בעזרת בניית אוטומט‬
.‫שמזהה את השפה‬
L1={w | x,y* s.t. xy=w | #a(x) - #b(x) |  2 } .a
.2-‫ בכל רישא של המילה קטן או שווה ל‬b-‫ ומספר ה‬a-‫ המקיימות שההפער בין מס' ה‬* ‫ כל המילים מעל‬,‫ז"א‬
L1 is a regular language:
L2={w | x,y* s.t. xy=w | #a(xy) - #b(xy) |  2 } .b
L2 is CFL.
Proof: by applying the pumping lemma for CFL on w=an+2bn
Grammar: S E | EaE | EbE | EaEaE | EbEbE ; E EaEbE | EbEaE | 
L3={w | x,y* s.t. xy=w | #a(x) - #b(y) |  2 } .c
.2-‫ בסיפא קטן או שווה ל‬b-‫ ברישא לעומת מספר ה‬a-‫ הפער בין מס' ה‬,‫ המקיימות שבכל רישא‬* ‫כל המילים מעל‬
L3 is regular (when the prefix is , no more than 2 b’s in the word are permitted.
Similarly, when the prefix is , no more than 2 a’s in the word are permitted).
The FA is :
3
)‫ נקודות‬25( 4 ‫שאלה‬
L(A)=L :L ‫( המזהה את‬DFA) A ‫ ואוטומט מינימלי‬L={1n | n>0 and (n mod 1000)=0} ‫נגדיר שפה‬
10 ‫ הגדר מהן מחלקות השקילות מסדר‬.)‫ הוא המצב ההתחלתי‬q0 ‫ (כאשר‬’(q0,1k)=qk ‫ נגדיר כי‬.a
.(10-equivalence) A ‫של מצבי‬
E10={ {q0,q1,..,q989},{q990},{q991},…,{q1000}}
.‫? הוכח‬A ‫ כמה מחלקות שקילות יש לאוטומט‬.b
There are 1001 equivalenct class in A.
Proof: Denote by K the number of equivalent class in A.
If K>1001, there must be i>1 such that, two states qi and q1000+i are in two
different equivalent class.
However ’(qi,1k)F  (1i+k mod 1000)=0  (11000+i+k mod 1000)=0 
’(qi+1000, 1k)F  qi and q1000+i are in the same equivalent class 
contradiction  K1001.
If K<1001, there must be 1000i,j0 and ij, such that qi  qj .
However ’(qi,11000-i)F while ’(qj,11000-i)F  qi and qj are not equivalent 
contradiction  K  1001 and K1001  K=1001. QED.
?A ‫ מה מספר המצבים באוטומט‬.c
Since A is minimal, A has 1001 states (=number of equivalent classes)
4