Kiril Solovey
שיטות אלגוריתמיות – שיעור 06
הערה :קיים קודקוד שמקיים . ∈ 0,1⁄2 , 1
– Weighted Vertex Coverהמשך
טענה-2 :קירוב הוא חסם הדוק.
הוכחה .נבחר מעגל עם 2
− 1קודקודים .הפתרון האופטימלי הוא ,nאבל ה LPעלול לתת משקל
1⁄2עבור כל הקודקודים ,ולכן נבחר את כל הקודקודים .כלומר יחס הקרוב כאן הוא .2
Max-SAT
נתונה נוסחת ,CNFמורכבת מאוסף הסגרים .כל הסגר ORשל תוים .כל תו ,משתנה או שלילתו.
בעיית ההחלטה :רוצים לבדוק אם קיימת השמה מספקת ,כך שכל ההסגרים מתקיימים .בעיה זו היא
.NPCompleteאם בכל הסגר יש לכל היותר 2תווים בעיה זו שייכת ל .P
בעיית אופטימיזציה :לכל הסגר יש משקל .רוצים למצוא השמה שמספקת מקסימום משקל .בעייה
זו יותר קשה מבעיית ההחלטה .כמו כן Max-2SATהיא גם .NPHard
נתן השמה מקרית לכל המשתנים .באופן בלתי תלוי כל משתנה יהיה Tבהסתברות 1⁄2ו F
בהסתברות .1⁄2
אלגוריתם קירוב רנדומי
נסמן נוסחה ב ,cההסגר ה jיקרא ,השמה .
נרצה לחשב את משקל ההשמה:
, = ,
כאשר ,הוא אינדיקטור ,האם ההסגר jמסופק ע"י .נקח את התוחלת של הביטוי.
, = , = ,
נשים לב ש ,ספיק בהסתברות 1 − 1⁄2כאשר מספר המשתנים ב .נשים לב
שערך זה מקבל ערך מינימום עבור , = 1כלומר .1⁄2לכן נקבל:
1
1
≥ , = 1 − ℓ #
2
"2
מכיוון ש ∑ ≤ '& %אזי קבלנו קירוב .1⁄2
*
אם כל הסגר מכיל לפחות kתווים )שונים( אזי השמה מקרית תתן קירוב .1 − +,
דה-רנדומיזציה
נעזר בהסתברות מותנית )בתוחלת מותנית(.
1
1
*- , . = -/0 |* = 0, .2* + -/0 |* = 1, .2
2
2
אם נדע לחשב את התוחלות המותנות אזי נוכל לבחור השמה עבור * כך שהתוחלת המותנת רק
תגדל.
אם נדע לחשב תוחלת אזי נציב משתנה משתנה .נרצה לחשב את כאשר חלק מהמשתנים
* , … , 5קיבלו ערכים ו 56* , … , .מקריים .מספיק לחשב את התוחלת של משתנה אינדיקטור לכל
הסגר.
מתקיים
Kiril Solovey
דוגמא:
* = 0, … , 5 = 1,
56* , … , . ∈ 0,1
1,
89 ;
< ;9 =ℎ< ?@A8@BC<D 8D D@98D98<E
G.
1
=7
=<A ?@A8@BC<D @A< ;= D
1− F,
2
* ∨ + ∨ ̅K ̅* ∨ ̅+ ∨ ̅K * ∨ + ∨ K
כל המשקלים הם .1בתוחלת מובטח שנקבל:
1 3 7 7 7
7
+ + + + =3
2 4 8 8 8
8
נקבע :* = 0
1 3
3
1+ + +1+ =4
2 4
4
עבור :* = 1
3
3
0+1+1+ +1=3
4
4
לכן נבחר את .* = 0אם + = 0אז:
1
1
1+1+ +1+ =4
2
2
אם + = 1אז:
בגלל שיוויון ,לא משנה מה נבחר.
,
̅* * ∨ ̅+
1+0+1+1+1=4
נחזור לאלגוריתם ,נקח נוסחה .cנוכל לצמצם מספר הסגרים בני משתנה אחד .אפשר לרכז תווים
זהים לתו בודד .תווים נגדיים נחסר ) Pהקטן מבין השניים(.
* ⟹ *̅ * *̅ *
*K
*Q *+ R+ *S
W
במקרה הכללי , → ′ :אז , , = , − Pכלומר , = , + Pויש הזזה
X6Z
X
בקבוע .במילים אחרות ,אם Y ≤ Aאז ) Y6Z ≥ Aעבור ,(P ≥ 0כאשר xתוצאת האלגוריתם ,ו y
האופטימלי.
W
*
+
נגריל כל משתנה באופן בלתי תלוי :בהסתברות < ℎנגריל 5לכיוון שהתו שלו מופיע )אם מופיע(.
לכן , , = ℎכאשר הוא משתנה בודד .אם באורך גדול מ 2אז
לפיכך:
אז יחס הקירוב יהיה ≈ 0.618
, ≥ 1 − ℎ ≥ 1 − ℎ+
, ≥ \8
ℎ, 1 − ℎ+
*√^2
+
= .ℎ
תזכורת :אם אין הסגרים בגודל ,1השמה מקרית נותנת יחס קרוב .3/4
5 ∈ 0,1אינדיקטור משתנה b ∈ 0,1 .iאינדיקטור להסגר .jפונ' המטרה .\@ ∑ bכיצד
נגדיר את האילוצים? עבור המקרה של * ∨ ̅+ ∨ Kנבקש .b ≤ * + 1 − + + Kבמקרה
הכללי:
פתרון בעזרת תכנות לינארי
b ≤ 5 + 1 − 5
5∈c"/
5∈c"d
זוהי בעיה -NPקשה .לכן נבצע רלקסציה ונגדיר .0 ≤ 5 ≤ 1, 0 ≤ b ≤ 1נפתור ונקבל .5 = e5
Kiril Solovey
נבצע עיגול :לכל משתנה ,באופן בלתי תלוי נגריל 5 = 1בהסתברות 5 = 0 ,e5בהסתברות 1 −
.e5נחשב את ההסתברות הבאה:
∑5∈c d1 − e5 + ∑5∈c"/ e5
− b
"
j ≤k
&Af = 0g = h1 − e5 h e5 ≤ i
l
/
d
"5∈c
לכן
b
= 1 −
b
&Af = 1g ≥ 1 − 1 −
וכמו כן
, = .
אם נטען ש
נקבל ש
"5∈c
b
1 − 1 − ≥ P ⋅ b
'& = b∗ P ≥ P b∗ = P ⋅ %&'FopqXor ≥ P ⋅ %
טענה :לכל 0 ≤ b ≤ 1מתקיים:
b
1
1 − 1 − ≥ s1 − 1 − # t b
uvvvvwvv
vvx
Z,
הוכחה :ב b = 0,1מקבלים שיוויון.
בהסתברות 1⁄2נפתור בעזרת LPועיגול .בהסתברות 1⁄2נפתור בעזרת השמה מקרית.
1
1
1
1
1
= * + + = b∗ P + 1 − #
2
2
2
2
2
אלגוריתם משולב
1
1
1
3
≥ P + 1 − #
2
2
4
2
אם נראה ש
נקבל
צריך להראות ש
1
1
1
3
3
b∗ k P + 1 − #l ≥ b∗ ≥ %&'.
2
2
2
4
4
1
1
1
1
3
1
1
1
≤ k1 − 1 − # l + 1 − # ≥ ⟺ 1 − # +
2
2
2
4
2
2
עבור = 1מתקיים
עבור : = 2
1
1
1
≥ b∗ k P + 1 − #l
2
2
2
1 1
≤
2 2
0+
Kiril Solovey
1 1 1
= +
4 4 2
עבור גדול:
1 1 1
≤ +
< 8 2
נתון גרף z = {,עם קיבולות על הקשתות .: → ℝ6הבקשות ,E = 1 ,D5 , =5נקבל ערך ?5
אם נעביר מסלול בעובי 1מ D5ל .=5
Integer Multi-commodity Flow
פתרון פיזיבילי לכל e5 – iמסלול מ D5ל =5או ∅ = ) e5לא משרתים את הבקשה(.
נגדיר
| ℓo = |8|< ∈ e5
ונדרוש .o ≥ ℓoערך הפתרון הוא .∑5│ ∅ ?5
נעשה כמה הנחות מקלות:
.1אפשר להחליף את המסלול בזרימה מ D5ל .=5
.2אפשר להעביר שבר מהצורך ונקבל ערך בשבר המתאים.
הפכנו את הבעיה ל - o5 :LPכמות הזרימה מסוג iעל קשת – 5 .eסה"כ זרימה מסוג .iפונ'
המטרה .\@ ∑5 ?5 5האילוצים הם:
o5 = 0
o5 ≤ o
│o,
o5 −
5
∈ <∀
│o,
∀8∀ ∈ { ∖ D5 , =5
o5 − o5 = 5
o,
כמו כן .0 ≤ 5 ≤ 1 ,0 ≤ o5 ≤ 1נפתור מערכת זו.
o ,
∀8
עתה ,את הפתרון לכל iנפרק את הזרימה מ D5ל =5למסלולים )לכל היותר ≥ || מסלולים( .גרף
הזרימה הוא א-ציקלי. = {, ,
נקח מסלול כלשהו ,ונוריד אותו בגרף הזרימה )כמובן עם הפחתה של הזרימה( .לפחות אחת
מהקשתות יורדת.
© Copyright 2025