53
ררררר רררGap Problems

בעיות פער Gap Problems

  • Upload
    fleta

  • View
    51

  • Download
    0

Embed Size (px)

DESCRIPTION

בעיות פער Gap Problems. בעיות פער Gap Problems. אנחנו לא יודעים להכריע (בזמן פולינומיאלי) האם קיים פתרון מדויק לבעית אופטימיזציה (למשל - בבעית הקליקה, האם קיימת קליקה בגודל α ? ) אנחנו כן יודעים להפריד בין המקרים בהם קיים פתרון מדויק, לבין המקרים בהם לא קיים אפילו פתרון מקורב - PowerPoint PPT Presentation

Citation preview

בעיות פערGap Problems

בעיות פערGap Problems

אנחנו לא יודעים להכריע )בזמן פולינומיאלי( האם קיים פתרון מדויק לבעית אופטימיזציה

)למשל - בבעית הקליקה,

?(α האם קיימת קליקה בגודל

בין המקרים בהם קיים פתרון להפרידאנחנו כן יודעים מדויק, לבין המקרים בהם לא קיים אפילו פתרון מקורב

)למשל, להפריד בין:

αא. קיימת קליקה בגודל

...()α)1-εב. לא קיימת קליקה בגודל

בעיות פערGap Problems

:Gap[a,b]מכונה שפותרת בעיית

bתחזיר 'כן' אם הפתרון המקסימלי ≤ •

aתחזיר 'לא' אם הפתרון המקסימלי > •

?b ל-aומה אם הפתרון המקסימלי בין •

בעיות פערGap Problems

:Gap[a,b]מכונה שפותרת בעיית

bתחזיר 'כן' אם הפתרון המקסימלי ≤ •

aתחזיר 'לא' אם הפתרון המקסימלי > •

...b ל-aומה אם הפתרון המקסימלי בין •

aכל פלט של המכונה הוא חוקי עבור פתרון מקסימלי בין bל-

a bM)x( = Reject M)x( = Accept

M)x( = ? f)x(

חתך מקסימליMaximum Cut

)G=)V,Eקלט: גרף •

פלט: חתך מקסימום בגרף•

G

α = 11/13

חתך מקסימליMaximum Cut

G

α = 11/13

-שלמה...NP היא MAXCUTבעית

:gap-MAXCUT[α/2,α]נראה אלגוריתם לפתרון של

מפריד בין:

αא. קיים חתך בגודל

α/2ב. לא קיים חתך בגודל

gap-MAXCUT[α/2,α]

ניתוח:

-צביעה של הגרף...2אם היינו מגרילים

