תורת החישוביות/מודל לבעיות הכרעה

מתוך testwiki
קפיצה לניווט קפיצה לחיפוש

תבנית:תורת החישוביות

עד כה עסקנו במכונות טיורינג כלליות, המסוגלות לחשב פונקציה f:Σ*Σ*. בהמשך הקורס נתמקד בקבוצה קטנה מתוך כלל מכונות הטיורינג, אשר מבצעות הכרעה של שפה, כלומר, מכונות המחשבות פונקציות בעלות פלט בינארי: כן או לא f:Σ*{0,1}. מודל זה בעל חשיבות רבה, ולמעשה הוא שקול למודל הכללי ביותר.

לשם פשטות המודל, על מנת לסמן "קבלה" או "דחייה" נגדיר מצבים סופיים מתאימים qacc,qrejF. כלומר, על מנת לקבל את הקלט, המכונה צריכה לעבור למצב הסופי qacc ועל מנת לדחותו, על המכונה לעבור למצב qrej, ואין חשיבות לתוכן הסרט בעת מעבר למצב הסופי (כלומר, אינה צריכה לכתוב "0" או "1", המעבר למצב המתאים מספיק). כמו כן, ניתן להניח ש-qacc,qrej הם המצבים הסופיים היחידים, כי מצבים נוספים (למשל qacc1,qacc2,...) ניתנים להחלפה באחד משני המצבים לעיל, בהתאם לשאלה האם הם גורמים לקבלה או דחיה.

השפה המתקבלת והנדחית על-ידי מכונה

מכיוון שעל כל קלט, מכונה M יכולה לענות כן או לא (קבלה או דחיה), היא למעשה מחלקת את מרחב הקלט לשתי קבוצות: קבוצת המילים שעליהן היא עונה "כן" וקבוצת שאר המילים, עליהן היא עונה "לא" או לא עוצרת. נסמן ב-L(M) את קבוצת המילים שהמכונה עונה עליהן "כן", ונקרא לקבוצה זו השפה המתקבלת על-ידי המכונה M:

L(M)Lacc={xM(x)= accept}

באופן דומה, ניתן להגדיר את השפה הנדחית על ידי המכונה Lrej(M){xM(x)= reject}.

נדגיש כי לכל קלט ייתכנו שלושה מצבים: המכונה עצרה וקיבלה את הקלט, המכונה עצרה ודחתה את הקלט או המכונה לא עצרה. קלט ש"לא התקבל" על-ידי מכונה הוא קלט שנדחה או שהמכונה לא עצרה בעת החישוב, כלומר L(M)=Lnot accept{xM(x)accept}, ולכן Lnot accept(M)=Lreject(M){xM does not halt on x}.

תבנית:- תבנית:חלון מידע

שקילות למודל הכללי

כפי שנאמר לעיל, המודל של הכרעת שפות שקול למודל הכללי. נניח פונקציה (חלקית או מלאה) מסויימת f:SΣ*, על התחום SΣ*. נגדיר שפה Lf={(x,f(x))xS}. נראה ששני המודלים הנ״ל שקולים, דהיינו נוכיח את המשפט הבא:

קיימת מכונה M המחשבת את fתבנית:רווח קשיח אם״םתבנית:רווח קשיח קיימת מכונה M המקבלת את Lf

תבנית:הוכחה תבנית:חלון מידע


תבנית:תורת החישוביות