מודלים חישוביים פתרון תרגיל 5 כתוב אוטומט דטרמיניסטי לשפות הבאות מעל הא"ב.Σ={,} א. *Σ. q, ב. q, ג. {ε}, q, q ד. } = 3 {w w mod, q, q,, ה. ''} {w w does not contin the sustring q 4 q 3 q q כתוב אוטומט דטרמיניסטי ותרגם אותו לאוטומט לא דטרמיניסטי לשפות הבאות מעל הא"ב.Σ={,}.2 א. ''} {w w contins the sustring '' or does not contin the sustring NFA, q 4 q 3 q ε, q ε
DFA q, q,, q 3,, q q 4,, q 3, q 4, q 4, {w {,}* There exists prtitioning of w to w=xy s.t. x contins n even numer of ''s nd y contins n even numer of ''s} ב. NFA q q ε q 3 DFA q, q, q q, q 3 q, q 3 2
3. כתוב ביטוי רגולרי לכל אחת מהשפות הבאות מעל {,}=Σ {w w mod 4 = } = [(+)(+)(+)(+)]* {w w contins exctly four ''s} = * * * * * א. ב. עבור כל אחת מהשפות הבאות, הוכח שאם L רגולרית, גם 'L רגולרית: א. y L} L'={ xy x L nd.4 נניח שהשפה L רגולרית, ונבנה אוטומט אי דטרמיניסטי 'A שיכריע את 'L. כיוון ש- L רגולרית, קיים אוטומט סופי דטרמיניסטי A המכריע אותה. A' = (Σ, Q x {,2}, <q,>, F x {2}, δ'),,,,2,,, 2, 2 נגדיר את 'A: כאשר 2 ו- y L. כך ש- x L w=xy מכאן, שקיימת חלוקה.wϵL' נניח שקיימת מילה נקודת ההתחלה של האלגוריתם שלנו היא במצב ההתחלה של A. כיוון ש- x L, לאחר התו האחרון שלו נגיע למצב t שאינו אחד ממצבי הסיום ב- A. כיוון ש- t אינו מצב סיום (ונמצא בעותק הראשון של A), קיים מעבר ε ממנו למצב ההתחלה של העותק השני של A. מצבי הסיום שהגדרנו באוטומט שבנינו הם מצבי הסיום A אך בעותק השני בלבד. כיוון ש- y L, לאחר בדיקתו ב"עותק" השני של A, נגיע למצב סיום של A ומכאן גם למצב מסיים של 'A. נניח שקיימת מילה כך ש-(' wϵl(a. מכאן, שקיים הרצף: <q,> <q k,> <q,2 > q f,2 נגדיר את רצף האותיות עד המעבר ε להיות x ואת רצף האותיות לאחר מכן להיות x y. מתקבל ע"י רצף אותיות המתחיל ב-< q, > ומסתיים ב-<, q>. k נשים לב, כי q k אינו מצב מקבל באוטומט המקורי כיוון שיש ממנו מעבר ε. מעברים אלו לא קיימים באוטומט המקורי היות והוא דטרמיניסטי, ועל כן זהו מעבר שנוסף בעת בניית 'A. הוספנו מעברים אלו רק ממצבים שהוגדרו להיות "לא מקבלים" באוטומט A. מכאן, שהרצת x ב- A תסתיים במצב לא מקבל ולכן q>. k <2, ומסתיים במצב A מתחיל במצב התחלה של העותק השני של y.x L כיוון ש- w שייך לשפה, זהו מצב מקבל. לכן, גם q k הוא מצב מקבל ומכאן שהרצת y באוטומט A תסתיים במצב מקבל. מכאן, ש- y L. ב. L} L ={x 2 x 4 x 2n x 2,x 4,,x 2n Σ, x,x 3,x 2n- Σ s.t. x x 2 x 2n- x 2n נניח שהשפה L רגולרית, ונבנה אוטומט אי דטרמיניסטי 'A שיכריע את 'L. כיוון ש- L רגולרית, קיים אוטומט סופי דטרמיניסטי A המכריע אותה. A' = (Σ, Q x {,2}, <q,>, F x {}, δ') נגדיר את 'A: 3
כאשר,,2 Σ,,2,,, 2 5. הוכח אם השפות הבאות רגולריות. א. } R L =(w w {,}*, w=w (שפת כל הפולינומים מעל.(, q q q 2n רצף מצבים קיים מכאן, שב- A.wϵL' נניח שקיימת מילה מקבל. לכן, לפי הבנייה, באוטומט 'A קיים עבור המילה x 2 x 4 x n רצף מצבים. <q,> <q,2> <n-,2> <n,> כיוון ש- n הוא מצב מסיים ב- A, q> 2n <, הוא מצב מסיים ב-' A. כלומר, האוטומט 'A יקבל את w כנדרש. נניח שקיימת מילה כך ש-(' wϵl(a. מכאן, שקיים הרצף: <q,> <q,2> <n-,2> <n,> לפי הבנייה, עבור כל מעבר ε בין q i ל- +i q ברצף זה, קיים מעבר בין מצבים אלו באמצעות אות השייכת לא"ב. נגדיר אות זו להיות y i ונקבל מילה מילה זו קיים ב- A עבור ב- w ). מסמל את האות ה- i x 2i ש (כך w'=y x 2 y -2n x 2n רצף המצבים. q q n כיוון ש-<, <n הוא מצב מקבל ב-' A, מצב n הוא מצב מקבל ב- A. כלומר, A יקבל את 'w ולכן, w אכן שייך ל-' L. פתרון: זו אינה שפה רגולרית. נניח בשלילה ש L רגולרית ו- p הוא קבוע הניפוח שלה. נבחר w =w. p p.w L w=w R כמו כן מורכב מהא"ב {,} וכן מתקיים (w הוא פולינדרום) לכן, מתקיים. w =2p+>p עבור כל חלוקה w=xyz כך ש- xy p מתקיים כי =y k w' L.w'= p-k p כך ש- k p. נבחר =i ונקבל זהו אינו פלינדרום ולכן בסתירה ללמת הניפוח. ב. x,y,z) Σ,,#, L 2x#y#z x,y,z,*, x+yz מיוצגים בינארית) פתרון: זו אינה שפה רגולרית. נניח בשלילה ש L 2 רגולרית ו- p הוא קבוע הניפוח שלה. נבחר w =w. p # p # p.w L z= p,y= p,x= p כך ש- x+y=z. לכן, 2 מורכב מהא"ב {,} וכן מתקיים כמו כן מתקיים. w =3p>p עבור כל חלוקה w=xyz כך ש- xy p מתקיים כי y= k כך ש- k p. נבחר i= ונקבל.w'= p-k # p # p נשים לב שקיבלנו כי.x+y= p-k + p = p-k p 2 לכן, w' L בסתירה ללמת הניפוח. =z ג. x+y=z} Σ={,}, L 3 =(x y z x n y n z n x=x x 2 x n, y=y y 2 y n, z=z z 2 z n, פתרון: זו שפה רגולרית. 4
נראה אוטומט דטרמיניסטי המכריע את השפה., f2, f4 C C C q C C C C, f, f3 האוטומט פועל למעשה כמו רכיב.FA הסדר המיוחד של הקלט מאפשר לבצע את החיבור תו אחר תו. במצב כזה, יש "לזכור" בכל שלב האם קיים קרי או לא. פרט לכך, מתבצעת בדיקה שחיבור כל 2 הביטים מתבצע כראוי (בהתחשב גם בקרי בכל שלב). במידה שאכן בוצע חיבור כראוי, האוטומט חוזר למצב ההתחלתי q ומקבל את המילה כנדרש. במידה ובשלב כלשהו בוצע חיבור שגוי, האוטומט מגיע למצב "ללא מוצא" ולא מקבל את המילה. ד. ''s} Σ={,}, L4={w the numer of s in w is equl to the numer of פתרון: זו שפה רגולרית. נראה אוטומט דטרמיניסטי המכריע את השפה. q 5
נשים לב תחילה, שבכל עת, ההבדל מספר ההופעות של '' ו-' ' הוא לכל היותר. הסיבה לכך היא כיוון שלאחר כל, יכול להופיע '' מספר רב של פעמים (מבלי להוסיף לאף אחד מהצירופים) וברגע שמופיע '', נוצרת, למעשה, הופעה של (כלומר מספר ההופעות משתווה וההפרש בין הצירופים חוזר להיות ). המצב מתקיים בצורה דומה גם עבור הצירוף. האוטומט שבנינו מבצע בדיוק בדיקה זו. לאחר התו הראשון, האוטומט שומר האם קיים יתרון יחסי לאחד הצירופים (מצבים ו- ). כל עוד קיים יתרון כזה, הוא לא מקבל את המילה. במידה ומספר ההופעות משתווה, האוטומט מקבל את המילה (מצבים ו- ). 6. סבוכיות מקום א. הוכח שבעיית Clique נמצאת ב- PSPACE ע"י תאור אלגוריתם שפותר את הבעיה במקום פולינומי. תאור האלגוריתם: נבנה מערך A בגודל V. בכל תא במערך יהיה מצביע לקודקוד ייחודי (אין שני מצביעים לאותו הקודקוד) ודגל / (במונחי מחשב ניתן לתאר כ'ביט'). נאתחל את כל הדגלים במערך להיות, פרט לדגל הראשון, אותו נאתחל להיות. נאתחל אינדקס ספירה s ל-. נעבור על המערך, ונספור באמצעות s בכמה תאים מופיע. אם מספר הפעמים גדול מ- k נעבור לשלב v. אחרת, נבצע את שלב.iv נקדם את הדגלים במערך ב-. הכוונה היא להסתכל על הדגלים של המערך כמספר בינארי (מתחילים ממצב בו הדגלים הוא כלומר המספר הוא ובכל קידום מוסיפים למונה זה. למשל, בקידום הראשון של המונה מ- לשלב השני, ישתנה מצב הדגלים מ אל וכך הלאה). לאחר קידום המונה, אם הגענו למצב (כלומר היינו במצב וקידמנו פעם נוספת את המונה), נחזיר F. אחרת, נבצע שוב את שלב.iii אם s גדול או שווה ל- k, נרוץ על המערך באמצעות 2 אינדקסים: i ו- j. נוודא שכל צומת i במערך שהדגל שלו, מחובר לכל צומת אחר j במערך שהדגל שלו הוא גם. אם מצאנו 2 צמתים שדגליהם הוא ואין קשת ביניהם נחזור לשלב.iv אחרת נקדם את j ב- עד שנגיע לצומת האחרון במערך (ואז נאפס את j ונקדם את i ב- ). אם i הגיע לצומת האחרון במערך, נחזיר T..i.ii.iii.iv.v באמצעות המערך אנו מוודאים שנבדוק כל צרוף אפשרי של הצמתים. לכן, אם עבור כל הצרופים שבדקנו, לא מצאנו צירוף מתאים, בוודאות לא קיים צרוף כזה ולכן נחזיר F כנדרש. אם במהלך הבדיקות, i הגיע לסוף המערך, הרי שכל הצמתים במערך נבדקו ומצאנו שכל הצמתים שהדגל שלהם הוא מחובר לכל צומת אחר. כלומר, זהו אכן קליק. בשלב iii ווידאנו שגודל הקליק הוא לפחות כגודל k ולכן נחזיר T כנדרש. 6
סבוכיות מקום: גודל המערך הוא כגודל מספר הקודקודים (והוא כולל מצביע ודגל בלבד עבור כל התא) ולכן.O( V ) המונה s והאינדקסים i ו- j יכולים למנות לכל היותר כמספר הקודקודים ולכן עבור כל אחד מהם ידרש מקום O(log V ).i.ii סה"כ סבוכיות מקום O( V ) הראנו שניתן לפתור את הבעיה בסבוכיות מקום ליניארית ולכן זו בעיה בPSpce. ב. הוכח ש- QSAT היא בעייה NP -קשה. נגדיר רדוקצית מיפוי :3SAT< m QSAT נגדיר F, פונקציה המקבלת נוסחה φ. הפונקציה F תסרוק את הנוסחה, ועבור כל ליטרל, תבדוק האם פגשנו בו קודם (באמצעות רשימה שנתחזק). אם לא פגשנו בליטרל קודם, נוסיף בתחילת הנוסחה כמת "קיים" עם הליטרל שבדקנו, נוסיף אותו לרשימת הליטרלים בהם נתקלנו ונמשיך לליטרל הבא (לדוגמה, אם הגענו אל x ולא פגשנו בו קודם, נוסיף לתחילת הנוסחה '.x '). אם פגשנו בליטרל בעבר, נמשיך לליטרל הבא. בסיום הסריקה של הנוסחה, תחזיר F את הנוסחה המעודכנת. עבור כל נוסחה ) n F,(x x 2 x 3 ) (x n-2 x n- x תחזיר את הנוסחה ) n. x. x n. (x x 2 x 3 ) (x n-2 x n- x נוסחה זו תועבר לQSAT. במידה ויש הצבה שמספקת את הנוסחה המקורית, הרי שקיימים x x n שמספקים את הנוסחה ולכן QSAT תחזיר T כנדרש. אחרת, לא קיימים הצבות x כאלו ולכן QSAT תחזיר F כנדרש. סבוכיות: נניח שאורך הנוסחה הוא n ליטרלים (לאו דווקא שונים). עבור כל ליטרל, אנו בודקים האם נתקלנו בו בעבר באמצעות רשימת צבירה. בדיקה זו מבוצעת בזמן O(n) (סריקה פשוטה של הרשימה). במידה ולא נתקלנו בו בעבר, אנו מוסיף כמת עבורו בתחילת הנוסחה ומוסיפים אותו לרשימת הליטרלים בהם נתקלנו. 2 פעולות אלו מבוצעות ב-( O(. סה"כ כל טיפול בליטרל לוקח.O(n) אנו מבצעים זאת עבור n ליטרלים בנוסחה ולכן סבוכיות זמן ריצה של F הינה.O(n 2 ) הראנו כי קיימת רדוקציה פולינומית מ- 3SAT אל 3SAT.QSAT היא NP שלמה ולכן בפרט NP קשה. מכאן, שגם QSAT היא בעיה NP קשה. 7