:e=)u,v(ϵEלכל קשת

Pr[eϵCUT] = Pr[Color)u(≠Color)v(] = 1/2

לכן אנחנו מצפים לקבל לפחות חצי מהקשתות בגרף...

G

gap-MAXCUT[α/2,α]

ניתוח:

-צביעה של הגרף...2אם היינו מגרילים

:e=)u,v(ϵEלכל קשת

Pr[eϵCUT] = Pr[Color)u(≠Color)v(] = 1/2

ז"א:

E[|CUT|] = eE Pr[eϵCUT] / |E| = 1/2

ולכן:

|MAXCUT| ≥ E[|CUT|] = 1/2

G

gap-MAXCUT[α/2,α]

אלגוריתם להכרעת

gap-MAXCUT[α/2,α]:

α ≥ 1קבל אמ"ם

נאותות – אם קבלנו, אז:

α/2 ≥ 1/2 ≥ |MAXCUT|

שלמות – אם דחינו, אז:

|MAXCUT| ≥ 1 < α

G

צביעת צמתיםVertex Coloring

)Chromatic Number(

Gקלט: גרף בלתי מכוון

מינימליk עם Vפלט: צביעה של כך שאין צמתים שכנים עם אותו צבע

Gk=2

קירוב לצביעת צמתיםgap-kCOL

-קשה, ולכן היינו NPבעיית צביעת הצמתים היא רוצים לקרב אותה...

gap-kCOL[3,4]נתבונן בבעית הפער:

קירוב לצביעת צמתיםgap-kCOL

gap-kCOL[3,4]נתבונן בבעית הפער:

כל הגרפים:

k ≥ 4

k ≥ 3

k = π?

קירוב לצביעת צמתיםgap-kCOL

מסקנה:

gap-kCOL[3,4] = 3COLk ≥ 4

k ≥ 3k = π?

קירוב לצביעת צמתיםgap-kCOL

מסקנה:gap-kCOL[3,4] = 3COL

אבל...3COL היא NPשלמה-

k ≥ 4

k ≥ 3k = π?

קירוב לצביעת צמתיםgap-kCOL

-שלמה, ולכן היינו רוצים NPבעיית צביעת הצמתים היא לקרב אותה, אבל...

-קירוב לבעיית צביעת (3/4)מסקנה: חישוב -שלמהNPצמתים היא בעיה

-NP)למעשה, גם קירובים הרבה יותר חלשים הם קשים...(

קירוב לצביעת צמתיםgap-kCOL[3,3√|V|]

בזמן פולינומיאלי.gap-kCOL[3,3√|V|]המטרה: לפתור את

קירוב לצביעת צמתיםgap-kCOL[3,3√|V|]

בזמן פולינומיאלי.gap-kCOL[3,3√|V|]המטרה: לפתור את |V√|3-צביע בעזרת 3האמצעי: נראה אלגוריתם לצביעה של גרף

צבעים.

√|3, האלגוריתם יצליח לצבוע אותו ב--צביע3אם הגרף שלמות: V|.צבעים, ולכן נקבל

√|3, לא נצליח לצבוע אותו ב--צביע|V√|3אם הגרף אינו נאותות: V|.צבעים, ולכן נדחה

...)O)|V|0.2111הערה: קיים אלגוריתם הצובע ב-

קירוב לצביעת צמתיםgap-kCOL[3,3√|V|]

היא דרגת המקסימום של גרף d: אם 1אלגוריתם עזר G נצבע את G-ב d+1:צבעים בזמן פולינומיאלי

נעבור על כל הצמתים ובכל פעם שנגיע לצמת נצבע אותו בצבע ששונה מהשכנים הצבועים שלו.

d צבעים, ולכל היותר d+1תמיד קיים צבע כזה כי יש שכנים.

קירוב לצביעת צמתיםgap-kCOL[3,3√|V|]

-צביע נצבע את כל 3 בגרף v: עבור צמת 2אלגוריתם עזר צבעים בזמן פולינומיאלי:2 ב-vהשכנים של

.vנתבונן בגרף המושרה ע"י קבוצת השכנים של

(.v-צביע )כי אף אחד מהם לא צבוע בצבע של 2זהו גרף

.u מאחד הצמתים BFSבכל רכיב קשירות נבצע

נצבע את השכבות הזוגיות בכחול, ואת האי-זוגיות בירוק.

קירוב לצביעת צמתיםgap-kCOL[3,3√|V|]

.u מאחד הצמתים BFSבכל רכיב קשירות נבצע

נצבע את השכבות הזוגיות בכחול, ואת האי-זוגיות בירוק.

uuv

קירוב לצביעת צמתיםgap-kCOL[3,3√|V|]

צבעים:|V√|3 בעזרת G-צביע 3אלגוריתם לצביעת גרף

לולאה:

.1 בעזרת אלג' עזר G צבע את |degmax)G(<√|Vאם 1.

