יחידה 9

סיבוכיות מקום

חישוב חסום־מקום, נגישות בגרף קונפיגורציות ומשפט סביץ'.

מטרות

  • להגדיר מקום דטרמיניסטי ואי־דטרמיניסטי עם קלט לקריאה בלבד.
  • להשתמש בגרפי קונפיגורציות להוכחות שייכות ושלמות.
  • להרכיב רדוקציות מקום לוגריתמי בלי לשמור את פלט הביניים.
  • לגזור במלואה את רקורסיית סביץ' ואת חסם המקום.
  • להסביר את NL=coNL\mathrm{NL}=\mathrm{coNL} ואת NPSPACE=PSPACE\mathrm{NPSPACE}=\mathrm{PSPACE} בזהירות.

1. המודל ומה סופרים

למכונת טיורינג חסומת־מקום יש סרט קלט לקריאה בלבד וסרטי עבודה לקריאה וכתיבה. מיקום ראש הקלט אינו מחויב כמקום עבודה; תאי העבודה שבהם ביקרנו כן. פלט של טרנסדיוסר הוא לכתיבה בלבד, ולכן אסור להשתמש בו כזיכרון חינם.

SPACE(s(n))=⋃c>0DSPACE(c s(n)),NSPACE(s(n))=⋃c>0NSPACE(c s(n)),L=SPACE(log⁡n),NL=NSPACE(log⁡n).\begin{aligned} \mathrm{SPACE}(s(n))&=\bigcup_{c>0}\mathrm{DSPACE}(c\,s(n)),\\ \mathrm{NSPACE}(s(n))&=\bigcup_{c>0}\mathrm{NSPACE}(c\,s(n)),\\ \mathrm L&=\mathrm{SPACE}(\log n),\qquad \mathrm{NL}=\mathrm{NSPACE}(\log n). \end{aligned}

מכריע אי־דטרמיניסטי חייב לעצור בכל ענף ולעמוד בחסם בכל ענף. מקום ניתן לשימוש חוזר, ולכן חישוב במקום פולינומי עשוי לרוץ זמן מעריכי. כאשר s(n)≥log⁡ns(n)\ge\log n, אפשר למחוק לולאות ממסלול קבלה קצר ביותר, ולכן אורכו אינו עולה על מספר הקונפיגורציות.

2. גרף קונפיגורציות

קונפיגורציה שומרת מצב בקרה, מיקום ראש הקלט, תוכן אזור העבודה ומיקומי ראשי העבודה. עבור אלפבית וקבוצת מצבים קבועים, למכונת מקום s(n)s(n) יש

∣Q∣⋅(n+2)⋅2O(s(n))⋅poly⁡(s(n))=2O(s(n))|Q|\cdot(n+2)\cdot2^{O(s(n))}\cdot\operatorname{poly}(s(n)) =2^{O(s(n))}

קונפיגורציות, בהנחה s(n)≥log⁡ns(n)\ge\log n. בגרף הקונפיגורציות יש קודקוד לכל קונפיגורציה חוקית וקשת לכל מעבר חוקי יחיד. המכונה מקבלת אם ורק אם יש מסלול מקונפיגורציית ההתחלה לקונפיגורציית קבלה.

הגרף בדרך כלל מרומז. הסימולטור מייצר קונפיגורציה מבוקשת או בודק שכנות ב-O(s(n))O(s(n)) מקום. כתיבת כל הקודקודים המעריכיים הייתה הורסת את החסם.

3. STCON היא הבעיה הקנונית של NL

STCON שואלת אם בגרף מכוון יש מסלול מקודקוד מסומן ss לקודקוד tt.

שייכות ל-NL. שומרים קודקוד נוכחי ומונה עד ∣V∣|V|, מנחשים שכן, מאמתים את הקשת ומקבלים בהגעה ל-tt. אם יש מסלול, יש מסלול פשוט באורך לכל היותר ∣V∣−1|V|-1; המונה מונע ענפים אינסופיים. שם קודקוד ומונה דורשים O(log⁡∣V∣)O(\log|V|) ביטים.

