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

9 - למת הניפוח

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

9 - למת הניפוח

02340129

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

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

למת הניפוח

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

uni-folder.vercel.app

למה (הניפוח)

אם LLL שפה רגולרית, אזי היא שפה הניתנת לניפוח, כלומר:
קיים n∈N+n \in \mathbb{N}^+n∈N+ כך שלכל מילה w∈Lw \in Lw∈L המקיימת ∣w∣≥n|w|\geq n∣w∣≥n קיים פירוק w=xyzw=xyzw=xyz כך ש-∣xy∣≤n|xy|\leq n∣xy∣≤n וגם ∣y∣>0|y|>0∣y∣>0 כך שלכל i∈Ni \in \mathbb{N}i∈N מתקיים xyiz∈Lxy^iz \in Lxyiz∈L.

מסקנה

בפרט, נובע כי אם שפה לא ניתנת לניפוח ⇐ היא לא רגולרית.

הערה

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

רעיון ההוכחה:

Full_firstAutomation start q0 q0 start->q0 qf qf q q q0->q x q->qf z q->q y

עבור מילים מספיק ארוכות (∣w∣>∣Q∣|w|>|Q|∣w∣>∣Q∣) יתקיים בהכרח שחוזרים על מצב qqq בריצה על www. קטע המילה שבין החזרות יכול לשמש לניפוח המילה (yyy בציור).

תרגיל

האם למת הניפוח מתקיימת לשפה סופית?

כן והיא ניתנת לניפוח עם n=max⁡∣w∣+1n=\max|w|+1n=max∣w∣+1 ואז השפה ניתנת לניפוח באופן ריק שכן אין שום מילה שכזו.

למה (שלילת למת הניפוח)

אם לכל n∈N+n \in \mathbb{N}^+n∈N+ קיימת מילה w∈Lw \in Lw∈L המקיימת ∣w∣≥n|w|\geq n∣w∣≥n כל שלכל פירוק w=xyzw=xyzw=xyz כך ש-∣xy∣≤n|xy|\leq n∣xy∣≤n וגם ∣y∣>0|y|>0∣y∣>0 קיים i∈Ni \in \mathbb{N}i∈N כך ש-xyiz∉Lxy^iz \not\in Lxyiz∈L אזי LLL לא רגולרית.

לכלםייקלא בוחריםנבחר משהו ספציפיצריך להתייחס לכל אפשרות\begin{array}{|c|c|} \hline לכל & םייק \\ \hline \R{\text{לא בוחרים}} & \R{\text{נבחר משהו ספציפי}} \\ \R{\text{צריך להתייחס לכל אפשרות}} \\ \hline \end{array}לכללא בוחריםצריך להתייחס לכל אפשרות​םייקנבחר משהו ספציפי​​
תרגיל

נגדיר את השפה הבאה מעל Σ={a,b,c}\Sigma=\left\{ a,b,c \right\}Σ={a,b,c}:

L={ucuR∣u∈{a,b}∗}L=\left\{ ucu^R|u \in \left\{ a,b \right\}^* \right\}L={ucuR∣u∈{a,b}∗}

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

הוכחה:
נוכיח כי LLL לא ניתנת לניפוח ⇐ לפי שלילת למת הניפוח, נסיק כי LLL אינה רגולרית.
יהי n∈N+n \in \mathbb{N}^+n∈N+. נבחר w=ancanw=a^nca^nw=ancan אזי מתקיים ∣w∣=2n+1≥n|w|=2n+1\geq n∣w∣=2n+1≥n וגם (an)R=an(a^n)^R=a^n(an)R=an ולכן w∈Lw \in Lw∈L.
יהי פירוק w=xyzw=xyzw=xyz כך ש-∣xy∣≤n|xy|\leq n∣xy∣≤n וגם ∣y∣>0|y|>0∣y∣>0. אזי מתקיים כי x=amx=a^mx=am ו-y=aky=a^ky=ak ו-z=an−m−kcanz=a^{n-m-k}ca^nz=an−m−kcan כאשר m,k∈Nm,k \in \mathbb{N}m,k∈N וגם m+k≤nm+k \leq nm+k≤n ו-k>0k>0k>0. לכן, הפירוק שלנו הוא בעצם w=amakan−m−kcanw=a^ma^ka^{n-m-k}ca^nw=amakan−m−kcan.
נבחר i=0∈Ni=0 \in \mathbb{N}i=0∈N ואז יתקיים

