design and analysis of algorithms, technion ee, 2010 1 design and analysis of algorithms recitation...

24
Design and Analysis of Algorithms, Technion EE, 2010 1 Design and Analysis of Algorithms Recitation 10 Turing Machine 2010 Gal Tamir Based on recitations of Liane Lewin- Eytan and Alex Shraer

Post on 21-Dec-2015

233 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Design and Analysis of Algorithms, Technion EE, 2010 1 Design and Analysis of Algorithms Recitation 10 Turing Machine 2010 Gal Tamir Based on recitations

Design and Analysis of Algorithms, Technion EE, 20101

Design and Analysis of Algorithms

Recitation 10

Turing Machine 2010

Gal Tamir

Based on recitations of Liane Lewin-Eytan and Alex Shraer

Page 2: Design and Analysis of Algorithms, Technion EE, 2010 1 Design and Analysis of Algorithms Recitation 10 Turing Machine 2010 Gal Tamir Based on recitations

Design and Analysis of Algorithms, Technion EE, 20102

Deterministic Turing Machine

x3 x4 x5 x6 ...x2x1

q מצב

סרט אינסופיראש קורא/כותב

xnb b b

סרט אינסופי בכוון אחד המכיל תאים. בכל תא כתובה אות אחת מתוך •א"ב סופי.

ראש קורא/כותב נמצא בכל רגע מעל תא אחד•

המכונה נמצאת בכל רגע באחד ממספר סופי של מצבים )בבקרה(.•

בתחילת הריצה הסרט מכיל את הקלט ואחריו אינסוף -ים.•

התוכנית מקודדת במצבי הבקרה •

b

Page 3: Design and Analysis of Algorithms, Technion EE, 2010 1 Design and Analysis of Algorithms Recitation 10 Turing Machine 2010 Gal Tamir Based on recitations

Design and Analysis of Algorithms, Technion EE, 20103

הגדרה פורמאלית

M = (Q, q0, F, , , )מכונת טיורינג )מ"ט( היא שביעיה:

(1Q קבוצה סופית - קבוצת המצבים

(2q0Q )הוא מצב התחלתי )בו מתחיל החישוב

(3F Q)הם מצבים סופיים ועוצרים )בהם מסתיים החישוב

4) קבוצה סופית - א"ב עבודה )אותיות שהמכונה יכולה לכתוב על הסרט(

א"ב הקלט5(

6)\ ( נקרא רווח blank)

