בעיות נוספות ב-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‬‬