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

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

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

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

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

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

Logic and Set Theory for Comp. Sci.

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

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

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

Regular Expressions (RE)

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

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

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

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

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

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

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

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

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

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

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

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

{ : Halts on every input}

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

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

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

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

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

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

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

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

gcd 24,15 = 3 3 =

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

logn) = nlog. log(2n

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

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

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

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

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

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

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

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

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

אלגברה מודרנית פתרון שיעורי בית 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 )

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

מבחן מועד ב' בהצלחה! אנא קיראו היטב את ההוראות שלהלן: ודאו כי כל עמודי הבחינה נמצאים בידכם.

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

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

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

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

Transcript:

אוטומטים ושפות פורמליות מבוא לתורת החישוביות ד ר סמי זעפרני מוקדש לזכרו של משה בנסל חבר, עמית, ומורה דרך מהדורה June 27,2.3

הקדשה הספר מוקדש לזכרו היקר של משה בנסל (955-2), אשר במהלך שלושים שנות עבודתו בחברת אינטל היה תמיד מקור השראה לערכי אנושיות, חברות, ומצוינות. יהי זכרו ברוך. Moshe Bensal 955-2 All rights reserved c כל הזכויות שמורות to the authors 23,27 למחבר אין להעתיק, לצלם, או לתרגם את הספר או כל חלק ממנו בצורה כלשהי או באמצעים כלשהם, לרבות הקלטה ואיחסון במאגר מידע, אלא באישור בכתב מבעלי זכויות היוצרים. 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, יוני 27,

4 תוכן עניינים 9 מבוא......................................... 2 רקע מתמטי...................................... 2 2..................................... 2. קבוצות 4 2.2 סדרות...................................... 5 2.3 פונקציות (העתקות)............................... 5...................................... 2.4 גרפים 6.................................. 2.5 גרפים מכוונים 7................................. 2.6 גרפים מסומנים 8................................. 2.7 טכניקות הוכחה 22 מחרוזות ושפות.................................... 3 25 אוטומטים סופיים................................... 4 25 4. מונחי יסוד.................................... 28................................ 4.2 דיאגרמות מעבר 3................................. 4.3 שפות רגולריות 32 אוטומטים לא דטרמיניסטיים............................. 5 4 שקילות בין אוטומטים דטרמיניסטיים ולא דטרמיניסטיים............... 6 45 אוטומטים עם מעברי. ε............................... 7 56 ביטויים רגולריים................................... 8 56..................................... 8. הגדרה