.|deg )v(≥√|V המקיים: vאחרת, קיים צמת 2.

צבעים )חדשים( בעזרת אלג' 2נצבע את כל שכניו ב- ונסיר אותם מהגרף.2עזר

קירוב לצביעת צמתיםgap-kCOL[3,3√|V|]

לולאה:

.1 בעזרת אלג' עזר G צבע את |degmax)G(<√|Vאם 1.

.|deg )v(≥√|V המקיים: vאחרת, קיים צמת 2.

2 צבעים )חדשים( בעזרת אלג' עזר 2נצבע את כל שכניו ב-ונסיר אותם מהגרף.

ניתוח:

צבעים|V√| – מתבצע לכל היותר פעם אחת - 1שלב

צבעים|V√|2 פעמים - |V√| – מתבצע לכל היותר 2שלב

צבעים|V√|3סה"כ -

SUBSET-SUM

Instance: A multi-set of numbers denoted S and a target number t.

Problem: To decide if there exists a subset YS, s.t yYy=t.

SUBSET-SUM

דוגמא:•

S = {3,4,8,8,11}, t = 19:

SUBSET-SUM

דוגמא:•

S = {3,4,8,8,11}, t = 19:

Y = {3,8,8}… 3+8+8 = 19

SUBSET-SUM

דוגמא:•

S = {3,4,8,8,11}, t = 19:

Y = {3,8,8}… 3+8+8 = 19

:2דוגמא •

S = {3,4,8,8,11}, t = 13:

SUBSET-SUM

דוגמא:•S = {3,4,8,8,11}, t = 19:Y = {3,8,8}… 3+8+8 = 19

:2דוגמא •S = {3,4,8,8,11}, t = 13:

לא בשפה(>S,t>אין פתרון )

gap-Subset Sum[)1-ε(,1]

-שלמה...NP היא Subset Sumבעיית ה-•

-שלמהNP היא Subset Sumבעיית ה-•

נרצה למצוא פתרון מקורב...•

gap-Subset Sum[)1-ε(,1]

gap-Subset Sum[)1-ε(,1]

-שלמהNP היא Subset Sumבעיית ה-•

נרצה למצוא פתרון מקורב•yYy = t במקום:–

t ≥ yYy ≥ t(ε-1) נדרוש:–

gap-Subset Sum[)1-ε(,1]

yYy = t במקום:–

t ≥ yYy ≥ t(ε-1) נדרוש:–

:1דוגמא

S = {3,4,8,8,11}, t = 19, ε = 0.1

)0.9(19 ≥ )11+3+4( ≥ 19

gap-Subset Sum[)1-ε(,1]

yYy = t במקום:–t ≥ yYy ≥ t(ε-1) נדרוש:–

:1דוגמא S = {3,4,8,8,11}, t = 19, ε = 0.1)0.9(19 ≥ )11+3+4( ≥ 19

:2דוגמא S = {3,4,8,8,11}, t = 13, ε = 0.1)0.9(13 ≥ )8+4( ≥ 13

gap-Subset Sum[)1-ε(,1]

yYy = t במקום:–t ≥ yYy ≥ t(ε-1) נדרוש:–

:1דוגמא S = {3,4,8,8,11}, t = 19, ε = 0.1)0.9(19 ≥ )11+3+4( ≥ 19

:2דוגמא S = {3,4,8,8,11}, t = 13, ε = 0.1)0.9(13 ≥ )8+4( ≥ 13

:3דוגמא S = {3,4,8,8,11}, t = 10, ε = 0.1...אין פתרון

gap-Subset Sum[)1-ε(,1]

yYy = t במקום:–

t ≥ yYy ≥ t(ε-1) נדרוש:–

רעיון: במקום להסתכל על כל תתי-הסכומים, נתעלם -קרובים...|εt/|Sמתתי סכומים שהם

gap-Subset Sum[)1-ε(,1]

R}→0{אתחול: :S ב-xלולאה - לכל

.1x+R union R→R

Rמיין את 2.

.3min)R(→y

:R ב-zלולאה - לכל 4.:y+εt/|S| < z ≥ tאם –

z→yאחרת:

R\{z} → R)max)Rהחזר את

רעיון: במקום להסתכל על כל תתי-הסכומים, נתעלם

-|εt/|Sמתתי סכומים שהם קרובים...

R קבוצת תתי סכומים של – S

לולאה חיצונית – בכל איטרציה נאפשר הוספת

משתנה אחד לכל תת-סכום

לולאה פנימית – ננפה את תתי-סכומים קרובים מדי כדי לשמור על מספר קטן

של אפשרויות

gap-Subset Sum[)1-ε(,1]

R}→0{אתחול: :S ב-xלולאה - לכל

.1x+R union R→R

Rמיין את 2.

.3min)R(→y

:R ב-zלולאה - לכל 4.:y+εt/|S| < z ≥ tאם –

z→yאחרת:

R\{z} → R)max)Rהחזר את

דוגמת הרצה:S = {3,4,8,8,11}, t = 19, ε = 0.3