פונקצית המעברים: 7(

: (Q\F) x Q x x {L, R, S}

b

Øb

שמאלהימינה להישאר

Page 4: Design and Analysis of Algorithms, Technion EE, 2010 1 Design and Analysis of Algorithms Recitation 10 Turing Machine 2010 Gal Tamir Based on recitations

Design and Analysis of Algorithms, Technion EE, 20104

צעדי חישוב

. q שהראש קורא ומצב הבקרה aהצעד מתבצע ע"פ האות

: אז מתבצעות הפעולות הבאות(q, a) = (p, b, d)אם )לאו דווקא שונות(b מוחלפת באות aהאות –

)לאו דווקא שונים(p מוחלף במצב qהמצב –

dהראש זז בכוון –

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

שמאלה. במקרה כזה הראש נשאר בתא השמאלי ביותר. חוץ מהשינוי בתנועה השאר מתבצע כרגיל.

חישוב" של מכונה הוא סדרה של צעדים כאלה“–

Page 5: Design and Analysis of Algorithms, Technion EE, 2010 1 Design and Analysis of Algorithms Recitation 10 Turing Machine 2010 Gal Tamir Based on recitations

Design and Analysis of Algorithms, Technion EE, 20105

צעדי חישוב - המשך, שאר * xהמכונה מתחילה כאשר על הסרט כתובה המילה •

הסרט מרופד ב- .

והראש נמצא על הקצה השמאלי ביותר של q0מצב הבקרה הוא •הסרט.

המכונה מתקדמת בצעדי חישוב עד שהיא מגיעה למצב סופי •הכתובה *)עוצר( ואז הפלט של המכונה הוא המילה

משמאל לראש בסוף החישוב:

b

m121

... 2

x3 x4 x5 x6 ...x2x1 xnb b b

b

q0

qfFהפלט

Page 6: Design and Analysis of Algorithms, Technion EE, 2010 1 Design and Analysis of Algorithms Recitation 10 Turing Machine 2010 Gal Tamir Based on recitations

Design and Analysis of Algorithms, Technion EE, 20106

קונפיגורציותהאינפורמציה שיש למכונה ברגע נתון היא:

תוכן הסרט1.

מצב המכונה2.

מיקום הראש3.

צעדים, מספר התאים mתוכן הסרט נראה אינסופי אבל למעשה, אחרי –, השאר מכיל רק -ים}maxאורך הקלט, {mהמעניינים הוא

קונפיגורציה של מכונת טיורינג מייצגת מצב רגעי של המכונה וניתנת לתיאור –C = a1a2…ai-1qaiai+1…an , באופן הבא: * x Q x * Cכמחרוזת

ותוכן הסרט הוא i, הראש מסתכל על התא ה-qמשמעות: המכונה נמצאת במצב –a1a2…an .כשאחריהם -ים

כאשר C = q0a1a2…an של מ"ט היא מהצורה: קונפיגורציה תחילית–x=a1a2…an*

(.q0נקראת מילת הקלת והראש בצדו השמאלי של הסרט )המצב הוא

qF קונפ' עבורה קונפיגורציה מסיימת / סופית: –

אינפורמציה סופית

b

b

Page 7: Design and Analysis of Algorithms, Technion EE, 2010 1 Design and Analysis of Algorithms Recitation 10 Turing Machine 2010 Gal Tamir Based on recitations

Design and Analysis of Algorithms, Technion EE, 20107

Shift Right דוגמא: מכונת בצדה $ ומוסיפה x {1, 0} *נבנה מ"ט המקבלת כקלט מחרוזת בינארית •

השמאלי

: נזכור את iהרעיון: נעתיק את כל אותיות הקלט תא אחד ימינה. עבור תא •i-1 באמצעות המצב, ונרשום את האות שזכרנו מתא iהאות הרשומה בתא

מימוש:•0 1

0 0) } , , , {, , } {,

}0,1, ,${, }0,1{, , (

SR SR f fM Q q q q q q F q

b b

0 1

q0

0SRq1SRq

0) ,$, (SRq R 1) ,$, (SRq R0) ,0, (SRq R

1) ,1, (SRq R

1) ,0, (SRq R0) ,1, (SRq R

b

) ,0, (fq R

) ,1, (fq R

) ,$, (fq RQ\F

0מצב זוכר

1מצב זוכר

מצב התחלתי

למה זזים ימינה?•

Page 8: Design and Analysis of Algorithms, Technion EE, 2010 1 Design and Analysis of Algorithms Recitation 10 Turing Machine 2010 Gal Tamir Based on recitations

Design and Analysis of Algorithms, Technion EE, 20108

דוגמת הרצה101הקלט:

1 0 1 b

q0

$ 0 1 b

1SRq

$ 1 1 b

0SRq

$ 1 0 b

1SRq

$ 1 0 1 b

fq

C0=q0101

C1=$ 011SRq

C2=$1 10SRq

C3=$101SRq

C4=$101 fq

Page 9: Design and Analysis of Algorithms, Technion EE, 2010 1 Design and Analysis of Algorithms Recitation 10 Turing Machine 2010 Gal Tamir Based on recitations

Design and Analysis of Algorithms, Technion EE, 20109

קונפיגורציות - המשךהגדרה:

בצעד חישוב יחיד של ’ C עוברים לקונפ' C אם מקונפ' נסמן •Mמכונה

C יש קונפ' עוקבת אחת, או שאין לה אף קונפ' עוקבת, אם Cלכל קונפ' •היא קונפ' מסיימת

C1, C2, …, Cnנסמן אם קיימת סדרה של קונפ' • מתקייםi n 1כך שלכל

C: לכל קונפ' n=0עבור •

נסמן ע"י את הסגור הטרנזיטיבי של היחס . כלומר•

כך ש: n0אם קיים

C C’M

C C’M

n

Ci-1 CiM

C CM

0

M

*MMC C’*

C C’M

n

Page 10: Design and Analysis of Algorithms, Technion EE, 2010 1 Design and Analysis of Algorithms Recitation 10 Turing Machine 2010 Gal Tamir Based on recitations

Design and Analysis of Algorithms, Technion EE, 201010

חישוב של מ"ט הוא סידרה )סופית או x על קלט M החישוב של מ"ט הגדרה:

המקיימת:, … C0, C1אינסופית( של קונפיגורציות

.1C0 היא קונפיגורציה התחלתית q0x של M

: i 0לכל 2.

אם הסידרה סופית, אז הקונפיגורציה האחרונה בסידרה היא קונפיגורציה 3.מסיימת.

Ci Ci+1M

Page 11: Design and Analysis of Algorithms, Technion EE, 2010 1 Design and Analysis of Algorithms Recitation 10 Turing Machine 2010 Gal Tamir Based on recitations

Design and Analysis of Algorithms, Technion EE, 201011

לקלט הנתון בייצוג 1דוגמא: הוספת בינארי

'$’ ימינה של הקלט תוך סימון הקצה השמאלי של הסרט ב- Shiftנבצע 1.

'$’' או ל- 0', עד שנגיע ל-'0' ב-'1נעבור על המספר מימין לשמאל ונחליף כל '2.

. 1( ל-'$’' )או ה- 0נחליף את ה-'3.

שמאלה של התוצאהShift נבצע '$’אם לא כתבנו על ה- 4.

נזיז את הראש לימין התוצאה5.מימוש:

משמעות המצבים:•q0 מצב התחלתי•q0

SR, q1SR .הזזה ימינה ע"י זכירת האות הקודמת –

•qADD באלגוריתם(3 ו-2 )בשלבים 1– הוספת •q1 מעבר ימינה לקראת הזזה שמאלה –•q0

SL, q1SL, qb

SL .הזזה שמאלה ע"י זכירת האות הקודמת –•qR מעבר ימינה לקראת סיום –•qfמצב סופי –

0 1 0 10 1} , , , , , , , , , {

} {, }0,1{, }0,1, b ,${

bSR SR ADD SL SL SL R f

f

Q q q q q q q q q q q

F q

Page 12: Design and Analysis of Algorithms, Technion EE, 2010 1 Design and Analysis of Algorithms Recitation 10 Turing Machine 2010 Gal Tamir Based on recitations

Design and Analysis of Algorithms, Technion EE, 201012

המשך הדוגמאטבלת המעברים:•

הערה: הסימון --- מציין מעברים בלתי יישיגים, אשר ניתן •להגדירם שרירותית.

Page 13: Design and Analysis of Algorithms, Technion EE, 2010 1 Design and Analysis of Algorithms Recitation 10 Turing Machine 2010 Gal Tamir Based on recitations

Design and Analysis of Algorithms, Technion EE, 201013

חישוב פונקציות היא פונקציה )מלאה או חלקית( M המחושבת ע"י מ"ט fM הפונקציה הגדרה:

* * fM::המוגדרת ע"י , x לכל

fM(x)( אז x לא עוצרת על M אינסופי )x על Mאם החישוב של –

היא פונקציה חלקית. fMאינה מוגדרת. במקרה זה q סופי והקונפיגורציה המסיימת היא x על Mאם החישוב של –

(* ,) אז fM(x)=

M ניתנת לחישוב אם קיימת מ"ט f, נאמר ש-*f: * עבור פונקציה • עוצרת לכל קלט.M(. בפרט, fM = f)כלומר fהמחשבת את

f(x) = $xדוגמאות: ••f(x)=x+1

Page 14: Design and Analysis of Algorithms, Technion EE, 2010 1 Design and Analysis of Algorithms Recitation 10 Turing Machine 2010 Gal Tamir Based on recitations

Design and Analysis of Algorithms, Technion EE, 2010

14

עוד דוגמאות של חישוב פונקציות*, ) (x f x

1 0 0 1

1 0

) , , , , b , , b , (

, ) , ( ) , , (

f f

f

M q q q q

q q S

* | |, ) ( 0 xx f x 0 2 0 0 2

2 0 0

2 0

) , , , , b , , b , (

, ) , ( ) ,0, (

) , b( ) ,b, (

f f

f

M q q q q

q q R

q q S

3 0 0 3

3 0 0

) , , , , b , , b , (

, ) , ( ) , , (

f fM q q q q

q q R

מ"ט שמחשבת את הפונקציה1.

, כי הראש לא זז שמאלה בקצה השמאלי S במקום L- אפשר גם

כמצב סופי ואז לא צריך להגדיר פונק' מעבר.q0- אפשר גם להגדיר את מ"ט שמחשבת את הפונקציה )נניח ש: (2.

מה הפונקציה שמחשבת המכונה הבאה:3.

הפונק' לא מוגדרת לאף קלט, כי המכונה אינה עוצרת לאף קלט

Page 15: Design and Analysis of Algorithms, Technion EE, 2010 1 Design and Analysis of Algorithms Recitation 10 Turing Machine 2010 Gal Tamir Based on recitations

Design and Analysis of Algorithms, Technion EE, 201015

שקילות של מודלים לחישוב ניתנת f שני מודלים לחישוב ייקראו שקולים אם: פונק' הגדרה:

ניתנת לחישוב במודל ב'.fלחישוב במודל א' אמ"מ

Page 16: Design and Analysis of Algorithms, Technion EE, 2010 1 Design and Analysis of Algorithms Recitation 10 Turing Machine 2010 Gal Tamir Based on recitations

Design and Analysis of Algorithms, Technion EE, 201016

דוגמא לאי-שקילות מודלים: מ"ט ימנית אין אפשרות ללכת שמאלה: מ"ט ימנית זו מ"ט רגילה, פרט לכך שבפונק'

: (Q\F) x Q x x {R, S} המודל הרגיל של מכונת טיורינג לא שקול למודל של מ"ט ימניתטענה:

: נראה שהפונקציה הבאה אינה ניתנת לחישוב במודל הנ"ל:הוכחה

האות הימנית ביותר ב-

M ניתנת לחישוב במודל החדש אזי קיימת מ"ט ימנית fנניח בשלילה ש-. 1. לפי ההנחה, הפלט יהיה 001 על הקלט Mהמחשבת אותה. נתבונן בריצת

. יש שלוש 000 על הקלט M. כעת נתבונן על ריצת נסמן ריצה זו ב-אפשרויות:

ולכן אם הראש אף פעם לא מגיע לתא השלישי, הריצה זהה ל- 1..0, כלומר שונה מ- כמו ב- 1הפלט

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

אם מגיעה לתא השלישי ובסופו של דבר מחזירה פלט, אורך הפלט הוא 3., כלומר שוב שגוי.2לפחות

) (f x x

Page 17: Design and Analysis of Algorithms, Technion EE, 2010 1 Design and Analysis of Algorithms Recitation 10 Turing Machine 2010 Gal Tamir Based on recitations

Design and Analysis of Algorithms, Technion EE, 201017

דוגמא לשקילות מודלים – מ"ט חסרת מנוחה

אין אפשרות מ"ט חסרת מנוחה זו מ"ט רגילה, פרט לכך שבפונק' : (Q\F) x Q x x {L, R}להישאר במקום:

המודל הרגיל של מכונת טיורינג שקול למודל של מ"ט חסרת טענה:מנוחה

)להוכחת שקילות יש תמיד שני כיוונים(הוכחה:

ניתנת לחישוב ע"י מ"ט חסרת מנוחה, אז היא ניתנת fא( אם פונק' לחישוב ע"י מ"ט רגילה - פשוט אותה מכונה היא גם מ"ט רגילה.

M2, אז נבנה מ"ט M1 ניתנת לחישוב ע"י מ"ט רגילה fב( אם פונקציה . fחסרת מנוחה המחשבת את

תהי

נגדיר

1 1 0 1

2 2 0 2

2 1 1 1 1

) , , , , , , (

) , , , , , , (

' ' } ' : {

M Q q F

M Q q F

Q Q Q where Q q q Q

b

b

Page 18: Design and Analysis of Algorithms, Technion EE, 2010 1 Design and Analysis of Algorithms Recitation 10 Turing Machine 2010 Gal Tamir Based on recitations

Design and Analysis of Algorithms, Technion EE, 201018

מ"ט חסרת מנוחה - המשך, אם: aו- qQ1נגדיר: לכל 2עבור

1(q, a)=(p, b, R) או1(q, a)=(p, b, L)

=1(q, a) 2(q, a)אז נקבע:

,2 : (p’, b, R) 2(qאז נגדיר ב- 1(q, a)=(p, b, S)אחרת, כלומר אם a)=

=)2)q’, c (q, c, L)נגדיר: q’Q1 ולכל c בנוסף,

תלך ימינה וא"כ שמאלה. M2נשארת במקום, M1כלומר אם

האם אפשר להחליף את סדר הצעדים )קודם שמאלה וא"כ ימינה(?