NL-קושי. תהי A∈NLA\in\mathrm{NL} ומכונה MM המכריעה אותה. ממפים xx לגרף הקונפיגורציות GM,xG_{M,x} עם קודקודי התחלה וקבלה. הקבלה היא נגישות. הרדוקציה אינה שומרת את הגרף: טרנסדיוסר לוגריתמי מונה שמות קונפיגורציות וזוגות קשתות בעזרת מונים, ומחשב מחדש כל מעבר מקומי. קונפיגורציה של מכונת log-space מכילה O(log⁡n)O(\log n) ביטים. לכן זו רדוקציית many-one במקום לוגריתמי, ו-STCON היא NL-שלמה.

4. רדוקציות לוגריתמיות והרכבה

A≤mLBA\le_m^{\mathrm L}B אם טרנסדיוסר דטרמיניסטי במקום לוגריתמי מחשב ff כך ש-

x∈A  ⟺  f(x)∈B,x\in A\iff f(x)\in B,

ואורך הפלט פולינומי. טרנסדיוסר כולל כזה גם רץ בזמן פולינומי: אם קונפיגורציית העבודה ומיקום הפלט חוזרים בלי התקדמות, הוא נכנס ללולאה.

בהרכבת ff ו-gg, המחרוזת f(x)f(x) עלולה להיות ארוכה מכדי לשמור. מסמלצים את gg; בכל פעם שהוא מבקש את התו ה-ii בקלט, מריצים מחדש את ff עם מונה עד הפקת התו ה-ii. שומרים רק את קונפיגורציית gg, האינדקס וקונפיגורציית ff. מאורך פלט פולינומי נובע log⁡∣f(x)∣=O(log⁡n)\log|f(x)|=O(\log n). לכן רדוקציות לוגריתמיות סגורות להרכבה באמצעות חישוב מחדש.

כדי להוכיח ש-BB היא NL-שלמה, מראים B∈NLB\in\mathrm{NL} ומרדדים אליה בעיה NL-שלמה, לרוב STCON. רדוקציה פולינומית בלבד אינה מספיקה.

5. משפט סביץ': הרקורסיה המלאה

משפט סביץ'. לפונקציית מקום ניתנת לבנייה s(n)≥log⁡ns(n)\ge\log n, NSPACE(s(n))⊆DSPACE(s(n)2).\mathrm{NSPACE}(s(n))\subseteq\mathrm{DSPACE}(s(n)^2).

תהי MM מכונה המשתמשת ב-O(s)O(s) מקום אי־דטרמיניסטי, עם לכל היותר N=2csN=2^{cs} קונפיגורציות. נגדיר

REACH⁡(u,v,ℓ)=״יש מסלול מ-u ל-v באורך לכל היותר 2ℓ״.\operatorname{REACH}(u,v,\ell)= \text{״יש מסלול מ-$u$ ל-$v$ באורך לכל היותר $2^\ell$״}.

בבסיס ℓ=0\ell=0: מקבלים אם u=vu=v או אם (u,v)(u,v) הוא מעבר יחיד. עבור ℓ>0\ell>0 מונים כל קונפיגורציית אמצע mm ומקבלים אם שתי הקריאות

REACH⁡(u,m,ℓ−1)ו-REACH⁡(m,v,ℓ−1)\operatorname{REACH}(u,m,\ell-1) \quad\text{ו-}\quad \operatorname{REACH}(m,v,\ell-1)

מקבלות. מסלול באורך 2ℓ2^\ell ניתן לחצייה באמצע; ובכיוון השני שרשור שני המסלולים נותן מסלול באורך המותר.