εt/|S| = )0.3(*)19(/5 = 1.14 < 1

gap-Subset Sum[)1-ε(,1]

R}→0{אתחול: :S ב-xלולאה - לכל

.1x+R union R→R

Rמיין את 2.

.3min)R(→y

:R ב-zלולאה - לכל 4.:y+εt/|S| < z ≥ tאם –

z→yאחרת:

R\{z} → R)max)Rהחזר את

דוגמת הרצה:S = {3,4,8,8,11}, t = 19, ε = 0.3

R = {0}

gap-Subset Sum[)1-ε(,1]

R}→0{אתחול: :S ב-xלולאה - לכל

.1x+R union R→R

Rמיין את 2.

.3min)R(→y

:R ב-zלולאה - לכל 4.:y+εt/|S| < z ≥ tאם –

z→yאחרת:

R\{z} → R)max)Rהחזר את

דוגמת הרצה:S = {3,4,8,8,11}, t = 19, ε = 0.3

R = {0}

R = {0,3}

gap-Subset Sum[)1-ε(,1]

R}→0{אתחול: :S ב-xלולאה - לכל

.1x+R union R→R

Rמיין את 2.

.3min)R(→y

:R ב-zלולאה - לכל 4.:y+εt/|S| < z ≥ tאם –

z→yאחרת:

R\{z} → R)max)Rהחזר את

דוגמת הרצה:S = {3,4,8,8,11}, t = 19, ε = 0.3

R = {0}

R = {0,3}

R = {0,3,4,7}

gap-Subset Sum[)1-ε(,1]

R}→0{אתחול: :S ב-xלולאה - לכל

.1x+R union R→R

Rמיין את 2.

.3min)R(→y

:R ב-zלולאה - לכל 4.:y+εt/|S| < z ≥ tאם –

z→yאחרת:

R\{z} → R)max)Rהחזר את

דוגמת הרצה:S = {3,4,8,8,11}, t = 19, ε = 0.3

R = {0}

R = {0,3}

R = {0,3,4,7}

R = {0,3,7,8,11,15}

gap-Subset Sum[)1-ε(,1]

R}→0{אתחול: :S ב-xלולאה - לכל

.1x+R union R→R

Rמיין את 2.

.3min)R(→y

:R ב-zלולאה - לכל 4.:y+εt/|S| < z ≥ tאם –

z→yאחרת:

R\{z} → R)max)Rהחזר את

דוגמת הרצה:S = {3,4,8,8,11}, t = 19, ε = 0.3

R = {0}

R = {0,3}

R = {0,3,4,7}

R = {0,3,7,8,11,15}

R = {0,3,7,8,11,11,15,15,19,23}

gap-Subset Sum[)1-ε(,1]

R}→0{אתחול: :S ב-xלולאה - לכל

.1x+R union R→R

Rמיין את 2.

.3min)R(→y

:R ב-zלולאה - לכל 4.:y+εt/|S| < z ≥ tאם –

z→yאחרת:

R\{z} → R)max)Rהחזר את

דוגמת הרצה:S = {3,4,8,8,11}, t = 19, ε = 0.3

R = {0}

R = {0,3}

R = {0,3,4,7}

R = {0,3,7,8,11,15}

R = {0,3,7,8,11,11,15,15,19,23}

R = {0,3,7,11,11,14,15,18,19,22,… 26,30}

)0.7(19 ≥ 18 = 3 + 4 + 11 ≥ 19

gap-Subset Sum[)1-ε(,1]

R}→0{אתחול: :S ב-xלולאה - לכל

.1x+R union R→R

Rמיין את 2.

.3min)R(→y

:R ב-zלולאה - לכל 4.:y+εt/|S| < z ≥ tאם –

z→yאחרת:

R\{z} → R)max)Rהחזר את

סיבוכיות:

gap-Subset Sum[)1-ε(,1]

R}→0{אתחול: :S ב-xלולאה - לכל

.1x+R union R→R

Rמיין את 2.

.3min)R(→y

:R ב-zלולאה - לכל 4.:y+εt/|S| < z ≥ tאם –

z→yאחרת:

R\{z} → R)max)Rהחזר את