xyiz=am(ak)0an−m−kcan=aman−m−kcan=an−kcanxy^iz=a^m(a^k)^0a^{n-m-k}ca^n=a^ma^{n-m-k}ca^n=a^{n-k}ca^nxyiz=am(ak)0an−m−kcan=aman−m−kcan=an−kcan

מתקיים k>0k>0k>0 ולכן n−k<nn-k<nn−k<n ולכן (an−k)R≠an(a^{n-k})^R\neq a^n(an−k)R=an ונובע xyiz∉Lxy^iz \not\in Lxyiz∈L. לכן, LLL לא ניתנת לניפוח ולא רגולרית כנדרש.
∎

תרגיל

נגדיר את השפות הבאות מעל Σ={a,b}\Sigma=\left\{ a,b \right\}Σ={a,b}:

L1={ap∣ ראשוני p}L_{1}=\left\{ a^p|\R{\text{ ראשוני }}p \right\}L1​={ap∣ ראשוני p} L=({b}+∘L1)∪{a}∗L=(\left\{ b \right\}^+ \circ L_{1}) \cup \left\{ a \right\}^*L=({b}+∘L1​)∪{a}∗

הוכיחו:

  1. LLL ניתנת לניפוח.
  2. LLL לא רגולרית.

הוכחה: (1)
נבחר n=1n=1n=1 תהא מילה w∈Lw \in Lw∈L כך ש-∣w∣≥n|w|\geq n∣w∣≥n. נשים לב שלכל פירוק w=xyzw=xyzw=xyz שיקיים ∣xy∣≤n=1|xy|\leq n=1∣xy∣≤n=1 וגם ∣y∣>0|y|>0∣y∣>0 יתקיים ∣xy∣=1|xy|=1∣xy∣=1 וגם x=εx=\epsilonx=ε וגם ∣y∣=1|y|=1∣y∣=1.
נחלק למקרים לפי הגדרת LLL:
כאשר w∈{b}+∘L1w \in \left\{ b \right\}^+\circ L_{1}w∈{b}+∘L1​: מהגדרת השפה, קיים m∈N+m \in \mathbb{N}^+m∈N+ כך ש-w=bmapw=b^ma^pw=bmap עבור ppp ראשוני כך ש-m+p≥nm+p\geq nm+p≥n. נבחר את הפירוק {x=εy=bz=bm−1ap\begin{cases}x=\epsilon\\y=b\\z=b^{m-1}a^p\end{cases}⎩⎨⎧​x=εy=bz=bm−1ap​ שעונה על ∣xy∣≤n|xy|\leq n∣xy∣≤n וגם ∣y∣>0|y|>0∣y∣>0 כפי שהסברנו קודם.
יהי i∈Ni \in \mathbb{N}i∈N. צ"ל: xyiz∈Lxy^iz \in Lxyiz∈L.
מתקיים: xyiz=bibm−1ap=bm−1+iapxy^iz=b^ib^{m-1}a^p=b^{m-1+i}a^pxyiz=bibm−1ap=bm−1+iap. אם m−1+i>0m-1+i>0m−1+i>0 אזי xyiz∈{b}+∘L1xy^iz \in \left\{ b \right\}^+\circ L_{1}xyiz∈{b}+∘L1​ ולכן xyiz∈Lxy^iz \in Lxyiz∈L מהגדרת האיחוד.
אחרת, m−1+i=0m-1+i=0m−1+i=0 ואז xyiz=apxy^iz=a^pxyiz=ap השייך ל-{a}∗\left\{ a \right\}^*{a}∗ ולכן שייך ל-LLL מהגדרת האיחוד. בכל מקרה, xyiz∈Lxy^iz \in Lxyiz∈L.
כעת נעבור למקרה השני, כאשר w∈{a}∗w \in \left\{ a \right\}^*w∈{a}∗. מהגדרת השפה, קיים m∈Nm \in \mathbb{N}m∈N טבעי כך ש-w=amw=a^mw=am ו-m≥nm\geq nm≥n. נבחר {x=εy=az=am−1\begin{cases}x=\epsilon\\y=a\\z=a^{m-1}\end{cases}⎩⎨⎧​x=εy=az=am−1​ שעונה על הדרישות ∣xy∣≤n|xy|\leq n∣xy∣≤n וגם ∣y∣>0|y|>0∣y∣>0 כפי שהסברנו.
יהי i∈Ni \in \mathbb{N}i∈N. צ"ל: xyiz∈Lxy^iz \in Lxyiz∈L.
מתקיים xyiz=aiam−1=am−1+ixy^iz=a^ia^{m-1}=a^{m-1+i}xyiz=aiam−1=am−1+i. בגלל ש-i∈Ni \in \mathbb{N}i∈N ו-m≥n=1m\geq n=1m≥n=1 מתקיים m−1+i≥0m-1+i\geq 0m−1+i≥0 ולכן xyiz∈{a}∗xy^iz \in \left\{ a \right\}^*xyiz∈{a}∗ ומהגדרת האיחוד xyiz∈Lxy^iz \in Lxyiz∈L.
לסיכום, ראינו כי LLL ניתנת לניפוח לפי הגדרה.
∎

הוכחה: (2)
נניח בשלילה כי LLL רגולרית. על פי הוכחה מההרצאה, מתקיים כי לכל א"ב Σ\SigmaΣ מתקיים כי Σ∗\Sigma^*Σ∗ היא רגולרית ולכן {a}∗\left\{ a \right\}^*{a}∗.
מסגירות שפות רגולריות למשלים, מתקיים כי {a}∗‾\overline{\left\{ a \right\}^*}{a}∗​ רגולרית. מסגירות שפות רגולריות לחיתוך, נובע כי L∩{a}∗‾={b}+∘L1:=L2L \cap \overline{\left\{ a \right\}^*}=\left\{ b \right\}^+\circ L_{1}:=L_{2}L∩{a}∗​={b}+∘L1​:=L2​ היא שפה רגולרית. נראה ש-L2L_{2}L2​ לא ניתנת לניפוח, לכן משלילת למת הניפוח L2L_{2}L2​ לא תהא רגולרי בסתירה. ואז נסיק ש-LLL אינה רגולרית כנדרש.
נראה ש-L2L_{2}L2​ לא ניתנת לניפוח:
יהא n∈N+n \in \mathbb{N}^+n∈N+. נבחר w=bapw=ba^pw=bap כך ש-p≥np\geq np≥n ראשוני. אז מתקיים w∈L2w \in L_{2}w∈L2​ וגם ∣w∣≥n+1≥n|w|\geq n+1\geq n∣w∣≥n+1≥n.
יהי פירוק w=xyzw=xyzw=xyz כך ש-∣xy∣≤n|xy|\leq n∣xy∣≤n וגם ∣y∣>0|y|>0∣y∣>0. נחלק למקרים:
אם x=εx=\epsilonx=ε אזי y=bamy=ba^my=bam עבור m∈Nm \in \mathbb{N}m∈N ואז z=ap−mz=a^{p-m}z=ap−m כך ש-m+1≤nm+1\leq nm+1≤n. נבחר i=0i=0i=0 ויתקיים xyiz=ap−m∉L2xy^iz=a^{p-m}\not\in L_{2}xyiz=ap−m∈L2​ כי מילים ב-L2L_{2}L2​ מתחילות ב-bbb.
אם x≠εx\neq \epsilonx=ε אזי {x=bamy=akz=ap−m−k\begin{cases}x=ba^m\\y=a^k\\z=a^{p-m-k}\end{cases}⎩⎨⎧​x=bamy=akz=ap−m−k​ כך ש-m,k∈Nm,k \in \mathbb{N}m,k∈N ו-k>0k>0k>0 וגם 1+n+k≤n1+n+k \leq n1+n+k≤n (כי ∣xy∣≤n|xy|\leq n∣xy∣≤n). נבחר i=p+1i=p+1i=p+1 ויתקיים xyiz=bam(ak)iap−m−k=bap+(i−1)k=bap(k+1)xy^iz=ba^m(a^k)^ia^{p-m-k}=ba^{p+(i-1)k}=ba^{p(k+1)}xyiz=bam(ak)iap−m−k=bap+(i−1)k=bap(k+1). מתקיים ש-ppp ראשוני ולכן p>1p>1p>1 ו-k+1>1k+1>1k+1>1 כי k>0k>0k>0 ולכן p(k+1)p(k+1)p(k+1) אינו מספר ראשוני. לכן xyiz∉L2xy^iz \not\in L_{2}xyiz∈L2​.
הראנו כי L2L_{2}L2​ לא ניתנת לניפוח, כנדרש.
∎

דרכים להראות כי שפה אינה רגולרית

  1. מראים שהשפה לא ניתנת לניפוח ומשלילת למת הניפוח מסיקים שהיא אינה רגולרית.
  2. מניחים בשלילה שהשפה רגולרית. מבצעים פעולות סגור עם שפות רגולריות ידועות ומקבלים שפה לא רגולרית, בסתירה להנחת השלילה.