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

Σχετικά έγγραφα
לדוגמה: במפורט: x C. ,a,7 ו- 13. כלומר בקיצור

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

אוטומט סופי דטרמיניסטי מוגדר ע"י החמישייה:

Logic and Set Theory for Comp. Sci.

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

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

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

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

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

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

Regular Expressions (RE)

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

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

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

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

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

{ : Halts on every input}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

gcd 24,15 = 3 3 =

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

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

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

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

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

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

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

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

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

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

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

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

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

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

logn) = nlog. log(2n

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

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

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

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

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

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

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

סדרות - תרגילים הכנה לבגרות 5 יח"ל

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

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

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

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

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

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

מבני נתונים ואלגוריתמים תרגול #11

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

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

כלליים זמן: S מחסנית, top(s) ראש המחסנית. (Depth First Search) For each unmarked DFS(v) / BFS(v) רקורסיבי. אלגוריתם :BFS

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

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

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

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


בחינה בסיבוכיות עמר ברקמן, ישי חביב מדבקית ברקוד

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

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

1 תוחלת מותנה. c ארזים 3 במאי G מדיד לפי Y.1 E (X1 A ) = E (Y 1 A )

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

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

התפלגות χ: Analyze. Non parametric test

(ספר לימוד שאלון )

אינפי - 1 תרגול בינואר 2012

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

תורת הקבוצות ניר אדר ניר אדר.

תכנון אלגוריתמים 2016 עבודה 1 שאלה 1 פתרון נתונות שתי בעיות. יש למצוא: אורך מסלול קצר ביותר המתחיל באחד מן הקודקודים s 1,..., s k ומסתיים ב t.

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

תרגילים באמצעות Q. תרגיל 2 CD,BF,AE הם גבהים במשולש .ABC הקטעים. ABC D נמצאת על המעגל בין A ל- C כך ש-. AD BF ABC FME

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

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

co ארזים 3 במרץ 2016

תורת הגרפים - סימונים

סיכום- בעיות מינימוםמקסימום - שאלון 806

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

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

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

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

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

ניהול תמיכה מערכות שלבים: DFfactor=a-1 DFt=an-1 DFeror=a(n-1) (סכום _ הנתונים ( (מספר _ חזרות ( (מספר _ רמות ( (סכום _ ריבועי _ כל _ הנתונים (

תורת הקבוצות מושגי יסוד בתורת הקבוצות קבוצה אוסף של אלמנטים הנקראים אברי הקבוצה. אין חשיבות לסדר האיברים בקבוצה. אין חשיבות לחזרות.

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

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

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

Transcript:

אוטומטים ושפות פורמליות מבוא לתורת החישוביות סמי זעפרני המחלקה להנדסת חשמל ואלקטרוניקה מכללת אורט בראודה כרמיאל מוקדש לזכרו של משה בנסל חבר, עמית, ומורה דרך מהדורה March 24,2.2

הקדשה הספר מוקדש לזכרו היקר של משה בנסל (955-2), אשר במהלך שלושים שנות עבודתו בחברת אינטל היה תמיד מקור השראה לערכי אנושיות, חברות, ומצוינות. יהי זכרו ברוך. 2 955 Moshe Bensal כל הזכויות שמורות c All rights reserved למחברים to the authors 23 אין להעתיק, לצלם, או לתרגם את הספר או כל חלק ממנו בצורה כלשהי או באמצעים כלשהם, לרבות הקלטה ואיחסון במאגר מידע, אלא באישור בכתב מבעלי זכויות היוצרים. No part of this book may be reproduced by any mechanical, photographic, or electronic process, transmitted or otherwise copied for public or private use, without written permission from the authors.

הקדמה הספר הזה מנסה להקיף את הנושאים העיקריים הנלמדים בקורס אקדמי ראשון בתורת החישוביות או "אוטומטים ושפות פורמליות" (כפי שהוא נקרא לפעמים). קורס כזה נלמד לרוב בפקולטות למדעי המחשב או הנדסת חשמל ואלקטרוניקה, ומהווה בסיס הכרחי עבור מרבית קורסי ההמשך התאורטיים בתורת האלגוריתמים ושפות תיכנות. מטרת הספר היא לספק הסברים תמציתיים ודוגמאות יסודיות בנושאים השונים. קיימים ספרים רבים וטובים המספקים פירוט רב ומעמיק יותר, וספר זה אינו מתיימר להחליפם. הפורמט של הספר מוכוון בעיקר עבור קריאה נוחה באמצעות טבלטים וקוראים אלקטרוניים למיניהם הרבים (ובכך אולי להציל מספר עצים על כדור הארץ). הגופן הגדול והתימצות אמורים גם להקל על הקריאה באמצעים אלקטרוניים, ולסייע למרצים או מתרגלים להשתמש בדפי הספר כשקפים בכיתת הלימוד (ולספק לתלמידים יותר פרטים במקומות בהם הדברים הובאו בתימצות יתר). הספר אכן מבוסס על סדרת שקפים שניתנו בקורס זה בעבר, ונעשה מאמץ רב לשמור על הפורמט המקורי. זוהי הגירסה הראשונה של הספר,ובגירסאות הבאות יעשה מאמץ נוסף להתאים את הספר לקוראים אלקטרוניים באמצעות הוספת קישורים שיאפשרו לקורא מעברים מהירים בין הנושאים השונים. סמי זעפרני, מרץ 24

4 תוכן עניינים מבוא 8 2 רקע מתמטי 2. קבוצות.................................... 2.2 סדרות..................................... 2 2.3 פונקציות (העתקות).............................. 3 2.4 גרפים..................................... 3 2.5 גרפים מכוונים................................. 4 2.6 גרפים מסומנים................................ 5 2.7 טכניקות הוכחה................................ 6 3 מחרוזות ושפות 2 4 אוטומטים סופיים 23 4. מונחי יסוד.................................. 23 4.2 שפות רגולריות................................ 28 5 אוטומטים לא דטרמיניסטיים 29 6 שקילות בין אוטומטים דטרמיניסטיים ולא דטרמיניסטיים 37 7 אוטומטים עם מעברי 42 ε 8 ביטויים רגולריים 53 8. הגדרה..................................... 53 8.2 דרגת המורכבות של ביטוי רגולרי....................... 56 8.3 שקילות בין ביטויים רגולריים ואוטומטים סופיים............... 59 8.4 אוטומטים מוכללים.............................. 64 9 תכונות של שפות רגולריות 75

5 תוכן עניינים 9. משפט הניפוח עבור שפות רגולריות...................... 76 9.2 הוכחת משפט הניפוח............................. 8 9.3 תכונות סגירות של השפות הרגולריות..................... 83 אלגוריתמי הכרעה עבור קבוצות רגולריות 94 משפט מייהיל נרוד (Myhill-Nerode). אוטומטים ויחסי שקילות............................2 המשפט של. Myhill-Nerode........................ 7 2 אלגוריתם למציאת אוטומט מינימלי 3 3 דיקדוק חסר הקשר 27 3. תכונות נוספות של יחס הגזירה........................ 36 4 עצי גזירה 44 5 הקשר שבין עצי גזירה ומסלולי גזירה 48 6 רב משמעות 53 7 משתנים שמושיים ומשתנים מיותרים 59 8 פרודוקציות 7 ε 9 פרודוקציות יחידה 76 2 הצורה הנורמלית של חומסקי 8 2. הוכחה..................................... 8 2.2 דוגמא..................................... 82 2 אלגוריתם לקביעת התקבלות 84 22 אוטומט מחסנית לא דטרמיניסטי 92 22. קבלה על ידי מצב סופי............................ 96 22.2 הבהרות.................................... 97 22.3 דוגמא..................................... 98

6 תוכן עניינים אוטומטים ושפות פורמליות מטרתהקורס: הבנתמושגהאוטומטהסופיעלכלצורותיווהקשרשלולשפות פורמליות ולשפות תיכנות. היקף הקורס: סמסטר אחד, שעתיים הרצאה ושעתיים תירגול. דרישות קדם: נדרש ידע אקדמי בסיסי בנושאי לוגיקה,תורת הקבוצות,תורת הגרפים, וקומבינטוריקה נושאי הלימוד תווים. מחרוזות. שפות פורמליות. אוטומט סופי: דטרמיניסטי ולא דטרמיניסטי. דיאגרמות מעבר. שפות רגולריות וביטויים רגולריים. שקילות בין אוטומטים דטרמיניסטיים ולא דטרמיניסטיים. שקילות בין אוטומטים סופיים וביטויים רגולריים. תכונות של שפות רגולריות. משפט הניפוח עבור שפות רגולריות Lemma).(Pumping משפט.Myhill-Nerode טכניקות לזיהוי ותאור שפות רגולריות ולהוכחה כי שפות מסוימות אינן רגולריות. שפות חסרות הקשר. דיקדוק רגולרי ודיקדוק חסר הקשר.

7 תוכן עניינים מסלולי גזירה ועצי סריקה. שפות דו משמעיות. תכונות של שפות חסרות הקשר. הצורה הנורמלית של חומסקי. הצורה הנורמלית של גרייבך. משפט הניפוח עבור שפות נטולות הקשר. אוטומט מחסנית. ספרי לימוד מומלצים. אוטומטים ושפות פורמליות. פרופסור שמול זקס, פרופסור נסים פרנסיז, הטכניון, כרכים א, ב. הוצאת האוניברסיטה הפתוחה. 2. תורת החישוביות, עודד גולדרייך, הטכניון, חיפה. 3. Introduction to the Theory of Computation. Michael Sipser. 4. Introduction to Automata Theory, Languages, and Computation. John E. Hopcroft, Jefferey D. Ulman. Addison-Weseley series in computer science, ISBN -2-2988-X. 5. Introduction to the Theory of Computation. Michael Sipser, PWS Publishing Company, Thomson Publishing, 7625 Empire Drive Florence, KY 442. 6. An Introduction to Formal Languages and Automata. Peter Linz, Lexington, Massachusettes : D.C. Heath, c99, QA267.3, L56, 99. 7. Computational Complexity. Papadimitriou C. H., Addison-Wessley 994, Reading Massachusettes. ISBN/ISN -2-5382-. 8. Structural Complexity I, Jose Luis Balcasar, Josep Diaz, and Joaquim Gabarro, Springer-Verlag 988.

8 פרק מבוא תורת האוטומטים היא החלק הראשון של תורת החישוביות התאוריה המתמטית של מדעי המחשב. אחת ממטרות הקורס היא להקנות הרגלי חשיבה מתמטית קפדנית יכולת לספק נימוקים מתמטיים מדויקים לנכונותם של פתרונות תוכנה או חומרה לבעיות חישוב. עניין זה חיוני במיוחד עבור תיכנון,ניתוח,ואימות של מערכות תוכנה גדולות ומורכבות. מכונות חישוב לסוגיהם הרבים הן מימוש בחומרה של מודלים מתמטיים טהורים שניתן להגדיר, לחקור, ולנתח בצורה לוגית מתמטית בלתי תלויה באופן המימוש שלהם בחומרה. הדבר נכון גם לגבי תוכנות מורכבות כמו קומפיילרים וסורקים למיניהם הרבים. שלב מוקדם והכרחי הבא לפני המימוש (באמצעות חומרה או תוכנה בשפת תכנות מתאימה) הוא השלב האנליטי של ניסוח הבעייה, בדיקת היתכנות של פיתרונות תאורטיים, והוכחת הנכונות של הפיתרון האופטימלי (אם הוא קיים). לפעמים,בשלב הניתוח התאורטי מתברר כי בעייה נתונה אינה ניתנת לפיתרון על ידי מחשב (מכל סוג קיים או שיהיה קיים בעתיד) או שהפיתרון קיים אך זמן החישוב הוא בלתי מעשי. לפעמים מתברר כי בעייה נתונה ניתן

9 פרק.מבוא לפתורבכמה דרכים, כאשרדרך אחתיותרקצרה (בזמן חישוב) מדרך שניה. במקרים כאלה תשאל השאלה האם דרך מסוימת היא הכי קצרה? וכיצד ניתן להוכיח טענה מסוג זה? בתורת החישוביות, שהיא המסגרת היותר כללית של תורת האוטומטים נשאלות שאלות יותר בסיסיות כגון: מה זה חישוב? מה ניתן לחשב ומה לא? האם קיימות בעיות אשר לא ניתן לפתור על ידי מחשב? ואם כן, איך מוכיחים שבעיות כאלה בלתי פתירות? איך מוכיחים שתוכנית מחשב (או אלגוריתם) אכן פותר את הבעייה שהוא אמור לפתור? איך נוכיח שפיתרון תוכנה מסוים הוא הפיתרון המהיר ביותר שניתן להשיג? מהי שפה פורמלית? מהי שפת תיכנות? וכיצד מגדירים ומנתחים שפות כאלה? כל השאלות הנ"ל מודגמות בצורה יותר בהירה וחדה ומקבלות מענה מתאים גם בתורת האוטומטים הסופיים. מוטיבציה: מרבית הנושאים שיילמדו בקורס חיוניים עבור תיכנון וניתוח של מערכות מורכבת של תוכנה או חומרה. לדוגמא,תורת האוטומטים הסופיים והביטויים הרגולריים דרושה עבור תיכנון של מעגלים לוגיים, קומפיילרים, סורקים, מעבדי פקודות, עורכי תמלילים, ומנועים לוגיים כגון.Prolog

פרק.מבוא אוטומטים ושפות פורמליות מהווים בסיס חשוב עבור תחומים לא מתמטיים כגון עבוד שפות טבעיות, בלשנות, וחקר המוח. שימוש חשוב מאוד של תורת הביטויים הרגולריים קיים בתחומי התקשורת והאינטרנט. עבור תיכנון פרוטוקולים של תקשורת ואלגוריתמים ליצירה דינמית וסריקה של דפי,HTML כתיבת תוכניות,CGI וכדומה. כל אלה בלתי אפשריים ללא שליטה מלאה בנושא האוטומטים והביטויים הרגולריים. במסגרת הקורס יובאו דוגמאות מתאימות. הגדרה לוגית מוצקה של שפות תיכנות, קומפיילרים, וסורקים מהירים אפשרית הודות לתורה המתמטית של השפות חסרות ההקשר (החלק השני של הקורס). מכאן שהבנה מעמיקה של נושאי הקורס שלפנינו היא חיונית (ולמעשה הבסיס התאורטי) עבור קורסי המשך במדעי המחשב.

פרק 2 רקע מתמטי להלן סקירה מהירה של מושגים יסודיים מתורת הקבוצות, תורת הגרפים, וקומבינטוריקה, הדרושים לנו. המטרה כאן היא לרענן את זכרונו של הקורא באמצעות תזכורות ודוגמאות קצרות, ולכן לא נתעכב על הגדרות מלאות ומפורטות. הקורא הזקוק לריענון יסודי יותר, יימצא פירוט רחב ומעולה בספר של האוניברסיטה הפתוחה: "אוטומטים ושפות פורמליות" כרך ראשון. 2. קבוצות לסדר האיברים בקבוצה אין שום חשיבות: {7,,4} = {,4,7}. יש להבחין בין קבוצות סופיות וקבוצות אינסופיות. קבוצה סופית: {2,4,6}. קבוצה אינסופית: n} מספר זוגי {n =.{2,4,6,...} תת קבוצה:.A B,A B איחוד: B} A B = {x x A or x חיתוך: B} A B = {x x A and x

2 פרק 2.רקעמתמטי חיסור: B} A B = {x x A and x / קבוצת החזקה של קבוצה A היא קבוצת כל תתי הקבוצות של A: P(A) = {X X A} דוגמא: אם } 2 A = {q,q,q אז P(A) = {,{q },{q },{q 2 },{q 3 },{q,q },{q,q 2 },{q,q 2 },A} 2.2 סדרות לסדר יש חשיבות: (7,,4).(,4,7) סדרה סופית נקראת n יה. סדרה בת שני איברים נקראת זוג סדור. מכפלה קרטזית של שתי קבוצות: A B = {(a,b) a A and b B} באופן דומה נגדיר את הקבוצות: A, 3 A, 2... A 2 = A A = {(a,b) a,b A} A 3 = A A A = {(a,b,c) a,b,c A}

3 פרק 2.רקעמתמטי 2.3 פונקציות (העתקות) פונקציה במובנה המלא נתונה על ידי שלושה רכיבים: f. : A B f שם הפונקציה. A תחום הפונקציה: קבוצת כל הארגומנטים עליהם הפונקציה יכולה לפעול. B טווח הפונקציה: קבוצת הכוללת את כל האיברים שעשויים להתקבל כפלט של הפונקציה (אך עשויה להיות גדולה יותר). תחום הפונקציה היא קבוצת כל ערכי הקלט של f, וטווח הפונקציה היא קבוצת ערכים העשויים להתקבל כפלט של f. הערה: לא כל איברי B חייבים להתקבל כפלט של f! 2.4 גרפים גרף פשוט (או גרף לא מכוון) (V,E) G: = V קבוצת קודקודים (או צמתים) E {{a,b} a,b V} קבוצת צלעות, E V = {,2,3,4,5} E = {{,3},{,4},{2,4},{2,5},{3,5}} דוגמא: נאמר כי צלע {a,b} e = מחברת את הקודקוד a לקודקוד b, ושהקודקוד a מחובר לקודקוד b על ידי e. דרגה של קודקוד היא מספר הצלעות היוצאות ממנו.

4 פרק 2.רקעמתמטי נתיב (path) בגרף פשוט הוא סדרת קודקודים שונים ) n (v,v 2,...,v כך שכל שני קודקודים סמוכים מהווים צלע בגרף. כלומר, לכל i, < n.{v i,v i+ } E מסלול (walk) בגרף פשוט הוא סדרת קודקודים ) n (v,v 2,...,v כך שלכל.{v i,v i+ } E,i < n הקודקודים אינם חייבים להיות שונים זה מזה. מחזור בגרף פשוט הוא נתיב ) n v) v, 2 v,..., אשר בו הקודקוד האחרון מחובר לקודקוד הראשון:.{v n,v } E גרף קשיר הוא גרף אשר בו בין כל שני קודקודים שונים קיים נתיב המתחיל בקודקוד אחד ומסתיים בקודקוד השני. עץ (לא מכוון) הוא גרף קשיר ללא מחזורים. 2.5 גרפים מכוונים גרף מכוון (V,E) :G = V קבוצת צמתים (או קודקודים) E V V קבוצת צלעות מכוונות, E V = {,2,3,4,5} E = {(,3),(,4),(2,4),(4,2),(2,5),(3,5)} דוגמא: בצורה דומה נגדיר את המושגים הבאים: נתיב מכוון, מסלול מכוון, מחזור מכוון, עץ מכוון.

5 פרק 2.רקעמתמטי 2.6 גרפים מסומנים גרף מסומן (V,E,Σ) G = מורכב מהדברים הבאים: V קבוצת צמתים (או קודקודים) Σ היא קבוצת תווים המשמשים לסימון צלעות בגרף E (V Σ V) קבוצת צלעות מסומנות, E כל צלע בגרף מיוצגת על ידי שלשה מכוונת ) 2 v),,a,v כאשר v v, 2 הם שני קודקודים מתוך V, ואילו a הוא תו המסמן את הצלע. בניגוד לגרף מכוון רגיל, בין שני קודקודים בגרף מסומן עשויות לעבור כמה צלעות שונות! ההבדלים בין הצלעות מתבטא בתווים. יתר על כן: בגרף מסומן עשויות לעבור כמה צלעות שונות מקודקוד לעצמו! השונות תתבטא בתווים שונים על כל צלע. דוגמא: V = {q,q,q 2,q 3,q 4 } Σ = {,,2} E = {(q,,q ), (q,,q ), (q,,q ), (q,2,q 2 ), (q,2,q 3 ), (q 2,,q ), (q 2,,q 3 ), (q 3,,q 3 ), (q 3,,q 2 ), (q 3,,q 4 )} ייצוג גרפי: q 2 q3 q q2 q4

6 פרק 2.רקעמתמטי בכדי לתאר מסלולים בגרף מסומן חובה לכלול את התווים המסמנים את צלעות המסלול! אחרת תתכן רב משמעות. דוגמאות למסלולים בגרף הנ"ל: q q 2 q 3 א. q2 q q q q 2 ב. q 2 q 2 q 2 q 2 q 2 ג. q 2.7 טכניקות הוכחה במהלך הקורס נוכיח משפטים שונים באחת מדרכי ההוכחה הבאות: א. הוכחה באינדוקציה ב. הוכחה על ידי בנייה ג. הוכחה על דרך השלילה הוכחות רבות בתורת החישוביות מתבססות על שיטת האינדוקציה. נביא דוגמא מקדימה לכל שיטת הוכחה. מחרוזת תווים תקרא כפולה אם כל אחד מהתווים של האלפבית מופיע בה פעמיים בדיוק. למשל אם האלפבית שלנו הוא {a,b,c} Σ = אז המחרוזות הבאות הן מחרוזות כפולות: abbacc, cabcba, cbcaba שאלה: כמה מחרוזות כפולות קיימות באלפבית בעל n תווים?

7 פרק 2.רקעמתמטי משפט: בכל אלפבית בעל n תווים, מספר המחרוזות הכפולות הוא (2n)! הוכחה על ידי אינדוקציה: 2 n נסמן ב ( F(n את מספר המחרוזות הכפולות מעל אלפבית בעל n תווים. בסיס האינדוקציה: ) = (n ברור כי באלפבית בעל תו אחד ויחיד ניתן ליצור מחרוזת כפולה אחת בלבד.. = (2 )! כלומר =.F() זה מתאים לנוסחה: 2 F(n) = (2n)! הנחת האינדוקציה: 2 n F(n+) = (2n+2)! צריך להוכיח: +n 2 ראשית כל נציין כי כל מחרוזת כפולה מעל אלפבית של n סימנים חייבת להיות באורך 2n. באלפבית של + n סימנים, כל מחרוזת כפולה היא באורך 2+2n וברור כי היא מתקבלת ממחרוזת כפולה של n תווים על ידי הוספת פעמיים תו חדש בשדות שבשירטוט הבא: a a a a a 2 3 4 2 n field field 2 field 3 field 4 field 2n+ בכדילקבלמילהכפולהבאלפביתשלn+ תוויםממילהכפולה a a 2 a 2n באלפבית של n תווים יש לשבץ את התו החדש, שנקרא לו x, בתוך שתי משבצות ריקות. קיימות שתי דרכים עקריות לעשות זאת: דרך א : לשבץ את x באותו שדה כמו בציור הבא: a a x x a a a 2 3 4 2 n field field 2 field 3 field 4 field 2n+ ברור כי יש בדיוק +2n אפשרויות לעשות זאת.

8 פרק 2.רקעמתמטי דרך ב : לשבץ את x בשני שדות שונים כמו בציור הבא: a a x a a a 2 3 4 2 n x field field 2 field 3 field 4 field 2n+ ) ( אפשרויות לעשות זאת. כזכור 2n+ ברור כי יש בדיוק 2 ( ) 2n+ = (2n+)! 2 2 (2n )! = (2n+)2n = (2n+)n 2 לסיכום, מכל מילה כפולה באלפבית של n תווים ניתן ליצור (2n+)n+(2n+) מילים כפולות באלפבית של +n תווים. הסכום נותן.(2n+)(n+) לכן F(n+) = (2n+)(n+)F(n) = (2n+)(n+) (2n)! 2 n = (2n+2)(2n+) (2n)! 2 2 n = (2n+2)! 2 n+ תרגיל: כמה מילים משולשות ישנן באלפבית של n תווים? המשפט הבא מדגים מהי הוכחה על ידי בניה: משפט: לכל n זוגי קיים גרף פשוט אשר לכל קודקודיו דרגה 3 הוכחה על ידי בניה: נוכיח את המשפט על ידי כך שנבנה את הגרף המבוקש V = {v,v 2,...,v n } { } E = {v i,v j } j = i+ (j = n i = ) j = i+ n 2

9 פרק 2.רקעמתמטי למשל, עבור = 8 n, הגרף יראה כך: v v2 v8 v3 v7 v4 v6 v5

2 פרק 3 מחרוזות ושפות אלפבית היא קבוצה סופית Σ של תווים (סימנים). מחרוזת: סדרה סופית של תווים. למשל אם {a,b,c} Σ = אז w = aacbcca היא מחרוזת (או מילה) מעל האלפבית Σ. אורך המחרוזת: מספר התווים במחרוזת יסומן על ידי w. בדוגמא הנ"ל: = 7. w המחרוזת הריקה: ε. אורך המחרוזת הריקה הוא. היפוך: ההיפוך של המחרוזת w הוא,accbcaa והוא מסומן לרוב על ידי w. R תת מחרוזת: המחרוזת abb היא תת מחרוזת של.aabbbc רישא: המחרוזת aab היא רישא של.aabbbc סיפא: המחרוזת bbc היא סיפא של.aabbbc רישא וסיפא הם שני מקרים מיוחדים של תתי מחרוזות! שירשור או חיבור מחרוזות: החיבור של המחרוזות aab ו bc הוא.aabbc

2 פרק 3.מחרוזות ושפות המחרוזת aaaaa תסומן בקיצור על ידי a. 5 המחרוזת a 3 bc 4 היא לכן.aaabcccc שפה היא קבוצת מחרוזות L מעל אלפבית Σ. דוגמאות: Σ = {,,2,3,4,5,6,7,8,9} L = {,5,55,555,...} Σ = {,,2,3,4,5,6,7,8,9} L = {3,3,34,34,345,3459,...} Σ = {,,+,=} L = {+=,+=,+=,+=} 4 החומצות האמיניות= {A,C,G,T} Σ = L = {w DNA שרשרת w} א. ב. ג. ד. תווים מתוך האלפבית יסומנו בדרך כלל על ידי האותיות c, b, a,... מחרוזות יסומנו על ידי האותיות,z,y,x,w,v,u... Σ. קבוצת כל המחרוזות מעל האלפבית Σ + Σ קבוצת כל המחרוזות מעל האלפבית Σ ללא המחרוזת הריקה. פעולות בין שפות: L L 2 = {w w L or w L 2 } א. איחוד

22 פרק 3.מחרוזות ושפות L L 2 = {w w L and w L 2 } L L 2 = {uv u L and v L 2 } ב. חיתוך ג. שירשור L = {ε} L = L L 2 = LL L n+ = L n L ד. חזקה אם Σ הוא האלפבית שלנו, מהן השפות Σ, 2 Σ,...? ה. סגור תחת שירשור L = n= Ln L + = n= Ln ההבדל היחידי בין L ו + L הואש L ε אך + L ε רקאם.ε L במילים אחרות אם ε / L אז {ε}.l + = L דוגמאות: אם {,} = L 2 = {,},L אז L L 2 = {,,,} L L 2 = L L 2 = {,,} L 2 = {,,,} L = {ε,,,,,,,,...} אם {,} = L אז אם בשפה L יש לפחות מחרוזת אחת אז השפות L ו + L אינסופיות.

23 פרק 4 אוטומטים סופיים 4. מונחי יסוד אוטומט סופי היא מכונת חישוב תאורטית המתאפיינת על ידי הדברים הבאים: Q קבוצת מצבים בהן המכונה עשויה להיות. Σ האלפבית שמעליו מוגדרות המחרוזות המוזנות לאוטומט. δ : Q Σ Q פונקציית מעבר δ F. Q קבוצת מצבי קבלה (או מצבי סיום), F q מצבההתחלהשלהאוטומט. זהומצבאשרבוהאוטומטנמצאבתחילתו של כל תהליך חישוב. M = (Q,Σ,δ,F,q ) סימון מקוצר: בכל פעם שמדברים על אוטומט יש לציין בבירור (אם זה לא ברור מתוך ההקשר) את כל חמשת הדברים הנ"ל. נוכל לדמות אוטומט סופי למכונת חישוב בעלת סרט בלתי מוגבל באורכו וראש קורא הנע מעל תאי הסרט בכוון אחד (משמאל לימין). כאשר המכונה נמצאת במצב q וראש המכונה קורא תו מסוים a ראש המכונה יעבור לתא

24 פרק 4.אוטומטים סופיים הבא (מימין) והמכונה תעבור למצב חדש q בהתאם לפונקציית המעבר.q = δ(q,a) ) 2) state state q q q q 3) 4) state state q q q q מחרוזת שהוזנה לאוטומט מתקבלת על ידי האוטומט אם לאחר שראש האוטומט הגיע לסוף המחרוזת, האוטומט נמצא באחד ממצבי הקבלה. מבחינה מתמטית מספיקה ההגדרה הבאה בכדי לתאר את האוטומט M הנ"ל: Q = {q,q } δ Σ = {,} q q q q = Start q q q F = {q } הגדרה: אוטומט M מקבל מחרוזת w אם לאחר סריקת כל התווים של w האוטומט מגיע לאחד ממצבי הקבלה שלו. נאמר גם שהמחרוזת w מתקבלת על ידי האוטומט M. למשל, האוטומט M הנ"ל מקבל את המחרוזת.

25 פרק 4.אוטומטים סופיים q q q q סדרת חישוב: המילה לעומת זאת אינה מתקבלת על ידי M q q q q גם המילה אינה מתקבלת על ידי M. הגדרה: השפה המתקבלת על ידי אוטומט M היא קבוצת כל המחרוזות המתקבלות על ידי M. שפה זו מסומנת על ידי.L(M) בעייה שכיחה: למצוא תאור מילולי פשוט ככל האפשר של.L(M) למשל, מהי בדיוק השפה המתקבלת על ידי האוטומט M מהדוגמא הנ"ל? מורכבות ההגדרה של אוטומט סופי מחייבת את הבנתו באמצעות מודלים מתמטיים נוספים. המודל הקרוב ביותר: גרף מסומן קבוצת קודקודים: Q קבוצת צלעות: } q E = {(q,a,q ) δ(q,a) = קבוצת התווים המשמשים לסימון צלעות הגרף היא כמובן Σ. מאחר ו δ היא פונקציה, לגרף שלנו תהיה התכונה המיוחדת: מכל קודקוד q ולכל תו a קיימת בדיוק צלע יוצאת אחת המסומנת a. דיאגרמות מעבר קל יותר לתאר ולהבין אוטומטים באמצעות דיאגרמות מעבר. את האוטומט

26 פרק 4.אוטומטים סופיים שלנו M נתאר כך: Start q q לכל מצב q של האוטומט M מתאים קודקוד אחד בגרף המיוצג על ידי מעגל שבמרכזו רשום שם המצב. אם q הוא מצב קבלה של האוטומט אז נציין עובדה זו על ידי מעגל כפול. פונקציית המעבר המורחבת δ δ : Q Σ Q א. δ (q,ε) = q ב. δ(q,a) a Σ,δ (q,a) = ג. (q,w),a) w Σ,δ (q,wa) = δ (δ הערה: זוהי הגדרה רקורסיבית! דוגמא: נחשב מספר ערכים של δ עבור האוטומט M הנ"ל δ (q,) = q δ (q,) = δ (δ (q,),) = δ (q,) = q δ (q,) = δ (δ (q,),) = δ (q,) = δ (q,) = q הפונקציה δ חשובה מאוד לשם הגדרת מושגים נוספים וניתוח אוטומטים.

27 פרק 4.אוטומטים סופיים למשל, את השפה המתקבלת על ידי אוטומט M נוכל להגדיר בצורה מדויקת L(M) = {w Σ δ (q,w) F} יותר נוכללהשתמשבפונקציה δ גםבכדילהוכיחטענות. נחזורלאוטומטהדוגמא L(M) = { w {,} w מסתיימת בתו } שלנו M. טענה: הוכחה: להוכחה שני כוונים. כוון ראשון: תהי w מחרוזת בינארית המסתיימת בתו. אזי u w, = u מחרוזת בינארית. δ (q,w) = δ (q,u) = δ (δ (q,u),) = { δ (q,) = q δ (q,) = q הערך של (u, δ q) יכול להיות q או q ובשני המקרים האוטומט יעבור למצב קבלה q. כוון שני: נניח ש L(M).w נסמן,w = ua כאשר {,},u.a =, נוכיח שבהכרח = a. נניח בשלילה ש = a. אזי { δ δ (q,w) = δ (q,u) = δ (δ (q,) = q (q,u),) δ (q,) = q הגדרה: שני אוטומטים M 2 M, נקראים שקולים אם L(M ) = L(M 2 ) סימון:.M M 2

28 פרק 4.אוטומטים סופיים דוגמא: יהיו M 2 M, שני האוטומטים הבאים: M M2 q Start q q Start q q2 לא קשה להוכיח כי האוטומט M 2 מקבל את שפת כל המחרוזות הבינאריות המסתיימות באפס, ולכן.M M 2 4.2 שפות רגולריות הגדרה:שפהL נקראתשפהרגולריתאםקייםאוטומט M כךש ( L(M.L = בשלב הזה נציג רשימת שאלות שיעסיקו אותנו בהמשך: א. האם קיימת דרך (אלגוריתם) לקבוע אם שפה נתונה L היא רגולרית? ואם כן, האם קיים אלגוריתם למציאת אוטומט M שמקבל את השפה?L ב. האם קיים אלגוריתם שבאמצעותו ניתן לקבוע אם?M 2 עבור כל שני אוטומטים,M L(M ) = L(M 2 ) ג. בהינתן אוטומט מורכב M, האם קיים אוטומט פשוט יותר השקול לו? והאם קיים אלגוריתם מעשי למציאת אוטומט שקול קטן ביותר?

29 פרק 5 אוטומטים לא דטרמיניסטיים אוטומט סופי רגיל נקרא לפעמים גם אוטומט דטרמיניסטי משום שמכל מצב q ולכלתו a ישנה בדיוק דרך אחת לעבורלמצב הבא. מגבלה זו אינה קיימת באוטומט לא דטרמיניסטי. כלומר ממצב נתון q ותו a ייתכנו אפס או יותר מצבים שאליהם יוכל לעבור האוטומט כפי שרואים בדיאגרמת המעבר הבאה: NPDA Start q q3 q4 q q2 אוטומט לא דטרמיניסטי סופי היא מכונת חישוב תאורטית המתאפיינת על ידי הדברים הבאים: Q קבוצת מצבים בהן המכונה עשויה להיות. Σ האלפבית שמעליו מוגדרות המחרוזות המוזנות לאוטומט. δ : Q Σ P(Q) פונקציית מעבר δ

3 פרק 5.אוטומטים לא דטרמיניסטיים F. Q קבוצת מצבי קבלה (או מצבי סיום), F q מצבההתחלהשלהאוטומט. זהומצבאשרבוהאוטומטנמצאבתחילתו של כל תהליך חישוב. תזכורת: P(Q) היא קבוצת כל תתי הקבוצות של Q. ההגדרה של אוטומט לא דטרמיניסטי זהה בכל להגדרת אוטומט דטרמיניסטי מלבד בפונקציית המעבר שמעתיקה זוג (q,a) לקבוצת מצבים.δ(q,a) Q משמעות הדבר היא שאם אוטומט לא דטרמיניסטי נמצא במצב q כאשר הוא קורא תו a הוא יוכל לעבור לכל אחד מהמצבים בקבוצה.δ(q,a) M = (Q,Σ,δ,F,q ) סימון מקוצר: בכל פעם שמדברים על אוטומט לא דטרמיניסטי יש לציין בבירור (אם זה לא ברור מתוך ההקשר) את כל חמשת הדברים הנ"ל. בניגוד לאוטומט דטרמיניסטי, עבור כל מחרוזת w, קיימות בדרך כלל מספר גדול של סדרות חישוב שונות, ובמקרים מסוימים אף לא סדרת חישוב אחת. למשל, באוטומט הנ"ל, קיימות ארבע סדרות חישוב שונות עבור המחרוזת q q q q q q q q q q3 q4 q 4 q q q q q q q q q 2 q2 q2 q 2 :w = הגדרה: אנו נאמר כי מחרוזת w מתקבלת על ידי אוטומט לא דטרמיניסטי M אם לפחות אחת מסדרות החישוב של w מסתיימת במצב קבלה.

3 פרק 5.אוטומטים לא דטרמיניסטיים המחרוזת מתקבלת על ידי M. מבחינה מתמטית מספיקה ההגדרה הבאה בכדי לתאר את האוטומט M הנ"ל: Q = {q,q,q 2,q 3,q 4 } Σ = {,} q = Start F = {q 2,q 4 } δ q {q,q 3 } {q,q } q {q 2 } q 2 {q 2 } {q 2 } q 3 {q 4 } q 4 {q 4 } {q 4 } הגדרה: השפה המתקבלת על ידי אוטומט לא דטרמיניסטי M היא קבוצת כל המחרוזות המתקבלות על ידי M. שפה זו מסומנת על ידי.L(M) בעייה שכיחה: למצוא תאור מילולי פשוט ככל האפשר של.L(M) למשל, מהי בדיוק השפה המתקבלת על ידי האוטומט M מהדוגמא הנ"ל? כמו במקרה של אוטומט דטרמיניסטי, נוח מאוד לייצג אל"ד באמצעות גרף מסומן אשר קבוצת קודקודיו: Q קבוצת צלעותיו: δ(q,a)} E = {(q,a,q ) q קבוצת התווים המשמשים לסימון צלעות הגרף היא כמובן Σ. באוטומט דטרמיניסטי, לכל מצב q ולכל תו a קיים בדיוק מצב אחד q כך ש E.(q,a,q ) באוטומט לא דטרמיניסטי, לעומת זאת, ייתכן יותר ממצב אחד q כזה, או אפילו שום q כזה.

32 פרק 5.אוטומטים לא דטרמיניסטיים δ : Q Σ P(Q) פונקציית המעבר המורחבת δ א. {q} δ (q,ε) = w Σ ב. δ(q,a) a Σ,δ (q,a) =,δ (q,wa) = ג. (r,a) δ r δ (q,w) או באופן שקול: δ (q,wa) = {p Q r δ (q,w)[p δ(r,a)]} שוב, זוהי הגדרה רקורסיבית! תנאי א אוסר שינוי מצב ללא קלט! במילים פשוטות: (q,w) δ היא קבוצת כל המצבים בהם סדרות החישוב של המחרוזת w מסתיימות, בתנאי שהחישוב מתחיל במצב q. באופן נורמלי, כל סדרת חישוב מתחילה במצב ההתחלה q, ולכן לרוב נפגוש בביטוי,w).δ (q בדוגמא שלנו, סדרות החישוב של המחרוזת מסתיימות במצבים } 4 {q,q,q 2,q ולכן δ (q,) = {q,q,q 2,q 4 } אך אין זו הדרך הקצרה ביותר לחישוב (,!δ(q

33 פרק 5.אוטומטים לא דטרמיניסטיים הרחבה מועילה נוספת של פונקציית המעבר δ היא: δ : P(Q) Σ P(Q), δ(p,a) = q P δ(q, a) אין סכנת דו משמעות בשימוש בסימן δ עבור הרחבה זו. לכל קבוצת מצבים השייכים ל ( δ(p,a q היא קבוצת כל המצבים δ(p,a) a, ולכל תו P, Q עבור.p P הרחבה זו מאפשרת לנו לתת הגדרה משופרת של δ: δ (q,wa) = δ(δ(q,w),a) דוגמא: נחשב את,) δ (q עבור האוטומט M הנ"ל δ (q,) = {q,q } δ (q,) = δ(δ(q,),) = δ({q,q },) = δ(q,) δ(q,) = {q,q } {q 2 } = {q,q,q 2 } δ (q,) = δ(δ(q,),) = δ({q,q,q 2 },) = δ(q,) δ(q,) δ(q 2,) = {q,q 3 } {q 2 } = {q,q 2,q 3 }

34 פרק 5.אוטומטים לא דטרמיניסטיים δ (q,) = δ(δ(q,),) = δ({q,q 2,q 3 },) = δ(q,) δ(q 2,) δ(q 3,) = {q,q 3 } {q 2 } {q 4 } = {q,q 2,q 3,q 4 } δ (q,) = δ(δ(q,),) = δ({q,q 2,q 3,q 4 },) = δ(q,) δ(q 2,) δ(q 3,) δ(q 4,) = {q,q } {q 2 } {q 4 } = {q,q,q 2,q 4 } הפונקציה δ חשובה מאוד לשם הגדרת מושגים נוספים וניתוח אוטומטים. למשל, את השפה המתקבלת על ידי אוטומט M נוכל להגדיר בצורה מדויקת יותר L(M) = {w Σ δ (q,w) F } על ידי שימוש בפונקציה δ נוכל לתת הגדרות מדויקות למושגים שהגדרנו קודם בצורה לא פורמלית: א. מחרוזת w מתקבלת על ידי אוטומט לא דטרמיניסטי M אם ורק אם הקבוצה (w, δ q) כוללת בתוכה לפחות מצב קבלה אחד. L(M) = {w Σ δ (q,w) F } ב. נוכל להשתמש בפונקציה δ גם בכדי להוכיח טענות.

35 פרק 5.אוטומטים לא דטרמיניסטיים תרגיל: הוכח שלכל שתי מחרוזות Σ,u,v δ (q,uv) = δ (δ (q,u),v) רמז: אינדוקציה על אורך המחרוזת v. סימון: נרשום q q w אם קיימת סדרת חישוב של המחרוזת w שמתחילה במצב q ומסתיימת במצב q..q 3 למשל, בדוגמא שלנו, q 4.q uv q אז q v טענה: אם q q u ו q L(M) = נחזור לאוטומט הדוגמא שלנו M. { w {,} w מכילה תת מחרוזת או } טענה: הוכחה: להוכחה שני כוונים. כוון ראשון: תהי w מחרוזת בינארית המכילה בתוכה את תת המחרוזת u (או.( נוכל לרשום.w = uv ברור כי לכל מחרוזת u מתקיים.q q w v כמו כן q q 4 ו.q 4 q 4 לכן,q q4 ומכאן ש ( L(M.w כנ"ל לגבי.w = uv כוון שני: נניח ש L(M).w אזי,w) q 2 δ (q או,w).q 4 δ (q נניח למשל ש ( w, q. 4 δ q) אזי קיימת לפחות סדרת חישוב אחת של w המתחילה במצב q ומסתיימת במצב q. 4 סדרת חישוב זו חייבת להכיל.q q3 בתוכה את המסלול q4 הגדרה: שני אוטומטים M 2 M, (מכל סוג שהוא) נקראים שקולים אם L(M ) = L(M 2 )

36 פרק 5.אוטומטים לא דטרמיניסטיים סימון:.M M 2 הגדרת האוטומט הלא דטרמיניסטי כוללת בתוכה גם את האוטומט הרגיל. אוטומט רגיל הוא אוטומט לא דטרמיניסטי בעל התכונה המיוחדת: לכל מצב q ולכל תו a, קבוצת המצבים δ(q,a) מכילה בדיק מצב אחד. לכן: כל שפה הניתנת להגדרה על ידי אוטומט רגיל ניתן להגדיר גם על ידי אוטומט לא דטרמיניסטי. שאלה: האם קיימות שפות שניתן להגדיר באמצעות אוטומטים לא דטרמיניסטיים אך לא ניתנות להגדרה על ידי אוטומטים רגילים? התשובהלשאלהזוהיאמפתיעה: כלשפהשניתןלהגדירבאמצעותאוטומטים לא דטרמיניסטי ניתן להגדיר גם על ידי אוטומט רגיל! אם כך, לשם מה צריך אוטומטים לא דטרמיניסטיים? א. סיבות תאורטיות: מושגים מסוימים קלים יותר להגדרה ולהבנה על ידי אוטומטים לא דטרמיניסטיים. הוכחות רבות בתורת החישוביות הן פשוטות יותר כאשר משתמשים באוטומטים לא דטרמיניסטיים. ב. קל יותר להוכיח ששפה נתונה היא רגולרית על ידי בניית אוטומט לא דטרמיניסטי. במקרים רבים, שפות המוגדרות על ידי אוטומטים דטרמיניסטיים מסובכים, ניתן להגדיר על ידי אוטומטים לא דטרמיניסטיים פשוטים בהרבה.

37 פרק 6 שקילות בין אוטומטים דטרמיניסטיים ולא דטרמיניסטיים משפט: תהי L שפה המתקבלת על ידי אוטומט סופי לא דטרמיניסטי M. אזי קיים אוטומט דטרמיניסטי M המקבל את L. הוכחה: יהי (F, M = (Q,Σ,δ,q אוטומט לא דטרמיניסטי המקבל את השפה L. נציג שיטה להפוך כל אוטומט לא דטרמיניסטי M לאוטומט דטרמיניסטי ),F M = (Q,Σ,δ,q המקבל את אותה השפה בדיוק! האוטומט הדטרמיניסטי המתקבל על ידי שיטה זו הוא לרוב מסובך (מספר גדול מדי של מצבים) אך בינתיים קיומו חשוב לנו מהבחינה התאורטית. לאחרשנבנהאותו, יהיה אפשרי לפשט אותו על ידי סילוק מצבים מיותרים מתוכו. א. קבוצת המצבים Q של M תהיה מורכבת מכל תתי הקבוצות של Q. כלומר P(Q) Q. = פירוש הדבר הוא שאם באוטומט M יש n מצבים אז באוטומט M יהיו 2 n מצבים. לרוב, חלק גדול מהמצבים האלה

38 פרק 6.שקילות בין אוטומטים דטרמיניסטיים ולא דטרמיניסטיים יהיה מיותר ובפועל מספר המצבים של M יהיה קטן בהרבה. כל מצב של Q יסומן על ידי ] i [q,q 2,...,q (תת קבוצה של.(Q נדגיש שוב ש [ [q,q 2,...,q i זה מצב יחיד של!Q הרעיון מאחורי בחירה זו הוא שעל האוטומט M לזכור, במצב יחיד, את כל המצבים האפשריים בהם יכול להיות M בכל רגע נתון. ב. קבוצת התווים Σ זהה עבור שני האוטומטים ג. המצב התחלתי של M הוא ].q = [q ד. קבוצת מצבי הקבלה F של האוטומט M תהיה מורכבת מכל תתי הקבוצות של Q המכילים לפחות מצב קבלה אחד של M: F = {P Q P F } ה. פונקציית המעבר δ של M תוגדר כך: δ ([q,q 2,...,q i ],a) = [p,p 2,...,p j ] אם ורק אם δ({q,q 2,...,q i },a) = {p,p 2,...,p j } ביתר פירוט δ ([q,q 2,...,q i ],a) = δ(q,a) δ(q 2,a) δ(q i,a) הנוסחה האחרונה תהיה חשובה לנו עבור דוגמאות מעשיות. נעבור עכשיו לגוף ההוכחה. טענת עזר: לכל מחרוזת w δ (q,w) = [q,q 2,...,q i ] δ(q,w) = {q,q 2,...,q i } ( )

39 פרק 6.שקילות בין אוטומטים דטרמיניסטיים ולא דטרמיניסטיים הוכחה: באינדוקציה על אורך המחרוזת. בסיס: הטענה ברורה אם = w כי אז w = ε ועל פי ההגדרה של הרחבת δ δ(q,ε) = {q } מצד שני, על פי הגדרת δ, δ (q,ε) = δ({q },ε) = {δ(q,ε)} = {q } הנחת האינדוקציה: נניח שהטענה ( ) מתקיימת לכל מחרוזת w באורך n ומטה. נוכיח שהיא מקיימת עבור כל מחרוזת באורך +n. תהי u מחרוזת באורך.n+ אזי a Σ, w = n,u = wa δ (q,wa) = δ (δ (q,w),a) על פי הנחת האינדוקציה δ ([q,q 2,...,q i ],w) = [p,p 2,...,p j ] δ({q,q 2,...,q i },w) = {p,p 2,...,p j } אם ורק אם δ ([p,p 2,...,p j ],a) = [r,r 2,...,r k ] אבל על פי ההגדרה של δ, δ({p,p 2,...,p j },a) = {r,r 2,...,r k } δ (q,wa) = [r,r 2,...,r k ] אם ורק אם ומכאן ש

4 פרק 6.שקילות בין אוטומטים דטרמיניסטיים ולא דטרמיניסטיים δ(q,wa) = {r,r 2,...,r k } אם ורק אם ובכך הושלמה הוכחת הטענה. תהי L השפה המתקבלת על ידי האוטומט M. בכדי להשלים את הוכחת המשפט, עלינו להוכיח כי L.L = לכל מחרוזת Σ,w w L δ (q,w) F נניח כי δ (q,w) = [q,q 2,...,q i ] ( ) מהגדרת F נובע כי {q,q 2,...,q i } F ועל פי הטענה לעיל, השוויון ( ) שקול לטענה δ(q,w) = {q,q 2,...,q i } קיבלנו כי L w אם ורק אם קבוצת המצבים (w, δ(q מכילה מצב קבלה של.M כלומר: L w אם ורק אם.w L לכן L.L =

4 פרק 6.שקילות בין אוטומטים דטרמיניסטיים ולא דטרמיניסטיים דוגמא: נהפוך את האוטומט הלא דטרמיניסטי הבא לאוטומט דטרמיניסטי NPDA Start q q3 q4 q q2 PDA [q,q3] [q,q3,q4] Start [q] [q,q] [q,q,q4] [q,q,q2] [q,q,q2,q4] [q,q2,q3] [q,q2,q3,q4]

42 פרק 7 אוטומטים עם מעברי ε כל היצמדות למודל יחיד של חישוביות מתבררת מהר כטעות חמורה. ריבוי מודלים תאורטיים של חישוביות בדרך כלל מועיל לשם הבנת טבעו המורכב של מושג החישוביות ומספק לנו אלטרנטיבות רבות להתמודד עם בעיות שונות. מודל מסוים של חישוביות עשוי להתאים בצורה טבעית לסוג מסוים של בעיות, אך לא להתאים לסוג אחר של בעיות. בפרק זה נציג מודל מורחב של אוטומט לא דטרמיניסטי שמתאים במיוחד לטיפול בביטויים רגולריים השכיחים מאוד בשפות מעטפת או שפות סקריפט כגון:.python,perl,grep,awk,csh הגדרה: אוטומט לא דטרמיניסטי עם מעברי ε מתאפיין על ידי חמשת המרכיבים הרגילים M = (Q,Σ,δ,q,F) עם הבדל קטן (אך משמעותי) בפונקציית המעבר: δ : Q (Σ {ε}) P(Q) לרשימת התווים Σ נוספת המחרוזת הריקה ε. פירוש הדבר הוא שניתן במצבים מסוימים לעבור ממצב אחד למצב שני ללא קליטת תו מעבר כזה נקרא מעבר ε. מבחינה גרפית, הדבר מתבטא

43 פרק 7.אוטומטיםעםמעבריε בכך שמותר לנו לסמן צלעות בדיאגרמת המעבר על ידי המחרוזת הריקה ε. המעבר בין שני המצבים בצלע כזו יעשה ללא קריאת תו. דוגמא: 2 ε ε Start q q q2 אוטומט זה כולל שני מעברי ε, ולא קשה לראות כי הוא מגדיר את שפת כל המחרוזות באלפבית {,,2} = Σ המורכבות מסדרת אפסים שלאחריה באה סדרת ים ולבסוף סדרת 2 ים (כל אחת מהסדרות הללו עשויה להיות ריקה!). האוטומט יקבל מחרוזות כגון 222, 2, ε, 2222, וכו כמו קודם, יתברר לנו כי אוטומטים עם מעברי ε אינם מסוגלים להגדיר שפות חדשות שלא יכולנו להגדיר באמצעות אוטומט רגיל או אוטומט לא דטרמיניסטי, אך אוטומט לא דטרמיניסטי רגיל ללא מעברי ε המגדיר את אותה השפה עשוי להיות מורכב הרבה יותר! להלן מספר דוגמאות של סדרות חישוב q q q ε q q ε q2 q ε q q q q ε q2 q ε q ε q2 כל הסדרות מסתיימות במצב קבלה q. 2 הסדרה הראשונה מוכיחה כי M מקבל את המחרוזת, הסדרה השניה את, והאחרונה את ε.

44 פרק 7.אוטומטיםעםמעבריε להלן הגדרה פורמלית מלאה של M: Q = {q,q,q 2 } Σ = {,,2} q = Start F = {q 2 } δ 2 ε q {q } {q } q {q } {q 2 } q 2 {q 2 } יש לשים לב לכך שבטבלת המעבר נוספה עמודה חדשה עבור ε! מטרתנו העקרית בפרק זה היא להוכיח כי כל אוטומט לא דטרמיניסטי עם מעברי ε שקול לאוטומט לא דטרמיניסטי רגיל. לשם כך נזדקק למושגים הבאים. (ε-closure) ε סגור לכל מצב q נסמן על ידי (q) C ε את קבוצת כל המצבים p כך שקיים מסלול מהמצב q למצב p אשר כל צלעותיו מסומנות ε. } C ε (q) = {p Q q ε ε ε ε קיים מסלול r ri p הקבוצה (q) C ε תמיד תכלול בתוכה את q. לדוגמא, באוטומט הנ"ל C ε (q ) = {q,q,q 2 } C ε (q ) = {q,q 2 } C ε (q 2 ) = {q 2 } עכשיו נרחיב, בצורה טבעית לגמרי, את הגדרת האופרטור C ε כך שיפעל לא רק על מצב בודד אלא גם על קבוצת מצבים P Q C ε (P) = C ε (q) q P

45 פרק 7.אוטומטיםעםמעבריε הרחבת פונקציית המעבר δ לפונקציה δ כפי שעשינו זאת עבור אוטומט רגיל ואוטומט לא דטרמיניסטי, גם במקרה זה יש צורך להגדיר את ההרחבה δ. אלא שכאן מעברי ה ε מוסיפים קושי מסוים, שבכדי להתגבר עליו היה עלינו ראשית כל להגדיר את האופרטור C. ε δ (q,ε) = C ε (q) א. לכל מצב q נגדיר ב. לכל מחרוזת w ב Σ, ולכל תו a δ (q,wa) = C ε (P) כאשר P = δ(r, a) r δ (q,w) במילים אחרות: אם במהלך הרקורסיה מצאנו כי δ (q,w) = {r,r 2,...,r k } אז נעשה קודם כל את צעד הביניים P = δ(r,a) δ(r 2,a) δ(r k,a) ולבסוף ניקח את ε סגור של P.

46 פרק 7.אוטומטיםעםמעבריε דוגמא: c a ε ε q b ε ε q4 a a Start q q3 c a b a b q2 ε q5 b c המחרוזות,aaa,acb,babb מתקבלות על ידי האוטומט הזה כפי שסדרות q ε q b q3 a q 5 b q5 b q5 q a q2 ε q5 c q 2 b q3 ε q4 ε q ε q q a q a q a q החישוב הבאות מוכיחות: נוכל גם להדגים את הפונקציה δ באוטומט זה.

47 פרק 7.אוטומטיםעםמעבריε נחשב למשל את,ac) :δ (q δ (q,ε) = {q,q } P = δ(q,a) δ(q,a) = {q,q 2 } = {q,q 2 } δ (q,a) = C ε ({q,q 2 }) = C ε (q ) C ε (q 2 ) = {q,q } {q 2,q 5 } = {q,q,q 2,q 5 } P = δ(q,c) δ(q,c) δ(q 2,c) δ(q 5,c) = {q 4 } {q 2,q 4 } = {q 2,q 4 } δ (q,ac) = C ε ({q 2,q 4 }) = C ε (q 2 ) C ε (q 4 ) = {q 2,q 5 } {q 4,q,q } = {q,q,q 2,q 4,q 5 } לשם נוחות נרחיב את הפונקציות δ δ, גם לקבוצות של מצבים δ : P(Q) (Σ {ε}) P(Q), δ : P(Q) Σ P(Q) באופן הטבעי הבא: δ(p,a) = q P δ(q,a) δ (P,w) = q P δ (q,w) תרגיל: חשב את δ(p,a) ואת (P,ε) δ כאשר } 3 P = {q,q ו M הוא האוטומט מהדוגמא השניה.

48 פרק 7.אוטומטיםעםמעבריε שאלה: האם (P,a)?δ(P,a) = δ הערה: שלא כמו במקרים הקודמים, במקרה של אוטומט עם מעברי ε, (q,a) δ אינו חייב להיות זהה ל ( δ(q,a. מאחר ו ( q,a ) δ היא קבוצת כל המצבים אשר ניתן להגיע אליהם ממצב q על ידי צלעות המסומנות a או ε, בעוד ש ( δ(q,a היא קבוצת כל המצבים אשר ניתן להגיע אליהם ממצב q על ידי צלעות המסומנות a בלבד! באופן דומה, (q,ε) δ לא שווה בהכרח ל ( δ(q,ε. לכן, כשמדובר באוטומט עם מעברי ε, יש להבחין היטב בין δ ו δ. הגדרה: השפה L(M) המתקבלת על ידי אוטומט לא דטרמיניסטי עם מעברי ε היא L(M) = {w Σ F מכילה מצב של δ (q,w) } משפט: אם L היא שפה המתקבלת על ידי אוטומט לא דטרמיניסטי עם מעברי ε, אז L מתקבלת גם על ידי אוטומט לא דטרמיניסטי ללא מעברי ε. הוכחה: נציג שיטה שימושית להמרת אוטומט עם מעברי ε לאוטומט ללא מעברי ε. יהי M = (Q,Σ,δ,q,F) אוטומט עם מעברי ε המקבל את השפה L. נבנה אוטומט חדש M = (Q,Σ,δ,q,F ) ללא מעברי ε אשר יקבל את אותה השפה L. האוטומט M יהיה זהה בכל לאוטומט M מלבד בפונקציית המעבר δ ובקבוצת מצבי הקבלה.

49 פרק 7.אוטומטיםעםמעבריε הגדרת :F אם( C ε (q כוללתבתוכהמצבקבלהשל F אזנגדיר{.F = F {q אחרת, נגדיר.F = F הגדרת פונקציית המעבר δ: נתבסס על פונקציית המעבר המורחבת δ של M אשר הגדרנו בסעיפים הקודמים. לכל q Q ולכל a Σ נגדיר δ (q,a) = δ (q,a) שים לב כי באוטומט M אין מעברי ε! מאחר ובשום שלב לא הגדרנו את (ε,.δ(q לכן אין סכנה בשימוש בסימן δ גם עבור פונקציית המעבר המורחבת δ של M (אך עדיין צריך להבחין בין δ ו δ!). בשלב הזה סיימנו להציג את האלגוריתם שבאמצעותו אנו ממירים אוטומט עם מעברי ε לאוטומט שקול ללא מעברי ε. ניגש עכשיו להוכחת הנכונות של האלגוריתם. כלומר: עלינו להוכיח ש L.L(M ) = למטרה זו היינו מעוניינים להוכיח, באינדוקציה על אורך מחרוזת w, טענה יותר חזקה: ω Σ : δ (q,w) = δ (q,w) המשפט שלנו יינבע מייד מטענה זו. אך טענה זו עשויה להיכשל עבור,w = ε מאחר ו { δ (q,ε) = {q אך ).δ (q,ε) = C ε (q נתחיל לכן את האינדוקציה שלנו מהשלב = n. בסיס האינדוקציה: אם = w אז,w = a עבור תו.a Σ מקרה זה נובע מיד מהגדרת δ: δ (q,a) = δ (q,a)

5 פרק 7.אוטומטיםעםמעבריε הנחת האינדוקציה: לכל מחרוזת u באורך n, δ (q,u) = δ (q,u) אינדוקציה: תהי w מחרוזת באורך +n. עלינו להוכיח כי δ (q,w) = δ (q,w) w = ua קודם כל נרשום את w כך כאשר u היא מחרוזת באורך n, ו a הוא התו האחרון של w. אזי δ (q,w) = δ (q,ua) = δ (δ (q,u),a) על פי הנחת האינדוקציה,u).δ (q,u) = δ (q נסמן P = δ (q,u) δ (P,a) = δ (q,ua) לכן עלינו להוכיח כי δ (P,a) = q P δ (q,a) = q P δ (q,a) = C ε (P) אבל C ε (P) = δ (q,w) δ (q,w) = δ (q,w) על פי ההגדרה של δ, ולכן קיבלנו כי

5 פרק 7.אוטומטיםעםמעבריε בכדי להשלים את ההוכחה נוכיח את הטענה הבאה: לכלמחרוזת Σ δ (q,w),w מכילהמצב F אםורקאם( w, δ (q מכילה מצב F. אם w = ε אז הטענה נובעת מייד מההגדרה של F. פירוט: } δ (q,ε) = {q ואם q F אז על פי הגדרת,F.q F להיפך: אם,ε) δ (q מכילה מצב F אז מצב זה ימצא אוטומטית ב F כי F.F עכשיו נניח כי.w ε אזי w = ua עבור Σ a Σ,u מתאימים. אם( w, δ (q מכילהמצב F אזמאחרו ( w, δ,גם( w, (q,w) = δ (q δ (q תכיל מצב זה. להיפך: אם (w, δ q) מכילה מצב F שאינו q (ולכן ב F ) אז השוויון,w) δ (q,w) = δ (q מחייב כי מצב זה נמצא גם ב ( w,.δ (q אם מצב זה הוא q אך q / F (כלומר,w) F q δ (q אך,(q / F אז נסמן P = δ(δ (q,u),a) δ (q,w) = C ε (P) על פי הגדרת δ מהשוויון,w) δ (q,w) = δ (q נובע כי (P).q C ε לכן (P),C ε (q ) C ε ולכן גם,w).C ε (q ) δ (q הסיבה היחידה לכך שהמצב q נכנס ל F היא שהקבוצה ) C ε (q מכילה מצב,q f F ולכן בהכרח,w).q f δ (q דוגמא: נמיר את האוטומט הבא לאוטומט ללא מעברי ε. 2 ε ε Start q q q2

52 פרק 7.אוטומטיםעםמעבריε את טבלת המעבר של δ נחשב על פי הנוסחה (q,a).δ (q,a) = δ Q = {q,q,q 2 } Σ = {,,2} q = Start F = {q,q,q 2 } δ 2 q {q,q,q 2 } {q,q 2 } {q } q {q,q 2 } {q 2 } q 2 {q 2 } להלן התוצאה המתקבלת: 2 Start q q 2 q2 2

53 פרק 8 ביטויים רגולריים בפרק זה נציג דרך נוספת לתאר (או לייצר) את השפות הרגולריות, אך הפעם המודל הוא תחבירי ולא חישובי. העובדה שכל המודלים של החישוביות שפגשנו עד עכשיו התבררו כשקולים ומגדירים אותה מחלקה של שפות השפות הרגולריות מצביעה על כך שמחלקה זו היא טבעית במובן מסוים וראויה לתשומת לב מיוחדת. 8. הגדרה מתברר שכל שפה רגולרית ניתן לייצג באמצעות ביטוי קצר בעל צורה תחבירית פשוטה. ביטויים אלה נקראים ביטויים רגולריים והם מופיעים לרוב בשפות סקריפט כגון,python,perl,awk,csh ועוד. יהי Σ אלפבית נתון (קבוצה סופית של תווים) ויהיו L, 2 L, L, שפות באלפבית זה. כזכור, האיחוד של השפות L 2 L, מוגדר על ידי L L 2 = {w w L or w L 2 } השרשור של השפות L 2 L, מוגדר על ידי L L 2 = {uv u L and v L 2 }

54 פרק 8.ביטויים רגולריים החזקה של שפה L מוגדרת על ידי L = {ε} L = L L 2 = LL L n+ = L n L הסגור Closure) (Kleene מוגדר על ידי L = n= L n הסגור החיובי Closure) (Positive מוגדר על ידי L + = n= L n נזכור גם שההבדל היחידי בין L ו + L הוא ש L ε אך + L ε רק אם.ε L הגדרת הביטויים הרגולריים א. הוא ביטוי רגולרי המתאר את השפה הריקה. ב. ε הוא ביטוי רגולרי המתאר את השפה {ε} (זוהי אינה שפה ריקה!). ג. לכל תו a a, Σ הוא ביטוי רגולרי המתאר את השפה {a}. ד. אם r ו s שני ביטויים רגולריים המתארים את השפות L ו L 2 בהתאמה, אז (r+s) הוא ביטוי רגולרי המתאר את השפה L. L 2 ה. אם r ו s שני ביטויים רגולריים המתארים את השפות L ו L 2 בהתאמה, אז (rs) הוא ביטוי רגולרי המתאר את השפה L. L 2

55 פרק 8.ביטויים רגולריים ו. אם r ביטוי רגולרי המתאר את השפה L אז ) r) הוא ביטוי רגולרי המתאר את השפה L. סדר פעולות השירשור, האיחוד, והסגור הוא חשוב. למשל, יש הבדל גדול בין השפה המתוארת על ידי הביטוי הרגולרי ab לבין השפה המתוארת על ידי!(ab) כנ"ל לגבי הביטויים b+a ו.(b+a) לכן, בכדי להימנע מבלבול יש להקפיד על שימוש זהיר בסוגריים בכל מקום בו הדבר מתבקש. למרות זאת,הגזמה בשימוש בסוגריים עשויה לסרבל את הביטויים הרגולריים ולהפוך אותם קשים לקריאה. מקובל להשמיט את הסוגריים במקרים בהם פעולת הסגור קודמת לפעולת השירשור, ופעולת השירשור קודמת לפעולת האיחוד. לא כללנו ברשימת הביטויים הרגולריים את פעולת הסגור החיובי + r משום שניתן להגדיר אותה בקלות על ידי.rr כמו כן, נוכל להגדיר חזקה של ביטוי רגולרי כך: אם r הוא ביטוי רגולרי המתאר את השפה L אז r n הוא ביטוי רגולרי המתאר את השפה L. n למשל את הביטוי הרגולרי ((( (b+(aa(b נוכל לרשום בצורה נוחה יותר ע"י.b+aab דוגמאות נוספות: א. הביטוי הרגולרי (+) מתאר את שפת כל המחרוזות הבינאריות המסתיימות ב. ב. הביטוי הרגולרי ( ) + ( ) + מתאר את שפת כל המחרוזות הבינאריות המכילות בתוכן (בכל מקום במחרוזת).

56 פרק 8.ביטויים רגולריים ג. הביטוי הרגולרי (+)+ (+) מתאר את שפת כל המחרוזות הבינאריות המסתיימות ב או מתחילות ב. ד. הביטוי הרגולרי ab) a) + מתאר את שפת כל המחרוזות באלפבית.bb אינן מכילות אך אשר מתחילות ב a Σ = {a,b} ניתן בקלות להוכיח באינדוקציה על n שבביטוי הרגולרי (a+ab) n אין הופעה שך המחרוזת.bb ה. הביטויהרגולרי () 99 (+) מתאראתשפתכלהמחרוזותהבינאריות המסתיימות במחרוזת (). 99 ו. הביטוי הרגולרי 2 מתאר את שפת כל המחרוזות באלפבית = Σ {,,2} המתחילותבמספרכלשהושלאפסיםולאחרמכןמספרכלשהו של ים ולבסוף מספר כלשהו של 2 ים. ז. הביטוי הרגולרי 22 מתאר את שפת כל המחרוזות באלפבית {,,2} = Σ המתחילות בסדרת אפסים כלשאחריה באה סדרת ים, ולבסוף סדרת 2 ים. כל אחת מהסדרות מכילה לפחות איבר אחד. 8.2 דרגת המורכבות של ביטוי רגולרי כפי שראינו בדוגמאות לעיל, ביטויים רגולריים עשויים להיות פשוטים או מורכבים. לכל ביטוי רגולרי נתאים מספר טבעי n, =...,,,2 n, אשר ישקף את דרגת המורכבות של הביטוי. א. ביטויים רגולריים בעלי דרגת מורכבות :, ε, a

57 פרק 8.ביטויים רגולריים ב. אם s r, ביטויים רגולריים בעלי דרגת מורכבות n, m, בהתאמה, אז דרגת המורכבות של rs ו r+s תהיה.max{m,n}+ ג. אם r ביטוי רגולרי בעל דרגת מורכבות n, אז דרגת המורכבות של r תהיה +n. סימון: את דרגת המורכבות של ביטוי רגולרי r נסמן על ידי deg[r] על ידי שימוש בסימון הזה נוכל לרשום את כללים הבאים: deg[r ] = deg[r]+ deg[rs] = max(deg[r], deg[s]) + deg[r+s] = max(deg[r],deg[s])+ דוגמאות: א. דרגת הביטוי הרגולרי (a+ab) היא 3. ב. דרגת הביטוי הרגולרי bba היא 2. ג. דרגת הביטוי הרגולרי (bbaa) היא 4. הוכחה: deg[(bbaa) ] = deg[bbaa]+ = (max(deg[bba],deg[a])+)+ = (max(2,)+)+ = 3+ = 4

58 פרק 8.ביטויים רגולריים ד. דרגת הביטוי הרגולרי (bbaa) (a+ab) היא 5. הוכחה: deg[(a+ab) (bbaa) ] = = max{deg[(a+ab) ],deg[(bbaa) ]}+ = max(3,4)+ = 5 קל ופשוט לשרטט עץ גזירה עבור הביטוי הרגולרי שלנו: (a+ab)*(bbaa)* (a+ab)* (bbaa)* a+ab bbaa a ab bba a a b bb a b b לאחר מכן, ניתן לחשב את דרגת הביטוי על ידי התאמת דרגה לכל הביטויים

59 פרק 8.ביטויים רגולריים בעץ בסדר עולה מעלי העץ ועד לשורשו (שהוא הביטוי שלנו): 5 (a+ab)*(bbaa)* 3 4 (a+ab)* (bbaa)* 2 3 a+ab bbaa 2 a ab bba a a b bb a b b 8.3 שקילות בין ביטויים רגולריים ואוטומטים סופיים משפט: כל שפה L שניתן לתאר על ידי ביטוי רגולרי ניתן להגדיר גם על ידי אוטומט לא דטרמיניסטי עם מעברי ε. הוכחת המשפט תעשה באינדוקציה על דרגת המורכבות של ביטוי רגולרי r. כמו במקרים קודמים, הוכחת המשפט מהווה למעשה אלגוריתם שימושי להמרת ביטוי רגולרי לאוטומט, ולכן הבנתה חשובה מאוד גם עבור בעיות מעשיות נוספות. בכדי להוכיח את המשפט הנ"ל, אנו נוכיח משפט כללי יותר אשר ממנו הוא

6 פרק 8.ביטויים רגולריים נובע מיד: לכל ביטוי רגולרי r קיים אוטומט נורמלי המקבל את השפה.L(r) הגדרה:אוטומט נורמלי זה אוטומט לא דטרמיניסטי עם מעברי ε אשר עבורו א. קיים בדיוק מצב התחלה אחד אשר שום צלע אינה נכנסת אליו. ב. קיים בדיוק מצב קבלה אחד אשר שום צלע אינה יוצאת ממנו. בסיס האינדוקציה: אם = deg[r] אז = r או r = ε או.a Σ,r = a עבור כל אחד מביטויים אלה קל לבנות אוטומט נורמלי r=ε r=φ r=a Start q Start q qf a Start q qf הנחת האינדוקציה: לכל ביטוי רגולרי בעל דרגת מורכבות n ומטה, קיים אוטומט נורמלי המקבל את השפה.L(r) עלינו להוכיח: לכל ביטוי רגולרי בעל דרגת מורכבות +n, קיים אוטומט נורמלי המקבל את השפה.L(r) יהי r ביטוי רגולרי בעל דרגת מורכבות +n. אזי אחד מהמקרים הבאים חייב להתקיים: א.,r = r +r 2 כאשר r 2,r ביטויים רגולריים מדרגה n ומטה. ב.,r = r r 2 כאשר r 2,r ביטויים רגולריים מדרגה n ומטה.

6 פרק 8.ביטויים רגולריים ג. r,r = כאשר r ביטוי רגולרי מדרגה.n מקרה א : 2 r = r +r על פי הנחת האינדוקציה קיימים אוטומטים נורמליים M = (Q,Σ,δ,q,f ) M 2 = (Q 2,Σ,δ 2,q 2,f 2 ) המקבלים את השפות ) L(r 2 ),L(r בהתאמה. כאשר q 2,q הם מצבי ההתחלה של,M 2,M ו f 2,f הם מצבי הקבלה של.M 2,M נוכל להניח כי קבוצות המצבים Q 2 Q, זרות, שכן תמיד אפשר להחליף את שמות המצבים. על פי הגדרת הביטויים הרגולריים L(r) = L(r ) L(r 2 ) נשתמש באוטומטים M 2 M, כאבני בניין בכדי לבנות אוטומט נורמלי M עבור השפה ) 2,L(r ) L(r על פי הסכימה הבאה: ε q M f ε Start q f ε q2 M2 f2 ε ההגדרה הפורמלית של M תהיה M = (Q Q 2 {q,f },Σ,δ,q,f ) קבוצת המצבים של M היא האיחוד של מצבי M ו M, 2 בתוספת של שני מצבים חדשים f. q, המצב q יהיה מצב ההתחלה של M, והמצב f יהיה

62 פרק 8.ביטויים רגולריים מצב הקבלה של M. המצבים f 2,q 2,f,q יהיו מצבים רגילים של האוטמט.M פונקציית המעבר δ של M מוגדרת כך: δ(q,ε) = {q,q 2 } { δ (q,a), q Q {f } δ(q,a) = δ 2 (q,a), q Q 2 {f 2 } δ(f,ε) = {f } δ(f 2,ε) = {f } כאשר Σ {ε}.a מקרה ב : 2 r = r r יהיו M 2 M, כמו במקרה הקודם. נגדיר את האוטומט הנורמלי M: M = (Q Q 2,Σ,δ,q,f 2 ) במקרה זה: קבוצת המצבים של M היא האיחוד של מצבי M 2 M, בלבד. מצב ההתחלה של M הוא q (שהוא גם מצב ההתחלה של M). מצב הקבלה של M הוא f 2 (שהוא גם מצב הקבלה של M). 2 פונקציית המעבר δ של M מוגדרת כך: { δ (q,a), q Q {f } δ(q,a) = δ 2 (q,a), q Q 2 δ(f,ε) = {q 2 } כאשר Σ {ε}.a ε Start q f q2 M M2 f2

63 פרק 8.ביטויים רגולריים L(M) = {uv u L(M ) and v L(M 2 )} לא קשה לראות כי L(M) = L(M )L(M 2 ) = L(r )L(r 2 ) = L(r) כלומר מקרה ג : r r = יהי M כמו קודם. נגדיר את האוטומט הנורמלי M: M = (Q {q,f },Σ,δ,q,f ) כאשר פונקציית המעבר δ נתונה על ידי δ(q,ε) = {q,f } δ(f,ε) = {q,f } δ(q,a) = δ (q,a), q Q {f }, a Σ {f } ε ε ε Start q q f f M ε על פי הדיאגרמה לא קשה לקבוע כי L(M) w אם ורק אם ) w. L(M מאחר ש (,L(M ) = L(r נקבל כי ).L(M) = L(r ובזאת מסתיימת הוכחת המשפט.

64 פרק 8.ביטויים רגולריים דוגמא: על ידי שימוש באלגוריתם שהוצג בהוכחת המשפט, נמצא את האוטומט המתאים עבור הביטוי הרגולרי (ab) +bb a a Start q q2 b b Start q3 q4 ab a ε b Start q q2 q3 q4 (ab)* ε ε ε a b ε Start q5 q q2 q3 q4 q6 ε (ab)*+bb Start q ε ε ε ε ε a b q5 q q2 q3 q4 ε b ε b q7 q8 q9 q ε ε q6 ε f 8.4 אוטומטים מוכללים בכדי לסיים את התוכנית שלנו, נשאר לנו להוכיח את המשפט ההפוך למשפט הקודם. משפט: כל שפה L המתקבלת על ידי אוטומט דטרמיניסטי ניתן לתאר על ידי ביטוי רגולרי. למטרה זו נציג מודל נוסף של אוטומט: אוטומט מוכלל. הגדרה: אוטומט מוכלל הוא אוטומט אשר בו

65 פרק 8.ביטויים רגולריים א. כל צלע מסומנת על ידי ביטוי רגולרי באלפבית Σ. ב. קיים מצב התחלה אחד ויחיד q s אשר אליו לא נכנסת שום צלע. ג. קיים מצב קבלה אחד ויחיד q f אשר ממנו לא יוצאת שום צלע. ד. המעבר ממצב q i למצב q j הוא אפשרי רק על ידי קליטה של מחרוזת התואמת את הביטוי הרגולרי המסמן את הצלע היוצאת מ q i ל q. j ה. מחרוזת w מתקבלת על ידי האוטומט אם ורק אם קיים פירוק של w ל k מחרוזות w = w w 2 w k וקיימת סדרת חישוב w q s = p w p 2 w p k 2 p k q f = p k כך שבכל שלב w i, i k תואמת את הביטוי הרגולרי המסמן את הצלע היוצאת מהמצב i q למצב q. i דוגמא: * q ε Start qs qf (+)* q2 דוגמא לכמה מחרוזות המתקבלות על יד אוטומט זה הן,,, למשל סדרת חישוב עבור = w היא q s q q q ε qf

66 פרק 8.ביטויים רגולריים למרות שממבט ראשון נראה שסוג זה של אוטומט מסוגל להגדיר שפות יותר מסובכות מהשפות הרגולריות, מתברר שלא כך הדבר. נוכיח כי כל אוטמט מוכלל ניתן להפוך (על ידי אלגוריתם מתאים) לביטוי רגולרי. הוכחנו כי כל שפה הנוצרת על ידי ביטוי רגולרי, מתקבלת גם על ידי אוטומט דטרמיניסטי מתאים. לכן כל שפה המתקבלת על ידי אוטומט מוכלל מתקבלת גם על ידי אוטומט דטרמיניסטי רגיל. אולםברורשכלאוטומטדטרמיניסטי רגילהואלמעשהאוטומטמוכלל, אשר בו כל הביטויים הרגולריים הם תווים פשוטים (זכור כי כל תו a הוא ביטוי רגולרי המתאר את עצמו בלבד). הטענה הקודמת אינה מדויקת לגמרי! באוטמט דטרמיניסטי רגיל, עשויים להיות צלעות הנכנסות למצב ההתחלה q, יותר ממצב קבלה אחד, או צלעות היוצאות מאחד ממצבי הקבלה. כל הדברים האלה אינם מותרים באוטומט מוכלל! אך על כל הבעיות האלה ניתן להתגבר בקלות על ידי הוספת שני מצבים חדשים q s ו q, f כפי שרואים בדוגמא הבאה: Start q q q2 q3

67 פרק 8.ביטויים רגולריים ε Start qs q q q2 q3 ε ε qf יוצא שכל אוטומט דטרמיניסטי רגיל ניתן להפוך לאוטומט מוכלל שקול. אנו נוכיח כי כל אוטומט מוכלל ניתן להפוך לביטוי רגולרי, ובכך נוכיח את החצי השני של משפט השקילות (בין אוטומטים דטרמיניסטיים וביטויים רגולריים). לאחר שנוכיח כי כל אוטמט מוכלל ניתן להמיר לביטוי רגולרי שקול, נוכל לסכם את כל התוצאות שהוכחנו בדיאגרמה הבאה: Nondeterministic Finite Automata Deterministic Finite Automata Nondeterministic Finite Automata with ε-transitions Generalized Finite Automata Regular Expressions משפט: קיים אלגוריתם אשר באמצעותו ניתן להמיר כל אוטומט מוכלל בעל

68 פרק 8.ביטויים רגולריים n מצבים, > 2 n, לאוטומט מוכלל שקול בעל n מצבים. הוכחה: יהי M אוטומט מוכלל בעל n מצבים, > 2 n. נציג אלגוריתם להקטנת מספר המצבים של M באחד. נבחר, באופן שרירותי, מצב q k השונה ממצבי ההתחלה והקבלה. לגבי כל זוג מצבים (i j,i,j k) q j,q i אשר הקשר שלהם למצב q k תואם את המקרה שבצד שמאל של הדיאגרמות הבאות נבצע את הפעולה שבצד ימין: qk r s rs qi qj qi qj qk r s qi rs+t qj qi t qj u qk r s ru*s qi qj qi qj

69 פרק 8.ביטויים רגולריים u qk r s qi (ru*s)+t qj qi t qj u כמו כן, לכל מצב i, k q, i אשר הקשר שלו עם המצב q k תואם את צד שמאל בדיאגרמות הבאות, נבצע את הפעולה שבצד ימין qk rs qk ru*s r s qi r s qi qi qi נדגיש כי לשם סילוק המצב q k מהאוטומט M עשויים להדרש מספר גדול מאוד של פעולות מהסוג הנ"ל. יש לוודא כי כולן בוצעו בזהירות המירבית. נסמן ב M אתהאוטומט המוכלל המתקבלכתוצאהמהפרוצדורה הנ"ל. לא קשה להוכיח כי לכל מחרוזת Σ w w, מתקבלת על ידי M אם ורק אם M. מתקבלת על ידי w לכן האוטומט M שקול לאוטומט M. לפרוצדורההנ"לנקראבקיצורReduce. לכןאם M הואהאוטומטהמתקבל מהאוטומט M עלידיסילוקהמצב q,אזנוכללרשוםזאתבצורהיותרנוחה k על ידי M = Reduce(M,q k )

7 פרק 8.ביטויים רגולריים דוגמא: נסלק, למשל, את המצב q מתוך האוטומט המוכלל הבא: ε Start qs q q q2 q3 ε ε qf ε Start qs q * * * qf q2 *+ q3 *+ε * יש לשים לב לכך שסילוק המצב היחיד q השפיע באופן משמעותי על כל המבנה של האוטומט הסימונים של מרבית הקשתות השתנו. מסקנה מיידית מהמשפט הקודם היא: משפט: כל אוטומט מוכלל שקול לאוטומט מוכלל בעל שני מצבים בלבד q s ו.q f

7 פרק 8.ביטויים רגולריים הוכחה: יהי M אוטומט מוכלל בעל n מצבים. אם = 2 n אז סיימנו. אם > 2 n אז הפעלת הפרוצדורה 2 n Reduce פעמים תביא אותנו בסופו של דבר לאוטומט מוכלל מינימלי בעל שני מצבים בלבד. עכשיו נוכל לנסח את האלגוריתם להמרת אוטומט דטרמיניסטי רגיל לביטוי רגולרי: א. הפוך את M לאוטומט מוכלל על ידי הוספת שנימצבים חדשים q s ו q f והעברת צלאעות (מסומנות על ידי ε) מתאימות. ב. בחר מצב q k השונה מ q s ו q f והסר את q: k M := Reduce(M,q k ) לאוטומט המתקבל כתוצאה מכך נמשיך לקרוא M. ג. אםבאוטמט M נשארורקשנימצבים q s ו q f עבורלשלבהבא. אחרת, חזור לשלב הקודם. ד. חבר את כל הביטויים הרגולריים המסמנים את כל הצלעות היוצאות מהצב q s למצב q f וקבל אוטומט מוכלל מינימלי. ה. הביטוי הרגולרי המסמן את הצלע היחידה הוא הביטוי הרגולרי המבוקש.

72 פרק 8.ביטויים רגולריים דוגמא: q q3 Start q q2 q4 נעבור לאוטומט בעל מצב סיום יחידי: ε q q3 ε qf Start q q2 q4 לאחר סילוק המצב q: ε q3 ε qf *+ Start q q2 q4

73 פרק 8.ביטויים רגולריים לאחר סילוק המצב q: 2 ε (*+) q3 ε qf Start q (*+) + q4 ()* לאחר סילוק המצב q: 3 (*+) qf ()*(+)+ε Start q q4 (*+)(+)+(*+) ((+)(+)()*)* ניתןלפשטאתהביטויהרגולרישלהקשת( (q,q 4 באמצעותאלגברהפשוטה: ( +)(+)+( +) = ( +)(+)+( +) = ( +)[(+)+] = ( +)(++) לאחר הפישוט האוטומט יראה כך: (*+) qf ()*(+)+ε Start q q4 (*+)(++) ((+)(+)()*)*

74 פרק 8.ביטויים רגולריים לבסוף נסלק את המצב q: 4 (*+) qf Start q (*+)(++)(((+)(+)()*)*)*(()*(+)+ε) תוצאה סופית: (*+)+(*+)(++)(((+)(+)()*)*)*(()*(+)+ε) Start q qf הערה: בדוגמא הנ"ללאטרחנולהוסיףלאוטומטאתהמצב q s מאחרוהמצב q ממלא ממילא אחר תנאי האוטומט המוכלל. במקרים דומים זה חוסך לנו טרחה. הערה זהה חלה על מצב הקבלה: אם באוטומט המקורי יש רק מצב קבלה יחיד, ללא צלעות היוצאות ממנו, אז אין טעם בהוספת המצב q. f כפי שרואים,הביטוי הרגולרי המתקבל כתוצאה מהאלגוריתם שלנו אינו פשוט במיוחד. במקרים רבים יש יסוד להניח כי קיים ביטוי רגולרי שקול יותר פשוט. השאלה כיצד למצוא את הביטוי הרגולרי הכי פשוט עבור שפה L, תעלה בהמשך ביחד עם עוד כמה שאלות דומות אחרות.

75 פרק 9 תכונות של שפות רגולריות ציטוט מהרצאה קודמת: העובדה שכל המודלים של החישוביות שפגשנו עד עכשיו התבררו כשקולים ומגדירים אותה מחלקה של שפות השפות הרגולריות מצביעה על כך שמחלקה זו היא טבעית במובן מסוים וראויה לתשומת לב מיוחדת. בשלב הזה נעסוק בתכונות המאפיינות את השפות הרגולריות באופן בלתי תלוי במודלים השונים של חישוביות שיוצרים את השפות הללו. לפתיחה, ניתן לשאול כמה שאלות על מחלקת השפות הרגולריות: א. אם L היא שפה נתונה. האם L שפה רגולרית? האם קיימות שפות לא רגולריות? ואם כן, האם קיימת דרך סבירה להוכיח ששפה נתונה אינה רגולרית? ב. אם L היא שפה רגולרית, האם השפה המשלימה L גם היא שפה רגולרית? ג. אם L 2 L, הן שפות רגולריות, האם האיחוד שלהן L L 2 גם הוא שפה רגולרית? האם החיתוך L L 2 שפה רגולרית? האם השירשור L L 2 שפה רגולרית? וכו ד. כפי שראינו בשיעורים הקודמים, קיימות דרכים רבות להגדיר (או

76 פרק 9.תכונותשלשפותרגולריות לייצור) שפות רגולריות: על ידי אוטומטים מסוגים שונים, ביטויים רגולריים, ובהמשך נלמד גם על דיקדוקים חסרי הקשר. האם קיימת שיטה (אלגוריתם) בכדי לקבוע אם שתי הגדרות שונות מגדירות את אותה השפה? קיימות עוד שאלות שנפגוש בהמשך. נתחילעםהשאלההראשונה. התשובהלשאלהזוולעודמספרשאלותתתקבל כתוצאה של משפט מתמטי חשוב בתורת החישוביות אשר מקובל לקרוא לו בשם משפט הניפוח או למת הניפוח. משפט הניפוח שימושי גם עבור שאלות כגון: האם השפה L המוגדרת על ידי אוטומט (מכל סוג שהוא) היא סופית? אינסופית? ריקה? שווה ל Σ? אך אנו נשתמש במשפט הניפוח בדרך כלל בכדי להוכיח כי שפות מסוימות אינן רגולריות. 9. משפט הניפוח עבור שפות רגולריות משפט: תהי L שפה רגולרית. אזי קיים מספר טבעי n כך שלכל מחרוזת w בשפה L, אם w n אז ניתן לפרק את w לשלושה מחרוזות w = xyz באופן כזה ש n y,, xy ולכל מספר טבעי i, xy i z L כלומר, ניתן לנפח את המחרוזת y מספר בלתי מוגבל של פעמים והמחרוזת שתתקבל תשאר תמיד בתוך השפה L.