Professional Documents
Culture Documents
P1 36vv1mix
P1 36vv1mix
שפות רגולריות
וחסרות הקשר -תרגול א
מודלים חישוביים ,י"א
שם המורה :גד לידרור
מורה בודקת:
2
מה נלמד היום
בשיעור זה נתרגל נושאים מתחום השפות הרגולריות ,חופשיות ההקשר ושאינן חופשיות הקשר
3
שפות שאינן חופשיות הקשר
שפות חופשיות הקשר
רגולריות
שפות ז
שפות סופיות
4
שפות -הגדרה וזיהוי
סוג השפה הגדרה איך מזהים דוגמה
שפה רגולרית שפה שניתן לבנות עבורה שפה סופית / }{anbm | n, m > 0
אוטומט סופי (רגיל) אין תלות אינסופית בשפה א"ב }a, b{ -
המקבל אותה ,ורק אותה
שפה שאינה רגולרית / שפה שניתן לבנות עבורה } {anbn | n > 0תלות אינסופית בודדת בשפה
שפה חופשית הקשר אוטומט מחסנית סופי א"ב }a, b{ -
המקבל אותה ,ורק אותה
שפה שאינה חופשית שפה שלא ניתן לבנות עבורה תלות אינסופית כפולה }{anbnan | n > 0
הקשר אוטומט מחסנית (לפחות) בשפה א"ב }a, b{ -
המקבל אותה ,ורק אותה
5
5
שפות -היחס בין קבוצות השפות
6
6
סגירות תחת ההכלה והפעולות
סגירות תחת כלומר רגולריות חופשיות הקשר
7
7
תרגיל
נתונות השפות הבאות:
א .קבעו ונמקו בקצרה (אין צורך בהוכחה ממש) לכל אחת מהשפות האלו האם היא רגולרית או אינה
רגולרית.
ב .בחרו שפה (רגולרית) וכתבו הוכחה שהיא רגולרית.
}L1 = {#a - #b = #c מעל הא"ב {}a, b, c
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
12
מעל הא"ב {}a, b, c
}L3 = {a3nb2mck| n, k ≥ 0, n < m < k
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 )כי אין כל תלות בין חלקי השפה מלבד חובת הרצף(
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
17
}L6 = {anbmbiaj | n, m, i, j ≥ 0, n + m = i + j מעל הא"ב {}a, b
18
18
לאחר ההפסקה נמשיך לתרגל
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
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
24
24
}L3 = {a3nb2ncm| n, m ≥ 0 מעל הא"ב {}a, b, c
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
27
27
מעל הא"ב {}a, b, c
L5 = {wk | #b + #c in w > # a in w ,
w,מילה מעל הא"ב של השפה
} kמספר חד ספרתי
28
28
סיכום
תרגלנו זיהוי והוכחה של שפות כרגולריות או חופשיות הקשר
– ראינו את החשיבות של זיהוי שפה כסופית
– למדנו לנמק – על ידי הצבעה על תלות אינסופית
– תרגלנו הוכחות ,תוך שימוש בתכונות הסגירות של פעולות שונות
29
שימוש ביצירות מוגנות בזכויות יוצרים ואיתור בעלי זכויות
השימוש ביצירות במהלך שידור זה נעשה לפי סעיף 27א לחוק זכות יוצרים,
תשס"ח .2007-אם הינך בעל הזכויות באחת היצירות ,באפשרותך לבקש
מאיתנו לחדול מהשימוש ביצירה ,זאת באמצעות פנייה לדוא"ל
rights@education.gov.il
30