מודלים חישוביים תרגולמס 5 30 במרץ 2016 נושאי התרגול: דקדוקים חסרי הקשר. למת הניפוח לשפות חסרות הקשר. פעולות סגור לשפות חסרות הקשר. 1 דקדוקים חסרי הקשר נזכיר כי דקדוק חסר הקשר הוא רביעיה =(V,Σ,R,S) G, כך ש: V היא קבוצת סופית של משתנים (בד כ נסמנם באותיות אנגליות גדולות). Σ היא קבוצה סופית של ליטרלים, זרה ל V (בד כ נסמנם באותיות אנגליות קטנות)..α (V Σ) ו A V עבור A α היא קבוצה של כללי גזירה כך שכל כלל הוא מהצורה R V S הוא המשתנה ההתחלתי. הגדרה 1.1 יהיו Σ) u, v, w (V כך ש A w הוא כלל ב.R נוכל נסמן במקרה זה,uAv uwv ובאופן כללי נסמן u v אם ניתן לעבור מ u ל v ע י מספר סופי של הפעלות כללים מ R. השפה הנוצרת ע י G מוגדרת ע י w.l (G) =w Σ S לשפות המתקבלות ע י דקדוקים חסרי הקשר כנ ל אנו קוראים שפות חסרות הקשר. ניתן להגביל את כללי הגזירה באופן כזה שקבוצת השפות המתקבלות יהיו השפות הרגולריות. לדקדוקים כאלו אנו קוראים דקדוקים רגולריים. פירוט נוסף על כך ניתן בהרצאות. דוגמא 1 נראה דקדוק המקבל את השפה: L 1 = w a, b u Suffix (w).# a (u) # b (u) כלומר, בכל סיפא של w ב L, 3 מספר ה b ים הוא לפחות כמו מספר ה a ים. הדקדוק =(V,Σ,R,S) G יהיה:.V = S.Σ =a, b.s SaSb Sb ϵ יכיל את הכלל: R דוגמא לגזירה של מילה בשפה: S SaSb SaSbaSbb abasbbb ababbb 1
תרגיל 1 הוכיחו כי השפה 0 j L 2 = a i b j c i+j i, היא חסרת הקשר. נבנה עבורה דקדוק חסר הקשר =(V,Σ,R,S) G ונראה כי L (G) L= 2 ע י הכלה דו כיוונית. באופן כללי, את הכיוון (G) L L בד כ נוכיח באינדוקציה על אורך המילה ואת הכיוון L (G) L נוכיח באינדוקציה על אורך הגזירה. הדקדוק עבור L 2 יהיה: S asc T T bt c ϵ.v = S, T.Σ =a, b, c R יכיל את הכללים: הכיוון הראשון שנוכיח יהיה (G).L 2 L תהא.w = a i b j c i+j L 2 נראה כי S w ב.G סדר הגזירה יהיה i הפעלות של הכלל,aSc מעבר ל j T, הפעלות של הכלל bt c ולבסוף גזירת ϵ. כלומר: S asc a 2 Sc 2... a i Sc i a i Tc i a i bt c i+1 a i b 2 Tc i+2... a i b j Tc i+j a i b j c i+j = w ולכן S w (שימו לב כי היתה כאן אינדוקציה מובלעת שחסכנו אותה. איזו?). בכיוון השני, תהא (G) w. L כלומר, קיימת סדרה α 0 α,..., n כך ש S = α 0 α 1... α n = w הלמה הבאה תשלים את הוכחת הכיוון השני: למה 1.2 לכל α k,0 k n הוא באחת מן הצורות הבאות:.i עבור 0 a i Sc i.1.i, j עבור 0 a i b j Tc i+j.2.i, j עבור 0 a i b j c i+j.3 הוכחת הלמה תשלים את הוכחת הכיוון השני מכיוון שהצורה היחידה שבה המחרוזת מורכבת מליטרלים בלבד היא 3, וכל מחרוזת ב 3 שייכת ל L. 2 ההוכחה היא באינדוקציה על k, אורך הגזירה: עבור 0 = k מתקיים ש α 0 = S הוא מצורה.1 נניח את נכונות הלמה עבור 1 k ונפריד למקרים לפי הצורה של 1 k α. אם,α k 1 = a i Sc i ניתן להשתמש בכלל S asc כך ש i+1 α k = a i+1 Sc ולהיות מצורה 1 או להשתמש בכלל S T כך ש α k = a i Tc i ולהיות מצורה.2 אם,α k 1 = a i b j Tc i+j ניתן להשתמש בכלל T bt c כך ש i+j+1 α k = a i b j+1 Tc ולהיות מצורה 2 או להשתמש בכלל T ϵ כך ש α k = a i b j c i+j ולהיות מצורה.3 המקרה α k 1 = a i b j c i+j אינו אפשרי, שכן אין משתנים שיכולים להוביל לגזירת.α k 2
2 למת הניפוח לשפות חסרות הקשר נזכר בלמת הניפוח לשפות ח ה, שגם כאן תהווה עבורנו טכניקה להוכחה כי שפה אינה ח ה: למה 2.1 לכל שפה ח ה L קיים 0<l כך שלכל s L המקיימת s l קיים פירוק מהצורה s = uvxyz כך ש:.1 לכל 0,i.uv i xy i z L. vy > 0.2. vxy l.3 איך נשתמש בלמת הניפוח כדי להוכיח ששפה L כלשהי האינה ח ה? כמו שעשינו עבור למת הניפוח לשפות רגולריות: נניח בשלילה ש L ח ה ויהא l המובטח לנו. נבחר מילה s L באורך גדול מ lונראה שלכל חלוקה uvxyz של s כך ש > 0 vy ו vxy l קיים 0 i כך ש,uv i xy i z/ L בסתירה ללמת הניפוח. L 3 = a i b j c k j =max(i, k) תרגיל 2 הוכיחו כי השפה הבאה אינה ח ה: ניח בשלילה ש L 3 ח ה ויהא l המובטח לנו. נבחר: s = a l b l c l L 3 ונשים לב ש s. l נסתכל על כל הפירוקים האפשריים של s ל uvxyz כך ש > 0 vy ו. vxy l מכך ש, vxy l גם v וגם y לא יכולות להכיל יותר משני סוגים שונים של תווים. נפריד למקרים: אם vy מכילה את האות b, נסתכל על w = uv 0 xy 0 z = uxz וקיבלנו שמספר ה b ים בהכרח קטן אך או שמספר ה a ים לא השתנה או שמספר ה c ים לא השתנה (מהאבחנה הקודמת שלנו). מכאן, ש j<max (i, k) =l ולכן.w / L 3 אם vy אינה מכילה את האות b אז vxy כולה a ים או כולה c ים. נסתכל על w = uv 2 xy 2 z מספר ה b ים נשאר l, אך בהכרח מספר ה a ים גדלו או מספר ה c ים גדלו. מכאן, ש > j l =.w / ולכן L 3 max (i, k) בכל חלוקה אפשרית קיים i כך ש,uv i xy i /z L 3 בסתירה ללמת הניפוח. לכן, L 3 אינה ח ה. תרגיל 3 הוכיחו כי השפה הבאה אינה ח ה: L 4 = 1 n n is prime 3
ניח בשלילה ש L 4 ח ה ויהא l המובטח לנו. נבחר s 1= m כך ש m הוא הראשוני הקטן ביותר שהוא לפחות l. מהגדרתינו, s L 4 ו s. l נסתכל על כל הפירוקים האפשריים של s ל uvxyz כך ש > 0 vy ו. vxy l נסמן v =1 k ו.y =1 t מתקיים אם כך ש k>0.t + נבחר 1 +,i = m ואז: w = uv i xy i z =1 m+m(k+t) ומכיוון ש t),m + m (k + t) =m (1 + k + ברור כי הוא אינו ראשוני ולכן.w / L 4 תרגיל 4 הוכיחו כי השפה b L 5 = a 3j b 2k j, k > 0 מקיימת את תנאי למת הניפוח לשפות ח ה. נראה כי L 5 מקיימת את הלמה עבור קבוע הניפוח 3 = l. תהא s L 5 כך ש 3 s. נפריד למקרים: אם b s אז s = b m עבור 3.m נבחר פירוק x = y = ϵ,v = b,u = ϵ ו m 1.z = b נראה כי הפירוק מקיים את תנאי הלמה:. vxy =1 l. vy =1> 0 לכל 0,i.uv i xy i z = b i+m 1 b L אם s/ b הרי ש > 0 k.s a 3j b 2k j, כלומר, קיימים > 0 k j, כך ש.s = a 3j b 2k נבחר z. = a (1 j)3 b 2k נראה כי הפירוק מקיים את תנאי הלמה: uv i xy i z = a 3i a 3(j 1) b 2k = a 3(i+j 1) b 2k פירוק x = y = ϵ,v = a 3,u = ϵ ו. vxy =3 l. vy =3> 0 לכל 0,i a 3j b 2k j, k > 0 L 3 פעולות סגור לשפות חסרות הקשר כפי שדנו בפעולות אשר השפות הרגולריות סגורות עבורן, ניתן לשאול את אותן השאלות על שפות חסרות הקשר עם טכניקות הוכחה (או הפרכה) דומות. תרגיל 5 הוכיחו כי השפות חסרות ההקשר סגורות תחת היפוך. כלומר, עבור שפה ח ה L מעל Σ, הוכיחו כי= (L) rev L w R w היא ח ה. תהא L שפה ח ה מעל Σ, אזי קיים דקדוק ח ה =(V,Σ,R,S) G כך ש (G) L. = L נבנה = R G ),S ( V,Σ,R R כך שעבור כל כלל מהצורה A α ב,R נוסיף את הכלל A α R ל.R R ואז: w R rev (L) w L w L (G) w R L ( G R) כך שהמעבר האחרון, דהיינו S w ב G אם ם S w R ב G, R דורש הוכחה נפרדת. בכיוון הראשון, נוכיח טענה חזקה יותר: לכל k טבעי ו,A V אם A (k) w ב G אז A (k) w R ב.G R נוכיח באינדוקציה על k, אורך הגזירה. 4
עבור 1 = k טריוויאלי. נניח את הנכונות לגזירות באורך לכל היותר 1 k ונניח ב G כי A (k 1) w 1 A 1 w 2 w n A n w n+1 w 1 x 1 w 2 w n x n w n+1 = w מהנחת.G R A i x R i ב לפי הבנייה, Σ.x 1,...,x n עבור 1,n A 1,...,A n V ו האינדוקציה, מתקיים ב G R כי: A (k 1) w R n+1 A nw R n wr 2 A 1w R 1 wr n+1 xr n wr n wr 2 xr 1 wr 1 = wr כנדרש. הכיוון השני, ש S w R ב G R גורר S w ב,G נובע ישירות מהכיוון הראשון עבור הדקדוק G R (CNF) שימו לב כי היינו יכולים גם להניח כי Gהואבצורההנורמליתשלחומסקי. ( G (R R במקום,G כי = G ובכך לפשט מעט את ההוכחה. 5