בעיות נוספות ב-NPC
Download
Report
Transcript בעיות נוספות ב-NPC
Padding
NL-Completeness
אבל לפני...
• הערה לגבי מכונות א"ד:
"מריצים את המכונה הא"ד Mואם היא דוחה אז"...
את ההחלטה "אם היא דוחה אז "...אנחנו צריכים לקבל על סמך
מה שאנחנו רואים "במסלול שבו אנחנו נמצאים"
אם Mקבלה במסלול – אז היא מקבלת את הקלט
אם Mדחתה במסלול – אז אי אפשר לדעת
ריפוד
Padding
• טענה:
אם )Space(n) ⊆ Time(n10
אז )Space(n2) ⊆ Time(n20
• הוכחה :בעזרת ריפוד...
– לכל ) L ϵ Space(n2קיימת מ"ט MLשמכריעה את L
במקום ).O(n2
– ריפוד -נגדיר שפה:
}L’ = {(x # 1|x|^2) s.t. x ϵ L
ריפוד
Padding
• ריפוד L’ = {(x # 1|x|^2) s.t. x ϵ L} -
• טענה L’ :1שייכת לSpace(n)-
• הוכחה :1נגדיר מכונה ’ MLעל קלט :y
– מבצעת בדיקת חוקיות – האם yמהצורה )?(x # 1|x|^2
– מריצה את MLעל xומקבלת אמ"ם MLמקבלת
– סיבוכיות מקוםO(|x|2) = O(|y|) :
ריפוד
Padding
• ריפוד L’ = {(x # 1|x|^2) s.t. x ϵ L} -
• טענה L’ :1שייכת לSpace(n)-
• מסקנה L’ :שייכת לTime(n10)-
• הוכחת הטענה המקורית...
בהנתן מכונה ’ TLשמכריעה את ’ LבTime(n10)-
נגדיר מכונה TLשתכריע את Lבזמן )Time(n20
ריפוד
Padding
בהנתן מכונה ’ TLשמכריעה את ’ LבTime(n10)-
נגדיר מכונה TLשתכריע את Lבזמן ):Time(n20
• TLעל קלט :x
– תכתוב את )y = (x # 1|x|^2
– תריץ את ’ TLעל yותקבל אמ"ם ’ TLקבלה
• סבוכיות זמןO(|x|2) + O(|y|10) = O(|x|20) :
ריפוד
Padding
Space(n) ⊆ Time(n10) אם
Space(n2) ⊆ Time(n20) אז
Lϵ
Space(n2)
Lϵ
Time(n20)
ריפוד
L’ ϵ
Space(n)
:• טענה
"הסרת
"ריפוד
נתון
L’ ϵ
Time(n10)
P ?= PSPACE
Space(log(n)) ⊆ Time(n) אם
Space(n*log(n)) ⊆ Time(n2) אז
Lϵ
S(n*log(n))
y=(x # 12^|x|)
ריפוד
L’ ϵ
S(log(n))
:• טענה
Lϵ
Time(n2)
y=(x # 1|x|^2)
"הסרת
"ריפוד
נתון
L’ ϵ
Time(n)
השפה Cycle
• בעיית הכרעה :בהנתן גרף מכוון Gוצמת v
האם קיים מעגל שעובר ב?v-
G
v
Cycle ϵ NL
• טענהCycle ϵ NL :
• הוכחה:
– עד = צמתי המעגל ,מסודרים מv-
– מוודא = מוודא שקיימת קשת בין כל שני צמתים עוקבים במעגל
סרט קלט – מטריצת שכנויות
G
||V
4
2
3
1
v
1
...
1
1
7
…
6
||V
5
סרט עד – מסלול מעגלי בגרף
||V
5
2
||V
Cycle ϵ NL-Complete?
G
Cycle ϵ NL-Complete :• טענה
...st-Conn- רדוקציה מ:• הוכחה
v
נסיון Cycle ϵ NLC :1
• הוכחה :רדוקציה מ:st-Conn-
– נבנה רדוקציה מגרף Gו...s=t-
G
)f(G
vv
s=t
v
נסיון Cycle ϵ NLC :1
• הוכחה:
אפשר לעשות רדוקציה אל מקרה פרטי
st-Connמ-:מקרה פרטי
לעשות רדוקציה
אי אפשר
רדוקציה מ-
להיות...
יכול וs=t-
מגרף G
רדוקציה
יותר קל(...
מקרה פרטי
– נבנה (כי
G
)f(G
vv
s=t
v
נסיון Cycle ϵ NLC :2
• הוכחה :רדוקציה מ:st-Conn-
– בהנתן גרף Gוצמתים sו...t-
נעביר קשת מ t-לs-
)f(G
G
t
v
v
v
s
נסיון Cycle ϵ NLC :2
– בהנתן גרף Gוצמתים sו :t-נעביר קשת מ t-לs-
)f(G
G
t
v
v
v
s
אם ב G-יש מסלול מ s-ל ,t-אז יהיה מעגל בגרף )f(G
ואם ב G-אין מסלול?...
Cycle ϵ NLC
• מטרה :היינו רוצים לוודא שב f(G)-אין מעגלים נוספים
• רעיון :גרף שכבות
3
2
1
5
4
6
3
2
1
5
4
6
Cycle ϵ NLC
- • רדוקציה
:| שכבותV| עםG’ נגדיר גרףt- וs וצמתיםG בהנתן גרף
• V’ = {(v,i( s.t. v ϵ V and 1≤ i ≤ |V|}
• E’ = {(u,i(→(v,i+1(, s.t. (u→v( ϵ E}
∪
{(t,i(→(s,1)}
t1
V1
s1
t2
V2
t|V|
V|V|
Cycle ϵ NLC
}|• V’ = {(v,i( s.t. v ϵ V and 1≤ i ≤ |V
})• E’ = {(u,i(→(v,i+1(, s.t. (u→v( ϵ E} ∪ {(t,i(→(s,1
• סיבוכיות – גודל הפלט הוא ),O(n2
אבל בסרט העבודה משתמשים רק במקום לוגריתמי
Cycle ϵ NLC
• שלמות:
אם ב G-יש מסלול מ s-ל t-באורך ,iאז ב G’-יש מסלול מ-
) (s,1ל (t,i)-ולכן קיים מעגל ב G’-שמכיל את ).(s,1
• נאותות:
אם ב G’-יש מעגל ,הוא חייב לעבור דרך קשת מהצורה
).(t,i(→(s,1
לכן המעגל חייב לעבור גם על מסלול מ (s,1)-ל.(t,i)-
לכן ב G-יש מסלול מ s-ל t-באורך .i