440 likes | 608 Views
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 >:
E N D
PCP Theorem proof:Gap Amplification(The Powering Stage) Gap Amplification by Irit Dinur Improved by J. Radakrishnan Presentation by: Jonathan Heimann
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 eE, Ce∑х∑. Example: ∑ = {0,1,2} v = 0 U = 1 U = 2
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)
Road Map Slide inspired by Michal Rosen & Adi Adiv • 1) Preparation: • Degree reduction • Expandering • 2) Powering • 3) ∑ -reduce
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’’ לא "גדול יותר מדי":
# “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
הגדרה - הילוך מקרי • A.S.R.W – After Stopping Random Walk • B.S.R.W – Before Stopping Random Walk Let G=(V,E) be a regular graph
הבנייה של G’ נזכור שהקלט הוא: (G,C) - גרף G עם אילוצים C וא"ב ∑ - G הוא d-regularexpander עם הערכים: (n,d,λ) נבנה גרף G’: 1) נבחר קבוע t טבעי. יסתבר ש: t=106מספיק טוב. 2) V’=V
הבנייה של G’3) הא"ב שלנו יהיה ∑’ כאשר: ∑’ = ∑1+d1+d2+…+dt • בהצבה ל-G’ כל קודקוד מקבל אות אחת מתוך ∑’ • כל אות ב- ∑’ היא בעצם מחרוזת של אותיות מ- ∑ באורך 1+d1+d2+…+dt= קבוע(שכן t, d, ∑ קבועים) • הגרף G הואd -רגולרי ברמה ה-i ישנם diקודקודים • אות אחת ב- ∑’ תשמור מידע על כל השכנים של קודקוד שבמרחק עד t ממנו. • כאשר נבנה השמה ‘:V ∑’ לגרף G’, נאמר ש: '(v)u זה מה שקודקוד v חושב על קודקוד u
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
הבנייה של G’4) בניית הקשתות • על כל מסלול ב- G מ- a ל- b, תהה קשת ב-G’. • לכל קשת ב-G’ יש משקל שמייצג את הסיכוי שהמסלול A.S.R.W יתחיל מ-a ויסתיים ב-b. • (ייתכנו קשתות מקבילות) • המשקל על קשת מייצג "עד כמה הקשת משמעותית" • קשת ב-G’ תקבל בירושה את האילוצים של כל הקשתות במסלול שהיא מייצגת ב-G
a c b d e f a c b d e f הבנייה של G’4) בניית הקשתותדוגמה דוגמה: לחלק מהבנייה של G’: t=2 (or 3, or 4, or const…) GG’
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”
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 ={(0cbd , b0ad)} 2 Ca,b 1 דוגמה לצורת קריאה של אות ל-a ו-b a: acebd b: bcfad
הבנייה של G’4) בניית הקשתותהגדרה של קשת "רעה" קשת (a,b) E ב-G’ תקרא רעה אם לא מתקיים: 1) a,b "מסכימים" על סביבתם: ז"א:'(b)v='(a)vלכל קודקוד v שבמרחק עד t 2) לכל צעד uv במסלול בגרף 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
הבנייה של 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…
הבנייה של G’בעיות קריטיות בבנייה 1)G’ גדל ב- (n2), רצינו O(n) 1) פיתרון: נבנה גרף G’’ כמו G’, רק שנחסום כל הילוך מקרי ב-B. (למעשה, הקבוע: t( B=(10ln |∑|יספיק לנו) 2)נתקענו עם משקלים 2) פיתרון: פיצול המשקלים לקשתות מקבילות
הבנייה של G’’ מתוך G’דוגמה דוגמה: לחלק מגרפים בבנייה של G’’:G’ B=2 G’G’’ b c a d e b b c c a a d d e e
הסיכוי שקשת בגרף G’ תיבחר בהילוך מקרי מסוג A.S.R.W בגרף G ותהה קשת רעה הסיכוי שקשת ב-G’ שנבחרה ביחס למשקלים תהה רעה UNSAT(G’) = = נקודה חשובה לגבי G’בהינתן השמה: למה?! • נזכור כי המשקל על קשת בגרף G’ מייצג בעצם כמה קשתות מקבילות היא "שווה".
מה נשאר לנו להוכיח? UNSAT(G’’) ≥[t/O(1)]ּmin{UNSAT(G),1/t} שזה בעצם כמעט הכל... שאלה: א) מדוע על כל מסלול a- - ->b בגרף G, ישנה רק קשת אחת ולא שתיים, שכן מה אם הסיכוי להגיע מ-a ל-b שונה מהסיכוי להגיע מ-b ל-a? ב) כיצד נקבע משקלה? (לפי a- ->b או לפי b- ->a) רמז: הגרף רגולרי
# “bad” edges # all edges ההשמה ' - הגדרה תהי ‘:V’|∑‘|השמה ל-G’ המספקת מספר קשתות מקסימאלי ז"א, נקבל שלהצבה ‘ : UNSAT(G’)= תזכורת: '(v) = השמה ל-v מתוך ∑’ '(v)u = איזה ערך v חושב ש- u מקבל
ההשמה (לא תג) - הבנייה נבנה :V|∑| השמה לגרף G כך: אינטואיציה: (u) = מה ש"רוב" השכנים "חושבים" על קודקוד u אינטואיציה מדויקת יותר: ככל שהמשקל "של שכן" גדול יותר, כך דעתו משפיעה יותר ' השמה ל-G’ המספקת מקסימום קשתות '(v) = השמה ל-v מתוך ∑’ '(v)u = איזה ערךv חושב ש- u מקבל
ההשמה (לא תג) – הבנייההבנייה הפורמאלית תזכורת: הילוך מקרי מסוג B.S.R.W הינו הילוך מקרי בגרף מקודקוד v מסוים תוך סיכוי של 1/t לעצור בכל צעד (v) מתקבלת כך: לכל קודקוד wV נסתכל על הסיכוי שיתקבל בהילוך מקרי (מסוג (B.S.R.W מקודקוד v בגרף Gשאורכו חסום ב-t(אורכו של ההילוך המקרי כמובן) הערך של (v) נגזר באופן יחסימההסתברות והדעה של w על v בהשמה ' ' השמה ל-G’ המספקת מינימום קשתות '(v) = השמה ל-v מתוך ∑’ '(v) u = איזה ערך v חושב ש- u מקבל
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
# “bad” edges # all edges ההשמה (לא תג) – הבנייההערות • ההשמה נקבעת באופן חד-משמעי לאחר שההשמה ' נקבעת • להשמה מתקיים: UNSAT(G) v)) = מה "רוב" הקודקודים במרחק t מ-v חושבים עליו בהשמה ' ' השמה ל-G’ המספקת מינימום קשתות '(v) = השמה ל-v מתוך ∑’ '(v)u = איזה ערך v חושב ש- u מקבל
ההשמה (לא תג) – הבנייהשאלה שאלה: תנו חסם תחתון ל: 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 מקבל
ההגדרה של הקבוצה F נגדיר קבוצת קשתות Gf כך שכל קשת שההשמה אינה מספקת נמצאת ב- f נשים כי: UNSAT(G)/|E|| f| תהי F הקבוצה הבאה: נבחר קשת כלשהי מתוך f ונתעלם מכך שהיא לא מסתפקת. נבצע זאת עד שנקבל קבוצה f EF בגודל UNSAT(G)
a c b d e f a c b d e f דוגמה אפשרית לבחירת הקבוצה F דוגמה ספציפית אפשרית לבחירת F: נתון שהקשתות הלא מסופקות ב-G ע"י בצבע אדום: G; fedges are in redG; Fedges are in red
הגדרה – צעד faulty יהי מסלול מ-a ל-b שנבחר בהילוך מקרי בגרף G, ו- uv צעד בתוכו. צעד uv בהילוך מקרי בגרף 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
הגדרה – צעד faultyהערות 1) אם צעד uv בהילוך מקרי הוא faulty, אז כל צעד uv אחר בהילוך זה יהיה 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, ו- uv צעד בתוכו. צעד uv בהילוך מקרי בגרף G ייקרא faultyאם: 1)(u,v) F 2) distG(u,a) t && ‘(a)u = (u) 3) distG(v,b) t && ‘(b)v = (v)
הגדרה – N הגדרה: יהי N משתנה מקרי כך ש: N=#faulty steps in A.S.R.W או במילים אחרות: א) בחר קודקוד a באופן מקרי מתוך G. ב) בצע הילוך מקרי מ-a כך שבכל צעד נעצור בסיכוי 1/t. ג) N = מספר הצעדים מסוג faulty שביצענו בהילוך המקרי הנ"ל. יהי מסלול מ-a ל-b שנבחר בהילוך מקרי בגרף G, ו- uv צעד בתוכו. צעד uv בהילוך מקרי בגרף 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
הסיכוי שקשת בגרף 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’) קבוצת המקרים באגף שמאל מכילה קבוצת המקרים באגף ימין
מה נשאר לנו להוכיח? Pr [N>0] [t/O(1)]ּmin{UNSAT(G),1/t} לא מדוייק! רצינו לחסום את UNSAT(G’’), ואילו האי-שוויון למעלה מהווה חסם ל- UNSAT(G’). נתחיל להוכיח בשביל UNSAT(G’), ובהרצאה הבאה נהפוך את ההוכחה לחסם על UNSAT(G’’) כנדרש.
מה אנחנו באמת בונים, ומה רק חלק מההוכחה?
אי-שוויון קושי-שוורץ ∑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
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) הוכחנו בשיקופית הקודמת
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 uv E : #faulty uv steps] = = E[over all uvF : #fauly uv steps] [#possible steps F]ּminuvF{E[#faulty uv stepF]}= = 2|F|ּminuvF{E[#faulty uv step F]} If we prove that: minuvF {E[#faulty uv step F]} [t/(8|∑|2)ּ[(1/|E|) We get that: E[N] [t/4|∑|2]ּ[|F|/|E|] as required
Lemma:1) E[N] [t/4|∑|2]ּ[|F|/|E|]minuvF{E[#faulty uv step F]} [t/(8|∑|2)ּ[(1/|E|) הערה: נשים לב שאם נוכיח את החסם הזה כחסם תחתוןלכל ][uv F faulty step - סיימנו. לכל צעד uv F מתקיים: E[#faulty uv steps] = E[A] = ∑ E[A|B(k)]ּPr[B(k)] ידוע על תוחלת כי: =∑E[#faulty uv steps |exactly k uv steps]ּPr[exactly k uv steps] נזכור כי כאשר צעד uv הוא faulty בהילוך מקרי, כל צעד בהילוך זה יהיה faulty גם כן, ולכן נקבל: E[#faulty uv steps | exactly k uv steps] = לפי "פתיחה" של התוחלת = k * Pr[uv steps are faulty | exactly k uv steps] נציב ב- ונקבל: =∑k*Pr[uv steps are faulty |exactly k uv steps]ּPr[exactly k uv steps] 1 k 1
Lemma:1) E[N] [t/4|∑|2]ּ[|F|/|E|]minuvF{E[#faulty uv step F]} [t/(8|∑|2)ּ[(1/|E|)Continue – 2 out of 3 סה"כ קיבלנו (בשקופית הקודמת): E[#faulty uv steps]= =∑k * Pr[uv steps are faulty|exactly k uv steps] ּPr[exactly k uv steps] נטען ונוכיח בהרצאה הבאה: P[uv steps are faulty | exactly k uv steps 1/(4|∑|2) נציב ב- ונקבל: =∑1/(4|∑|2) * k ּPr[exactly k uv steps] = הוצאנו קבוע מסכום = = 1/(4|∑|2) * ∑ kּPr[exactly k uv steps] = = 1/(4|∑|2) * E[#of uv steps (Not only faulty)] = 1 2 1
Lemma:1) E[N] [t/4|∑|2]ּ[|F|/|E|]minuvF{E[#faulty uv step F]} [t/(8|∑|2)ּ[(1/|E|)Continue – 3 out of 3 = 1/(4|∑|2) * E[#of uv steps(Not only faulty)] = = 1/(4|∑|2) * E[∑1[uv is the ith step]] = 1) הסיכויים שווים לכל צעד i להיות דווקא הצעד uv 2) מספר הצעדים הוא בתוחלת = t = 1/(4|∑|2) *t ּ E[1[uv is the ith step]] = בזכות היות הגרף G רגולרי, הסיכוי שנעבור על קשת מסוימת בהילוך מקרי = 1/|E| הסיכוי לכל צעד uv בהתאם = 1/(2|E|) = 1/(4|∑|2) * t /(2|E|) i
1) E[N] [t/4|∑|2]ּ[|F|/|E|]minuvF{E[#faulty uv step F]} [t/(8|∑|2)ּ[(1/|E|) =1/(4|∑|2) * E[#of uv steps(Not only faulty)] = =1/(4|∑|2)*∑E[#uv 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
לסיכום – מה עשינו עד כה? • קיבלנו גרף G • בנינו G’ & G’’, שם כל קשת היא הילוך מקרי ב-G • בחרנו את ההצבה ' - ההצבה הכי גרועה לנו • ממנה בנינו הצבה ל-G • התחלנו לחסום את מספר הקשתות הרעות בגרף G’ מלמטה עשינו זאת ע"י הסתכלות על צעדי faulty הגורמים לקשת ב-G’ להיות רעה
ומה בהמשך? • נסיים לחסום את E[N] • באמצעותו נקבל חסם תחתון גם ל-E[N*] המתאים ל-G’’ • נוכיח חסם עליון (על המכנה) E[(N*)²] • נוכל לאיים על גרפים תועים שנגדיל להם את ה-UNSAT ובכך לסחוט מהם טובות הנאה מפוקפקות • נתגאה ביכולותינו החדשות ונפצח במחול ובזמרה בחוצות האוניברסיטה • נתקדם צעד נוסף לעבר סוף הוכחת משפט ה – PCP!
The End • The End