Regular Expressions (RE)

Σχετικά έγγραφα
אוטומט סופי דטרמיניסטי מוגדר ע"י החמישייה:

מינימיזציה של DFA מינימיזציה של הקנוני שאותה ראינו בסעיף הקודם. בנוסף, נוכיח את יחידות האוטומט המינימלי בכך שנראה שכל אוטומט על ידי שינוי שמות

ביטויים רגולריים הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353) הרצאה 5

לדוגמה: במפורט: x C. ,a,7 ו- 13. כלומר בקיצור

שפות פורמאליות אוטומטים

שפות פורמאליות אוטומטים

חלק 1 כלומר, פונקציה. האוטומט. ) אותיות, אלפבית, א"ב (.

ל הזכויות שמורות לדפנה וסטרייך

ניתן לקבל אוטומט עבור השפה המבוקשת ע "י שימוששאלה 6 בטכניקתשפה המכפלה שנייה כדי לבנות אוטומט לשפת החיתוך של שתי השפות:

פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד

{ : Halts on every input}

יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012)

פתרון תרגיל מרחבים וקטורים. x = s t ולכן. ur uur נסמן, ur uur לכן U הוא. ur uur. ur uur

לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשע"ו ( ) ... חלק ראשון: שאלות שאינן להגשה נפריד למקרים:

אוטומטים- תרגול 8 שפות חסרות הקשר

שדות תזכורת: פולינום ממעלה 2 או 3 מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה. שקיימים 5 מספרים שלמים שונים , ראשוני. שעבורם

חורף תש''ע פתרון בחינה סופית מועד א'

gcd 24,15 = 3 3 =

הגדרה: מצבים k -בני-הפרדה

אוטומטים, שפות פורמליות ו ח ישוּב יוּת

לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשע"ו (2016)

Logic and Set Theory for Comp. Sci.

הרצאה נושאי הקורס 0.2 א"ב ומילים 0.3 שפות 1. מהו חישוב? 2. מהו מחשב? 3. מהו אלגוריתם? 4. מה ניתן לחשב? מה לא ניתן?

אלגברה ליניארית (1) - תרגיל 6

צעד ראשון להצטיינות מבוא: קבוצות מיוחדות של מספרים ממשיים

מודלים חישוביים, חישוביות וסיבוכיות (חישוביות) 67521

תרגיל 13 משפטי רול ולגראנז הערות

מודלים חישוביים פתרון תרגיל 5

דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות

brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק

קובץ שאלות ופתרונות של שאלות ממבחנים מנושאים שונים

אוטומטים ושפות פורמליות תרגולים

מודלים חישוביים תרגולמס 5

( )( ) ( ) f : B C היא פונקציה חח"ע ועל מכיוון שהיא מוגדרת ע"י. מכיוון ש f היא פונקציהאז )) 2 ( ( = ) ( ( )) היא פונקציה חח"ע אז ועל פי הגדרת

אוטומטים ושפות פורמליות מבוא לתורת החישוביות

I. גבולות. x 0. מתקיים L < ε. lim אם ורק אם. ( x) = 1. lim = 1. lim. x x ( ) הפונקציה נגזרות Δ 0. x Δx

אלגברה מודרנית פתרון שיעורי בית 6

תרגול 1 חזרה טורי פורייה והתמרות אינטגרליות חורף תשע"ב זהויות טריגונומטריות

מתכנס בהחלט אם n n=1 a. k=m. k=m a k n n שקטן מאפסילון. אם קח, ניקח את ה- N שאנחנו. sin 2n מתכנס משום ש- n=1 n. ( 1) n 1

c ארזים 26 בינואר משפט ברנסייד פתירה. Cl (z) = G / Cent (z) = q b r 2 הצגות ממשיות V = V 0 R C אזי מקבלים הצגה מרוכבת G GL R (V 0 ) GL C (V )

[ ] Observability, Controllability תרגול 6. ( t) t t קונטרולבילית H למימדים!!) והאובז' דוגמא: x. נשתמש בעובדה ש ) SS rank( S) = rank( עבור מטריצה m

אוטומטים ושפות פורמליות מבוא לתורת החישוביות

פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד ... ( ) ( ) ( ) = L. uuruuruur. { v,v,v ( ) ( ) ( ) ( )

מכונת טיורינג אוטומט מחסנית לא דטרמיניסטי שפות חופשיות הקשר (שפת ראי לא מסומנת)

מתמטיקה בדידה תרגול מס' 13

חידה לחימום. כתבו תכappleית מחשב, המקבלת כקלט את M ו- N, מחליטה האם ברצוappleה להיות השחקן הפותח או השחקן השappleי, ותשחק כך שהיא תappleצח תמיד.

תורת המספרים 1 פירוק לגורמים ראשוניים סיכום הגדרות טענות ומשפטים אביב הגדרות 1.2 טענות

לוגיקה ותורת הקבוצות מבחן סופי אביב תשע"ב (2012) דפי עזר

Charles Augustin COULOMB ( ) קולון חוק = K F E המרחק סטט-קולון.

תרגול פעולות מומצאות 3

שאלה 1 V AB פתרון AB 30 R3 20 R

מודלים חישוביים מבחן מועד א', סמסטר א' תשע''ה (2015)

תרגול מס' 6 פתרון מערכת משוואות ליניארית

logn) = nlog. log(2n

A-PDF Merger DEMO : Purchase from to remove the watermark

= 2. + sin(240 ) = = 3 ( tan(α) = 5 2 = sin(α) = sin(α) = 5. os(α) = + c ot(α) = π)) sin( 60 ) sin( 60 ) sin(

גבול ורציפות של פונקציה סקלרית שאלות נוספות

משוואות רקורסיביות רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים. למשל: יונתן יניב, דוד וייץ

אלגברה ליניארית 1 א' פתרון 2

אימות חומרה תוכנה אלי דיין 1 6 בדצמבר

אלגוריתמים בתורת הגרפים חלק ראשון

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 315, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן

בעיות חשיבות: :(State transition system) STS מושגים: רדוקציה: f אינה חשיבה g אינה חשיבה; בבעיות הכרעה: f לא כריעה g לא כריעה.

סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות

חישוביות, אוטומטים ושפות מכונה סיכומי הרצאות

מודלים חישוביים, חישוביות וסיבוכיות

לוגיקה ותורת הקבוצות מבחן סופי אביב תשע"ד (2014) דפי עזר

רשימת משפטים והגדרות

מודלים חישוביים, חישוביות וסיבוכיות 67521

פתרון תרגיל 6 ממשוואות למבנים אלגברה למדעי ההוראה.

מתמטיקה בדידה תרגול מס' 5

תרגיל 7 פונקציות טריגונומטריות הערות

מכונת טיורינג אוטומט מחסנית לא דטרמיניסטי שפות חופשיות הקשר (שפת ראי לא מסומנת)

מודלים חישוביים כריעות R זוהי מחלקת השפות הכריעות. מחלקה זו סגורה תחת פעולת המשלים. רדוקציה בעיית ההכרעה רדוקציית מיפוי.

. {e M: x e} מתקיים = 1 x X Y

3-9 - a < x < a, a < x < a

קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים.

תורת הקבוצות תרגיל בית 2 פתרונות

תרגול משפט הדיברגנץ. D תחום חסום וסגור בעל שפה חלקה למדי D, ותהי F פו' וקטורית :F, R n R n אזי: נוסחת גרין I: הוכחה: F = u v כאשר u פו' סקלרית:

אלגברה לינארית (1) - פתרון תרגיל 11

קיום ויחידות פתרונות למשוואות דיפרנציאליות

הרצאה תרגילים סמינר תורת המספרים, סמסטר אביב פרופ' יעקב ורשבסקי

x a x n D f (iii) x n a ,Cauchy

אלגוריתמים / תרגיל #1

' 2 סמ ליגרת ןורתפ םיפרגה תרותב םימתירוגלא דדצ 1 : הלאש ןורתפ רבסה תורעה


1 סכום ישר של תת מרחבים

אלגברה ליניארית 1 א' פתרון 7

אוטומטים מעל עצמים אינסופיים 67663

מודלים חישוביים תרגולמס 7

הגדרה 0.1 טיעון הוא תקף אם בכל פעם שההנחות נכונות גם המסקנה נכונה.

רשימת בעיות בסיבוכיות

הגדרה: קבוצת פעילויות חוקית היא קבוצה בה כל שתי פעילויות

פתרון תרגיל בית 6 מבוא לתורת החבורות סמסטר א תשע ז

טענה חשובה : העתקה לינארית הינה חד חד ערכית האפס ב- הוא הוקטור היחיד שמועתק לוקטור אפס של. נקבל מחד חד הערכיות כי בהכרח.

מודלים חישוביים, חישוביות וסיבוכיות 67521

תורת הקבוצות יובל קפלן סיכום הרצאות פרופ ארז לפיד בקורס "תורת הקבוצות" (80200) באוניברסיטה העברית,

תרגול מס' 1 3 בנובמבר 2012

פרק 8: עצים. .(Tree) במשפטים הגדרה: גרף ללא מעגלים נקרא יער. דוגמה 8.1: תרגילים: הקודקודים 2 ו- 6 בדוגמה הוא ).

