5 פתרון תרגיל – מודלים חישוביים
Transcription
5 פתרון תרגיל – מודלים חישוביים
עידן דויטש u.multinet.co.il 5 מודלים חישוביים – פתרון תרגיל .Σ={a,b} כתוב אוטומט דטרמיניסטי לשפות הבאות מעל הא"ב.1 Σ* a,b q0 .ב {ε} .ג {w | |w| mod 3 = 0} .ד a,b q0 a,b a,b q1 a,b q2 .א q0 a,b q1 q0 a,b {w | w does not contain the substring 'abba'} .ה a,b q4 a q3 b b q2 a b a q1 q0 b a כתוב אוטומט דטרמיניסטי ותרגם אותו לאוטומט לא דטרמיניסטי לשפות הבאות מעל.2 .Σ={a,b} הא"ב {w | w contains the substring 'aa' or does not contain the substring 'bab'} NFA a,b b q14 b q13 a a b q12 q23 a b a q22 b 1 u.multinet.co.il ε q0 a a,b q11 q21 ε .א עידן דויטש u.multinet.co.il DFA a a b a q11, q22 b q11, q23 a q12, q23 q13, q23 b a,b a q0 b a b a q12, q21 q13, q22 q14, q23 b b a q14, q21 b q14, q22 a b {w∈{a,b}* | There exists a partitioning of w to w=xy s.t. x contains an even number of 'a's and y contains an even number of 'b's} NFA b b ε q1 a q0 a a a b q2 q3 b DFA a q0 b b 2 u.multinet.co.il a q1, q2 q0, q3 q0, q2 b a q1, q3 .ב עידן דויטש u.multinet.co.il .3כתוב ביטוי רגולרי לכל אחת מהשפות הבאות מעל }Σ={0,1 א. *]){w | |w| mod 4 = 0} = [(0+1)(0+1)(0+1)(0+1 ב. *{w | w contains exactly four '1's} = 0*∙1∙0*∙1∙0*∙1∙0*∙1∙0 .4עבור כל אחת מהשפות הבאות ,הוכח שאם Lרגולרית ,גם ' Lרגולרית: א. }L'={ xy | x∉L and y∈L הוכחה: נניח שהשפה Lרגולרית ,ונבנה אוטומט אי דטרמיניסטי ' Aשיכריע את ' .Lכיוון ש L-רגולרית ,קיים אוטומט סופי דטרמיניסטי Aהמכריע אותה. )'A' = (Σ, Q x {1,2}, <q0,1>, F x {2}, δ נגדיר את ':A כאשר 1# $ & 2# $ 1# # ∉% , ,1 ! , , 2 " , 2 , ∈ 1,2, הוכחת נכונות: ' נניח שקיימת מילה ' .wϵLמכאן ,שקיימת חלוקה w=xyכך ש x∉L-ו.y∈L- נקודת ההתחלה של האלגוריתם שלנו היא במצב ההתחלה של .Aכיוון ש,x∉L- לאחר התו האחרון שלו נגיע למצב tשאינו אחד ממצבי הסיום ב .A-כיוון שt- אינו מצב סיום )ונמצא בעותק הראשון של ,(Aקיים מעבר εממנו למצב ההתחלה של העותק השני של .Aמצבי הסיום שהגדרנו באוטומט שבנינו הם מצבי הסיום Aאך בעותק השני בלבד .כיוון ש ,y∈L-לאחר בדיקתו ב"עותק" השני של ,Aנגיע למצב סיום של Aומכאן גם למצב מסיים של '.A נניח שקיימת מילה כך ש .wϵL(A')-מכאן ,שקיים הרצף: <q0,1>⟶…⟶<qk,1>⟶<q0,2>⟶…⟶qf,2 נגדיר את רצף האותיות עד המעבר εלהיות xואת רצף האותיות לאחר מכן להיות x .yמתקבל ע"י רצף אותיות המתחיל ב <q0,1>-ומסתיים ב.<qk,1>- נשים לב ,כי qkאינו מצב מקבל באוטומט המקורי כיוון שיש ממנו מעבר .ε מעברים אלו לא קיימים באוטומט המקורי היות והוא דטרמיניסטי ,ועל כן זהו מעבר שנוסף בעת בניית ' .Aהוספנו מעברים אלו רק ממצבים שהוגדרו להיות "לא מקבלים" באוטומט .Aמכאן ,שהרצת xב A-תסתיים במצב לא מקבל ולכן y .x∉Lמתחיל במצב התחלה של העותק השני של Aומסתיים במצב >.<qk,2 כיוון ש w-שייך לשפה ,זהו מצב מקבל .לכן ,גם qkהוא מצב מקבל ומכאן שהרצת yבאוטומט Aתסתיים במצב מקבל .מכאן ,ש.y∈L- ב. }L’={x2x4…x2n| x2,x4,…,x2n∈Σ, ∃x1,x3,x2n-1∈Σ s.t. x1x2…x2n-1x2n∈L הוכחה: נניח שהשפה Lרגולרית ,ונבנה אוטומט אי דטרמיניסטי ' Aשיכריע את ' .Lכיוון ש L-רגולרית ,קיים אוטומט סופי דטרמיניסטי Aהמכריע אותה. )'A' = (Σ, Q x {1,2}, <q0,1>, F x {1}, δ נגדיר את ':A 3 u.multinet.co.il עידן דויטש u.multinet.co.il כאשר & 1 # 2# $ , ,2 | ∈ Σ , , 1 3 , ∈ 1,2, הוכחת נכונות: ' נניח שקיימת מילה ' .wϵLמכאן ,שב A-קיים רצף מצבים q0→q1→…→q2n מקבל .לכן ,לפי הבנייה ,באוטומט ' Aקיים עבור המילה x2x4…xnרצף מצבים >.<q0,1>⟶<q1,2>→…⟶<q2n-1,2>→<q2n,1 כיוון ש q2n-הוא מצב מסיים ב <q2n,1> ,A-הוא מצב מסיים ב .A'-כלומר, האוטומט ' Aיקבל את wכנדרש. נניח שקיימת מילה כך ש .wϵL(A')-מכאן ,שקיים הרצף: ><q0,1>⟶<q1,2>→…⟶<q2n-1,2>→<q2n,1 לפי הבנייה ,עבור כל מעבר εבין qiל qi+1-ברצף זה ,קיים מעבר בין מצבים אלו באמצעות אות השייכת לא"ב .נגדיר אות זו להיות yiונקבל מילה ) w'=y1x2…y2n-1x2nכך ש x2iמסמל את האות ה i-ב .(w-עבור מילה זו קיים בA- רצף המצבים .q0→q1→…→q2nכיוון ש <q2n,1>-הוא מצב מקבל ב ,A'-מצב q2n הוא מצב מקבל ב .A-כלומר A ,יקבל את ' wולכן w ,אכן שייך ל.L'- .5הוכח אם השפות הבאות רגולריות. א. }) L1=(w | w∈{0,1}*, w=wRשפת כל הפולינומים מעל .(0,1 פתרון :זו אינה שפה רגולרית. הוכחה: נניח בשלילה ש L1רגולרית ו p-הוא קבוע הניפוח שלה .נבחר w .w=1p01p מורכב מהא"ב } {0,1וכן מתקיים w) w=wRהוא פולינדרום( לכן .w∈L1 ,כמו כן מתקיים .|w|=2p+1>pעבור כל חלוקה w=xyzכך ש |xy|≤p-מתקיים כי y=1k כך ש .1≤k≤p-נבחר i=0ונקבל .w'=1p-k01pזהו אינו פלינדרום ולכן w'∉L1 בסתירה ללמת הניפוח. ב. x,y,z) Σ 0,1,#, L2 x#y#z | x,y,z∈0,1*, x+y zמיוצגים בינארית( פתרון :זו אינה שפה רגולרית. הוכחה: נניח בשלילה ש L2רגולרית ו p-הוא קבוע הניפוח שלה .נבחר w .w=1p#0p#1p מורכב מהא"ב } {0,1וכן מתקיים z=1p ,y=0p ,x=1pכך ש .x+y=z-לכן.w∈L2 , כמו כן מתקיים .|w|=3p>pעבור כל חלוקה w=xyzכך ש |xy|≤p-מתקיים כי y=1kכך ש .1≤k≤p-נבחר i=0ונקבל .w'=1p-k#0p#1pנשים לב שקיבלנו כי .x+y=1p-k+0p=1p-k$1p=zלכן w'∉L2 ,בסתירה ללמת הניפוח. ג. }Σ={0,1}, L3=(x1y1z1…xnynzn | x=x1x2…xn, y=y1y2…yn, z=z1z2…zn, x+y=z פתרון :זו שפה רגולרית. 4 u.multinet.co.il עידן דויטש u.multinet.co.il הוכחה: נראה אוטומט דטרמיניסטי המכריע את השפה. 0,1 0,1 0 01 0 1 f1 0 0 q0 1 10 f2 1 0 1 00 1 0 0 11 0 0 0,1 0,1 1 0 0 C00 0 0 f3 C0 1 C10 1 C1 C f4 1 0 C01 1 C11 1 0 הוכחת נכונות: האוטומט פועל למעשה כמו רכיב .FAהסדר המיוחד של הקלט מאפשר לבצע את החיבור תו אחר תו .במצב כזה ,יש "לזכור" בכל שלב האם קיים קרי או לא. פרט לכך ,מתבצעת בדיקה שחיבור כל 2הביטים מתבצע כראוי )בהתחשב גם בקרי בכל שלב( .במידה שאכן בוצע חיבור כראוי ,האוטומט חוזר למצב ההתחלתי q0ומקבל את המילה כנדרש .במידה ובשלב כלשהו בוצע חיבור שגוי ,האוטומט מגיע למצב "ללא מוצא" ולא מקבל את המילה. ד. }Σ={0,1}, L4={w | the number of ‘01’s in w is equal to the number of '10's פתרון :זו שפה רגולרית. הוכחה: נראה אוטומט דטרמיניסטי המכריע את השפה. 1 01 0 1 0 0 0 0 10 q0 1 0 1 1 1 5 u.multinet.co.il עידן דויטש u.multinet.co.il הוכחת נכונות: נשים לב תחילה ,שבכל עת ,ההבדל מספר ההופעות של ' '10ו '01'-הוא לכל היותר .1הסיבה לכך היא כיוון שלאחר כל ,01יכול להופיע ' '1מספר רב של פעמים )מבלי להוסיף לאף אחד מהצירופים( וברגע שמופיע ' ,'0נוצרת, למעשה ,הופעה של ) 10כלומר מספר ההופעות משתווה וההפרש בין הצירופים חוזר להיות .(0המצב מתקיים בצורה דומה גם עבור הצירוף .10 האוטומט שבנינו מבצע בדיוק בדיקה זו .לאחר התו הראשון ,האוטומט שומר האם קיים יתרון יחסי לאחד הצירופים )מצבים 10ו .(01-כל עוד קיים יתרון כזה, הוא לא מקבל את המילה .במידה ומספר ההופעות משתווה ,האוטומט מקבל את המילה )מצבים 0ו.(1- .6סבוכיות מקום א. הוכח שבעיית Cliqueנמצאת ב PSPACE-ע"י תאור אלגוריתם שפותר את הבעיה במקום פולינומי. תאור האלגוריתם: .iנבנה מערך Aבגודל | .|Vבכל תא במערך יהיה מצביע לקודקוד ייחודי )אין שני מצביעים לאותו הקודקוד( ודגל ) 0/1במונחי מחשב ניתן לתאר כ'ביט'(. .iiנאתחל את כל הדגלים במערך להיות ,0פרט לדגל הראשון ,אותו נאתחל להיות .1 .iiiנאתחל אינדקס ספירה sל .0-נעבור על המערך ,ונספור באמצעות s בכמה תאים מופיע .1אם מספר הפעמים גדול מ k-נעבור לשלב .v אחרת ,נבצע את שלב .iv .ivנקדם את הדגלים במערך ב .1-הכוונה היא להסתכל על הדגלים של המערך כמספר בינארי )מתחילים ממצב בו הדגלים הוא – 0…01 כלומר המספר הוא 1ובכל קידום מוסיפים למונה זה .1למשל ,בקידום הראשון של המונה מ 1-לשלב השני ,ישתנה מצב הדגלים מ 0…01אל 0…10וכך הלאה( .לאחר קידום המונה ,אם הגענו למצב ) 0…0כלומר היינו במצב 1…1וקידמנו פעם נוספת את המונה( ,נחזיר .Fאחרת, נבצע שוב את שלב .iii .vאם sגדול או שווה ל ,k-נרוץ על המערך באמצעות 2אינדקסים i :ו.j- נוודא שכל צומת iבמערך שהדגל שלו ,1מחובר לכל צומת אחר j במערך שהדגל שלו הוא גם .1אם מצאנו 2צמתים שדגליהם הוא 1 ואין קשת ביניהם נחזור לשלב .ivאחרת נקדם את jב 1-עד שנגיע לצומת האחרון במערך )ואז נאפס את jונקדם את iב .(1-אם iהגיע לצומת האחרון במערך ,נחזיר .T הוכחת נכונות: באמצעות המערך אנו מוודאים שנבדוק כל צרוף אפשרי של הצמתים .לכן ,אם עבור כל הצרופים שבדקנו ,לא מצאנו צירוף מתאים ,בוודאות לא קיים צרוף כזה ולכן נחזיר Fכנדרש .אם במהלך הבדיקות i ,הגיע לסוף המערך ,הרי שכל הצמתים במערך נבדקו ומצאנו שכל הצמתים שהדגל שלהם הוא 1מחובר לכל צומת אחר .כלומר ,זהו אכן קליק .בשלב iiiווידאנו שגודל הקליק הוא לפחות כגודל kולכן נחזיר Tכנדרש. 6 u.multinet.co.il עידן דויטש u.multinet.co.il סבוכיות מקום: .iגודל המערך הוא כגודל מספר הקודקודים )והוא כולל מצביע ודגל בלבד עבור כל התא( ולכן – )|.O(|V .iiהמונה sוהאינדקסים iו j-יכולים למנות לכל היותר כמספר הקודקודים ולכן עבור כל אחד מהם ידרש מקום – )|O(log|V סה"כ סבוכיות מקום – )|O(|V הראנו שניתן לפתור את הבעיה בסבוכיות מקום ליניארית ולכן זו בעיה ב.PSpace ב. הוכח ש QSAT-היא בעייה -NPקשה. הוכחה: נגדיר רדוקצית מיפוי :3SAT<mQSATנגדיר ,Fפונקציה המקבלת נוסחה .φ הפונקציה Fתסרוק את הנוסחה ,ועבור כל ליטרל ,תבדוק האם פגשנו בו קודם )באמצעות רשימה שנתחזק( .אם לא פגשנו בליטרל קודם ,נוסיף בתחילת הנוסחה כמת "קיים" עם הליטרל שבדקנו ,נוסיף אותו לרשימת הליטרלים בהם נתקלנו ונמשיך לליטרל הבא )לדוגמה ,אם הגענו אל xולא פגשנו בו קודם, נוסיף לתחילת הנוסחה ' .('∃x.אם פגשנו בליטרל בעבר ,נמשיך לליטרל הבא. בסיום הסריקה של הנוסחה ,תחזיר Fאת הנוסחה המעודכנת. הוכחת נכונות: עבור כל נוסחה ) F ,(x1∨x2∨x3)#… # (xn-2∨xn-1∨xnתחזיר את הנוסחה ) .∃x1….∃xn.(x1∨x2∨x3)#… # (xn-2∨xn-1∨xnנוסחה זו תועבר ל .QSATבמידה ויש הצבה שמספקת את הנוסחה המקורית ,הרי שקיימים x1…xnשמספקים את הנוסחה ולכן QSATתחזיר Tכנדרש .אחרת ,לא קיימים הצבות xכאלו ולכן QSATתחזיר Fכנדרש. סבוכיות: נניח שאורך הנוסחה הוא nליטרלים )לאו דווקא שונים( .עבור כל ליטרל ,אנו בודקים האם נתקלנו בו בעבר באמצעות רשימת צבירה .בדיקה זו מבוצעת בזמן )) O(nסריקה פשוטה של הרשימה( .במידה ולא נתקלנו בו בעבר ,אנו מוסיף כמת עבורו בתחילת הנוסחה ומוסיפים אותו לרשימת הליטרלים בהם נתקלנו 2 .פעולות אלו מבוצעות ב .O(1)-סה"כ כל טיפול בליטרל לוקח ).O(n אנו מבצעים זאת עבור nליטרלים בנוסחה ולכן סבוכיות זמן ריצה של Fהינה ).O(n2 הראנו כי קיימת רדוקציה פולינומית מ 3SAT -אל 3SAT .QSATהיא NPשלמה ולכן בפרט NPקשה .מכאן ,שגם QSATהיא בעיה NPקשה. 7 u.multinet.co.il