# PCP Theorem proof: Gap Amplification (The Powering Stage) - PowerPoint PPT Presentation

1 / 44

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 >:

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

PCP Theorem proof: Gap Amplification (The Powering Stage)

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

## PCP Theorem proof:Gap Amplification(The Powering Stage)

Gap Amplification by

Irit Dinur

Presentation by: Jonathan Heimann

Cu,v = {(2,1), (1,0)}

U

V

### Constraint Graph (CG)

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

### UNSAT(CG)

UNSAT(CG) = the smallest number of:

# unsatisfied edges

#all edges

UNSAT(CG) =

minσ(|{Cu,v: (σ(u),σ(v))C(u,v)}|/m)

• 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’’ לא "גדול יותר מדי":

UNSAT =

# all edges

### מה נרוויח מכל זה?

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)}

2

Ca,b

1

דוגמה לצורת קריאה של אות ל-a ו-b

a: acebd

### הבנייה של 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

### הבנייה של G’מה השגנו?

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)

רמז: הגרף רגולרי

# 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) מתקבלת כך:

לכל קודקוד wV נסתכל על הסיכוי שיתקבל

בהילוך מקרי (מסוג (B.S.R.W מקודקוד v בגרף Gשאורכו חסום ב-t(אורכו של ההילוך המקרי כמובן)

הערך של (v) נגזר באופן יחסימההסתברות והדעה של w על v בהשמה '

' השמה ל-G’ המספקת מינימום קשתות

'(v) = השמה ל-v מתוך ∑’

'(v) u = איזה ערך v חושב ש- u מקבל

a

c

b

d

e

### ההשמה  (לא תג) – הבנייהדוגמה

דוגמה: חלק מגרף G’:

 (a)=0

0.1

0.2

0.25; 0.3

0.15

# 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, ו- 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

### הגדרה – צעד 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)

### הגדרה – 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

הסיכוי שקשת בגרף 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

לפי הגדרה

זה קבוע...

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

### 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

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

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

### 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

### לסיכום – מה עשינו עד כה?

• קיבלנו גרף G

• בנינו G’ & G’’, שם כל קשת היא הילוך מקרי ב-G

• בחרנו את ההצבה ' - ההצבה הכי גרועה לנו

• ממנה בנינו הצבה  ל-G

• התחלנו לחסום את מספר הקשתות הרעות בגרף G’ מלמטה

עשינו זאת ע"י הסתכלות על צעדי faulty הגורמים לקשת ב-G’ להיות רעה

### ומה בהמשך?

• נסיים לחסום את E[N]

• באמצעותו נקבל חסם תחתון גם ל-E[N*] המתאים ל-G’’

• נוכיח חסם עליון (על המכנה) E[(N*)²]

• נוכל לאיים על גרפים תועים שנגדיל להם את ה-UNSAT ובכך לסחוט מהם טובות הנאה מפוקפקות

• נתגאה ביכולותינו החדשות ונפצח במחול ובזמרה בחוצות האוניברסיטה

• נתקדם צעד נוסף לעבר סוף הוכחת משפט ה – PCP!

• The End