חזור לתיקייה: תרגול

שעת קבלה של שרי מדמקה

חיפוש בתיקיה
Ctrl K
לחץ כאן או הקש Ctrl K כדי לחפש בכל התיקיה
  • כללי

שעת קבלה של שרי מדמקה

02340129

מבוא לתורת הקבוצות ואוטומטים למדמח

רשימות תרגול לקריאה בשבת

שעת קבלה של שרי מדמקה

הופק מתוך תקיית התואר של שקד

uni-folder.vercel.app

תרגיל

הוכיחו באמצעות לכסון שהקבוצה הבאה אינה בת מניה.

A={L⊆{0,1}∗∣∀w∈L:  #0[w]≡0(mod  2)}A=\left\{ L \subseteq \left\{ 0,1 \right\}^*| \forall w \in L:\; \#_{0}[w]\equiv 0 (mod\; 2) \right\}A={L⊆{0,1}∗∣∀w∈L:#0​[w]≡0(mod2)}

הדרך הנכונה להסתכל על קבוצות היא גם על ידי וקטור אינסופי. אחרי שאנו נבהלים מזה שהביאו לנו שפות אנו מבינים כי עלינו ללכסן קבוצה.
לפני שנתחיל נעשה סקירה של איך מלכסנים כאשר מדובר קבוצת קבוצות:
[...] תהי g:N→Ag:\mathbb{N}\to Ag:N→A. אנו נרצה להראות כי ggg אינה על.
כאשר AAA היא קבוצה של קבוצות, אנו יכולים להסתכל על AAA כך: A={B∣B⊆W}A=\left\{ B | B \subseteq W \right\}A={B∣B⊆W}. נניח ש-WWW היא בת מניה.

הערה

נשים לב כי זה גם מתרחש במקרה שלנו שכן {0,1}∗\left\{ 0,1 \right\}^*{0,1}∗ היא בת מנייה.

נשרטט לנו טבלה שכזו, בה כל עמודה היא מילה ב-www.

W={w0,w1,w2,… }W=\left\{ w_{0},\quad w_{1},\quad w_{2},\quad \dots \right\}W={w0​,w1​,w2​,…}

ואז, לכל אינדקס, נבדוק האם המילה נמצאת ב-g(n)g(n)g(n) ואם לא, נוסיף אותה לקבוצה שאנו יוצרים על מנת להראות כי ggg אינה על.

w0w1w2…g(0)=/✓g(1)=⋮\begin{array}{|c|c|} \hline w_{0} & w_{1} & w_{2} & \dots \\ \hline g(0)= & \xcancel{}/\checkmark \\ \hline g(1)= \\ \hline \vdots \end{array}w0​g(0)=g(1)=⋮​w1​/✓w2​…​

לפעמים, נוכל לצמצם את WWW עוד יותר כדי לוותר מראש על מקרים לא רלוונטיים. במקרה שלנו, נוכל להתמקד בקבוצה {02i∣i∈N}\left\{ 0^{2i}|i \in \mathbb{N} \right\}{02i∣i∈N}. השפות ב-AAA לאו דווקא מוכלות בקבוצה החדשה שלנו, אבל מספיק לנו לקלקל את האיברים המופיעים בה על מנת לראות שהקבוצה אינה בת מניה.
כעת, אנו ערוכים ללכסן. אנו נבנה שפה LLL כך ש-L∈AL \in AL∈A ו-∀i∈N:  L≠g(i)\forall i \in \mathbb{N}:\; L\neq g(i)∀i∈N:L=g(i).

L={02i∣i∈N,  02i∉g(i)}L=\left\{ 0^{2i}| i \in \mathbb{N},\; 0^{2i} \not\in g(i) \right\}L={02i∣i∈N,02i∈g(i)}

נראה את זה ויזואלית:

0002040608…g(0)=✓✓✓…g(1)=✓✓✓✓…g(2)=✓…\begin{matrix} & 0^0 & 0^2 & 0^4 & 0^6 & 0^8 & \dots \\ g(0)= & \boxed{\xcancel{}} & \checkmark & \checkmark & \xcancel{} & \checkmark & \dots \\ g(1)= & \checkmark & \boxed{\checkmark} & \xcancel{} & \checkmark & \checkmark & \dots \\ g(2)= & \xcancel{} & \xcancel{} & \boxed{\xcancel{}} & \checkmark & \xcancel{} & \dots \end{matrix}g(0)=g(1)=g(2)=​00​✓​02✓✓​​04✓​​06✓✓​08✓✓​…………​

נקבל כי: L={ε,04,… }L=\left\{ \epsilon,0^4,\dots \right\}L={ε,04,…}
נקבל כי L⊆{02i∣i∈N}L \subseteq \left\{ 0^{2i}|i \in \mathbb{N} \right\}L⊆{02i∣i∈N} ולכן, L∈AL \in AL∈A: כל המילים בעלות מס' זוגי של 000.
לכל i∈Ni \in \mathbb{N}i∈N: 02i∉g(i)  ⟺  02i∈L0^{2i}\not\in g(i)\iff 0^{2i}\in L02i∈g(i)⟺02i∈L. כלומר, לכל i∈Ni \in \mathbb{N}i∈N g(i)g(i)g(i) ו-LLL לא מסכימות על 02i0^{2i}02i ⇐ g(i)≠Lg(i)\neq Lg(i)=L ולכן, ggg אינה על.

וקטור מייצג: אם B⊆AB \subseteq AB⊆A ו-AAA ב"מ, אפשר לתאר את BBB כווקטור:

A:a0a1a2a3…B:0/1בהתאמה…\begin{matrix} A: & a_{0} & a_{1} & a_{2} & a_{3} & \dots \\ B: & \underbracket{0/1}_{\R{בהתאמה}} & \dots \end{matrix}A:B:​a0​בהתאמה0/1​​a1​…​a2​a3​…

ואז: A={1,2,3,4,5}A=\left\{ 1,2,3,4,5 \right\}A={1,2,3,4,5} ו-B={2,5}B=\left\{ 2,5 \right\}B={2,5}:

B:(0,1,0,0,1)B:(0,1,0,0,1)B:(0,1,0,0,1)
הערה (דרכים להוכיח ששפה היא רגולרית)

  • לבנות אוטומט.
  • לבנות ביטוי רגולרי.
  • להוכיח שהיא הפעלה של פעולות סגור על שפות רגולריות.
  • מהייל נרוד
תרגיל

נסמן B=NNB=\mathbb{N}^{\mathbb{N}}B=NN. נגדיר את התומך של fff להיות: Sf={n∣f(n)≠0}S_{f}=\left\{ n|f(n)\neq 0 \right\}Sf​={n∣f(n)=0} (קבוצת כל האיברים שאינם נשלחים ל-000)
הוכיחו כי הקבוצה הבאה הינה בת מנייה

Y={f∈B∣ סופיתSf}Y=\left\{ f \in B| \R{\text{ סופית}}S_{f} \right\}Y={f∈B∣ סופיתSf​}
הערה (הבחנה)

  ⟺  f∈Y\iff f \in Y⟺f∈Y קיים j∈Nj \in \mathbb{N}j∈N כך שלכל j′>jj'>jj′>j מתקיים f(j′)=0f(j')=0f(j′)=0