Page 19: Design and Analysis of Algorithms, Technion EE, 2010 1 Design and Analysis of Algorithms Recitation 10 Turing Machine 2010 Gal Tamir Based on recitations

Design and Analysis of Algorithms, Technion EE, 201019

מודל מ"ט עם k סרטים

q מצב

...

1

2

k

•kסרטים

•k ראשים

הסרטים kמצבי בקרה משותפים ל-• )אין מצב נפרד לכל סרט(

זהו מודל אחר!kלכל •

Page 20: Design and Analysis of Algorithms, Technion EE, 2010 1 Design and Analysis of Algorithms Recitation 10 Turing Machine 2010 Gal Tamir Based on recitations

Design and Analysis of Algorithms, Technion EE, 201020

מודל מ"ט עם k סרטים הקלט בקצה הסרט הראשון, אחריו -ים. בשאר הסרטים איתחול:•

.q0רק -ים. כל הראשים בקצות הסרטים והמצב הוא

k האותיות שהראשים רואים, ב-k ע"ס המצב הנוכחי ו-צעד:•הסרטים, המכונה מחליטה עבור כל ראש מה יכתוב ולאיזה כוון יזוז.

כמו כן, היא מחליטה לאיזה מצב לעבור. פורמאלית:

המחרוזת שמשמאל לראש בסרט הראשון בסיום החישובפלט:•

f(x) = xx דוגמא:כתוב $ בתחילת הסרט השני.1.

הזז את שני הראשים תוך כדי העתקת הקלט לסרט השני2.

העבר את ראש הסרט השני לתא מימין ל-3$.

שני הראשים זזים יחד ומעתיקים את תוכן הסרט השני לראשון4.

: )Q\F( x k Q x k x }L, R, S{k

b b

?למה

Page 21: Design and Analysis of Algorithms, Technion EE, 2010 1 Design and Analysis of Algorithms Recitation 10 Turing Machine 2010 Gal Tamir Based on recitations

Design and Analysis of Algorithms, Technion EE, 201021

מודל מ"ט עם k סרטים

0 1 0 1 0

a a a

b a

,… ,1q1, 2q2)-יה: k סרטית מוגדרת כ-kקונפיגורציה של מ"ט •

