Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
1
השוואה בין מחלקות
2
סגירות למשלים L ?= coL P ?= coP NP ?= coNP NPC ?= coNPC
PSPACE ?= coPSPACE NPSPACE ?= coNPSPACE
3
L ?= coL L היא מחלקה דטרמיניסטית. - על מכונה M דטרמיניסטית אפשר להגיד
בהנתן מכונה MA שמכריעה שפה AϵL נגדיר מכונה MB - על קלט x: 1. מריצה את MA על x 2. מקבלת אמ"ם MA דוחה MB מכריעה את B=A-משלים באותה סיבוכיות כמו MA
4
סגירות למשלים L = coL P ?= coP NP ?= coNP NPC ?= coNPC
PSPACE ?= coPSPACE NPSPACE ?= coNPSPACE
5
סגירות למשלים L = coL P = coP NP ?= coNP NPC ?= coNPC
PSPACE = coPSPACE NPSPACE ?= coNPSPACE
6
סגירות למשלים L = coL P = coP NP ?= coNP – בעיה פתוחה NPC ?= coNPC
PSPACE = coPSPACE NPSPACE ?= coNPSPACE
7
כי coNP סגורה ל-P-רדוקציות
NPC ?= coNPC NPC = coNPC + SAT ϵ NPC SAT ϵ coNPC SAT ϵ coNP NP ⊆ coNP NP = coNP NPC = coNPC כי coNP סגורה ל-P-רדוקציות coNP ⊆ cocoNP
8
סגירות למשלים L = coL P = coP NP ?= coNP – בעיה פתוחה
NPC ?= coNPC - שקול PSPACE = coPSPACE NPSPACE ?= coNPSPACE
9
NPSPACE ?= coNPSPACE Immerman: NL = coNL
Padding: NSPACE(nk) = coNSPACE(nk) → NPSPACE = coNPSPACE Savitch: NL ⊆ DSPACE(log2n) Padding: NSPACE(nk) ⊆ DSPACE(n2k) → NPSPACE ⊆ PSPACE → NPSPACE = PSPACE
10
סגירות למשלים L = coL P = coP NP ?= coNP – בעיה פתוחה
NPC ?= coNPC - שקול PSPACE = coPSPACE NPSPACE = coNPSPACE
11
זמן vs מקום L ⊆ P ⊆ PSPACE תזכורת: אין זמן לכתוב
ליותר ממקום פולינומיאלי מקום לוגריתמי ← מס' פולינומיאלי של קונפיגרוציות אפשריות
12
זמן vs מקום מה לגבי P ו-DSPACE(n)? DSPACE(n) ?⊆ P
כנראה שלא: SAT ϵ DSPACE(n)... P ?⊆ DSPACE(n) שאלה פתוחה? P ?= DSPACE(n)
13
P ≠ DSPACE(n) טענה: P ≠ DSPACE(n) הוכחה...
ראינו ש-P סגורה ל-P-רדוקציות לכן מספיק להוכיח ש- טענה1: DSPACE(n) לא סגורה ל-P-רדוקציות
14
P ≠ DSPACE(n) טענה1: DSPACE(n) לא סגורה ל-P-רדוקציות הוכחה1:
טענה-א: לכל שפה L2 ϵ DSPACE(n2) קיימת שפה L1 ϵ DSPACE(n) כך ש- L2 ≤P L1 הוכחה-א: ...
15
P ≠ DSPACE(n) טענה-א: לכל שפה L2 ϵ DSPACE(n2) קיימת שפה L1 ϵ DSPACE(n)
כך ש- L2 ≤P L1 הוכחה-א: בעזרת ריפוד... נגדיר את השפה L1 - L1 = {(x # 1|x|^2) s.t. x ϵ L2} ונגדיר פונקצית רדוקציה – f(x) = x # 1|x|^2
16
P ≠ DSPACE(n) טענה-א: L2 ϵ DSPACE(n2) ← L1 ϵ DSPACE(n), L2 ≤P L1
הוכחה-א: L1 = {(x # 1|x|^2) s.t. x ϵ L2} צ"ל L1 ϵ DSPACE(n): M1 על y: 1. תוודא ש-y = (x # 1|x|^2) 2. תריץ את M2 על x
17
P ≠ DSPACE(n) טענה-א: L2 ϵ DSPACE(n2) ← L1 ϵ DSPACE(n), L2 ≤P L1
הוכחה-א: f(x) = x # 1|x|^2 צ"ל L2 ≤P L1 : שלמות + נאותות – f(x) ϵ L1 ↔ x ϵ L2 סיבוכיות – זמן ריבועי
18
P ≠ DSPACE(n) טענה1: DSPACE(n) לא סגורה ל-P-רדוקציות הוכחה1:
טענה-א: לכל שפה L2 ϵ DSPACE(n2) קיימת שפה L1 ϵ DSPACE(n) כך ש- L2 ≤P L1 טענה-ב: קיימת שפה L2 כך ש- L2 ϵ DSPACE(n2) L2 ∉ DSPACE(n) הוכחה-ב: לכסון...
19
אלגוריתמי קירוב
20
כיסוי בצמתים Vertex Cover
גרף G -> מהו m גודל הקבוצה המינימלית S ⊆ V כך שלכל קשת (u,v) ϵ E מתקיים ש-u או v שייכים ל-?S G
21
כיסוי בצמתים Vertex Cover
אולי אפשר לעשות משהו יותר מתוחכם מאשר סתם לבחור קשת כלשהי? כיסוי בצמתים Vertex Cover כל עוד אנחנו תמיד מוסיפים את 2 הצמתים – אי אפשר לשפר את 2-קירוב תזכורת – אלגוריתם 2-קירוב בהרצאה: כל עוד נשארו קשתות בגרף: בוחרים קשת ϵ E (u,v) מוסיפים את u ו-v ל-S מסירים את כל הקשתות שנוגעות ב-u או v מהגרף, וחוזרים ל-1 G u u v v
22
כיסוי בצמתים אלגוריתם חמדן
בעיה 1: אנחנו לא רוצים לבחור את 2 הצמתים של כל קשת פתרון 1: בכל שלב נבחר צמת בעיה 2: אנחנו לא רוצים לבחור "סתם" פתרון 2: נבחר צמת בעל דרגה מקסימלית G u u v v
23
כיסוי בצמתים אלגוריתם חמדן
אלגוריתם חמדן: כל עוד נשארו קשתות בגרף: בוחרים צמת v בעל דרגה מקסימלית מוסיפים את v ל-S מסירים את כל הקשתות שנוגעות ב-v מהגרף, וחוזרים ל-1 G v v
24
כיסוי בצמתים אלגוריתם חמדן
מה פקטור הקירוב של האלגוריתם? נראה כי פקטור הקירוב הוא לפחות O(log(m)) הוכחה - בעזרת דוגמא... G v
25
כיסוי בצמתים אלגוריתם חמדן
כיסוי שהאלגוריתם החמדן בוחר נבנה גרף דו-צדדי... כדי לבנות גרף "נריץ את האלגוריתם החמדן אחורה" - בכל איטרציה נוסיף צמת בכיסוי עם כל הקשתות שלו כדי שהאלגוריתם החמדן יבחר את הכיסוי הורוד, צריך שתמיד הצמת בעל הדרגה המקסימלית יהיה ורוד כיסוי אופטימלי
26
כיסוי בצמתים אלגוריתם חמדן
כדי שהאלגוריתם החמדן יבחר את הכיסוי הורוד, צריך שתמיד הצמת בעל הדרגה המקסימלית יהיה ורוד למשל, אם לקראת סוף הריצה, לצמתים הירוקים יש דרגה 1, נרצה שלצמתים הורודים תהיה דרגה 2 בינתיים, Greedy = Opt/2 חמדן אופטימלי
27
כיסוי בצמתים אלגוריתם חמדן
בינתיים, Greedy = Opt/2 בשלב יותר מוקדם של הריצה, דרגת הצמתים הירוקים היתה 2 - עכשיו נוסיף צמתים ורודים מדרגה 3... עכשיו, Greedy = Opt/2 + Opt/3 חמדן אופטימלי
28
כיסוי בצמתים אלגוריתם חמדן
בשלב ה-i נוסיף Opt/i צמתים ורודים מדרגה i סה"כ בכיסוי הורוד: Greedy/Opt = i1/i = O(log(Opt)) בפרט, האלגוריתם לא נותן יחס קירוב קבוע לאף קבוע... הערה – הראינו שאלגוריתם הקירוב הספיציפי הוא "גרוע" זה לא אומר שקשה לקרב את כיסוי בצמתים (למשל קיים 2-קירוב...) חמדן אופטימלי i קשתות
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.