סיבוכיות: )מיזוג...()|R – O)|Rמיון של

)|O)|Rלולאה פנימית –

)R – O)|S|/εגודל מקסימלי של

gap-Subset Sum[)1-ε(,1]

R}→0{אתחול: :S ב-xלולאה - לכל

.1x+R union R→R

Rמיין את 2.

.3min)R(→y

:R ב-zלולאה - לכל 4.:y+εt/|S| < z ≥ tאם –

z→yאחרת:

R\{z} → R)max)Rהחזר את

סיבוכיות: )מיזוג...()|R – O)|Rמיון של

)|O)|Rלולאה פנימית –

)R – O)|S|/εגודל מקסימלי של

| איטרציותSלולאה חיצונית – |

)O)|S|2/εסה"כ –

gap-Subset Sum[)1-ε(,1]

נכונות?

gap-Subset Sum[)1-ε(,1]

(yYy = t המקיימת Yשלמות: )אם קיימת קבוצה

נוכיח באינדוקציה...

gap-Subset Sum[)1-ε(,1]

(yYy = t המקיימת Yשלמות: )אם קיימת קבוצה

i עליהם עברנו ב-Y את קבוצת האיברים מ-)Y)iנסמן ב-האיטרציות הראשונות של הלולאה החיצונית

המקיים:R ב-z קיים iטענת האינדוקציה – באיטרציה ה- yY)i(y-iεt/|S| ≥ z ≥ yY)i(y

gap-Subset Sum[)1-ε(,1]

(yYy = t המקיימת Yשלמות: )אם קיימת קבוצה

המקיים:R ב-z קיים iטענת האינדוקציה – באיטרציה ה- yY)i(y-iεt/|S| ≥ z ≥ yY)i(y

בסיס – טריוויאלי

gap-Subset Sum[)1-ε(,1]

(yYy = t המקיימת Yשלמות: )אם קיימת קבוצה

המקיים:R ב-z קיים iטענת האינדוקציה – באיטרציה ה- yY)i(y-iεt/|S| ≥ z ≥ yY)i(y

צעד – ,Y שייך ל-xא. אם המשתנה הנוכחי

R נמצא ב-z=zi-1+xלפני הניפוי yY)i(y-)i-1(εt/|S| ≥ z ≥ yY)i(yומאינדוקציה מתקיים ש-

, אז מתקיים:’z הוצא בניפוי בגלל קרבה ל-zאם yY)i(y-)i-1(εt/|S| ≥ z ≥ z’+εt/|S| ≥ yY)i(y+εt/|S|

yY)i(y-iεt/|S| ≥ z-εt/|S| ≥ z’ ≥ yY)i(y

gap-Subset Sum[)1-ε(,1]

(yYy = t המקיימת Yשלמות: )אם קיימת קבוצה

המקיים:R ב-z קיים iטענת האינדוקציה – באיטרציה ה- yY)i(y-iεt/|S| ≥ z ≥ yY)i(y

צעד – ,Y לא שייך ל-xב. אם המשתנה הנוכחי

R נמצא ב-z=zi-1לפני הניפוי yY)i(y-)i-1(εt/|S| ≥ z ≥ yY)i(yומאינדוקציה מתקיים ש-

, אז מתקיים:’z הוצא בניפוי בגלל קרבה ל-zאם yY)i(y-)i-1(εt/|S| ≥ z ≥ z’+εt/|S| ≥ yY)i(y+εt/|S|

yY)i(y-iεt/|S| ≥ z-εt/|S| ≥ z’ ≥ yY)i(y

gap-Subset Sum[)1-ε(,1]

1-ε(t)( ≤ z המקיים R ב-zנאותות: )אם בסוף הריצה קיים

gap-Subset Sum[)1-ε(,1]

1-ε(t)( ≤ z המקיים R ב-zנאותות: )אם בסוף הריצה קיים

.S מכיל רק תתי-סכומים חוקיים של Rבכל שלב בריצה

אז בהכרח z ≥ )1-ε(t המקיים R ב-zלכן, אם בסוף הריצה קיים המקיימת:Yקיימת קבוצה

)1-ε(t ≥ yYy ≥ t