kqk) כאשרqQ .מסמן את מיקום הראש בכל סרט ואת מצב הבקרה * ii

,q0x, q0, q0). למשל: קונפ' התחלתית: iמייצגים את תוכן הסרט ה-q0, …, q0)

סרטים שקול למודל של מ"ט k מודל מ"ט עם k1טענה: לכל •חד-סרטית.

שקולהS יש מ"ט חד סרטית M לכל מ"ט רב סרטית כוון קשה:•

.S ע"י M. בעצם צריכים לסמלץ את S אנו צריכים לבנות Mבהינתן •הרעיון:•

# 0 1 0 1 0 # a a a # b a #

M

S

b

b

b

b

Page 22: Design and Analysis of Algorithms, Technion EE, 2010 1 Design and Analysis of Algorithms Recitation 10 Turing Machine 2010 Gal Tamir Based on recitations

Design and Analysis of Algorithms, Technion EE, 201022

אלגוריתם הסימולציה wn w=w1w2על קלט

S מכינה את הסרט כך שייצג את w: # # # # wn w1w2 #

עושה את הדברים הבאים:M, Sכדי לסמלץ צעד של

שמסמן את הקצה הימני, וזוכרת את k+1סרוק את הסרט החל מ-# הראשון עד ה-# ה-•k."האותיות שמתחת לראשים ה"וירטואליים

)כולל הראשים הוירטואליים(.Mסרוק שוב ועדכן לפי פונקציית המעבר של •

מגיעה למצב מסיים. M עד ש-2 ו-1חזור על שני השלבים •

הזז את תוכן הסרט )הוירטואלי( הראשון שמאלה במקום אחד, ואז הזז את הראש ל-# •הראשון מימין לתחילת הסרט.

עבור למצב מסיים.•

זזה לחלק M אחד הראשים הוירטואליים מוזז ימינה ונמצא מעל-#, ז"א ש-2אם בשלב • במקום זה, ומזיזה את תוכן blank רושמת S. לכן blanks שעד כה היו שם

הסרט החל מהתא הזה עד ה-# האחרון במקום אחד ימינה. לאחר מכן היא חוזרת לסימולציה הרגילה

b b

Page 23: Design and Analysis of Algorithms, Technion EE, 2010 1 Design and Analysis of Algorithms Recitation 10 Turing Machine 2010 Gal Tamir Based on recitations

Design and Analysis of Algorithms, Technion EE, 201023

בעיות הכרעהעד כה, דיברנו על חישוב פונקציות. לעיתים, נוח יותר לעסוק בקבלת שפות, •

accept, reject ערכים: 2כלומר פונק' שטווח הערכים שלהן מכיל רק

accept} q reject, F: מ"ט לזיהוי שפות היא מ"ט בעלת שני מצבים סופיים: הגדרה•= {q

* , אם קיימים x מקבלת את הקלט Mנאמר ש- • כך ש:

* , אם קיימים x דוחה את הקלט Mנאמר ש- • כך ש:

.x לא עוצרת על x: M עינה מקבלת ואינה דוחה את Mהערה: ייתכן ש-• *x | מקבלת את { M: Mהשפה המתקבלת ע"י מ"ט לזיהוי שפות •

L(M)={x:x על M אפשרויות להפעלת 3יש •

לעצור ולקבל–לעצור ולדחות–לא לעצור–

L מקבלת את M אם: L מכריעה את השפה M נאמר שמ"ט לזיהוי שפות הגדרה:•(qrejectאו qaccept)במצב *x עוצרת על כל קלט Mוגם

Mq0x qaccept*

Mq0x qreject*

xL(M)

xL(M)

Page 24: Design and Analysis of Algorithms, Technion EE, 2010 1 Design and Analysis of Algorithms Recitation 10 Turing Machine 2010 Gal Tamir Based on recitations

Design and Analysis of Algorithms, Technion EE, 201024

בעיות הכרעהדוגמאות:

.1M מכריעה את *:

(q0, a)=(qacc, a, S) : a*

.2M מכריעה : (q0, a)=(qrej, a, S) : a*

•M מקבלת אך לא מכריעה את : (q0, a)=(q0, a, S) : a*

מחלקת השפות הרקורסיביות היא מחלקת השפות המתקבלות ע"י מ"ט הגדרה: = L R קיימת מ"ט המכריעה את {: העוצרת לכל קלט

{ L | מחלקת השפות הניתנות למניה רקורסיבית היא מחלקת השפות הגדרה:

קיימת מ"ט המקבלת את {המתקבלות ע"י מ"ט: L RE = { L |

L מקבלת שפה M1אם: M2שקולה למ"ט לזיהוי שפות M1מ"ט לזיהוי שפות הגדרה: L(M1)=L(M2) . כלומר, אם:L מקבלת את M2אמ"מ