1 / 44

PCP Theorem proof: Gap Amplification (The Powering Stage)

PCP Theorem proof: Gap Amplification (The Powering Stage). Gap Amplification by Irit Dinur Improved by J. Radakrishnan Presentation by: Jonathan Heimann. C u,v = {(2,1), (1,0)}. U. V. Constraint Graph (CG). Slide by Michal Rosen & Adi Adiv. Input: < G=(V,E) , ∑ , C >:

gizela
Download Presentation

PCP Theorem proof: Gap Amplification (The Powering Stage)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PCP Theorem proof:Gap Amplification(The Powering Stage) Gap Amplification by Irit Dinur Improved by J. Radakrishnan Presentation by: Jonathan Heimann

  2. Cu,v = {(2,1), (1,0)} U V Constraint Graph (CG) Slide by Michal Rosen & Adi Adiv Input: <G=(V,E), ∑, C>: G = (V,E) undirected graph , ∑alphabet, C constraintswhere for every eE, Ce∑х∑. Example: ∑ = {0,1,2} v = 0 U = 1 U = 2

  3. UNSAT(CG) Slide by Michal Rosen & Adi Adiv UNSAT(CG) = the smallest number of: # unsatisfied edges #all edges UNSAT(CG) = minσ(|{Cu,v: (σ(u),σ(v))C(u,v)}|/m)

  4. Road Map Slide inspired by Michal Rosen & Adi Adiv • 1) Preparation: • Degree reduction • Expandering • 2) Powering • 3) ∑ -reduce

  5. The Amplification Lemma קלט:(G,C)- גרף G ואילוצים C (=constraints ) כאשר G הואd-regularexpander עם הערכים:(n,d,λ) פלט:גרף אילוצים (G’’,C’’) המקיים: UNSAT(G’’) ≥ [t/O(1)]ּmin{UNSAT(G),1/t} וכן G’’ לא "גדול יותר מדי":

  6. # “bad” edges UNSAT = # all edges מה נרוויח מכל זה? Slide inspired by Michal Rosen & Adi Adiv UNSAT(after log(m) steps) = 1/m  2/m 22/m … 2log(m)/m = = const ז"א, אם נבצע את כל התהליךO(log(m)) נקבל גרף "לא גדול מדי" כך ש UNSAT(final G) הוא קבוע שאינו תלוי ב-m. ולכן: UNSAT החדש אינו תלוי במספר הקשתות כנדרש. תזכורת מהו "התהליך": 1) Preparation (Degree reduction + Expandering) 2)Powering 3) ∑ reduce Log(m) X

  7. הגדרה - הילוך מקרי • A.S.R.W – After Stopping Random Walk • B.S.R.W – Before Stopping Random Walk Let G=(V,E) be a regular graph

  8. הבנייה של G’ נזכור שהקלט הוא: (G,C) - גרף G עם אילוצים C וא"ב ∑ - G הוא d-regularexpander עם הערכים: (n,d,λ) נבנה גרף G’: 1) נבחר קבוע t טבעי. יסתבר ש: t=106מספיק טוב. 2) V’=V

  9. הבנייה של G’3) הא"ב שלנו יהיה ∑’ כאשר: ∑’ = ∑1+d1+d2+…+dt • בהצבה ל-G’ כל קודקוד מקבל אות אחת מתוך ∑’ • כל אות ב- ∑’ היא בעצם מחרוזת של אותיות מ- ∑ באורך 1+d1+d2+…+dt= קבוע(שכן t, d, ∑ קבועים) • הגרף G הואd -רגולרי  ברמה ה-i ישנם diקודקודים • אות אחת ב- ∑’ תשמור מידע על כל השכנים של קודקוד שבמרחק עד t ממנו. • כאשר נבנה השמה ‘:V ∑’ לגרף G’, נאמר ש: '(v)u זה מה שקודקוד v חושב על קודקוד u

  10. a c b d e f הבנייה של G’3) הא"ב שלנו יהיה ∑’ כאשר: ∑’ = ∑1+d1+d2+…+dtדוגמה להשמה: דוגמה: חלק מגרף G’: t=2 ∑={0,1} d=3 |∑’|=|∑|1+3+9=|∑|13 ∑’={0000000000000,000000000001,…,1111111111111} מה a חושב על c= '(a)c = 0 לקודקוד :a 10011…0 a=1 b=0 c=0 e=1 d=1 f= 13

  11. הבנייה של G’4) בניית הקשתות • על כל מסלול ב- G מ- a ל- b, תהה קשת ב-G’. • לכל קשת ב-G’ יש משקל שמייצג את הסיכוי שהמסלול A.S.R.W יתחיל מ-a ויסתיים ב-b. • (ייתכנו קשתות מקבילות) • המשקל על קשת מייצג "עד כמה הקשת משמעותית" • קשת ב-G’ תקבל בירושה את האילוצים של כל הקשתות במסלול שהיא מייצגת ב-G

  12. a c b d e f a c b d e f הבנייה של G’4) בניית הקשתותדוגמה דוגמה: לחלק מהבנייה של G’: t=2 (or 3, or 4, or const…) GG’

  13. f e a c b d e f a c b d הבנייה של G’4) בניית הקשתותדוגמה - 2 דוגמה: לבניית שתי קשתות של G’: t=2 (or 3, or 4, or const…) GG’ w1>w2 w2 3 2 5 4 10 w1 8 7 6 1 9 2 1 “Start”

  14. c d b a f e e b c a f d הבנייה של G’שקופית בוטלה4) בניית הקשתותדוגמה להורשת אילוצים דוגמה להורשת אילוצים: t=2 ∑={0,1} d=2 |∑’|=|∑|1+2+4=|∑|7 ∑’={0000000,0000001,…,1111111} GG’ Ca,c = {(0,0)} Cc,b = {(0,1),(0,0)} a: acebd b:bcf ad Ca,b ={(0cbd , b0ad)} 2 Ca,b 1 דוגמה לצורת קריאה של אות ל-a ו-b a: acebd b: bcfad

  15. הבנייה של G’4) בניית הקשתותהגדרה של קשת "רעה" קשת (a,b) E ב-G’ תקרא רעה אם לא מתקיים: 1) a,b "מסכימים" על סביבתם: ז"א:'(b)v='(a)vלכל קודקוד v שבמרחק עד t 2) לכל צעד uv במסלול בגרף G מתקיים: א) distG(u,a)  t &&distG(v,b)  t ב) האילוץ על הקשת (u,v) מסתפק b a '(b)v ='(a)v '(v) = השמה ל-v מתוך ∑’ '(v)u = איזה ערך v חושב ש- u מקבל distG(v,u) = המרחק בין v ל- uבגרף G

  16. הבנייה של G’מה השגנו? Slide inspired by Michal Rosen & Adi Adiv What did we wish for? What do we have? UNSAT(G’) |G’| Deg(G’) |∑’| UNSAT(G’) |G’| Deg(G’) |∑’| Constant factor: at the future Any wished constant factor (n2) –Too high Constant factor Up to Constant factor If |G’| is small enough, we’ll be just fine… goes up – problem, but not ours… goes up – problem, but not ours…

  17. הבנייה של G’בעיות קריטיות בבנייה 1)G’ גדל ב- (n2), רצינו O(n) 1) פיתרון: נבנה גרף G’’ כמו G’, רק שנחסום כל הילוך מקרי ב-B. (למעשה, הקבוע: t( B=(10ln |∑|יספיק לנו) 2)נתקענו עם משקלים 2) פיתרון: פיצול המשקלים לקשתות מקבילות

  18. הבנייה של G’’ מתוך G’דוגמה דוגמה: לחלק מגרפים בבנייה של G’’:G’ B=2 G’G’’ b c a d e b b c c a a d d e e

  19. הסיכוי שקשת בגרף G’ תיבחר בהילוך מקרי מסוג A.S.R.W בגרף G ותהה קשת רעה הסיכוי שקשת ב-G’ שנבחרה ביחס למשקלים תהה רעה UNSAT(G’) = = נקודה חשובה לגבי G’בהינתן השמה: למה?! • נזכור כי המשקל על קשת בגרף G’ מייצג בעצם כמה קשתות מקבילות היא "שווה".

  20. מה נשאר לנו להוכיח? UNSAT(G’’) ≥[t/O(1)]ּmin{UNSAT(G),1/t} שזה בעצם כמעט הכל... שאלה: א) מדוע על כל מסלול a- - ->b בגרף G, ישנה רק קשת אחת ולא שתיים, שכן מה אם הסיכוי להגיע מ-a ל-b שונה מהסיכוי להגיע מ-b ל-a? ב) כיצד נקבע משקלה? (לפי a- ->b או לפי b- ->a) רמז: הגרף רגולרי

  21. # “bad” edges # all edges ההשמה ' - הגדרה תהי ‘:V’|∑‘|השמה ל-G’ המספקת מספר קשתות מקסימאלי ז"א, נקבל שלהצבה ‘ : UNSAT(G’)= תזכורת: '(v) = השמה ל-v מתוך ∑’ '(v)u = איזה ערך v חושב ש- u מקבל

  22. ההשמה  (לא תג) - הבנייה נבנה :V|∑| השמה לגרף G כך: אינטואיציה: (u) = מה ש"רוב" השכנים "חושבים" על קודקוד u אינטואיציה מדויקת יותר: ככל שהמשקל "של שכן" גדול יותר, כך דעתו משפיעה יותר ' השמה ל-G’ המספקת מקסימום קשתות '(v) = השמה ל-v מתוך ∑’ '(v)u = איזה ערךv חושב ש- u מקבל

  23. ההשמה  (לא תג) – הבנייההבנייה הפורמאלית תזכורת: הילוך מקרי מסוג B.S.R.W הינו הילוך מקרי בגרף מקודקוד v מסוים תוך סיכוי של 1/t לעצור בכל צעד (v) מתקבלת כך: לכל קודקוד wV נסתכל על הסיכוי שיתקבל בהילוך מקרי (מסוג (B.S.R.W מקודקוד v בגרף Gשאורכו חסום ב-t(אורכו של ההילוך המקרי כמובן) הערך של (v) נגזר באופן יחסימההסתברות והדעה של w על v בהשמה ' ' השמה ל-G’ המספקת מינימום קשתות '(v) = השמה ל-v מתוך ∑’ '(v) u = איזה ערך v חושב ש- u מקבל

  24. a c b d e ההשמה  (לא תג) – הבנייהדוגמה דוגמה: חלק מגרף G’: Sum (votes=1) =0.45 Sum (votes=0) =0.55  (a)=0 0.1 0.2 0.25; 0.3 0.15

  25. # “bad” edges # all edges ההשמה  (לא תג) – הבנייההערות • ההשמה  נקבעת באופן חד-משמעי לאחר שההשמה ' נקבעת • להשמה  מתקיים:  UNSAT(G) v))  = מה "רוב" הקודקודים במרחק t מ-v חושבים עליו בהשמה ' ' השמה ל-G’ המספקת מינימום קשתות '(v) = השמה ל-v מתוך ∑’ '(v)u = איזה ערך v חושב ש- u מקבל

  26. ההשמה  (לא תג) – הבנייהשאלה שאלה: תנו חסם תחתון ל: Pr [‘(w)v = (v)] תשובה: 1 |∑| כאשר קודקודw נבחר בהילוך מקרי מסוג B.R.S.W המתחיל מ-v וחסום ב-t צעדים תזכורת: הילוך מקרי מסוג B.S.R.W הינו הילוך מקרי בגרף מקודקוד v מסוים תוך סיכוי של 1/t לעצור בכל צעד v))  = מה "רוב" הקודקודים במרחק t מ-v חושבים עליו בהשמה ' ' השמה ל-G’ המספקת מינימום קשתות '(v) = השמה ל-v מתוך ∑’ '(v)u = איזה ערך v חושב ש- u מקבל

  27. ההגדרה של הקבוצה F נגדיר קבוצת קשתות  Gf כך שכל קשת שההשמה  אינה מספקת נמצאת ב- f נשים כי: UNSAT(G)/|E|| f| תהי F הקבוצה הבאה: נבחר קשת כלשהי מתוך f ונתעלם מכך שהיא לא מסתפקת. נבצע זאת עד שנקבל קבוצה f EF בגודל UNSAT(G)

  28. a c b d e f a c b d e f דוגמה אפשרית לבחירת הקבוצה F דוגמה ספציפית אפשרית לבחירת F: נתון שהקשתות הלא מסופקות ב-G ע"י  בצבע אדום: G; fedges are in redG; Fedges are in red

  29. הגדרה – צעד faulty יהי מסלול מ-a ל-b שנבחר בהילוך מקרי בגרף G, ו- uv צעד בתוכו. צעד uv בהילוך מקרי בגרף G ייקרא faultyאם: 1)(u,v)  F 2) distG(u,a) t && ‘(a)u = (u) 3) distG(v,b) t && ‘(b)v = (v) F = קבוצת קשתות בגרף G שאינן מסתפקות בהשמה  |F|=UNSAT(G) v))  = מה "רוב" הקודקודים במרחק t מ-v חושבים עליו בהשמה ' ' השמה ל-G’ המספקת מינימום קשתות '(v) = השמה ל-v מתוך ∑’ '(v)u = איזה ערך v חושב ש- u מקבל distG(v,u) = המרחק בין v ל- uבגרף G

  30. הגדרה – צעד faultyהערות 1) אם צעד uv בהילוך מקרי הוא faulty, אז כל צעד uv אחר בהילוך זה יהיה faulty גם כן. 2) אם קשת e  G’ מכילה צעד faultyב-G, אז קשת זו בהכרח רעה הכיוון ההפוך אינו נכון. תזכורת: ההגדרה של צעד faulty תזכורת: ההגדרה של קשת רעה אם לא מתקיים: קשת (a,b) E ב-G’ תקרא רעה אם: 1) a,b "מסכימים" על סביבתם: ז"א:'(b)v ='(a)vלכל קודקוד v שבמרחק עד t 2) לכל צעד במסלול בגרף G מתקיים: א) distG(u,a)  t &&distG(v,b)  t ב) האילוץ על הקשת אינו מסתפק יהי מסלול מ-a ל-b שנבחר בהילוך מקרי בגרף G, ו- uv צעד בתוכו. צעד uv בהילוך מקרי בגרף G ייקרא faultyאם: 1)(u,v)  F 2) distG(u,a) t && ‘(a)u = (u) 3) distG(v,b) t && ‘(b)v = (v)

  31. הגדרה – N הגדרה: יהי N משתנה מקרי כך ש: N=#faulty steps in A.S.R.W או במילים אחרות: א) בחר קודקוד a באופן מקרי מתוך G. ב) בצע הילוך מקרי מ-a כך שבכל צעד נעצור בסיכוי 1/t. ג) N = מספר הצעדים מסוג faulty שביצענו בהילוך המקרי הנ"ל. יהי מסלול מ-a ל-b שנבחר בהילוך מקרי בגרף G, ו- uv צעד בתוכו. צעד uv בהילוך מקרי בגרף G ייקרא faultyאם: 1)(u,v)  F 2) distG(u,a) t && ‘(a)u = (u) 3) distG(v,b) t && ‘(b)v = (v) תזכורות: תזכורת: ההגדרה של צעד faulty F = קבוצת קשתות בגרף G שאינן מסתפקות בהשמה  |F|=UNSAT(G) v))  = מה "רוב" הקודקודים במרחק t מ-v חושבים עליו בהשמה ' ' השמה ל-G’ המספקת מינימום קשתות '(v) = השמה ל-v מתוך ∑’ '(v)u = איזה ערך v חושב ש- u מקבל distG(v,u) = המרחק בין v ל- uבגרף G

  32. הסיכוי שקשת בגרף G’ תיבחר בהילוך מקרי מסוג A.S.R.W בגרף G ותהה קשת רעה הסיכוי שקשת ב-G’ שנבחרה ביחס למשקלים תהה רעה UNSAT(G’) = = לפי הגדרה N=#faulty steps in A.S.R.W מסקנה על המשתנה המקרי N נזכור כי: לכן: UNSAT(G’) =[[כמו למעלהPr = Pr[N>0] UNSAT(G’)  Pr[N>0] במסלול הנבחר בגרף G מסוג A.S.R.W יש קשתfaulty (ולכן הוא מייצג קשת רעה ב-G’) קבוצת המקרים באגף שמאל מכילה קבוצת המקרים באגף ימין

  33. מה נשאר לנו להוכיח? Pr [N>0] [t/O(1)]ּmin{UNSAT(G),1/t} לא מדוייק! רצינו לחסום את UNSAT(G’’), ואילו האי-שוויון למעלה מהווה חסם ל- UNSAT(G’). נתחיל להוכיח בשביל UNSAT(G’), ובהרצאה הבאה נהפוך את ההוכחה לחסם על UNSAT(G’’) כנדרש.

  34. מה אנחנו באמת בונים, ומה רק חלק מההוכחה?

  35. אי-שוויון קושי-שוורץ ∑aibi∑ai2∑bi2 A Lemma in probability Lemma: יהי X משתנה מקרי אי-שלילי, אז מתקיים: Pr[X>0] E[X2] הוכחה: E[X]=E[Xּ1[X>0]]   E[X2] E[(1[X>0])2] = = E[X²]  P[X>0] P[X>0] E[X2] E[X]2 E[X]2

  36. E[N]2 לעבודה... =[t/O(1)]ּ[|F|/|E|] נרצה להוכיח: P[N>0] E[N2] לשם כך נוכיח: 1) E[N]2{[t/O(1)]ּ[|F|/|E|]}2 2) E[N2] [t/O(1)]ּ[|F|/|E|] תזכורת: |F|/|E| = UNSAT(G) הוכחנו בשיקופית הקודמת

  37. Lemma:1) E[N] [t/4|∑|2]ּ[|F|/|E|] Remember we talk about A.S.R.W לפי הגדרה זה קבוע... E[N] = E[#faulty steps] = = E[over all uv E : #faulty uv steps] = = E[over all uvF : #fauly uv steps]  [#possible steps  F]ּminuvF{E[#faulty uv stepF]}= = 2|F|ּminuvF{E[#faulty uv step  F]} If we prove that: minuvF {E[#faulty uv step  F]} [t/(8|∑|2)ּ[(1/|E|) We get that: E[N] [t/4|∑|2]ּ[|F|/|E|] as required

  38. Lemma:1) E[N] [t/4|∑|2]ּ[|F|/|E|]minuvF{E[#faulty uv step  F]} [t/(8|∑|2)ּ[(1/|E|) הערה: נשים לב שאם נוכיח את החסם הזה כחסם תחתוןלכל ][uv  F faulty step - סיימנו. לכל צעד uv  F מתקיים: E[#faulty uv steps] = E[A] = ∑ E[A|B(k)]ּPr[B(k)] ידוע על תוחלת כי: =∑E[#faulty uv steps |exactly k uv steps]ּPr[exactly k uv steps] נזכור כי כאשר צעד uv הוא faulty בהילוך מקרי, כל צעד בהילוך זה יהיה faulty גם כן, ולכן נקבל: E[#faulty uv steps | exactly k uv steps] = לפי "פתיחה" של התוחלת = k * Pr[uv steps are faulty | exactly k uv steps] נציב ב- ונקבל: =∑k*Pr[uv steps are faulty |exactly k uv steps]ּPr[exactly k uv steps] 1 k 1

  39. Lemma:1) E[N] [t/4|∑|2]ּ[|F|/|E|]minuvF{E[#faulty uv step  F]} [t/(8|∑|2)ּ[(1/|E|)Continue – 2 out of 3 סה"כ קיבלנו (בשקופית הקודמת): E[#faulty uv steps]= =∑k * Pr[uv steps are faulty|exactly k uv steps] ּPr[exactly k uv steps] נטען ונוכיח בהרצאה הבאה: P[uv steps are faulty | exactly k uv steps  1/(4|∑|2) נציב ב- ונקבל: =∑1/(4|∑|2) * k ּPr[exactly k uv steps] = הוצאנו קבוע מסכום = = 1/(4|∑|2) * ∑ kּPr[exactly k uv steps] = = 1/(4|∑|2) * E[#of uv steps (Not only faulty)] = 1 2 1

  40. Lemma:1) E[N] [t/4|∑|2]ּ[|F|/|E|]minuvF{E[#faulty uv step  F]} [t/(8|∑|2)ּ[(1/|E|)Continue – 3 out of 3 = 1/(4|∑|2) * E[#of uv steps(Not only faulty)] = = 1/(4|∑|2) * E[∑1[uv is the ith step]] = 1) הסיכויים שווים לכל צעד i להיות דווקא הצעד uv 2) מספר הצעדים הוא בתוחלת = t = 1/(4|∑|2) *t ּ E[1[uv is the ith step]] = בזכות היות הגרף G רגולרי, הסיכוי שנעבור על קשת מסוימת בהילוך מקרי = 1/|E|  הסיכוי לכל צעד uv בהתאם = 1/(2|E|) = 1/(4|∑|2) * t /(2|E|) i

  41. 1) E[N] [t/4|∑|2]ּ[|F|/|E|]minuvF{E[#faulty uv step  F]} [t/(8|∑|2)ּ[(1/|E|) =1/(4|∑|2) * E[#of uv steps(Not only faulty)] = =1/(4|∑|2)*∑E[#uv steps |exactly k steps]ּPr[exactly k steps] = = 1/(4|∑|2)*∑ k/(2|E|)ּ Pr[exactly k steps]= = 1/(4|∑|2)*1/2|E| ּ∑ k ּ Pr[exactly k steps]= = 1/(8|∑|2)*1/|E| ּ t= = t/(8|∑|2)*1/|E| Each step has Pr=1/2|E| A Geometric Expectation

  42. לסיכום – מה עשינו עד כה? • קיבלנו גרף G • בנינו G’ & G’’, שם כל קשת היא הילוך מקרי ב-G • בחרנו את ההצבה ' - ההצבה הכי גרועה לנו • ממנה בנינו הצבה  ל-G • התחלנו לחסום את מספר הקשתות הרעות בגרף G’ מלמטה עשינו זאת ע"י הסתכלות על צעדי faulty הגורמים לקשת ב-G’ להיות רעה

  43. ומה בהמשך? • נסיים לחסום את E[N] • באמצעותו נקבל חסם תחתון גם ל-E[N*] המתאים ל-G’’ • נוכיח חסם עליון (על המכנה) E[(N*)²] • נוכל לאיים על גרפים תועים שנגדיל להם את ה-UNSAT ובכך לסחוט מהם טובות הנאה מפוקפקות • נתגאה ביכולותינו החדשות ונפצח במחול ובזמרה בחוצות האוניברסיטה • נתקדם צעד נוסף לעבר סוף הוכחת משפט ה – PCP!

  44. The End • The End

More Related