אוטומטים ושפות פורמליות/שפות פורמליות: הבדלים בין גרסאות בדף
תוכן שנמחק תוכן שנוסף
Crazy Ivan (שיחה | תרומות) מאין תקציר עריכה |
Crazy Ivan (שיחה | תרומות) מאין תקציר עריכה |
||
שורה 5:
א. '''אלפבית (פורמלי)''': קבוצה של סימנים, או אותיות, שמהם מייצרים את המילים בשפה. קבוצה זו היא סופית.
ב. '''מילה (פורמלית)''': רצף סופי של אותיות מהאלפבית. מקובל לומר שמילה המכילה רק אותיות מאלפבית מסוים היא ''מעל האלפבית'' המסוים. מילה מסומנת בדרך כלל באות <math>\ w</math>.
ג. '''המילה הריקה''': רצף אותיות באורך 0. למילה הריקה, המסומנת בדרך-כלל באות <math>\ \varepsilon</math>, יש מעמד זהה לכל מילה אחרת מעל האלפבית, והיא יכולה להיות שייכת או לא שייכת לשפה.
ד. '''שפה (פורמלית)''': קבוצה של מילים. למרות שהאלפבית הוא סופי ואורך כל מילה הוא סופי, השפה יכולה להיות אינסופית; זאת משום שאורך כל מילה אינו חסום. שפה מסומנת בדרך כלל באות <math>\ L</math>.
== דוגמאות ==
=== דוגמאות לאלפבית ===
* האלפבית
* האלפבית
* האלפבית
לרוב האלפבית מסומן באות יוונית גדולה כגון <math>\Sigma</math> או <math>\Gamma</math>.
=== דוגמאות למילים ===
נניח כי האלפבית הוא האלפבית הבינארי <math>\ \Sigma=\{0,1\}</math>. נבחן את הדוגמאות הבאות:
* 0000 - מילה באורך 4.
* 1 - מילה באורך 1 (וגם אות באלפבית).
* <math>\varepsilon</math> - המילה הריקה, אורכה 0.
דוגמאות למחרוזות שאינן מילים מעל <math>\Sigma</math>:
* 012 - מכילה את האות "2" שאינה באלפבית הבינארי.
* <math>0000\ldots</math> - בעלת אורך אינסופי, ולכן אינה מוגדרת כמילה.
=== דוגמאות לשפות פורמליות ===
* השפה הריקה (אינה מכילה אף מילה). <math>L= \{\}=\emptyset</math>
* השפה שמילותיה הן בדיוק סימני האלפבית
* שפת כל הצירופים הסופיים מעל האלפבית. לשפה זאת מספר מילים אינסופי מכיוון שאין בה מגבלה על אורך המילים. מסמנים <math>\ L=\Sigma^*</math>. סימון זה יוסבר בהמשך.
* השפה המכילה מילה יחידה - את המילה הריקה <math>L=\{\varepsilon\}</math>. יש לשים לב שזו '''אינה''' השפה הריקה, מכיוון ששפה זו מכילה מילה אחת, והשפה הריקה מכילה 0 מילים (אינה מכילה אף מילה).
== פעולות על שפות ==
כאמור, שפה היא קבוצה של מילים, ולכן ניתן לבצע עליה על פעולה שניתן לבצע על קבוצות, למשל איחוד, חיתוך, החסרה וכו'. נשים דגש על מספר פעולות חשובות:
* '''שרשור שפות''' - יהיו <math>\ L_1, L_2</math> שפות מעל אלפבית כלשהו. השרשור של <math>\ L_1</math> עם <math>\ L_2 </math> מסומן <math> L_1\circ L_2</math> ולפעמים <math>\ L_1L_2</math>, ומוגדר ככל המחרוזות המתחילות במחרוזת מתוך <math>\ L_1</math> אליה משורשרת מחרוזת מ-<math>\ L_2</math>. באופן פורמלי:
<center><math>L_1\circ L_2 = \{
* '''חזקה''' - חזקה של שפה היא שרשור השפה לעצמה מספר פעמים. למשל <math>L_1^2 = L_1\circ L_1</math>.
* '''כוכב''' (כוכב קליני) - פעולת הכוכב מוגדרת באופן הבא:
<center><math> L^* = \{\varepsilon\} \cup L \cup L^2 \cup L^3 \ldots</math></center>
:כלומר, השפה המכילה את המילה הריקה, את כל המילים של השפה <math>\ L
:כעת ניתן להבין
=== דוגמאות ===
*עבור האלפבית הבינארי
*כאמור לעיל, <math>\Sigma^* =\{\varepsilon, 0,1,00,01,10,11,000,\ldots \}</math>.
*עבור <math>\ L=\{a, bc\}</math> נקבל <math>\ L^2 = \{ aa, abc, bca, bcbc\}</math>.
{{אוטומטים ושפות פורמליות|מוגבל}}
|