Download as pdf or txt
Download as pdf or txt
You are on page 1of 28

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

‫וחוקי סגירות‬
‫שפה רגולרית ‪ -‬הגדרה‬
‫שפה נקראת רגולרית אם אפשר לבנות‬
‫אוטומט סופי דטרמיניסטי שמקבל אותה‪.‬‬
‫אוטומט סופי דטרמיניסטי‬
‫מתואר על ידי חמישה מרכיבים‪:‬‬
‫‪ (1‬א"ב קלט‪.‬‬
‫‪ (2‬קבוצת מצבים‪.‬‬
‫‪ (3‬מצב התחלתי‪.‬‬
‫‪ (4‬קבוצת מצבים סופיים‪.‬‬
‫‪ (5‬טבלת מעברים‪.‬‬
‫‪b,c‬‬ ‫‪b,c‬‬ ‫‪Σ‬‬

‫‪start‬‬
‫‪a‬‬ ‫‪a‬‬
‫‪q0‬‬ ‫‪q1‬‬ ‫‪q2‬‬
‫שפה רגולרית וסופית‬
‫שפה לא רגולרית‬
‫התכונות שנבדוק‪:‬‬
‫‪1L‬‬ ‫‪2L‬‬
‫‪ .1‬חלקיות‪.‬‬
‫‪ .2‬משלים‪.‬‬ ‫חוקי סגירות‬
‫‪ .3‬חיתוך‪.‬‬ ‫ניקח תכונות שונות של‬
‫‪ .4‬איחוד‪.‬‬ ‫שפות רגולריות ונבדוק אם‬
‫‪ .5‬היפוך‪.‬‬ ‫תוצאת הפעלת הפעולה‬
‫‪L‬‬ ‫תהייה בהכרח שפה‬
‫‪1L‬‬ ‫‪ .6‬שרשור‪.‬‬ ‫רגולרית‪.‬‬
‫‪2L‬‬

‫‪1L‬‬ ‫‪2L‬‬
‫תכונות של משפחת השפות הרגולריות‬
‫‪L1‬‬ ‫‪⊆ L2‬‬ ‫שפה חלקית‬

‫‪1L‬‬ ‫‪ L1‬חלקית לשפה ‪ 2L‬אם‬


‫כל המילים שב‪ 1L-‬נמצאות גם ב‪.2L -‬‬
‫‪2L‬‬
‫אם ידוע שהשפה ‪ 2L‬רגולרית האם בהכרח ‪ 1L‬גם רגולרית?‬

‫} שפת כל המילים מעל הא"ב }‪L2={ {a,b‬‬


‫} ‪L1={ anbn|n>0‬‬
‫?האם שפה חלקית לשפה רגולרית היא בהכרח רגולרית‬

‫!התשובה היא לא‬


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

‫אם ידוע שהשפה ‪ L‬רגולרית האם בהכרח ‪ L‬גם רגולרית?‬


‫הטענה נכונה‪ .‬ניתן להוכיח אותה על ידי בניית אוטומט שמקבל‬
‫‪.‬את שפת המשלים‬
‫!התשובה היא כן‬
‫ננסה על הלוח?‬

‫שלבים לבניית אוטומט עבור‬


‫שפת המשלים‬
‫תכונות של משפחת השפות הרגולריות‬
‫שפת החיתוך ‪.L1 ∩ L2‬‬
‫‪1L‬‬ ‫‪2L‬‬
‫כל המילים הנמצאות גם ב‪1L -‬‬
‫וגם ‪.2L‬‬
‫אם ידוע שהשפה ‪ L1‬רגולרית וגם השפה ‪ L2‬רגולרית‬
‫?האם בהכרח שפת החיתוך רגולרית‬

‫הטענה נכונה‪ .‬ניתן להוכיח אותה על ידי בניית‬


‫‪.‬אוטומט שמקבל את שפת החיתוך‬
‫!התשובה היא כן‬
‫בניית אוטומט לכל אחת מהשפות‪.‬‬
‫בניית טבלת מעברים לכל אחת מהשפות‪.‬‬
‫ננסה על הלוח?‬ ‫בניית טבלת מעברים משותפת‪.‬‬
‫בניית אוטומט על פי טבלת המעברים )אוטומט החיתוך(‬
‫המצב ההתחלתי באוטומט החיתוך יהיה צרוף של המצב‬
‫ההתחלתי של ‪ 2‬האוטומטים‪.‬‬
‫המצבים המקבלים יהיו צירוף של המצבים המקבלים באוטומטים‬
‫המקוריים‬

‫טכניקה לבניית אוטומט החיתוך‬


‫תכונות של משפחת השפות הרגולריות‬
‫שפת האיחוד ‪.L1 ∪ L2‬‬
‫‪1L‬‬ ‫‪2L‬‬
‫כל המילים הנמצאות או ב‪1L -‬‬
‫או ‪.2L‬‬
‫אם ידוע שהשפה ‪ L1‬רגולרית וגם השפה ‪ L2‬רגולרית‬
‫?האם בהכרח שפת האיחוד רגולרית‬

‫הטענה נכונה‪ .‬ניתן להוכיח אותה על ידי בניית‬


‫‪.‬אוטומט שמקבל את שפת האיחוד‬
‫!התשובה היא כן‬
‫בניית אוטומט לכל אחת מהשפות‪.‬‬
‫בניית טבלת מעברים לכל אחת מהשפות‪.‬‬
‫ננסה על הלוח?‬ ‫בניית טבלת מעברים משותפת‪.‬‬
‫בניית אוטומט על פי טבלת המעברים )אוטומט האיחוד(‬
‫המצב ההתחלתי באוטומט האיחוד יהיה צרוף של המצב‬
‫ההתחלתי של ‪ 2‬האוטומטים‪.‬‬
‫המצבים המקבלים – אם לפחות אחד מזוג המצבים היה מצב‬
‫מקבל באוטומט המקורי אז באוטומט האיחוד הוא יהיה מקבל‪.‬‬

‫טכניקה לבניית אוטומט האיחוד‬


‫תכונות של משפחת השפות הרגולריות‬
‫היפוך )‪R(L‬‬
‫שפת ההיפוך של ‪ L‬תתקבל על ידי היפוך‬
‫כל המילים ב‪.L-‬‬
‫אם ידוע שהשפה ‪ L‬רגולרית האם בהכרח ‪ L))R‬גם רגולרית?‬

‫הטענה נכונה‪ .‬ניתן להוכיח אותה על ידי בניית‬


‫‪.‬אוטומט שמקבל את שפת ההיפוך‬

‫!התשובה היא כן‬


‫באוטומט ההיפוך הופכים את החיצים‪.‬‬
‫המצב ההתחלתי הופך למצב ‪ qn‬ולמצב מקבל‪.‬‬
‫ננסה על הלוח?‬ ‫המצבים המקבלים הופכים למצבים לא מקבלים‪.‬‬
‫אם באוטומט המקורי יהיו מספר מצבים מקבלים ניצור מצב חדש‬
‫‪ q0‬אשר יקבל את המעברים של המצבים המקבלים אחרי‬
‫ההיפוך‪.‬‬
‫אם באוטומט המקורי מקבל את המילה הריקה‪ ,‬גם אוטומט‬
‫ההיפוך יקבלה ולכן המצב ההתחלתי החדש יהיה מצב מקבל‪.‬‬

‫שלבים לבניית אוטומט עבור‬


‫שפת ההיפוך‬
‫תכונות של משפחת השפות הרגולריות‬
‫שרשור ‪L1 ⋅ L2‬‬
‫שפת השרשור של ‪ L1‬ו‪ 2L -‬תתקבל על ידי‬
‫שרשור השפה ‪ L2‬לשפה ‪.1L‬‬

‫אם ידוע שהשפה ‪ L1‬רגולרית וגם השפה ‪ L2‬רגולרית‬


‫?האם בהכרח שפת השרשור רגולרית‬

‫הטענה נכונה‪ .‬ניתן להוכיח אותה על ידי בניית‬


‫‪.‬אוטומט שמקבל את שפת השרשור‬

‫!התשובה היא כן‬


‫באוטומט השרשור המצב המקבל של האוטומט של השפה הראשונה‬
‫יקבל את המעברים של המצב ההתחלתי של האוטומט של השפה‬
‫השנייה‪.‬‬
‫ננסה על הלוח?‬ ‫הערה‪ :‬אם באוטומט של השפה הראשונה יש מספר מצבים מקבלים‬
‫אז כל אחד מהם יקבל את המעברים של המצב ההתחלתי של‬
‫האוטומט השני‪.‬‬
‫לגביי המצבים המקבלים‪:‬‬
‫א‪ .‬רק המצבים המקבלים של האוטומט השני יהיו המצבים המקבלים‬
‫של אוטומט השרשור‪.‬‬
‫ב‪ .‬אם המילה הריקה שייכת לאוטומט השני אז אוטומט השרשור‬
‫יקבל גם את כל המילים של האוטומט הראשון‪.‬‬
‫ג‪ .‬אם המילה הריקה שייכת לשתי השפות אז גם המצב ההתחלתי‬
‫של אוטומט השרשור יהיה מצב מקבל‪.‬‬

‫שלבים לבניית אוטומט עבור‬


‫שפת השרשור‬
‫ראינו כי משפחת השפות הרגולריות סגורה‬ ‫חוקי סגירות‬
‫תחת ‪ 5‬הפעולות הבאות‪:‬‬
‫חיתוך‬
‫משלים‬
‫היפוך‬

‫איחוד‬
‫שרשור‬
‫שימוש בחוקי הסגירות‬
‫נשתמש בחוקי הסגירות כדי להוכיח טענות הנוגעות‬
‫למשפחת השפות הרגולריות‪.‬‬
‫נעשה זאת על ידי בניית אוטומטים קטנים ולא‬
‫מסורבלים עבור שפות הבסיס ומשם נמשיך את‬
‫ההוכחות בעזרת תכונות הסגירות‪.‬‬
‫שימו לב‬
‫כל ההוכחות שהיו על ידי בניית אוטומט‬
‫נכונות עבור ‪ 2‬שפות בלבד‪.‬‬
‫אם יש צורך בהוכחת רגולריות ליותר משתי‬
‫שפות יש להוכיח בזוגות‪.‬‬
‫שאלות לדוגמה‬
‫שאלה ‪1‬‬
‫נתונה השפה הבאה מעל הא"ב }‪:{a,b,c,d‬‬

‫האם ‪ L‬רגולרית? הוכח את תשובתך‪.‬‬


‫פתרון שאלה ‪1‬‬

‫ניתן להציג את‪ L‬בעזרת השפות הבאות מעל הא"ב }‪:{a,b,c,d‬‬

‫)‪L1={anbm|1<n<4,m=2n‬‬
‫}‪L2=ck|k % 4 =1‬‬
‫‪l‬‬
‫}‪L3={d |l % 2 = 0‬‬
‫)‪L=L1∙( L2∙ L3‬‬
‫המשך פתרון שאלה ‪1‬‬
‫את ‪ L1‬אפשר להציג בעזרת שתי השפות‪:‬‬
‫}‪ L4 = {a2b4‬ו‪L5 = {a3b6} -‬‬
‫כך‪.L1= L4∪L5 :‬‬
‫‪ L2‬ו‪ L3-‬הן רגולריות‪ ,‬כי הנה אוטומטים מתאימים המקבלים אותן‪:‬‬
‫‪ L2:‬עבור ‪:L3‬‬ ‫‪ A2‬עבור ‪A3‬‬

‫מסגירות משפחת השפות הרגולריות לשרשור גם ‪ L2∙L3‬רגולרית‪.‬‬


‫‪ L4‬ו‪ L5-‬סופיות ולכן רגולריות‬
‫ומסגירות משפות השפות הרגולריות לאיחוד גם ‪L4∪L5‬רגולרית‬
‫ומסגירות משפות השפות הרגולריות לשרשור גם ‪ L‬רגולרית‬
‫)‪.L1∙(L2∙L3) =L = (L2∙L3)∙(L4∪L5‬‬
‫שאלה ‪2‬‬

‫תהי ‪ L‬שפת כל המילים מעל הא"ב }‪ {a,b‬אשר‬


‫מכילות לכל היותר ‪ 9‬אותיות ‪ a‬וגם מספר‬
‫האותיות ‪ a‬בהן מתחלק ב‪.3-‬‬
‫האם ‪ L‬רגולרית? הוכח את תשובתך‪.‬‬
‫פתרון שאלה ‪2‬‬
‫}‪ {a,b‬היא שפת כל המילים מעל הא"ב ‪ L1‬כאשר ‪L= L1∩L2‬‬
‫‪ a‬אשר מכילות לכל היותר ‪ 9‬אותיות‬
‫ו‪ L2-‬היא שפת כל המילים מעל הא"ב }‪ {a,b‬אשר מספר‬
‫האותיות ‪ a‬בהן מתחלק ב‪.3-‬‬
‫‪:‬רגולרית כי הנה אוטומט סופי המקבל אותה ‪L1‬‬
‫המשך פתרון שאלה ‪2‬‬
‫)לא ניתן להשתמש בנימוק סופיות כי זו לא שפה סופית‪.‬‬
‫למשל‪ ,‬היא מכילה את כל המילים )}‪.{bia⎪i≥0‬‬
‫‪ L2‬רגולרית כי הנה אוטומט סופי שמקבל אותה‪:‬‬

‫מסגירות משפחת השפות הרגולריות לחיתוך גם ‪ L= L1∪L2‬רגולרית‪.‬‬


‫שאלה ‪3‬‬
‫ציינו מהי המילה הקצרה ביותר השייכת לשפה‬
‫מעל הא"ב }‪ {a,b,c‬מלבד ‪.ε‬‬
‫האם השפה רגולרית? הוכיחו‪.‬‬
‫פתרון שאלה ‪3‬‬
‫נחלק את השפה הראשונה ל‪ 3 -‬שפות‪.‬‬
‫}‪L1={a‬‬
‫}‪L2={(ab)n n mod 3=0‬‬
‫}‪L3={(c)n n mod 2=0‬‬

‫כל אחת משפות אילו היא רגולרית‪.‬‬


‫)כמובן שיש לבנות אוטומט מתאים(‬
‫ושרשורן אף הוא רגולרי‪.‬‬

You might also like