קוראים עם ℓ=⌈log⁡N⌉=O(s)\ell=\lceil\log N\rceil=O(s). בכל רמה שומרים u,v,mu,v,m, את ℓ\ell ומונה: יחד O(s)O(s) ביטים. שתי הקריאות מתבצעות זו אחר זו, והמקום משמש מחדש בין מועמדי אמצע. לכן

S(ℓ)≤S(ℓ−1)+O(s),S(O(s))=O(s2).S(\ell)\le S(\ell-1)+O(s),\qquad S(O(s))=O(s^2).

הזמן עצום, בערך NO(log⁡N)=2O(s2)N^{O(\log N)}=2^{O(s^2)}, אך המשפט עוסק במקום. הכפלה במספר הענפים מנתחת זמן, לא מקום.

עבור s(n)=nks(n)=n^k מתקבל NPSPACE⊆PSPACE\mathrm{NPSPACE}\subseteq\mathrm{PSPACE}. הכיוון ההפוך מיידי כי דטרמיניזם הוא מקרה פרטי של אי־דטרמיניזם. לכן

NPSPACE=PSPACE.\mathrm{NPSPACE}=\mathrm{PSPACE}.

לעומת זאת, עבור מקום לוגריתמי סביץ' נותן רק NL⊆SPACE(log⁡2n)\mathrm{NL}\subseteq\mathrm{SPACE}(\log^2n); הוא אינו מוכיח L=NL\mathrm L=\mathrm{NL}.

6. משפט המשלים

משפט אימרמן–סלפשצ'ני. NL=coNL\mathrm{NL}=\mathrm{coNL}; בכלליות, NSPACE(s(n))\mathrm{NSPACE}(s(n)) סגורה למשלים כאשר s(n)≥log⁡ns(n)\ge\log n.

המשפט עצמו הוא חומר מרכזי; הוכחת הספירה האינדוקטיבית המלאה ארוכה יותר מהוכחת סביץ'. הרעיון הוא לאמת אי־נגישות בלי לרשום את כל הקודקודים שהושגו. נסמן ב-RiR_i את הקודקודים הנגישים מ-ss בתוך ii צעדים. מאמתים אי־דטרמיניסטית את המספר המדויק ∣Ri∣|R_i| מתוך ∣Ri−1∣|R_{i-1}| באמצעות מעבר על כל הקודקודים ועדי נגישות באורך i−1i-1. לאחר שהספירה המדויקת מאומתת, בודקים ש-tt אינו ביניהם. המונים ושם קודקוד דורשים מקום לוגריתמי.

הנקודה המפתיעה היא שאי־דטרמיניזם מאמת עובדה שלילית הנראית אוניברסלית דרך ספירה מדויקת. ״ננחש שאין מסלול״ אינו עד.

דוגמה פתורה

בגרף עם הקשתות 1→21\to2, 2→32\to3, 1→41\to4, מכונת STCON יכולה לנחש 1,2,31,2,3 כדי לקבל את (1,3)(1,3). היא שומרת רק קודקוד נוכחי ומונה, לא את המסלול. ברקורסיית סביץ' עם חסם אורך ארבע אפשר לנסות m=2m=2, ולהוכיח רקורסיבית 1⇝21\leadsto2 ו-2⇝32\leadsto3 באורך לכל היותר שניים. ניסיונות אמצע שנכשלו נמחקים לפני הבא.

בהרכבת רדוקציות, אם f(x)f(x) מפיקה מטריצת שכנויות ו-gg קוראת את תאיה בסדר שרירותי, לא שומרים את המטריצה. כל בקשה לתא ii מריצה שוב את ff עד התו ה-ii. הזמן גדל, המקום נשאר לוגריתמי.