5 תוכן עניינים 59........................ 8.2 דרגת המורכבות של ביטוי רגולרי 62.................. 8.3 שקילות בין ביטויים רגולריים ואוטומטים סופיים 67............................... 8.4 אוטומטים מוכללים 78 תכונות של שפות רגולריות............................... 9 79....................... 9. משפט הניפוח עבור שפות רגולריות 83.............................. 9.2 הוכחת משפט הניפוח 86 9.3 תכונות סגירות של השפות הרגולריות...................... 97 אלגוריתמי הכרעה עבור קבוצות רגולריות....................... 97................................... תאור בעייה 98.......................2 אלגוריתם להכרעה אם L(M) 99...............3 אלגוריתם להכרעה האם L(M) אינסופית או סופית.4 אלגוריתם להכרעה האם ) 2. L(M ) = L(M................. משפט מייהיל נרוד (Myhill-Nerode)....................... 3 3. אוטומטים ויחסי שקילות.......................................................2 המשפט של Myhill-Nerode 2 אלגוריתם למציאת אוטומט מינימלי.......................... 6 6 2. איזומורפיזם בין שני אוטומטים.......................... 2..................... 2.2 קיום ויחידות של אוטומט מינימלי שקול 25..................................... 2.3 דוגמא 28........................ 2.4 הוכחת הנכונות של האלגוריתם 3 דיקדוק חסר הקשר.................................. 3 33.............................. 3. שפות חסרות הקשר 4 3.2 תכונות נוספות של יחס הגזירה......................... 4 עצי גזירה....................................... 48

6 תוכן עניינים 5 הקשר שבין עצי גזירה ומסלולי גזירה......................... 52 6 רב משמעות...................................... 57 7 משתנים שמושיים ומשתנים מיותרים......................... 63 8 פרודוקציות. ε.................................... 75 9 פרודוקציות יחידה................................... 8 2 הצורה הנורמלית של חומסקי............................. 84 84..................................... 2. הוכחה 86..................................... 2.2 דוגמא 2 אלגוריתם לקביעת התקבלות............................. 88 22 אוטומט מחסנית לא דטרמיניסטי........................... 96 2............................ 22. קבלה על ידי מצב סופי 2.................................... 22.2 הבהרות 22..................................... 22.3 דוגמא 26............................. 22.4 תם אך לא נשלם...

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

8 תוכן עניינים דיקדוק רגולרי ודיקדוק חסר הקשר. מסלולי גזירה ועצי סריקה. שפות דו משמעיות. תכונות של שפות חסרות הקשר. הצורה הנורמלית של חומסקי. הצורה הנורמלית של גרייבך. משפט הניפוח עבור שפות נטולות הקשר. אוטומט מחסנית. ספרי לימוד מומלצים. אוטומטים ושפות פורמליות. פרופסור שמול זקס, פרופסור נסים פרנסיז, הטכניון, כרכים א, ב. הוצאת האוניברסיטה הפתוחה. 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.

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

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

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

2 פרק 2 רקע מתמטי להלן סקירה מהירה של מושגים יסודיים מתורת הקבוצות, תורת הגרפים, וקומבינטוריקה, הדרושים לנו. המטרה כאן היא לרענן את זכרונו של הקורא באמצעות תזכורות ודוגמאות קצרות, ולכן לא נתעכב על הגדרות מלאות ומפורטות. הקורא הזקוק לריענון יסודי יותר, יימצא פירוט רחב ומעולה בספר של האוניברסיטה הפתוחה: אוטומטים ושפות פורמליות כרך ראשון. 2. קבוצות מושג הקבוצה (set) הוא מושג יסוד שעליו מושתתת המתמטיקה המודרנית על כל תחומיה הרבים והרב גוניים. הנחת יסוד כי מדובר במושג בסיסי ברור מאליו שאינו דורש הגדרה. אנו מניחים כי לקורא יש רקע בסיסי בתורת הקבוצות מלימודיו הקודמים. למרות זאת, בכדי להסיר ספקות ומכשלות נחזור על מספר עובדות יסוד הנוגעות למושג זה. אין כפילויות: איבר a עשוי להשתייך או לא להשתייך לקבוצה A אך לא תיתכן השתייכות מרובה (כפילות) של a (כמו במבני נתונים מסוימים במדעי המחשב). לסדר האיברים בקבוצה אין שום חשיבות: 4} {7,, = 7}.{, 4, יש להבחין בין קבוצות סופיות וקבוצות אינסופיות.

3 פרק 2. רקע מתמטי קבוצות סופיות ניתן להגדיר באמצעות רשימת איבריהם (בכל סדר נוח A = {2, 4, 6, 8} B = {3, 6, 9, 2,..., 3} להצגה) כמו בדוגמאות הבאות: C = {n N 2 n < 2 n < 3} כמו כן, קבוצות אינסופיות ניתן להגדיר בדרכים מגוונות כמו בדוגמאות A = {2, 4, 6,...} A = {n N מספר זוגי n} הבאות: A = {n N k N[n = 2k]} { [ B = q Q ( m N)( n N) q = m n ]} m 2 + n 2 N תת קבוצה: קבוצה A תיקרא תת קבוצה של קבוצה B, ונרשום A, B אם כל איברי הקבוצה A כלולים בקבוצה B. בשפה לוגית, טענה כזו מובעת על ידי: x[x A x B] לפעמים אומרים גם כי הקבוצה A כלולה או מוכלת בקבוצה B או שהקבוצה B מכילה או כוללת את הקבוצה A. במידה והקבוצה B אינה זהה לקבוצה (A B (או A B נרשום A האיחוד של שתי קבוצות A ו B היא הקבוצה הכוללת את כל איברי A ואיברי B. A B = {x x A or x B}

4 פרק 2. רקע מתמטי A B = {x x A and x B} חיתוך של שתי קבוצות מוגדר על ידי: חיסור: 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, 3, 7,,, 7, 5, 3, 2, לסדר יש חשיבות: 4) (7,, 7).(, 4, סדרה סופית נקראת n יה. סדרה בת שני איברים נקראת זוג סדור. מכפלה קרטזית של שתי קבוצות: A B = {(a, b) a A and b B}

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

6 פרק 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 גרפים מכוונים גרף מכוון E) :G = (V, V קבוצת צמתים (או קודקודים) E V V קבוצת צלעות מכוונות, E V = {, 2, 3, 4, 5} E = {(, 3), (, 4), (2, 4), (4, 2), (2, 5), (3, 5)} דוגמא: בצורה דומה נגדיר את המושגים הבאים: נתיב מכוון, מסלול מכוון, מחזור מכוון, עץ מכוון.

7 פרק 2. רקע מתמטי 2.6 גרפים מסומנים גרף מסומן Σ) G = (V, E, מורכב מהדברים הבאים: 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 איור 2.: גרף מסומן

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

9 פרק 2. רקע מתמטי משפט: בכל אלפבית בעל n תווים, מספר המחרוזות הכפולות הוא (2n)! הוכחה על ידי אינדוקציה: 2 n נסמן ב (n) F את מספר המחרוזות הכפולות מעל אלפבית בעל 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+ איור 2.2: הוכחה על ידי אינדוקציה בכדי לקבל מילה כפולה באלפבית של n+ תווים ממילה כפולה a a 2 a 2n באלפבית של n תווים יש לשבץ את התו החדש, שנקרא לו x, בתוך שתי משבצות ריקות. קיימות שתי דרכים עקריות לעשות זאת: דרך א :

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

2 פרק 2. רקע מתמטי תרגיל: כמה מילים משולשות ישנן באלפבית של n תווים? המשפט הבא מדגים מהי הוכחה על ידי בניה: משפט: לכל n זוגי קיים גרף פשוט אשר לכל קודקודיו דרגה 3 הוכחה על ידי בניה: נוכיח את המשפט על ידי כך שנבנה את הגרף המבוקש V = {v {, v 2,..., v n } } E = {v i, v j } j = i + (j = n i = ) j = i + n 2 למשל, עבור = 8 n, הגרף יראה כך: v v2 v8 v3 v7 v4 v6 v5 איור 2.5: הוכחה על ידי בניה

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

23 פרק 3. מחרוזות ושפות a 3 bc 4 היא לכן המחרוזת a. 5 המחרוזת aaaaa תסומן בקיצור על ידי.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 החומצות האמיניות = } T Σ = {A, C, G, L = {w DNA שרשרת w} א. ב. ג. ד. תווים מתוך האלפבית יסומנו בדרך כלל על ידי האותיות c, b, a,... מחרוזות יסומנו על ידי האותיות,z,y,x,w,v,u... Σ. קבוצת כל המחרוזות מעל האלפבית Σ + Σ קבוצת כל המחרוזות מעל האלפבית Σ ללא המחרוזת הריקה. פעולות בין שפות: L L 2 = {w w L or w L 2 } א. איחוד

24 פרק 3. מחרוזות ושפות L L 2 = {w w L and w L 2 } L L 2 = {uv u L and v L 2 } ב. חיתוך ג. שירשור L L L 2 L n+ = {ε} = L = LL = 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 אינסופיות.

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

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

27 פרק 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.

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

29 פרק 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 )

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

3 פרק 4. אוטומטים סופיים ג. בהינתן אוטומט מורכב M, האם קיים אוטומט פשוט יותר השקול לו? והאם קיים אלגוריתם מעשי למציאת אוטומט שקול קטן ביותר?

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

33 פרק 5. אוטומטים לא דטרמיניסטיים Σ האלפבית שמעליו מוגדרות המחרוזות המוזנות לאוטומט. δ : Q Σ P (Q) פונקציית מעבר δ F. Q קבוצת מצבי קבלה (או מצבי סיום), F q מצב ההתחלה של האוטומט. זהו מצב אשר בו האוטומט נמצא בתחילתו של כל תהליך חישוב. תזכורת: (Q) P היא קבוצת כל תתי הקבוצות של Q. ההגדרה של אוטומט לא דטרמיניסטי זהה בכל להגדרת אוטומט דטרמיניסטי מלבד בפונקציית המעבר שמעתיקה זוג (a,q) לקבוצת מצבים.δ(q, (a Q משמעות הדבר היא שאם אוטומט לא דטרמיניסטי נמצא במצב q כאשר הוא קורא תו a הוא יוכל לעבור לכל אחד מהמצבים בקבוצה (a.δ(q, 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 מסתיימת במצב קבלה.

34 פרק 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 קבוצת צלעותיו: a)} E = {(q, a, q ) q δ(q, קבוצת התווים המשמשים לסימון צלעות הגרף היא כמובן Σ. באוטומט דטרמיניסטי, לכל מצב q ולכל תו a קיים בדיוק מצב אחד q כך ש E,q).,a q ) באוטומט לא דטרמיניסטי, לעומת זאת, ייתכן יותר ממצב אחד q כזה, או אפילו שום q כזה. פונקציית המעבר המורחבת δ δ : Q Σ P (Q)

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

36 פרק 5. אוטומטים לא דטרמיניסטיים הרחבה זו מאפשרת לנו לתת הגדרה משופרת של δ: δ (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 } δ (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 }

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

38 פרק 5. אוטומטים לא דטרמיניסטיים 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 ) סימון:.M M 2 הגדרת האוטומט הלא דטרמיניסטי כוללת בתוכה גם את האוטומט הרגיל. אוטומט רגיל הוא אוטומט לא דטרמיניסטי בעל התכונה המיוחדת: לכל מצב q ולכל תו a, קבוצת המצבים (a δ(q, מכילה בדיק מצב אחד. לכן: כל שפה הניתנת להגדרה על ידי אוטומט רגיל ניתן להגדיר גם על ידי אוטומט לא דטרמיניסטי. שאלה: האם קיימות שפות שניתן להגדיר באמצעות אוטומטים לא דטרמיניסטיים אך לא ניתנות להגדרה על ידי אוטומטים רגילים? התשובה לשאלה זו היא מפתיעה: כל שפה שניתן להגדיר באמצעות אוטומטים לא דטרמיניסטי ניתן להגדיר גם על ידי אוטומט רגיל! אם כך, לשם מה צריך אוטומטים לא דטרמיניסטיים?

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

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

4 פרק 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 } ( )

42 פרק 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 ] אם ורק אם ומכאן ש

43 פרק 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 =

44 פרק 6. שקילות בין אוטומטים דטרמיניסטיים ולא דטרמיניסטיים דוגמא: נהפוך את האוטומט הלא דטרמיניסטי הבא לאוטומט דטרמיניסטי NPDA Start q q3 q4 q q2 איור 6.: אוטומט לא דטרמיניסטי 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] איור 6.2: אוטומט דטרמיניסטי שקול

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

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

47 פרק 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

48 פרק 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.

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

5 פרק 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) תרגיל: חשב את a) δ(p, ואת ε) δ (P, כאשר } 3 P = {q, q ו M הוא האוטומט מהדוגמא השניה.

5 פרק 7. אוטומטים עם מעברי ε שאלה: האם a)?δ(p, a) = δ (P, הערה: שלא כמו במקרים הקודמים, במקרה של אוטומט עם מעברי ε, (a δ,q) אינו חייב להיות זהה ל (a.δ(q, מאחר ו (a δ,q) היא קבוצת כל המצבים אשר ניתן להגיע אליהם ממצב q על ידי צלעות המסומנות a או ε, בעוד ש (a δ(q, היא קבוצת כל המצבים אשר ניתן להגיע אליהם ממצב 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 מלבד בפונקציית המעבר δ ובקבוצת מצבי הקבלה.

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

53 פרק 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) על פי ההגדרה של δ, ולכן קיבלנו כי

54 פרק 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),δ (q, w) = δ (q, גם w) δ (q, תכיל מצב זה. להיפך: אם w) δ (q, מכילה מצב F שאינו q (ולכן ב (F אז השוויון w) δ (q, w) = δ (q, מחייב כי מצב זה נמצא גם ב w).δ (q, אם מצב זה הוא q אך q / F (כלומר F q δ (q, w) אך,(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 איור 7.3: אוטומט לא דטרמיניסטי עם מעברי ε

55 פרק 7. אוטומטים עם מעברי ε את טבלת המעבר של δ נחשב על פי הנוסחה a).δ (q, a) = δ (q, 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 איור 7.4: אוטומט לא דטרמיניסטי שקול ללא מעברי ε

56 פרק 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 }

57 פרק 8. ביטויים רגולריים החזקה של שפה L מוגדרת על ידי L L L 2 L n+ = {ε} = L = LL = 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 בהתאמה, אז (s r) + הוא ביטוי רגולרי המתאר את השפה L. L 2 ה. אם r ו s שני ביטויים רגולריים המתארים את השפות L ו L 2 בהתאמה, אז (rs) הוא ביטוי רגולרי המתאר את השפה L. L 2

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

59 פרק 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 ב. אם s r, ביטויים רגולריים בעלי דרגת מורכבות n, m, בהתאמה, אז דרגת המורכבות של rs ו s r + תהיה + n}.max{m,

6 פרק 8. ביטויים רגולריים ג. אם 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]) + דוגמאות: א. דרגת הביטוי הרגולרי ab) a) + היא 3. ב. דרגת הביטוי הרגולרי bba היא 2. ג. דרגת הביטוי הרגולרי (bbaa) היא 4. הוכחה: deg[(bbaa) ] = deg[bbaa] + = (max(deg[bba], deg[a]) + ) + = (max(2, ) + ) + = 3 + = 4 ד. דרגת הביטוי הרגולרי (bbaa) (a + ab) היא.5 הוכחה: deg[(a + ab) (bbaa) ] = = max{deg[(a + ab) ], deg[(bbaa) ]} + = max(3, 4) + = 5

6 פרק 8. ביטויים רגולריים קל ופשוט לשרטט עץ גזירה עבור הביטוי הרגולרי שלנו: (a+ab)*(bbaa)* (a+ab)* (bbaa)* a+ab bbaa a ab bba a a b bb a b b איור 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.2: רמת מורכבות (degree) של ביטוי רגולרי

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

63 פרק 8. ביטויים רגולריים עלינו להוכיח: לכל ביטוי רגולרי בעל דרגת מורכבות + n, קיים אוטומט נורמלי המקבל את השפה.L(r) יהי r ביטוי רגולרי בעל דרגת מורכבות + n. אזי אחד מהמקרים הבאים חייב להתקיים: א.,r = r + r 2 כאשר r 2,r ביטויים רגולריים מדרגה n ומטה. ב.,r = r r 2 כאשר r 2,r ביטויים רגולריים מדרגה n ומטה. ג. 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

64 פרק 8. ביטויים רגולריים עבור השפה ) 2,L(r ) L(r על פי הסכימה הבאה: ε q M f ε Start q f ε q2 M2 f2 ε איור :8.4 אוטומט נורמלי עבור השפה ) 2 L(r ) L(r ההגדרה הפורמלית של M תהיה M = (Q Q 2 {q, f }, Σ, δ, q, f ) קבוצת המצבים של M היא האיחוד של מצבי M ו M, 2 בתוספת של שני מצבים חדשים f. q, המצב q יהיה מצב ההתחלה של M, והמצב f יהיה מצב הקבלה של 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

65 פרק 8. ביטויים רגולריים יהיו 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 איור :8.5 אוטומט נורמלי עבור השפה ) 2 L(r )L(r 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 )

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

67 פרק 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.7: אוטומט נורמלי עבור הביטוי הרגולרי (ab) + bb 8.4 אוטומטים מוכללים בכדי לסיים את התוכנית שלנו, נשאר לנו להוכיח את המשפט ההפוך למשפט הקודם. משפט: כל שפה L המתקבלת על ידי אוטומט דטרמיניסטי ניתן לתאר על ידי ביטוי רגולרי. למטרה זו נציג מודל נוסף של אוטומט: אוטומט מוכלל. הגדרה: אוטומט מוכלל הוא אוטומט אשר בו א. כל צלע מסומנת על ידי ביטוי רגולרי באלפבית Σ. ב. קיים מצב התחלה אחד ויחיד q s אשר אליו לא נכנסת שום צלע.

68 פרק 8. ביטויים רגולריים ג. קיים מצב קבלה אחד ויחיד 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 2 p k k q f = p k כך שבכל שלב w i, i k תואמת את הביטוי הרגולרי המסמן את הצלע היוצאת מהמצב i q למצב q. i דוגמא: * q ε Start qs qf (+)* q2 איור 8.8: אוטומט מוכלל automata) (generalized דוגמא לכמה מחרוזות המתקבלות על יד אוטומט זה הן,,, למשל סדרת חישוב עבור = w היא q s q q q ε qf

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

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

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