חישוביות הרצאה 4 לא! זיהוי שפות ע''י מכונות טיורינג הוכחה: הגדרת! : f r

Transcript:

Regular Expressions (RE) ביטויים רגולריים עד כה דנו במספר מודלים חישוביים להצגת (או ליצור) שפות רגולריות וראינו שכל המודלים האלה הם שקולים מבחינת כוח החישובי שלהם. בסעיף זה נראה עוד דרך להצגת (או ליצור) שפות רגולריות אבל הפעם המודל יהיה תחבירי ולא חישובי. נראה שכל שפה רגולרית ניתנת להצגה על ידי ביטוי בעל צורה תחבירית פשוטה הבנוי מאותיות הא"ב בתוספת הסימנים ו- תוך שימוש בפעולות רגולריות. ביטויים אלה נקראים ביטויים רגולריים. שפה תהיה שפה רגולרית אם ורק אם אפשר להציג אותה באמצעות ביטוי רגולרי. בהמשך הסעיף נוכיח שקילות של המודל הזה עם המודלים החישוביים שראינו קודם. הגדרות וסימונים ביטוי רגולרי מעל א"ב Σ מוגדר אינדוקטיבית באופן הבא:. היא ביטוי רגולרי ו- : a Σ לכל.2 s ו- r אם.3 a הוא ביטוי רגולרי. היא ביטוי רגולרי. הם ביטויים רגולריים אז rs r + s r ו- הם ביטויים רגולריים. הביטויים הרגולריים ו- a (לכל a) Σ נקראים ביטויים רגוליים אטומיים. ביטוי רגולרי שאינו אטומי הוא ביטוי רגולרי מורכב. נסמן ב- RE את קבוצת כל הביטויים הרגולריים מעל א"ב Σ. על סמך ההגדרה זוהי הקבוצה הקטנה ביותר המכילה את הבטויים הרגולריים האטומיים וסגורה לפעולות החיבור השרשור והאיטרציה (או הסגור)..( + ) דוגמאות כל אחד מהביטויים הבאים הוא ביטוי רגולרי מעל הא"ב : Σ = {} ( + ) ( + ) ( + ) + {} כל ביטוי רגולרי מעל א"ב נתון מתאר שפה מעל אותו הא"ב הנקראת שפת הביטוי. למשל הביטוי הרגולרי } { = L והביטוי הרגולרי + מתאר את השפה מתאר את השפה {} = L הביטוי הרגולרי באופן כללי: } n.l = { מתאאר את השפה ומוגדרת אינדוקטיבית באופן הבא: L(r) מסומנת ב- השפה של ביטוי רגולרי r.l() = {} ו- L( ) =..L(a) = {a} : a Σ לכל.2 ו- L(rs) = L(r)L(s) L(s) L(r + s) = L(r) הם ביטויים רגולריים אזי s ו- r אם.3.L(r ) = L(r) דוגמאות. L(( + ) ) = {} {} {} = {} = { w w {} } לפי ההגדרה:.. זוהי שפת כל המילים ב- {} שמסתיימות ב-.Σ = {} בהנחה כמובן ש- L(( + ) ) = Σ.2 ב- ) ( + ) ( + = r השפה L(r) היא שפת כל המילים עבור הביטוי הרגולרי.3 המכילות את הרצף. ב- {} שבהן עבור הביטוי הרגולרי ) ( + ) ( + = r השפה L(r) היא שפת כל המילים.4. האות השניה מהסוף היא ב- {} המתחילות ב- ( ) + = r השפה L(r) היא שפת כל המילים עבור הביטוי הרגולרי 5. ואינן מכילות את הרצף בתוספת המילה הריקה. ב- {} המתחילות ב- ) ) = r השפה L(r) היא שפת כל המילים עבור הביטוי הרגולרי 6. בתוספת המילה הריקה. 6. שווה לשפת הביטוי הרגולרי בדוגמה ( ) + + השפה של הביטוי הרגולרי 7.