טעויות נפוצות

  • לחייב את סרט הקלט כמקום עבודה או להשתמש בפלט כזיכרון.
  • להשמיט מונה צעדים מאלגוריתם STCON ולהשאיר ענפים שאינם עוצרים.
  • לבנות בפועל את גרף הקונפיגורציות.
  • להשתמש ברדוקציה פולינומית כשנדרשת שלמות תחת log-space.
  • לשמור את f(x)f(x) תוך טענה שסגרנו הרכבה לוגריתמית.
  • להכפיל את ענפי סביץ' בתוך חסם המקום.
  • לטעון שסביץ' מוכיח L=NL\mathrm L=\mathrm{NL}.
  • לחשוב ש-NL=coNL\mathrm{NL}=\mathrm{coNL} נובע פשוט מהחלפת מצבי קבלה ודחייה.

המחשות

בנייה מודרכת

רקורסיית סביץ׳

שלב 1 מתוך 6
גרף הקונפיגורציות והרקורסיה של סביץ׳הגרף 1 אל 2 אל 3, עם קשת נוספת מ־1 אל 4, מתואם עם רקורסיית עומק תחילה עבור REACH בין 1 ל־3 ברמה 2.גרף קונפיגורציות מרומז1234מסלול עד: 1 → 2 → 3 (2 ≤ 4)רקורסיית עומק תחילההקריאה החסומה תופיע בשלב הבא
מסלול עדמסגרת מחסנית פעילה

מציגים זה לצד זה גרף קונפיגורציות מרומז ועץ רקורסיית סביץ', כאשר רק מסלול רקורסיבי פעיל אחד נמצא בזיכרון. בלוח נוסף gg מבקשת תו ii, ו-ff ״משוחזרת״ עד הפקתו.

תרגילים

תרגיל 1 — מסלול קבלה קצר

הוכיחו שמסלול קבלה פשוט במכונת מקום s(n)s(n) מכיל פחות מ-NN קונפיגורציות, כאשר NN הוא מספר הקונפיגורציות.

פתרון

אם קונפיגורציה חוזרת במסלול, המקטע ביניהן הוא מעגל שניתן למחוק בלי לאבד נגישות לקבלה (בדטרמיניזם של המעברים לאורך המסלול הנבחר). לכן קיים מסלול פשוט באורך <N<N.

תרגיל 2 — מה שומרת מכונת NL ל-STCON

תארו את מצב העבודה של מכונת NL סטנדרטית ל-STCON וחסמו את המקום ב-O(log⁡∣V∣)O(\log|V|).

פתרון

שומרים קודקוד נוכחי (O(log⁡∣V∣)O(\log|V|) ביטים), מונה צעדים עד ∣V∣|V| (למניעת לולאות), ומקום זמני לבדיקת קשת. סה״כ O(log⁡∣V∣)O(\log|V|).

תרגיל 3 — הרכבת רדוקציות לוגריתמיות

מדוע בהרכבה log⁡∣f(x)∣=O(log⁡∣x∣)\log|f(x)|=O(\log|x|) חיוני? מה משחזרים במקום לשמור?

פתרון

פלט של טרנסדיוסר לוגריתמי הוא באורך פולינומי, ולכן אינדקס תו בפלט הוא O(log⁡∣x∣)O(\log|x|). בהרכבה לא שומרים את f(x)f(x) שלם — משחזרים תו־לפי־תו במקום לוגריתמי, ומחליפים מקום בזמן.

תרגיל 4 — סביץ' ל-O(s2)O(s^2)

פתרו את הרקורסיה S(ℓ)=S(ℓ−1)+O(s)S(\ell)=S(\ell-1)+O(s) בעומק ℓ=O(s)\ell=O(s), והסיקו את חסם המקום של סביץ'.

פתרון

S(ℓ)=O(s⋅ℓ)=O(s2)S(\ell)=O(s\cdot\ell)=O(s^2) עבור ℓ=⌈log⁡N⌉=O(s)\ell=\lceil\log N\rceil=O(s). לכן NSPACE(s)⊆DSPACE(O(s2))\mathrm{NSPACE}(s)\subseteq\mathrm{DSPACE}(O(s^2)).

