תרגול הכנה למבחן don`t panic

Download Report

Transcript תרגול הכנה למבחן don`t panic

‫תרגול הכנה למבחן‬
‫‪don’t panic‬‬
‫שאלות מתוך‪:‬‬
‫‪ 2007‬סמסטר א' מועד ב'‬
‫קודים מתקני שגיאות‬
‫‪Error Correcting Codes‬‬
‫תזכורת‪:‬‬
‫• קוד ‪ C‬הוא תת‪-‬קבוצה של כל המחרוזות ‪{0,1,…,q-1}n‬‬
‫• לכל קוד יש ‪ 4‬מאפיינים עיקריים בהם נתעניין‪:‬‬
‫–‬
‫–‬
‫–‬
‫–‬
‫גודל האלפבית ‪q -‬‬
‫מרחק – המספר המינימלי של תוים ששונים בין ‪ 2‬מילות קוד‪ ,‬יחסית למספר‬
‫התוים (‪)n‬‬
‫אורך הבלוק – כמות הביטים שאנחנו צריכים לכל מילת קוד‪ ,‬ז"א )‪nlog(q‬‬
‫קצב – כמות הביטים שהיינו צריכים לכל בלוק בקידוד אופטימאלי‪ ,‬ללא תיקון‬
‫שגיאות‪ ,‬יחסית לאורך הבלוק (ז"א לוג מספר המילים בקוד)‬
‫• דוגמא‪:‬‬
‫‪q = 3, n = 4‬‬
‫}‪C = {0121, 1210, 2101, 1012‬‬
‫‪d[C] = d(1210, 1012) = 2/4 = 1/2‬‬
‫))‪r[C] = log(4) / 4log(3) = 1/(2log(3‬‬
‫–‬
‫–‬
‫–‬
‫–‬
‫קודים מתקני שגיאות‬
‫‪Error Correcting Codes‬‬
‫תזכורת‪:‬‬
‫• קוד ‪ C‬הוא תת‪-‬קבוצה של כל המחרוזות ‪{0,1,…,q-1}n‬‬
‫• לכל קוד יש ‪ 4‬מאפיינים עיקריים בהם נתעניין‪:‬‬
‫–‬
‫–‬
‫–‬
‫–‬
‫גודל האלפבית ‪q -‬‬
‫מרחק – המספר המינימלי של תוים ששונים בין ‪ 2‬מילות קוד‪ ,‬יחסית למספר‬
‫התוים (‪)n‬‬
‫אורך הבלוק – כמות הביטים שאנחנו צריכים לכל מילת קוד‪ ,‬ז"א )‪nlog(q‬‬
‫קצב – כמות הביטים שהיינו צריכים לכל בלוק בקידוד אופטימאלי‪ ,‬ללא תיקון‬
‫שגיאות‪ ,‬יחסית לאורך הבלוק (ז"א לוג מספר המילים בקוד)‬
‫• מטרה‪ :‬מרחק וקצב גדולים‬
‫קודים לינאריים‬
‫‪Linear Codes‬‬
‫•‬
‫נניח שקיים שדה ‪ Fq‬בגודל ‪( q‬לדוגמא }‪)F2 = {0,1‬‬
‫• ‪ C‬הוא קוד לינארי אמ"ם הוא תת‪-‬מרחב של ‪Fqn‬‬
‫• ניתוח‪:‬‬
‫– קצב – נסמן )‪k=dim(C‬‬
‫• ב‪ C-‬יש ‪ qk‬מילים‬
‫– (‪ C‬מורכב מצירופים לינאריים של‪ k :‬איברי בסיס‪ q ,‬סקלרים לכל אחד)‬
‫• ‪r[C] = log(qk)/log(qn) = k/n‬‬
‫– מרחק – )‪d(x,y) = d(x-y,0‬‬
‫• לכן‪ ,‬מרחק הקוד יהיה המספר המינמלי של כניסות שונות מ‪0-‬‬
‫• דוגמא‪:‬‬
‫‪q = 2, n = 5‬‬
‫}‪C = span{10101, 11100‬‬
‫‪k = 2, r[C] = 2/5‬‬
‫‪d[C] = d(01001,00000) = 2/5‬‬
‫–‬
‫–‬
‫–‬
‫–‬
‫שאלות מתוך‪:‬‬
‫‪ 2007‬סמסטר א' מועד ב'‬
‫קצת גרפים‪...‬‬
‫נתון גרף מלא על ‪ 2n‬צמתים‪ ,‬עם משקלים אי‪-‬שלילים לקשתות‪.‬‬
‫• נסמן ב‪ m-‬את משקל הזיווג המושלם שמשקלו מינימלי‪.‬‬
‫• נסמן ב‪ c-‬את משקל המעגל ההמילטוני שמשקלו מינימלי‪.‬‬
‫• נסמן ב‪ t-‬את משקל העץ הפורש שמשקלו מינימלי‪.‬‬
‫טענות‪:‬‬
‫)‪ t ≤ c (i‬תמיד‪.‬‬
‫)‪ t ≤ c (ii‬אם ורק אם המשקלים בגרף מקיימים את אי שוויון המשולש‪.‬‬
‫)‪ m ≤ c/2 (iii‬תמיד‪.‬‬
‫)‪ m ≤ c/2 (iv‬אם ורק אם המשקלים בגרף מקיימים את אי שוויון המשולש‪.‬‬
‫אילו מהטענות הנ"ל נכונות?‬
‫ב‪i + iv .‬‬
‫א‪i + iii .‬‬
‫ג‪ii + iii .‬‬
‫ד‪ii + iv .‬‬
‫קצת גרפים‪...‬‬
‫טענות‪:‬‬
‫)‪ t ≤ c (i‬תמיד‪.‬‬
‫)‪ t ≤ c (ii‬אם ורק אם המשקלים בגרף מקיימים את אי שוויון המשולש‪.‬‬
‫)‪ m ≤ c/2 (iii‬תמיד‪.‬‬
‫)‪ m ≤ c/2 (iv‬אם ורק אם המשקלים בגרף מקיימים את אי שוויון המשולש‪.‬‬
‫קצת גרפים‪...‬‬
‫הוכחות‪:‬‬
‫• )‪ t ≤ c (i‬תמיד‪:‬‬
‫אם נסיר קשת אחת ממעגל המילטוני מינימאלי‪,‬‬
‫נקבל עץ פורש‪.‬‬
‫ז"א‪t ≤ c – w)e( ≤ c :‬‬
‫•‬
‫)‪ m ≤ c/2 (iii‬תמיד‪:‬‬
‫מעגל המילטוני מינמאלי הוא איחוד של שני זיווגים מושלמים‪.‬‬
‫ז"א‪m ≤ min{m1,m2} ≤ )m1+m2)/2 = c/2 :‬‬
‫תשובה‪ :‬א‪i + iii .‬‬
‫מסלול פשוט מקסימלי‬
‫מהי המחלקה המינימלית ביחס להכלה אליה שייכת הבעיה הבאה?‬
‫קלט‪ :‬גרף מכוון ‪ G‬ושני צמתים בו ‪ x‬ו‪.y-‬‬
‫שאלה‪ :‬האם כל מסלול פשוט מ‪ x-‬ל‪ y-‬ב‪ G-‬הוא באורך לכל היותר ‪?n/2‬‬
‫א‪L .‬‬
‫ב‪NL .‬‬
‫‪x‬‬
‫‪d‬‬
‫ג‪P .‬‬
‫ד‪NP .‬‬
‫‪a‬‬
‫‪y‬‬
‫ה‪PH .‬‬
‫ו‪ .‬אף אחד מהנ"ל‪.‬‬
‫‪f‬‬
‫‪c‬‬
‫‪b‬‬
‫מסלול פשוט מקסימלי‬
‫שאלה‪ :‬האם כל מסלול פשוט מ‪ x-‬ל‪ y-‬ב‪ G-‬הוא באורך לכל היותר ‪?n/2‬‬
‫רעיון – נשתמש באלגוריתם דומה ל‪ non-Conn-‬ב‪NL-‬‬
‫ז"א נחשב באינדוקציה את‪:‬‬
‫}‪pi = {v | there exists a path from x to v of length i‬‬
‫‪x‬‬
‫‪d‬‬
‫בעיה – אי אפשר לוודא ב‪ NL-‬שהמסלול פשוט‪...‬‬
‫‪a‬‬
‫‪y‬‬
‫‪f‬‬
‫‪c‬‬
‫‪b‬‬
‫מסלול פשוט מקסימלי‬
‫שאלה‪ :‬האם כל מסלול פשוט מ‪ x-‬ל‪ y-‬ב‪ G-‬הוא באורך לכל היותר ‪?n/2‬‬
‫רעיון ‪ – 2‬נראה רדוקציה מ‪:non-HamPath-‬‬
‫נכפיל את מספר הצמתים בלי להוסיף קשתות‪.‬‬
‫בגרף החדש יש מסלול פשוט באורך ‪ n/2‬אמ"ם בגרף המקורי מסלול המילטוני‪.‬‬
‫מסקנה – השפה ב‪coNPC-‬‬
‫’‪x‬‬
‫’‪d‬‬
‫תשובה‪ :‬ה‪PH .‬‬
‫’‪f‬‬
‫‪d‬‬
‫’‪a‬‬
‫’‪y‬‬
‫’‪c‬‬
‫‪x‬‬
‫‪a‬‬
‫‪y‬‬
‫’‪b‬‬
‫‪f‬‬
‫‪c‬‬
‫‪b‬‬
‫מיון‬
‫‪Sorting‬‬
‫• נגיד שפונקציה ‪ f‬חשיבה ב‪ NL-‬אם‪:‬‬
‫• קיימת מכונת טיורינג (א‪-‬דטרמיניסטית) עם‬
‫– סרט קלט (קריאה בלבד)‬
‫– סרט פלט (כתיבה בלבד)‬
‫– וסרט עבודה (מוגבל במקום )‪.)O(lg n‬‬
‫• בהינתן ‪ x‬על סרט הקלט‪ ,‬המכונה‪:‬‬
‫– מחזירה על סרט הפלט את )‪ f(x‬ועוברת למצב ‪YES‬‬
‫– או מחזירה פלט כלשהו ועוברת למצב ‪,Quit‬‬
‫– ולכל קלט יש לפחות ריצה אחת שבסופה המכונה במצב ‪.YES‬‬
‫מיון‬
‫‪Sorting‬‬
‫‪ Dsort‬היא הבעיה הבאה‪:‬‬
‫• קלט‪ :‬גרף מכוון ‪ G‬וצומת שלו ‪.s‬‬
‫• פלט‪ :‬רשימה של כל הצמתים ממוינים לפי מרחקם מ‪.s-‬‬
‫– אם לכמה צמתים יש את אותו מרחק מ‪ s-‬אז המיון הוא לפי סדר‬
‫לקסיקוגרפי עולה‪.‬‬
‫– (תזכורת‪ :‬מרחק מצומת ‪ s‬לצומת ‪ v‬הוא אורך המסלול הקצר‬
‫ביותר מ‪ s-‬ל‪.)v-‬‬
‫• צ"ל‪ Dsort :‬חשיבה ב‪.NL-‬‬
‫מיון‬
‫‪Sorting‬‬
‫• פלט‪ :‬רשימה של כל הצמתים‬
‫ממוינים לפי מרחקם מ‪.s-‬‬
‫‪s‬‬
‫‪d‬‬
‫‪a‬‬
‫‪e‬‬
‫• לדוגמא‪:‬‬
‫– )‪(s,a,c,d,e,f,b‬‬
‫– )‪(s,a,d,c,f,e,b‬‬
‫‪f‬‬
‫‪c‬‬
‫‪b‬‬
‫מיון‬
Sorting
:‫• לדוגמא‬
s
(s,a,c,d,e,f,b) –
(s,a,d,c,f,e,b) –
d
a
:‫• נסמן‬
e
rk = {v | d)s,v( ≤ k}
b
c
f
‫• ואז באופן כללי נקבל‬
:‫שתוצאת המיון היא‬
(s=r0,r1\r0,…,rn\rn-1,V\rn)
‫מיון‬
‫‪Sorting‬‬
‫‪d‬‬
‫• תזכורת – הוכחת ‪:non-Conn ϵ NL‬‬
‫בונים באינדוקציה עד ל‪...rk-‬‬
‫– לכל צמת ‪ v‬ב‪ rk-‬מראים מסלול באורך ‪k‬‬
‫– לכל צמת ‪ u‬לא ב‪ ,rk-‬מראים |‪ |rk-1‬צמתים‬
‫ב‪ rk-1-‬שהם לא שכנים של ‪u‬‬
‫• אנחנו רוצים – עד ל‪:rk\rk-1-‬‬
‫‪a‬‬
‫‪e‬‬
‫‪f‬‬
‫– לכל צמת ‪ v‬ב‪ rk-1-‬מראים מסלול באורך ‪k-1‬‬
‫– לכל צמת ‪ u‬לא ב‪ ,rk-‬מראים |‪ |rk-1‬צמתים‬
‫ב‪ rk-1-‬שהם לא שכנים של ‪u‬‬
‫– לכל צמת ‪ w‬ב‪ rk\rk-1-‬מראים |‪ |rk-2‬צמתים‬
‫ב‪ rk-2-‬שהם לא שכנים של ‪ + w‬מסלול באורך ‪k‬‬
‫• סיבוכיות זכרון (סרט עבודה) – ))‪O(log(n‬‬
‫‪s‬‬
‫‪c‬‬
‫‪b‬‬
‫מיון‬
‫‪Sorting‬‬
‫• ‪– Dsort ϵ NL‬‬
‫נתאר מ"ט א‪-‬דטרמיניסטית ‪M‬‬
‫שתפתור את ‪:Dsort‬‬
‫– ‪" M‬תנחש" (חישוב א"ד) את העד‬
‫– ‪ M‬תדפיס את תוצאת המיון לסרט הפלט‬
‫– אם העד חוקי‪ M ,‬תקבל‪ ,‬אחרת תדחה‬
‫‪s‬‬
‫‪d‬‬
‫‪a‬‬
‫‪e‬‬
‫‪f‬‬
‫‪c‬‬
‫‪b‬‬
‫‪Unique Game‬‬
‫• נניח שלכל ‪ ε > 0‬קיים ‪ k‬כך ש‪:gap-kUG[ε,1- ε] ϵ NP-hard -‬‬
‫הראו‪ ,‬ללא שימוש במשפט ה‪ ,PCP-‬שבעיית ה‪ Clique-‬היא ‪ NP‬קשה‬
‫לקרוב לכל קבוע‪.‬‬
‫‪x‬‬
‫‪u‬‬
‫})‪πu,v = {(a,a),(b,c)(c,b‬‬
‫‪w‬‬
‫‪ – Clique‬מקסימום צמתים שכנים‬
‫‪v‬‬
‫‪ – UG‬מקסימום קשתות‬
‫שמסופקות במקביל‬
‫‪Unique Game‬‬
‫• רדוקציה מ‪ gap-UG-‬ל‪:gap-Clique-‬‬
‫– ניצור צמת בגרף הקליק לכל (קשת ‪ +‬צביעה חוקית של צמתיה) בגרף ה‪UG-‬‬
‫– נחבר צמתים בקשת בגרף הקליק אמ"ם הצביעות לא סותרות בגרף ה‪UG-‬‬
‫‪x‬‬
‫‪u,v‬‬
‫‪a,a‬‬
‫‪u,v‬‬
‫‪b,c‬‬
‫‪x,w‬‬
‫‪a,c‬‬
‫‪u,x‬‬
‫‪a,b‬‬
‫סיבוכיות – זמן פולינומיאלי‬
‫‪u‬‬
‫})‪πu,v = {(a,a),(b,c)(c,b‬‬
‫‪w‬‬
‫‪v‬‬
‫]‪gap-kUG[ε,1- ε] ≤ gap-CLIQUE[ε/k,(1- ε)/k‬‬
‫• נשים לב כי |‪|VCLIQUE| = k|EUG‬‬
‫• נכונות‪:‬‬
‫– נאותות – אם קיימת קליקה בגודל )‪ ,(ε/k‬אז הצביעה של ה‪UG-‬‬
‫המתאימה מספקת ‪ ε‬מהאילוצים‪.‬‬
‫– שלמות – אם קיימת צביעה שמספקת )‪ (1-ε‬מהאילוצים‪ ,‬אז‬
‫הצמתים המתאימים לקשתות שמסופקות יוצרים קליקה של‬
‫‪ (1-ε)k‬צמתים‪.‬‬
‫‪x‬‬
‫‪u,v‬‬
‫‪a,a‬‬
‫‪u,v‬‬
‫‪b,c‬‬
‫‪x,w‬‬
‫‪a,c‬‬
‫‪u,x‬‬
‫‪a,b‬‬
‫‪u‬‬
‫})‪πu,v = {(a,a),(b,c)(c,b‬‬
‫‪w‬‬
‫‪v‬‬
‫תודה‬
‫ובהצלחה‬