You are on page 1of 30

‫מערכת שידורים לאומית‬

‫שפות רגולריות‬
‫וחסרות הקשר ‪ -‬תרגול א‬
‫מודלים חישוביים‪ ,‬י"א‬
‫שם המורה‪ :‬גד לידרור‬
‫מורה בודקת‪:‬‬

‫‪2‬‬
‫מה נלמד היום‬

‫בשיעור זה נתרגל נושאים מתחום השפות הרגולריות‪ ,‬חופשיות ההקשר ושאינן חופשיות הקשר‬

‫נשתמש בהגדרות של השפות הללו ובחוקי הסגירות שהוכחנו‬

‫‪3‬‬
‫שפות שאינן חופשיות הקשר‬ ‫‪‬‬
‫שפות חופשיות הקשר‬

‫רגולריות‬
‫שפות ז‬

‫שפות סופיות‬

‫‪4‬‬
‫שפות ‪ -‬הגדרה וזיהוי‬
‫סוג השפה‬ ‫הגדרה‬ ‫איך מזהים‬ ‫דוגמה‬
‫שפה רגולרית‬ ‫שפה שניתן לבנות עבורה‬ ‫שפה סופית ‪/‬‬ ‫}‪{anbm | n, m > 0‬‬
‫אוטומט סופי (רגיל)‬ ‫אין תלות אינסופית בשפה‬ ‫א"ב ‪}a, b{ -‬‬
‫המקבל אותה‪ ,‬ורק אותה‬
‫שפה שאינה רגולרית ‪/‬‬ ‫שפה שניתן לבנות עבורה‬ ‫}‪ {anbn | n > 0‬תלות אינסופית בודדת בשפה‬
‫שפה חופשית הקשר‬ ‫אוטומט מחסנית סופי‬ ‫א"ב ‪}a, b{ -‬‬
‫המקבל אותה‪ ,‬ורק אותה‬
‫שפה שאינה חופשית‬ ‫שפה שלא ניתן לבנות עבורה‬ ‫תלות אינסופית כפולה‬ ‫}‪{anbnan | n > 0‬‬
‫הקשר‬ ‫אוטומט מחסנית‬ ‫(לפחות) בשפה‬ ‫א"ב ‪}a, b{ -‬‬
‫המקבל אותה‪ ,‬ורק אותה‬

‫‪5‬‬
‫‪5‬‬
‫שפות ‪ -‬היחס בין קבוצות השפות‬

‫שפות חופשיות הקשר‬


‫שפות שאינן‬ ‫שפות רגולריות‬
‫שפות שאינן רגולריות‬
‫חופשיות בקשר‬
‫אינסופיות‬ ‫סופיות‬

‫‪6‬‬
‫‪6‬‬
‫סגירות תחת ההכלה והפעולות‬
‫סגירות תחת‬ ‫כלומר‬ ‫רגולריות‬ ‫חופשיות הקשר‬

‫הכלה‬ ‫? ‪ L1  L  L‬או ‪ L1  L‬נתון ‪ L1‬שפה ‪...‬‬


‫אין‬ ‫אין‬
‫איחוד‬ ‫? ‪ L = L1  L2  L‬נתון ‪ L1, L2‬שפות ‪...‬‬
‫יש‬ ‫יש‬
‫חיתוך‬ ‫? ‪ L = L1  L2  L‬נתון ‪ L1, L2‬שפות ‪...‬‬
‫יש‬ ‫אין‬
‫משלים‬ ‫‪ L  L‬נתון ‪ L‬שפה ‪...‬‬
‫? ¯‬
‫יש‬ ‫אין‬
‫הופכי‬ ‫? )‪ L R(L‬נתון ‪ L‬שפה ‪...‬‬
‫יש‬ ‫יש‬
‫שרשור‬ ‫? ‪ L = L1  L2  L‬נתון ‪ L1, L2‬שפות ‪...‬‬
‫יש‬ ‫יש‬

‫‪7‬‬
‫‪7‬‬
‫תרגיל‬
‫נתונות השפות הבאות‪:‬‬
‫א‪ .‬קבעו ונמקו בקצרה (אין צורך בהוכחה ממש) לכל אחת מהשפות האלו האם היא רגולרית או אינה‬
‫רגולרית‪.‬‬
‫ב‪ .‬בחרו שפה (רגולרית) וכתבו הוכחה שהיא רגולרית‪.‬‬
‫}‪L1 = {#a - #b = #c‬‬ ‫מעל הא"ב {‪}a, b, c‬‬

‫}‪L2 = {#a = (#b mod 2) + 1‬‬ ‫מעל הא"ב {‪}a, b‬‬

‫}‪L3 = {a3nb2mck| n, k ≥ 0, n < m < k‬‬ ‫מעל הא"ב {‪}a, b, c‬‬

‫}‪L4 = {a3nb2mck| n, k ≥ 0, 0 < m < 50‬‬ ‫מעל הא"ב {‪}a, b, c‬‬

‫}‪L5 = {anambibj | n, m, i, j > 0, n = m, i ≠ j‬‬ ‫מעל הא"ב {‪}a, b‬‬

‫}‪L6 = {anbmbiaj | n, m, i, j ≥ 0, n + m = i + j‬‬ ‫מעל הא"ב {‪}a, b‬‬

‫‪8‬‬
‫מעל הא"ב {‪}a, b, c‬‬
‫}‪L1 = {#a - #b = #c‬‬
‫השפה אינה רגולרית‬
‫נימוק‪:‬‬
‫רק לצורך הפשטות של הנימוק נעביר את החישוב ‪-‬‬
‫‪#a - #b = #c  #a = #c + #b‬‬

‫ישנה תלות אינסופית בין חלקים בשפה‪ ,‬כך שמספר ה‪ a-‬הכולל במילה שווה לסכום‬
‫מספר ה‪ b-‬ומספר ה‪ c-‬בשפה‬

‫‪9‬‬
‫‪9‬‬
‫מעל הא"ב {‪}a, b‬‬
‫}‪L2 = {#a = (#b mod 2) + 1‬‬

‫השפה רגולרית‬
‫נימוק‪:‬‬
‫אין תלות אינסופית בין חלקים בשפה‪ ,‬מספר ה‪ a-‬יכול להיות רק ‪ 1‬או ‪ 2‬תלוי בשארית‬
‫החלוקה של מספר ה‪ b-‬ב‪ 0( 2-‬או ‪ )1‬בתוספת ‪.1‬‬

‫‪10‬‬
‫‪10‬‬
‫}‪L2 = {#a = (#b mod 2) + 1‬‬ ‫הוכחה‪:‬‬
‫‪L21 = {#a = 1, #b mod 2 = 0},‬‬
‫‪L21  L22 = L2‬‬
‫}‪L22 = {#a = 2, #b mod 2 = 1‬‬

‫נראה ש‪ L21, L22 -‬רגולריות‪ .‬שוב‪ ,‬נחלק כל אחת מהן לשפות "קטנות" יותר‬
‫‪L211 = {#a = 1} ,‬‬ ‫‪L211  L212 = L21‬‬
‫‪L212 = {#b mod 2 = 0},‬‬
‫‪L221 = {#a = 2} ,‬‬ ‫‪L221  L222 = L22‬‬
‫}‪L222 = {#b mod 2 = 1‬‬

‫נותר להראות שארבעת השפות הללו רגולריות‪ .‬נבנה עבורן אוטומטים סופיים‬

‫‪11‬‬
‫נוכיח ש‪ L211, L212 , L221 , L222 -‬רגולריות‪ ,‬על ידי בניית אוטומטים סופיים‪.‬‬

‫}‪L211 = {#a = 1‬‬ ‫}‪,L212 = {#b mod 2 = 0‬‬ ‫}‪L221 = {#a = 2‬‬ ‫= ‪L222‬‬ ‫‪L212‬‬

‫מכיוון שחיתוך‪ ,‬משלים ואיחוד שומרים על רגולריות‪ L2 ,‬רגולרית!‬

‫‪12‬‬
‫מעל הא"ב {‪}a, b, c‬‬
‫}‪L3 = {a3nb2mck| n, k ≥ 0, n < m < k‬‬

‫השפה אינה רגולרית‪.‬‬


‫נימוק‪:‬‬
‫ישנה תלות אינסופית בין חלקים בשפה‪ ,‬כך שמספר ה‪ c-‬בסוף כל מילה בשפה גדול‬
‫ממחצית ממספר ה‪ b-‬באמצע כל מילה בשפה שהוא בעצמו גדול משליש ממספר ה‪a -‬‬
‫בתחילתה‪.‬‬

‫‪13‬‬
‫‪13‬‬
‫מעל הא"ב {‪}a, b, c‬‬
‫}‪L4 = {a3nb2mck| n, k ≥ 0, 0 < m < 50‬‬

‫השפה רגולרית‬
‫נימוק‪:‬‬
‫אין תלות אינסופית בין חלקים בשפה‪ ,‬מספר ה‪ a-‬אינו תלוי במספר ה‪ b-‬או ה‪ c-‬וגם הם‬
‫אינם תלויים האחד בשני‪.‬‬

‫‪14‬‬
‫‪14‬‬
‫}‪L4 = {a3nb2mck| n, k ≥ 0, 0 < m < 50‬‬
‫}‪L41 = {a3n| n ≥ 0‬‬ ‫‪q0‬‬ ‫‪q1‬‬
‫𝑎‬
‫‪q2‬‬ ‫הוכחה‪:‬‬

‫}‪L42 = {b2n| 0 < n < 50‬‬ ‫שפה סופית‬ ‫שימו לב‪ :‬זהו לא אותו ‪n‬‬

‫‪q0‬‬ ‫𝑐‬
‫}‪L43 = {cn| n ≥ 0‬‬

‫‪L4 = L41 ∙ L42 ∙ L43‬‬ ‫)כי אין כל תלות בין חלקי השפה מלבד חובת הרצף(‬

‫‪ L4‬רגולרית כי שרשור שומר על רגולריות‬

‫‪15‬‬
‫‪15‬‬
‫}‪L5 = {anambibj | n, m, i, j > 0, n = m, i ≠ j‬‬ ‫מעל הא"ב {‪}a, b‬‬

‫השפה רגולרית‬
‫נימוק‪:‬‬
‫עבור הכללים ‪n, m, i, j > 0, n = m, i ≠ j -‬‬
‫‪anambibj = an+mbi+j = a2nbk | n > 0, k > 2‬‬
‫(‪ k‬סכום של שני מספרים גדולים מ‪ 0-‬ששונים זה מזה‪ ,‬חוץ מ‪ 2-‬ששווה רק לאחד ועוד‬
‫אחד)‬

‫אין תלות אינסופית בין חלקים בשפה‪ ,‬מספר ה‪ a-‬אינו תלוי במספר ה‪ b-‬כלל‪ ,‬התנאים‬
‫הם רק על מספר ה‪ a-‬בפני עצמו בתחילת השפה ועל מספר ה‪ b-‬בפני עצמו בסופה‪.‬‬

‫‪16‬‬
‫‪16‬‬
L5 = {anambibj | n, m, i, j > 0, n = m, i ≠ j}
:‫הוכחה‬
L51 = {a2n | n > 0} q0 q1 q2 q3

b b b 𝑏
L52 = {b | n > 2}
n q0 q1 q2 q3

L5 = L51  L52

.‫ כי שרשור שומר על רגולריות‬,‫ רגולרית‬L5

17
‫}‪L6 = {anbmbiaj | n, m, i, j ≥ 0, n + m = i + j‬‬ ‫מעל הא"ב {‪}a, b‬‬

‫השפה אינה רגולרית‬


‫נימוק‪:‬‬
‫ישנה תלות אינסופית בין חלקים בשפה‪ ,‬כך שמספר ה‪ a-‬ועוד מספר ה‪b -‬ברצף בתחילת‬
‫השפה שווה למספר ה‪ b-‬ועוד מספר ה‪a -‬ברצף בסוף השפה‪.‬‬

‫‪18‬‬
‫‪18‬‬
‫לאחר ההפסקה נמשיך לתרגל‬

‫נתרגל שאלות הקשורות גם לשפות חופשיות הקשר‬

‫נצא להפסקה בת ‪ 10‬דקות‬

‫‪19‬‬
‫הפסקה !!!‬

‫‪20‬‬
‫תרגיל‬
‫נתונות השפות הבאות‪ ,‬כולן מעל הא"ב {‪:}a, b, c‬‬
‫}‪L1 = {anbmck | 0 < n < m < k‬‬
‫}‪L2 = {(abc)n(abc)k | n, k > 0‬‬
‫}‪L3 = {a3nb2ncm| n, m ≥ 0‬‬
‫}‪L4 = {(akakak) j b j c j | k ≥ 0, 0 ≤ j < 10‬‬
‫מילה מעל הא"ב של השפה ‪L5 = {wk| #b + #c in w > # a in w,‬‬ ‫}מספר חד ספרתי‪w , k-‬‬

‫א‪ .‬קבעו ונמקו לכל אחת מהשפות האלו האם היא‪:‬‬


‫רגולרית‪ ,‬חופשית הקשר ואינה רגולרית או אינה חופשית הקשר‪.‬‬
‫ב‪ .‬בחרו שפה (רגולרית) וכתבו הוכחה שהיא רגולרית‪.‬‬

‫‪21‬‬
‫‪21‬‬
‫}‪L1 = {anbmck | 0 < n < m < k‬‬ ‫מעל הא"ב {‪}a, b, c‬‬

‫‪ - L1‬אינה חופשית הקשר‪.‬‬


‫ישנה יותר מתלות אינסופית אחת בין חלקי השפה‪.‬‬
‫מספר ה‪ a-‬בתחילת השפה קטן ממספר ה‪ b-‬באמצעה שקטן ממספר ה‪ c-‬בסופה‪.‬‬

‫‪22‬‬
‫‪22‬‬
‫מעל הא"ב {‪}a, b, c‬‬
‫}‪L2 = {(abc)n(abc)k | n, k > 0‬‬

‫‪ - L2‬רגולרית‪.‬‬

‫אין כלל תלות אינסופית בין חלקי השפה‪.‬‬

‫‪23‬‬
‫‪23‬‬
‫}‪L2 = {(abc)n(abc)k | n, k > 0‬‬ ‫מעל הא"ב {‪}a, b, c‬‬

‫הוכחת הרגולרית‪:‬‬
‫מכיוון שאין תלות בין חלקי השפה‪ ,‬ניתן לפצל אותה לשרשור של שתי שפות‪ .‬למעשה‪ ,‬היא מורכבת משרשור של אותה‬
‫שפה לעצמה‪.‬‬
‫מכיוון ששרשור שומר על רגולריות נותר להוכיח רק שהשפה המשורשרת רגולרית‪.‬‬
‫}‪L21 = {(abc)n | n > 0‬‬
‫האוטומט של ‪L21‬‬
‫‪L2 = L212‬‬ ‫‪a‬‬ ‫‪b‬‬ ‫‪c‬‬
‫‪q0‬‬ ‫‪q1‬‬ ‫‪q2‬‬ ‫‪q3‬‬

‫‪a‬‬

‫‪ L2‬רגולרית‪ ,‬כי שרשור שומר על רגולריות‪.‬‬

‫‪24‬‬
‫‪24‬‬
‫}‪L3 = {a3nb2ncm| n, m ≥ 0‬‬ ‫מעל הא"ב {‪}a, b, c‬‬

‫‪ - L3‬חופשית הקשר ואינה רגולרית‪.‬‬


‫יש תלות אינסופית אחת בין חלקי השפה‪.‬‬
‫היחס בין מספר ה‪ a-‬בתחילת השפה למספר ה‪ b-‬באמצעה הוא ‪( 2 : 3‬לטובת ה‪)a-‬‬

‫‪25‬‬
‫‪25‬‬
‫}‪L4 = {(akakak) j b j c j | k ≥ 0, 0 ≤ j < 10‬‬ ‫מעל הא"ב {‪}a, b, c‬‬

‫‪ - L4‬רגולרית‪.‬‬
‫אין כלל תלות אינסופית בין חלקי השפה‪.‬‬
‫התלות הקיימת היא סופית ומוגבלת ע"י ‪.j < 10‬‬

‫‪26‬‬
‫‪26‬‬
‫}‪L4 = {(akakak) j b j c j | k ≥ 0, 0 ≤ j < 10‬‬ ‫כל השפות מעל הא"ב {‪}a, b, c‬‬

‫השפה רגולרית‬
‫הוכחה‪:‬‬
‫ניתן לראות שהשפה ‪ L4‬היא למעשה איחוד של עשר שפות שונות‪:‬‬
‫}‪L40 = {(a3k) 0 b 0 c 0 | k ≥ 0‬‬
‫}‪L41 = {(a3k) 1 b 1 c 1 | k ≥ 0‬‬
‫}‪L42 = {(a3k) 2 b 2 c 2 | k ≥ 0‬‬ ‫‪L4 = L40  L41  L42  …  L9‬‬
‫‪b‬‬ ‫‪c‬‬
‫‪q0‬‬ ‫‪q3‬‬ ‫‪q4‬‬
‫‪...‬‬
‫‪a‬‬
‫}‪L49 = {(a3k) 9 b 9 c 9 | k ≥ 0‬‬
‫‪a‬‬ ‫‪q1‬‬

‫‪a‬‬
‫האוטומט של ‪L41‬‬

‫‪q2‬‬

‫‪ L4‬רגולרית‪ ,‬כי איחוד שומר על רגולריות‪.‬‬

‫‪27‬‬
‫‪27‬‬
‫מעל הא"ב {‪}a, b, c‬‬
‫‪L5 = {wk | #b + #c in w > # a in w ,‬‬
‫‪ w,‬מילה מעל הא"ב של השפה‬
‫} ‪ k‬מספר חד ספרתי‬

‫‪ - L5‬חופשית הקשר ואינה רגולרית‪.‬‬

‫יש תלות אינסופית אחת בין חלקי השפה‪.‬‬


‫מספר ה‪ a-‬קטן ממספר ה‪ b-‬ועוד מספר ה‪c-‬‬

‫‪28‬‬
‫‪28‬‬
‫סיכום‬
‫תרגלנו זיהוי והוכחה של שפות כרגולריות או חופשיות הקשר‬
‫– ראינו את החשיבות של זיהוי שפה כסופית‬
‫– למדנו לנמק – על ידי הצבעה על תלות אינסופית‬
‫– תרגלנו הוכחות‪ ,‬תוך שימוש בתכונות הסגירות של פעולות שונות‬

‫‪29‬‬
‫שימוש ביצירות מוגנות בזכויות יוצרים ואיתור בעלי זכויות‬

‫השימוש ביצירות במהלך שידור זה נעשה לפי סעיף ‪27‬א לחוק זכות יוצרים‪,‬‬
‫תשס"ח‪ .2007-‬אם הינך בעל הזכויות באחת היצירות‪ ,‬באפשרותך לבקש‬
‫מאיתנו לחדול מהשימוש ביצירה‪ ,‬זאת באמצעות פנייה לדוא"ל‬
‫‪rights@education.gov.il‬‬

‫‪30‬‬

You might also like