נוכל להוכיח על סמך האינדקס המקסימלי ב-SfS_{f}Sf​.

נגדיר: Yi={f∣ מקבלת 0 מ-i והלאהf}Y_{i}=\left\{ f|\R{\text{ מקבלת 0 מ-i והלאה}} f\right\}Yi​={f∣ מקבלת 0 מ-i והלאהf}.
מתקיים: Y=⋃i≥0YiY=\bigcup_{i\geq 0}Y_{i}Y=⋃i≥0​Yi​. כעת נותר לנו להראות רק כי כל קבוצה YiY_{i}Yi​ היא בת מנייה.

הערה (אינטואיציה)

תהי f∈Yif \in Y_{i}f∈Yi​ אז fff ניתנת לתיאור ע"י iii האינדקסים הראשונים שלה.

נגדיר: gi:Yi→Nig_{i}:Y_{i}\to \mathbb{N}^igi​:Yi​→Ni חח"ע.

דוגמה

f(i)={2ii≤40i>4f(i)=\begin{cases} 2i & i\leq 4 \\ 0 & i>4 \end{cases}f(i)={2i0​i≤4i>4​

מספיק לנו לתאר את האיברים הראשונים של הפונקציה כוקטור:

f:(02468)000…\begin{matrix} f: & {\color{red}(}0 & 2 & 4 & 6 & 8{\color{red})} & 0 & 0 & 0 & \dots \end{matrix}f:​(0​2​4​6​8)​0​0​0​…​

זהו וקטור מ-N5\mathbb{N}^5N5.

משפט (שלמדנו)

לכל i∈Ni \in \mathbb{N}i∈N: Ni\mathbb{N}^iNi בת מנייה.

שיעורי בית (חשוב)

כמובן שצריך שהכל יהיה פורמלי

לכל f∈Yif \in Y_{i}f∈Yi​:

g(f)=(f(0),f(1),…,f(i−1))g(f)=(f(0),f(1),\dots,f(i-1))g(f)=(f(0),f(1),…,f(i−1))

נוכיח כעת כי ggg חח"ע:
יהיו f1,f2∈Yif_{1},f_{2} \in Y_{i}f1​,f2​∈Yi​ כך ש-g(f1)=g(f2)g(f_{1})=g(f_{2})g(f1​)=g(f2​). נוכיח כי f1=f2f_{1}=f_{2}f1​=f2​.
אז מהגדרת ggg, לכל 0≤k≤i0\leq k\leq i0≤k≤i מתקיים כי f1(k)=f2(k)f_{1}(k)=f_{2}(k)f1​(k)=f2​(k) ולכל k≥ik\geq ik≥i: f1(k)=f2(k)=0f_{1}(k)=f_{2}(k)=0f1​(k)=f2​(k)=0 מהשתייכותן ל-YiY_{i}Yi​.
⇐ לכל k∈Nk \in \mathbb{N}k∈N: f1(k)=f2(k)f_{1}(k)=f_{2}(k)f1​(k)=f2​(k) ⇐(הגדרת שוויון פונקציות) f1=f2f_{1}=f_{2}f1​=f2​.
לכן, ggg חח"ע לפי הגדרה.

הערה (שרי אמרה)

רוב השאלות על אוטומטים הן שאלות בנייה.

תרגיל

השפות L0,1,2L_{0,1,2}L0,1,2​ רגולריות מעל Σ={a,b}\Sigma=\left\{ a,b \right\}Σ={a,b}.

L={w#k∣w∈Σ∗,w∈Lk(mod  3)}L=\left\{w\#^{k}|w \in \Sigma^*, w \in L_{k (mod\; 3)} \right\}L={w#k∣w∈Σ∗,w∈Lk(mod3)​}

מעל {a,b,#}\left\{ a,b,\# \right\}{a,b,#}. הוכיחו שהשפה רגולרית.
דוגמה: aba#15aba\#^{15}aba#15 (הערה: סולמית פה היא תו ולא מספר ה...) שייכת ל-LLL   ⟺  \iff⟺ aba∈L0aba \in L_{0}aba∈L0​.

ישנם כל מני דרכים לעשות זאת. ננסה באמצעות ε−NFA\epsilon-NFAε−NFA.
​שעת קבלה של שרי מדמקה 2026-02-16 11.03.54.excalidraw.svg
זוהי דרך קצת פחות טובה שכן כעת נדרש להוכיח שהשפה מתאימה.
נוכל בעוד דרכים כגון:

  1. אוטומט מכפלה: רצים על שלושתם בו"ז ולפי המצבים המקבלים, להחליט כמה #\## לקרוא. ("זה פח" - שרי)
  2. ביטויים רגולריים: נקח rir_{i}ri​ כביטוי הרגולרי עבור LiL_{i}Li​. ואז:
    r=r0(###)∗+r1(###)∗#+r2(###)∗##r=r_{0}(\#\#\#)^*+r_{1}(\#\#\#)^*\#+r_{2}(\#\#\#)^*\#\#r=r0​(###)∗+r1​(###)∗#+r2​(###)∗##
    נדרש לעוד שתי שורות נימוק ואז סיימנו.
תרגיל

הוכיחו באמצעות למת הניפוח שהשפה הבאה אינה רגולרית.

L={aibji>j}L=\left\{ \begin{array}{c|c} a^ib^j & i> j \end{array} \right\}L={aibj​i>j​}
הערה

נשים לב ש-xy2zxy^2zxy2z לא יעבוד לנו עם השפה הזו ונדרש לקחת חזקה אחרת לניפוח שלנו.

נניח בשלילה כי LLL רגולרית.
יהי n≥1n\geq 1n≥1 קבוע המובטח ע"י למת הניפוח. נבחר: an+1bna^{n+1}b^nan+1bn. יהי xyzxyzxyz פירוק של המילה כך ש-∣xy∣≤n|xy|\leq n∣xy∣≤n וגם y≠εy\neq \epsilony=ε. ולכן, xxx יהיה רצף של aaa-ים, yyy יהיה רצף של-aaa-ים ו-zzz יהיה רצף של aaa-ים ואז bbb-ים. נכתוב:

s+t≤n,  t>0asatan+1−s−tbns+t\leq n,\; t>0 \qquad a^sa^ta^{n+1-s-t}b^ns+t≤n,t>0asatan+1−s−tbn

נבחר: i=0i=0i=0 ואז:

asat0an+1−s−tbn=an+1−tbna^s{a^t}^0a^{n+1-s-t}b^n=a^{n+1-t}b^nasat0an+1−s−tbn=an+1−tbn

מכיוון ש-t>0t>0t>0 נקבל כי n+1−t≤nn+1-t\leq nn+1−t≤n ולכן, an+1−tbn∉La^{n+1-t}b^n \not\in Lan+1−tbn∈L בסתירה ללמת הניפוח. לכן, LLL אינה רגולרית.

תרגיל

{aibjck∣אם 0<i אז j=k}\left\{ a^ib^jc^k|\R{\text{אם 0<i אז j=k}} \right\}{aibjck∣אם 0<i אז j=k}

טענה: מתקיימים תנאי למת הניפוח החל מ-i=2i=2i=2.

תהי w∈Lw \in Lw∈L כך ש-∣w∣≥2|w|\geq2∣w∣≥2.

aa…a⏞ib…bc…c\overbrace{aa\dots a}^{i}b\dots bc\dots caa…aib…bc…c

אם i>0i>0i>0 נקבע: x=εx=\epsilonx=ε, y=ay=ay=a ו-=z=z=z כל היתר.
אחרת, b…bc…cb\dots bc\dots cb…bc…c ופה ברור שניתן לנפח(כי היא רגולרית).

הערה

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