הערה: שימוש בסוגריים בהצגת ביטויים רגולריים הוא בד"כ חיוני אך הגזמה בשימוש בסוגריים עלולה בהעדר סוגריים סדר הקדימויות לסרבל את הביטוי ולסבכו. יש להקפיד על שימוש מדוייק ומינימלי בסוגריים. (חיבור (איחוד) ). כמוכן סוגריים מבטלים סדר + (שרשור) ואח"כ אח"כ (סגור) של הפעולות הוא: קדימויות זה. הם קודמים לכל. שקילות ביטויים רגולריים. L(r) = L(s) ייקראו ביטויים שקולים אם s ו- r שני ביטויים רגולריים לעיל. 7.6 ו- לפי דוגמאות הם שקולים ) ( + + ו- ) ( למשל שני הביטויים הרגולריים נרשום s ו- נרשום את יחס השקילות בין ביטויים רגולריים כיחס שויון כלומר עבור שני ביטויים רגולריים r ) ( = ) ( + + למרות ששני הבטויים האלה שונים למשל יש לנו L(s). L(r) = אם r = s L(r) ומתייחסים לביטויים רגולריים בצורה התחבירית שלהם. אנחנו מזהים ביטוי רגולרי r עם השפה שלו כשפות ואז שוויון בין ביטויים רגולריים הוא בעצם שויון של שפות. נציין כאן מספר שוויונים בסיסיים בין ביטויים רגולריים (זהויות). בשוויונים אלה s r ו- t מציינם בטויים רגולריים כלשהם: r(st) = (rs)t.3 r + (s + t) = (r + s) + t.2 r + s = s + r. (r + s)t = rt + st.6 r(s + t) = rs + rt.5 r + r = r.4 r + = r.9 r = r =.8 r = r = r.7. =.2 ( + r) = r. r = + rr. r כך ש-.L(r) = L אם לא צוין דוגמאות (בניית ביטויים רגולריים) בכל אחת מהדוגמאות הבאות נתונה שפה L ואנחנו נבנה ביטוי רגולרי אחרת הא"ב בכל דוגמה יהיה קבוצת האותיות המופיעות בתיאור השפה L.. r = a b c L = { a b c n m k }.. r = aa bb cc L = { a b c n m k }.2. r = (aaaa) (bbb) L = a b כפולה של 3 m כפולה של 4 n.3 אי ) r = ( + )( + היא שפת כל המילים מאורך זוגי ב- {} L 4. שמתחילות ומסתיימות באותה אות: היא שפת כל המילים ב- {} L. 5. r = + + ( + ) + ( + ) פעם אחת בלבד. המכילות את הרצף bb ה שפת כל המילים ב- {b a} L 6.. r = (a + ba) bb(a + ab) היא שפת כל המילים ב- {} המכילות המכילות מספר אי זוגי של אפסים. L 7.. r = ( ) שקילות ביטוי רגולרי לאוטומט סופי שפה של ביטוי רגולרי היא תמיד שפה רגולרית. זה נובע ישר מהעובדה שהשפות של הביטויים הרגולריים a) Σ הן שפות רגולריות ומהעובדה שמשפחת השפות הרגולריות סגורה a לכל ו- האטומיים ( לפעולות רגולריות שאותה הוכחנו קודם. במשפט הבא נוכיח שגם ההפך נכון כלומר נראה שכל שפה רגולרית ניתנת להצגה ע"י איזשהו ביטוי רגולרי. Σ L שפה. אזי: תהי משפט (Kleene) :. L(r) = L כך ש- Σ מעל r קיים ביטוי רגולרי היא שפה רגולרית L להוכחת משפט זה נציג שתי בניות. L(r).L(A) = בבניה זו אנחנו הופכים כך ש- A (עם מסעי ) NFA נבנה r בניה א: בהינתן ביטוי רגולרי ביטוי רגולרי לאוטומט סופי. DFA L(A).L(r) = בבניה זו אנחנו הופכים כך ש- r נבנה ביטוי רגולרי A DFA בניה ב: בהינתן לביטוי רגולרי. שתי הבניות האלה יוכיחו את המשפט 2

.r בניה א: (הפיכת ביטוי רגולרי לאוטומט סופי) שמזהה את שפת A NFA r ורוצים לבנות נתון ביטוי רגולרי משימה פשוטה: :A ניקח (למשל) = r עבור אם r הוא בטוי רגולרי אטומי זוהי : A עבור r = ניקח (למשל) a :A (a Σ) עבור r = a ניקח אם r הוא ביטוי רגולרי מורכב נבנה את A בשלבים תוך שימוש בשלוש הבניות שהצגנו בהוכחת סגירות משפחת השפות הרגולריות לפעולות רגולריות כמו בדוגמה הבאה. + דוגמה: נהפוך את הביטוי הרגולרי לאוטומט סופי בשלבים: : r =. : r = r =.2 : r =.3 : r = r r =.4 : r = r =.5 : r = r r = : r = r = r + r = +.6.7 אוטומט זה מזהה את שפת הביטוי הרגולרי + =.r לפני שנתאר את הבניה השניה (בניה ב) נציג מודל חישובי חדש שנשתמש בו בבניה זו. 3

אוטומט מוכלל GNFA אסל"ד מוכלל NFA) (Generalized ובקיצור GNFA זהו אוטומט שדיאגרמת המצבים שלו דומה לזו של GNFA מסעי אפסילון) אבל הקשתות בה מסומנות בביטויים רגולריים (במקום אותיות). בנוסף ב- (עם NFA דורשים שיהיה מצב סופי יחיד שיסומן ב- ושלא יהיו קשתות יוצאות מהמצב הסופי. כמו כן דורשים שלא יהיו קשתות נכנסות למצב ההתחלתי שאותו נסמן כאן ב-. דוגמה ל- GNFA נקרא לו A נתונה על ידי דיאגרמת המצבים משמאל. (+) s קשת בדיאגרמת המצבים של GNFA היא מהצורה: t r p + כאשר r הוא ביטוי רגולרי. משמעות קשת זו היא: כשהאוטומט נמצא במצב והוא קורא מילה שנמצאת בשפת הביטוי הרגולרי r הוא יכול לעבור למצב p ומשם להמשיך בקריאת יתרת מילת הקלט. האוטומט יקבל מילת קלט w אם הוא יכול לעבור מ- ל- על ידי קריאת w (כולה עד הסוף). שפת האוטומט היא קבוצת המילים שהוא מקבל. למשל שפת האוטומט A בדוגמה לעיל היא:. L(A) = () ( + ) + ( + ) נעבור להגדרות פורמליות: A = Q Σ ρ כאשר GNFA הוא חמישיה קבוצה סופית המכילה לפחות שני איברים שאיבריה נקראים מצבים. Q o א"ב. Σ o שנקראים בהתאמה המצב ההתחלתי והמצב Q שני מצבים מיוחדים ב- ו- o. הסופי ומתקיים ρ: (Q { } ) (Q { } ) RE הנקראת פונקצית היא פונקציה ρ o המעברים של A. ρ( p) כלומר ρ( p) RE p ו-. p)). ( ρ( אינו מוגדר אם = או לכל שני מצבים p Q כך ש- רגולרי מעל Σ. נסמן ביטוי זה ב- הוא ביטוי.p = נציג A = Q Σ ρ GNFA באמצעות גרף מכוון שנקרא דיאגרמת המצבים של.A קבוצת הצמתים בגרף זה היא Q ולכל שני צמתים p Q כך ש- ו- p תהיה בגרף קשת יחידה מסומנת מצומת לצומת p. לא תהיה בגרף זה קשת יוצאת מ- ולא תהיה קשת נכנסת ל-. נהוג להשמיט מדיאגרמת המצבים את כל הקשתות שהסימן שלהן הוא = r. נגדיר כעת את החישוב של GNFA כלומר נגדיר קבלת מילה ע"י GNFA והשפה של.GNFA יהי GNFA A = Q Σ ρ ותהי Σ.w אומרים ש- A מקבל את w אם קיימת מספר שלם k וקיימת סדרה של + 2 k מצבים עם = ו- Σ w = w כך w w מילים מ- מהצורה k + ל- w וקיים פירוק של = שלכל + k i מתקיים ) w ρ( (כלומר w היא מילה בשפת הביטוי הרגולרי.( = ρ( ) השפה של A מסומנת ב- L(A) ומודרת על ידי: A מקבל את.L(A) = w Σ w דוגמה ה- A GNFA בדוגמה לעיל מקבל את המילה = w. כאן ה- k בהגדרת קבלה הוא 3 סדרת המצבים היא והפירוק של w הוא:. w = 4

הוא מקבל גם את המילה =.w כאן ה- k הוא 2 סדרת המצבים והפירוק של w הוא:. w = השפה של GNFA r s בכל A = Q Σ ρ GNFA מתקיים 2 Q. אם = 2 Q אז t = A ובמקרה זה שפת A היא פשוט (שפת הביטוי הרגולרי) r. כעת נציג אלגוריתם שבהינתן A = Q Σ ρ GNFA עם מספר מצבים > 2 Q הוא בונה GNFA } A = Q Σ ρ שבו = 2 Q (כלומר (Q = { ושמקיים L(A).L(A ) = לאלגוריתם זה נקרא אלגוריתם הצמצום של.GNFA הוא יאפשר לנו לרשום אל השפה של GNFA כלשהו כביטוי רגולרי. האלגוריתם מבוסס על הרעיון הבא: נניח כי A = Q Σ ρ הוא GNFA עם > 2 Q ויהי d Q מצב שאינו ואינו. אז תמיד נוכל להסיר מדיאגרמת המצבים של A את הצומת d יחד עם כל הקשתות הנוגעות ב- d ולעדכן את שאר הקשתות שנשארות בדיאגרמת המצבים באופן שהסרת הצומת d "לא תורגש" ע"י האוטומט כלומר שפת האוטומם לאחר ההסרת המצב ועדכון הקשתות תהיה שווה לשפת האוטומט המקורי A. כדי להשיג מטרה זו נפעל באופן הבא: נעבור על כל הזוגות הסדורים האפשריים (p ) של מצבים ב- A השונים מ- d. לגבי כל זוג כזה נסתכל במשולש הצמתים d ו- p בגרף של A ולפי הביטויים הרגולריים המסמנים את הקשתות במשולש זה נעדכן את סימן הקשת p) ( מ- ל-. + ( ) d p עדכון הקשתות הנשארות + ( ) p נשים לב שאם = r או = r (כלומר אם בגרף של A לא מופיעה קשת מ- ל- d או לא מופיעה קשת מ- d ל- p) אז עדכון סימן הקשת (p ) הוא טריביאלי כלומר הסימן של הקשת מ- ל- p נשאר גם אחרי העדכון. לכן במקרה זה לא צריך לעדכן את הסימן. (יחד עם הקשתות שנוגעות בו) d p יגרום לך שהסרת המצב ל- עדכון זה של סימן הקשת מ- לכן אם נבצע את העדכון הזה p. למצב מהאוטומט לא תשפיע על היכולת של האוטומט לעבור ממצב d אז נוכל (אחרי העדכון) להסיר השונים מ- Q על כל הזוגות הסדורים האפשריים (p ) של מצבים מ- יחד עם הקשתות שלו ולהישאר עם אוטומט A = Q Σ ρ שקול ל- A d מהאוטומט את המצב A. שמספר הצמתים בו קטן ב- מזה של עם A = Q Σ ρ 3 Q קיים GNFA עם A = Q Σ ρ בסיכום יש לנו: עובדה: לכל GNFA.L(A ) = L(A) כך ש- Q = Q GNFA A המעבר הזה מ- A ל- נקרא הסרת מצב. ננסח אלגוריתם להסרת מצב מ- Removal (State אלגוריתם (הסרת מצב ומצב. d Q 3 Q עם A = Q Σ ρ קלט: GNFA L(A).L(A ) = כך ש- {d} Q = Q עם A = Q Σ ρ פלט: GNFA צעדים: לכל {d} Q בצע:. הבא. עבור למצב = r אם.i לכל {d} p Q בצע:.ii הבא. p עבור למצב = r אם א. + ( ) 5 עדכן ב.

d הסר מ- A את המצב יחד עם כל הקשתות הנוגעות בו ועצור..2 s (+) + t דוגמה: נפעיל את האלגוריתם על ה- GNFA משמאל להסרת המצב נקבל: s ( + ) + () ( + ) t צמצום של GNFA A = Q Σ ρ GNFA שמקיים = 2 Q (כלומר } (Q = { נקרא GNFA מצומצם. השפה של GNFA מצומצם היא פשוט הסימן של הקשת היחידה בגרף האוטומט. כעת בהינתן A = Q Σ ρ GNFA כלשהו נוכל על ידי שימוש חוזר באלגוריתם הקודם להגיע ל- A. מצומצם השקול לו נקרא צמצום של GNFA ל- A NFA המעבר הזה מ- A. מצומצם שקול ל- GNFA אלגוריתם (צמצום של (GNFA.A = Q Σ ρ קלט: GNFA L(A).L(A ) = כך ש- A מצומצם פלט: GNFA צעדים: > 2 Q בצע: כל עוד.. ואינו שאינו d Q בחר מצב.i d לפי האלגוריתם להסרת מצב. את המצב A הסר מ-.ii עצור. 2. כך נוכל למצא את השפה של GNFA כלשהו A על ידי צימצום A לפי אלגוריתם זה. השפה של A תהיה (שפת) הביטוי הרגורלי שיסמן את הקשת היחידה באוטומט המצומצם. בפרט אנחנו עכשיו יודעים שהשפה של GNFA היא תמיד ביטוי רגולרי (או: ניתנת להצגה ע"י ביטי רגולרי). עד כאן על אוטומטים מוכללים. נחזור להמשך הוכחת משפט Kleene על השקילות בין ביטויים רגולריים ואוטומטים ספויים. נשאר לנו להציג את הבניה שקראנו לה בניה ב: בהינתן A DFA צריך לבנות ביטוי רגולרי r כך ש- L(A). L(r) = נעיר קודם ש- DFA אינו מקרה פרטי ל-.GNFA הסיבה לכך היא שב- DFA יכול להיות יותר ממצב מקבל אחד קשתות יכולות לצאת ממצבים סופיים ולכנס למצב ההתחלתי. כל הדברים האלה אסור שיקרו ב-.GNFA על כן DFA אינו GNFA אבל בבניה פשוטה נוכל להפוך כל DFA ל- GNFA שקול. במלים אחרות לכל A DFA נוכל לבנות B GNFA כך ש- L(A).L(B) = נציג אלגוריתם לבניה זו. אלגוריתם (הפיכת DFA ל- (GNFA קלט:.A = Q Σ ρ F DFA פלט: B GNFA כך ש- L(A).L(B) = צעדים:. הפוך את המצב ההתחלתי ב- למצב לא התחלתי ואת המצבים המקבלים למצבים לא מקבלים. 2. הוסף שני מצבים חדשים ו- לאוטומט. סמן את כמצב התחלתי ואת כמצב סופי יחיד..3 העבר קשת מסומנת מ- ל- ומכל מצב F ל- ועצור. 6

GNFA דוגמה: הפיכת DFA ל- s t הפיכת DFA ל GNFA הפיכת DFA לביטוי רגולרי נוכל עכשיו לתאר את בניה ב בהוכחת משפט.Kleene נעשה זאת באלגוריתם הבא: אלגוריתם (הפיכת DFA לביטוי רגולרי).L(r) = L(A) r קלט: A DFA פלט: ביטוי רגולרי צעדים: כך ש- הפוך את ה- A DFA ל- B GNFA לפי האלגורים שעושה זאת. הרץ את אלגוריתם הצמצום של GNFA על B. המצומצם. החזר את ב- GNFA..2.3 DFA דוגמה נריץ את האלגוריתם על ה- s t ביצוע צעד באלגורתם יתן את ה- GNFA לביצוע צעד 2 נסיר את המצב ואח"כ נסיר את. + s t הסרת המצב תתן: s ( + ) t הסרת המצב תתן: DFA. ( + ) על כן ביטוי רגולרי שקול ל- DFA הנתון הוא זוהי שפת ה- הערה: הצורה התחבירית של הביטוי הרגולרי שמקבלים כתוצאה מהרצת אלגוריתם זה תלויה בסדר שבו מסירים את המצבים בצעד 2 אבל כמובן כל הביטויים + הרגולריים שנקבל הם שקולים (שווים לפי ההגדרה). s t. למשל אם בדוגמה האחרונה נסיר קודם את המצב והסרת מזה תתן נקבל s התוצאה שונה תחבירית מהתוצאה שקיבלנו ( + ) t בדוגמה אבל שני הביטויים הרגולריים שקיבלנו הם שווים (שקולים). 7