תרגיל 5 — NPSPACE=PSPACE\mathrm{NPSPACE}=\mathrm{PSPACE} ו-NL=coNL

הסיקו NPSPACE=PSPACE\mathrm{NPSPACE}=\mathrm{PSPACE} מסביץ'. האם NL=coNL\mathrm{NL}=\mathrm{coNL} גורר L=NL\mathrm L=\mathrm{NL}?

פתרון

ל-s=nks=n^k: NSPACE(nk)⊆DSPACE(n2k)⊆PSPACE\mathrm{NSPACE}(n^k)\subseteq\mathrm{DSPACE}(n^{2k})\subseteq\mathrm{PSPACE}; האיחוד נותן NPSPACE⊆PSPACE\mathrm{NPSPACE}\subseteq\mathrm{PSPACE}. ההיפוך מיידי. NL=coNL\mathrm{NL}=\mathrm{coNL} אינו ממוטט דטרמיניזם ואי־דטרמיניזם: סגירות למשלים ≠\neq L=NL\mathrm L=\mathrm{NL}.

סיכום

מקום מובן דרך נגישות מרומזת. STCON לוכדת את NL; סביץ' מריבע מקום; NPSPACE=PSPACE; Immerman–Szelepcsényi נותן NL=coNL.

תרגול מודרך

משימה 1 — מספר קונפיגורציות ב-log-space

הוכיחו שלמכונת O(log⁡n)O(\log n) מקום יש מספר פולינומי של קונפיגורציות.

פתרון

תוכן עבודה: ∣Γ∣O(log⁡n)=nO(1)|\Gamma|^{O(\log n)}=n^{O(1)}. מיקומי ראשים ומצב תורמים גורמים פולינומיים. לכן N=nO(1)N=n^{O(1)}, וגרף הקונפיגורציות מרומז בגודל פולינומי.

משימה 2 — complete מול hard

הבחינו בין NL-hard ל-NL-complete. מתי רדוקציה ל-STCON מוכיחה שלמות?

פתרון

Hard: כל שפת NL נרדדת אל BB. Complete: גם B∈NLB\in\mathrm{NL}. רדוקציה מכל שפת NL ל-STCON מוכיחה קושי; עם STCON∈NL\in\mathrm{NL} מתקבלת שלמות.

משימה 3 — מתווה Immerman–Szelepcsényi

סכמו ברמת רעיון מדוע אי־נגישות ב-STCON ב-NL (בלי הוכחה מלאה).

פתרון

סופרים את מספר הקודקודים הנגישים מ-ss בשכבות, ומאמתים את הספירה באופן אי־דטרמיניסטי. אם tt אינו בספירה, מקבלים אי־נגישות. הספירה המאומתת מחליפה ״לא מצאתי מסלול״ שאינו חוקי ב-NL.

נתיב מקורות וסמכות

  • ראיות סטודנטיאליות/קורס: סיכומי שיעור/סיכום ממוזג.pdf, עמ׳ 101–130 ועמ׳ 142 (L/NL, נגישות, רדוקציות, סביץ' ומשלים). זהו סיכום סטודנטיאלי המשמש להתאמת קורס, לא סמכות למשפטים.
  • סמכות ספרי לימוד: Sipser, מהדורה 3, פרק 8: §8.1 עמ׳ 333–336, §§8.4–8.5 עמ׳ 348–354, §8.6 עמ׳ 354–356; Arora–Barak, טיוטה, פרק 4, §§4.1–4.4, עמ׳ ספר 75–87; Papadimitriou, פרק 7, בפרט §7.3 עמ׳ 146–154, ופרק 16 §16.1 עמ׳ 395–399.
  • מצב עריכתי: שוויוני המחלקות ורקורסיית סביץ' נבדקו מול סעיפים אלה. הוכחת NL=coNL מסומנת במפורש כמתווה. נבדק; ביטחון גבוה.