1 PCP Theorem proof: Gap Amplification (The Powering Stage) Gap Amplification by Irit Dinur Improved by J. Radakrishnan Presentation by: Jonathan Heimann
Jan 23, 2016
1
PCP Theorem proof:
Gap Amplification(The Powering Stage)
Gap Amplification by Irit Dinur
Improved by J. RadakrishnanPresentation by: Jonathan Heimann
2
Constraint Graph (CG)Input: <G=(V,E), ∑, C >:G = (V,E) undirected graph ,∑ alphabet,C constraints where for every eE,
Ce∑х∑.Example:∑ = {0,1,2}
U
V
Cu,v = {(2,1), (1,0)}
U = 1
v = 0
U = 2
Slide by Michal Rosen & Adi AdivMichal Rosen & Adi Adiv
3
UNSAT(CG)
UNSAT(CG) = the smallest number of:
# unsatisfied edges #all edges
UNSAT(CG) =minσ(|{Cu,v: (σ(u),σ(v))C(u,v)}|/m)
Slide by Michal Rosen & Adi AdivMichal Rosen & Adi Adiv
4
Road Map 1) Preparation:
Degree reduction Expandering
2) Powering
3) ∑ -reduce
Slide inspired by Michal Rosen & Adi AdivMichal Rosen & Adi Adiv
5
C (=constraints ) ואילוצים Gגרף - )G,C( קלט:
)n,d,λ( עם הערכים:d-regulard-regular expanderexpander הואGכאשר המקיים:’’)G’’,C(גרף אילוצים פלט:
UNSAT(G’’) ≥ [t/O(1)]ּmin{UNSAT(G),1/t}
לא "גדול יותר מדי":’’Gוכן
The Amplification Lemma
Input Parameters
Output Parameters
Size of G = O(size(G))
|∑| = const |∑|dt =
cosntDegree, λWe don’t care
thanks to the degree reduction
6
מה נרוויח מכל זה?
UNSAT(after log(m) steps) = 1/m 2/m 22/m … 2log(m)/m = = const
נקבל גרף "לא גדול מדי"O(log(m))ז"א, אם נבצע את כל התהליך.m הוא קבוע שאינו תלוי ב-UNSAT(final G) כך ש
החדש אינו תלוי במספר הקשתות כנדרש.UNSATולכן:
תזכורת מהו "התהליך":1) Preparation (Degree reduction + Expandering) 2) Powering3) ∑ reduce
Slide inspired by Michal Rosen & Adi AdivMichal Rosen & Adi Adiv
# “bad” edges# all
edges
UNSAT=
Log(m) X
7
הגדרה - הילוך מקרי A.S.R.W – After Stopping Random Walk B.S.R.W – Before Stopping Random WalkLet G=(V,E) be a regular graph
A.S.R.WB.S.R.W1) Pick a random vertex aV to start at
Starting from vertex v V
2) Take a step along a random edge out of the current vertex
1) Stop with probability 1/t
3) Decide to stop with probability 1/t.if you didn’t stop, go to step #2
2) Take a step along a random edge out of the current vertex
4) Name the final vertex b3) Go to step #1
8
’Gהבנייה של
נזכור שהקלט הוא:)G,C( - גרףG עם אילוצים C וא"ב ∑
- G הוא d-regular expander :עם הערכים )n,d,λ(
:’Gנבנה גרף מספיק טוב. t=106 טבעי. יסתבר ש: t( נבחר קבוע 1
2 )V’=V
9
’Gהבנייה של d1+d2+…+dt+1∑’ = ∑ כאשר: ∑’( הא"ב שלנו יהיה 3
’∑מתוך כל קודקוד מקבל אות אחת ’Gבהצבה ל-• ∑ היא בעצם מחרוזת של אותיות מ- ∑’כל אות ב- •
קבועים(∑, t, d)שכן = קבוע d1+d2+…+dt+1באורך
di ישנם i ברמה ה--רגולרי d הוא Gהגרף •
קודקודים תשמור מידע על כל השכנים של ∑’אות אחת ב- •
ממנו.tקודקוד שבמרחק עד , נאמר ש:’G לגרף ∑’‘:Vכאשר נבנה השמה •
'(v)u זה מה שקודקוד v חושב על קודקוד u
10
’Gהבנייה של d1+d2+…+dt+1∑’ = ∑ כאשר: ∑’( הא"ב שלנו יהיה 3
דוגמה להשמה:
:’Gמגרף חלק דוגמה: t=2 ∑={0,1} d=3 |∑’|=|∑|1+3+9=|∑|13
∑’={0000000000000,000000000001,…,1111111111111}
c= '(a)c = 0 חושב על aמה
1001110011……00a=1a=1b=0b=0c=0e=1e=1d=1d=1f=f=
a c
bd
e
f
13a:לקודקוד
11
’Gהבנייה של ( בניית הקשתות4
-על כל מסלול בG -מ a -ל b-תהה קשת ב ,G’.
-לכל קשת בG’ יש משקל שמייצג את הסיכוי .b ויסתיים ב-a יתחיל מ-A.S.R.Wשהמסלול
)ייתכנו קשתות מקבילות( המשקל על קשת מייצג "עד כמה הקשת
משמעותית"
-קשת בG’ תקבל בירושה את האילוצים של כל Gהקשתות במסלול שהיא מייצגת ב-
12
’Gהבנייה של ( בניית הקשתות4
דוגמה
:’Gמהבנייה של חלק דוגמה: ל
t=2 (or 3, or 4, or const…)
G G’
a c
bd
e
f
a c
bd
e
f
13
’Gהבנייה של ( בניית הקשתות4
2דוגמה -
:’Gדוגמה: לבניית שתי קשתות של
t=2 (or 3, or 4, or const…)
G G’
a c
bd
e
f
a c
bd
e
f1
2
34 5
678
9
10w2
w11
2
w1 > w2
“Start”
14
שקופית בוטלה ’Gהבנייה של ( בניית הקשתות4
דוגמה להורשת אילוצים
דוגמה להורשת אילוצים:t=2 ∑={0,1} d=2 |∑’|=|∑|1+2+4=|∑|7
∑’={0000000,0000001,…,1111111}
G G’
a c
bd
e
fa c
bd
e
f
Ca,b1
2
Ca,c = {(0,0)}
Cc,b = {(0,1),(0,0)}
a: acebd b:bcf adCa,b ={(0cbd , b0ad)}
aדוגמה לצורת קריאה של אות ל-bו-
a: acebd
b: bcfad
15
’Gהבנייה של ( בניית הקשתות4
"רעההגדרה של קשת "
אם לא מתקיים:רעה תקרא ’G ב-E( a,b)קשת 1 (a,b:מסכימים" על סביבתם" t שבמרחק עד vלכל קודקוד '(b)v = '(a)v ז"א:
מתקיים:G במסלול בגרף uv צעד לכל) 2
distG(u,a) t && distG(v,b) tא)
מסתפק)u,v (ב) האילוץ על הקשת '(v) -השמה ל = v מתוך ∑’
'(v)u איזה ערך = v -חושב ש uמקבל distG(v,u) המרחק בין = v-ל u בגרףG
a b
')b(v = ')a(v
16
’Gהבנייה של מה השגנו?
UNSAT(G’)UNSAT(G’)
|G’||G’|
Deg(G’)Deg(G’)
|∑’||∑’|
Any wished constant factor
UNSAT(G’)UNSAT(G’)
|G’||G’|
Deg(G’)Deg(G’)
|∑’||∑’|
Constant factorConstant factor:: at the futureat the future
(n(n22) – ) – Too highToo high
If |G’| is small enough, If |G’| is small enough, we’ll be just we’ll be just fine……
goes up – problem, goes up – problem, but not ours……
Slide inspired by Michal Rosen & Adi AdivMichal Rosen & Adi Adiv
What do we have?What did we wish for?
goes up – problem, goes up – problem, but not ours……
Constant factor
Up to Constant factor
17
’Gהבנייה של בעיות קריטיות בבנייה
11(( G’ -גדל ב (n(n22)) רצינו , רצינו ,O(n)O(n)
, רק שנחסום כל , רק שנחסום כל ’’GG כמו כמו ’’’’GG נבנה גרף נבנה גרף פיתרון:פיתרון:) ) 11..BBהילוך מקרי ב-הילוך מקרי ב-
יספיק לנו)יספיק לנו)||∑∑ | |tt(( B B)=)=10ln10ln(למעשה, הקבוע: (למעשה, הקבוע:
נתקענו עם משקליםנתקענו עם משקלים ))22
פיתרון: פיצול המשקלים לקשתות מקבילותפיתרון: פיצול המשקלים לקשתות מקבילות) ) 22
18
’G מתוך ’’Gהבנייה של דוגמה
’G’’: Gבבנייה של חלק מגרפים דוגמה: לB=2
G’ G’’
cb
a
e
d
cb
a
e
d
cb
a
e
d
19
’Gנקודה חשובה לגבי בהינתן השמה:
למה?! נזכור כי המשקל על קשת בגרףG’ מייצג בעצם
כמה קשתות מקבילות היא "שווה".
’Gהסיכוי שקשת בגרף תיבחר בהילוך מקרי מסוג
A.S.R.W בגרף G רעהותהה קשת
שנבחרה’Gהסיכוי שקשת ב-רעה ביחס למשקלים תהה
UNSAT)G’(= =
20
מה נשאר לנו להוכיח?
UNSAT(G’’) ≥ [t/O(1)]ּmin{UNSAT(G),1/t}
שזה בעצם כמעט הכל...שזה בעצם כמעט הכל...
שאלה:שאלה:, ישנה רק קשת אחת , ישנה רק קשת אחת GG בגרף בגרף a- - ->ba- - ->bא) מדוע על כל מסלול א) מדוע על כל מסלול
שונה מהסיכוי שונה מהסיכוי bb ל- ל-aaולא שתיים, שכן מה אם הסיכוי להגיע מ-ולא שתיים, שכן מה אם הסיכוי להגיע מ-??aa ל- ל-bbלהגיע מ-להגיע מ-
))b- ->ab- ->a או לפי או לפי a- ->ba- ->b(לפי (לפי ב) כיצד נקבע משקלה? ב) כיצד נקבע משקלה?
רמז:הגרף רגולרי
21
- הגדרה'ההשמה
המספקת ’G השמה ל-|‘∑|‘:V’תהי מספר קשתות מקסימאלי
:‘ז"א, נקבל שלהצבה UNSAT(G’)=
תזכורת:'(v) -השמה ל = v מתוך ∑’
'(v)u איזה ערך = v -חושב ש uמקבל
# “bad” edges# all edges
22
)לא תג( - הבנייהההשמה
כך:G השמה לגרף |∑|:Vנבנה אינטואיציה:
(u) = מה ש"רוב" השכנים "חושבים" על קודקודu
אינטואיציה מדויקת יותר:ככל שהמשקל "של שכן" גדול יותר, כך דעתו משפיעה
יותר'-השמה ל G’המספקת מקסימום קשתות
'(v) -השמה ל = v מתוך ∑’'(v)uאיזה ערך = v -חושב ש uמקבל
23
)לא תג( – הבנייהההשמה הבנייה הפורמאלית
הינו הילוך מקרי בגרף B.S.R.W הילוך מקרי מסוג תזכורת: לעצור בכל צעדt/1 מסוים תוך סיכוי של vמקודקוד
(v):מתקבלת כך נסתכל על הסיכוי שיתקבלwVלכל קודקוד
G בגרף v מקודקוד B.S.R.W((מסוג הילוך מקרי ב(אורכו של ההילוך המקרי כמובן) tשאורכו חסום ב-
מההסתברות והדעה נגזר באופן יחסי(v)הערך של ' בהשמה v על wשל
'-השמה ל G’המספקת מינימום קשתות
'(v) -השמה ל = v מתוך ∑’'(v) u איזה ערך = v -חושב ש uמקבל
24
)לא תג( – הבנייהההשמה דוגמה
:’Gמגרף חלק דוגמה: Sum (votes=1) =0.45Sum (votes=0) =0.55 (a)=0
a c
bd
e
'(a)a= 1
'(b)a= 1
'(c)a= 0
'(d)a= 1
W=0.15
W=0.2W=0.25
W=0.1
W2=0.3
Sum=0.15
Sum=0.2Sum=0.55
Sum=0.10.1
0.15
0.2
0.25 ;0.3
25
)לא תג( – הבנייהההשמה הערות
נקבעת באופן חד-משמעי לאחר ההשמה • נקבעת'שההשמה
מתקיים:להשמה •
UNSAT(G)# “bad” edges# all edges
v)) מה "רוב" הקודקודים במרחק = t-מ v חושבים עליו בהשמה ''-השמה ל G’המספקת מינימום קשתות
'(v) -השמה ל = v מתוך ∑’
'(v)u איזה ערך = v -חושב ש uמקבל
26
)לא תג( – הבנייהההשמה שאלה
תנו חסם תחתון ל:שאלה:Pr [‘(w)v = (v)]
1 תשובה:
||∑
v)) מה "רוב" הקודקודים במרחק = t-מ v חושבים עליו בהשמה ''-השמה ל G’המספקת מינימום קשתות
'(v) -השמה ל = v מתוך ∑’
'(v)u איזה ערך = v -חושב ש uמקבל
הינו B.S.R.W הילוך מקרי מסוג תזכורת: מסוים תוך סיכוי vהילוך מקרי בגרף מקודקוד
לעצור בכל צעדt/1של
נבחר w כאשר קודקודv המתחיל מ-B.R.S.Wבהילוך מקרי מסוג
צעדיםtוחסום ב-
27
Fההגדרה של הקבוצה
כך שכל קשת שההשמה G fנגדיר קבוצת קשתות -אינה מספקת נמצאת ב f
|UNSAT(G) /|E|| fנשים כי:
הקבוצה הבאה:Fתהי ונתעלם מכך שהיא לא fנבחר קשת כלשהי מתוך
בגודל f E Fמסתפקת. נבצע זאת עד שנקבל קבוצה UNSAT(G)
28
Fדוגמה אפשרית לבחירת הקבוצה
:Fדוגמה ספציפית אפשרית לבחירת
:אדום בצבע ע"י Gנתון שהקשתות הלא מסופקות ב-
G; f edges are in red G; F edges are in red
a c
bd
e
f
a c
bd
e
f
29
faultyהגדרה – צעד
, ו- G שנבחר בהילוך מקרי בגרף b ל-aיהי מסלול מ-uv.צעד בתוכו
faulty ייקרא G בהילוך מקרי בגרף uvצעד אם:
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הגדרה – צעד הערות
, אז כל faulty בהילוך מקרי הוא uv) אם צעד 1 גם כן.faulty אחר בהילוך זה יהיה uvצעד
, אז קשת Gב-faulty מכילה צעד ’e G) אם קשת 2רעהזו בהכרח
נכון.אינוהכיוון ההפוך
שנבחר בהילוך מקרי b ל-aיהי מסלול מ- צעד בתוכו.uv , ו- Gבגרף
ייקרא G בהילוך מקרי בגרף uvצעד faulty :אם
1( )u,v ( F 2 (distG(u,a) t && ‘(a)u = (u)
3 (distG(v,b) t && ‘(b)v = (v)
faulty ההגדרה של צעד תזכורת: קשת תזכורת: של רעה ההגדרה: מתקיים לא אם
אם:רעה תקרא ’G ב-E( a,b)קשת 1 )a,b:מסכימים" על סביבתם"
t שבמרחק עד vלכל קודקוד ')b(v = ')a(v ז"א:
מתקיים:G צעד במסלול בגרף לכל( 2 distG)u,a( t && distG)v,b( tא(
ב( האילוץ על הקשת אינו מסתפק
31
Nהגדרה –
שנבחר בהילוך מקרי b ל-aיהי מסלול מ- צעד בתוכו.uv , ו- Gבגרף
ייקרא G בהילוך מקרי בגרף uvצעד
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
משתנה מקרי כך ש:N יהי הגדרה:N=#faulty steps in A.S.R.W
או במילים אחרות:.G באופן מקרי מתוך aא) בחר קודקוד
. t/1 כך שבכל צעד נעצור בסיכוי aב) בצע הילוך מקרי מ- שביצענו בהילוך המקרי הנ"ל.faulty = מספר הצעדים מסוג Nג)
faulty ההגדרה של צעד תזכורת::תזכורות
32
Nמסקנה על המשתנה המקרי נזכור כי:
לכן: UNSAT(G’) =[[כמו למעלה Pr =
Pr[N>0]
UNSAT(G’) Pr[N>0]
מסוג Gבמסלול הנבחר בגרף
A.S.R.Wיש קשת faulty
(’G ב-רעה)ולכן הוא מייצג קשת
קבוצת המקרים באגף שמאל
מכילה קבוצת המקרים באגף
ימין
לפי הגדרה
N=#faulty steps in A.S.R.W
’Gהסיכוי שקשת בגרף תיבחר בהילוך מקרי מסוג
A.S.R.W בגרף G רעהותהה קשת
שנבחרה’Gהסיכוי שקשת ב-רעה ביחס למשקלים תהה
UNSAT)G’(= =
33
מה נשאר לנו להוכיח?
Pr [N>0] [t/O(1)]ּmin{UNSAT(G),1/t}לא מדוייק!
, ואילו האי-שוויון UNSAT(G’’)רצינו לחסום את .UNSAT(G’)למעלה מהווה חסם ל-
, ובהרצאה הבאה נהפוך UNSAT(G’)נתחיל להוכיח בשביל כנדרש.UNSAT(G’’)את ההוכחה לחסם על
34
מה אנחנו באמת בונים, ומה רק חלק מההוכחה?
בונים \ מקבליםרק חלק מההוכחה
G’G
G’’עם משקלים G’’ללא משקלים
' למעשה קשה למצוא(אותה(
∑’ & ∑
F
faultyצעדי
N
35
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
אי-שוויון קושי-שוורץ∑aibi ∑ai
2 ∑bi2
36
לעבודה...
P[N>0] E[N2]
לשם כך נוכיח:
1) E[N]2 {[t/O(1)]ּ[|F|/|E|]}2
2) E[N2] [t/O(1)] ּ[|F|/|E|]
E[N]2
: להוכיח [|F|/|E|]ּ[t/O(1)] =נרצה
:תזכורת|F|/|E| = UNSAT(G)הוכחנו
בשיקופית הקודמת
37
Lemma:1) E[N] [t/4|∑|2] ּ[|F|/|E|]
E[N] = E[#faulty steps] == E[over all uv E : #faulty uv steps] =
= E[over all uv F : #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
זה קבוע...
לפי הגדר
ה
Remember we talk
about A.S.R.W
38
]לכל נשים לב שאם נוכיח את החסם הזה כחסם תחתוןהערה:]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] בהילוך מקרי, כל צעד בהילוך זה faulty הוא uv כאשר צעד נזכור כי גם כן, ולכן נקבל: 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]
Lemma:1) E[N] [t/4|∑|2] ּ[|F|/|E|]
minuvF{E[#faulty uv step F]} [t/(8|∑|2)ּ[(1/|E|)
1
1
k
39
סה"כ קיבלנו (בשקופית הקודמת):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)] =
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
1
2
1
40
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]] =uv להיות דווקא הצעד i( הסיכויים שווים לכל צעד 1t( מספר הצעדים הוא בתוחלת = 2
= 1/(4|∑|2) * t ּ E[1[uv is the ith step]] = קשת רגולרי, הסיכוי שנעבור על Gבזכות היות הגרף
|E/|1מסוימת בהילוך מקרי = צעד הסיכוי לכלuv = 1 בהתאם/(2|E|)
= 1/(4|∑|2) * t /(2|E|)
i
41
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
42
לסיכום – מה עשינו עד כה?
Gקיבלנו גרף •G, שם כל קשת היא הילוך מקרי ב-’’G’ & Gבנינו • - ההצבה הכי גרועה לנו'בחרנו את ההצבה •G ל-ממנה בנינו הצבה •
התחלנו לחסום את מספר הקשתות הרעות בגרף •G’מלמטה
הגורמים faultyעשינו זאת ע"י הסתכלות על צעדי רעה להיות ’Gלקשת ב-
43
ומה בהמשך? E[N]נסיים לחסום את • המתאים E[N*]באמצעותו נקבל חסם תחתון גם ל-•
’’Gל-E[(N*)²]נוכיח חסם עליון )על המכנה( •
ובכך UNSATנוכל לאיים על גרפים תועים שנגדיל להם את ה-•לסחוט מהם טובות הנאה מפוקפקות
נתגאה ביכולותינו החדשות ונפצח במחול ובזמרה בחוצות •האוניברסיטה
!PCPנתקדם צעד נוסף לעבר סוף הוכחת משפט ה – •
44
The End
The End