190 likes | 377 Views
Padding NL-Completeness. אבל לפני. הערה לגבי מכונות א"ד: "מריצים את המכונה הא"ד M ואם היא דוחה אז..." את ההחלטה "אם היא דוחה אז..." אנחנו צריכים לקבל על סמך מה שאנחנו רואים " במסלול שבו אנחנו נמצאים " אם M קבלה במסלול – אז היא מקבלת את הקלט אם M דחתה במסלול – אז אי אפשר לדעת.
E N D
אבל לפני... הערה לגבי מכונות א"ד: "מריצים את המכונה הא"ד 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} טענה1: L’ שייכת ל-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} טענה1: L’ שייכת ל-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)) Lϵ Time(n2) y=(x # 12^|x|) y=(x # 1|x|^2) ריפוד "הסרת ריפוד" L’ϵ S(log(n)) L’ϵ Time(n) נתון
השפה Cycle בעיית הכרעה:בהנתן גרף מכוון G וצמת vהאם קיים מעגל שעובר ב-v? v G v
Cycle ϵ NL טענה: Cycle ϵ NL הוכחה: עד = צמתי המעגל, מסודרים מ-v מוודא = מוודא שקיימת קשת בין כל שני צמתים עוקבים במעגל 2 v 5 G 3 4 7 1 6 v סרט קלט – מטריצת שכנויות סרט עד – מסלול מעגלי בגרף
Cycle ϵ NL-Complete? טענה: Cycle ϵ NL-Complete הוכחה: רדוקציה מ-st-Conn... G v v
נסיון 1: Cycle ϵ NLC הוכחה: רדוקציה מ-st-Conn: נבנה רדוקציה מגרף G ו-s=t... v G f(G) s=t v v v
נסיון 1: Cycle ϵ NLC הוכחה: רדוקציה מ-st-Conn: נבנה רדוקציה מגרף G ו-s=t... v f(G) v v אפשר לעשות רדוקציה אל מקרה פרטי אי אפשר לעשות רדוקציה מ-מקרה פרטי (כי מקרה פרטי יכול להיות יותר קל...) G s=t v
נסיון 2: Cycle ϵ NLC הוכחה: רדוקציה מ-st-Conn: בהנתן גרף G וצמתים s ו-t... נעביר קשת מ-t ל-s v G f(G) t v v s
נסיון 2: Cycle ϵ NLC בהנתן גרף G וצמתים s ו-t: נעביר קשת מ-t ל-s אם ב-G ישמסלול מ-s ל-t, אז יהיה מעגל בגרף f(G) ואם ב-G אין מסלול...? v G f(G) t v v s
Cycle ϵ NLC מטרה: היינו רוצים לוודא שב-f(G) אין מעגלים נוספים רעיון: גרף שכבות 2 3 1 5 4 6 2 3 1 5 4 6
Cycle ϵ NLC רדוקציה - בהנתן גרף G וצמתים s ו-t נגדיר גרף G’ עם |V| שכבות: 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 t2 t|V| V1 V2 V|V| s1
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.