שאלה על שפות רגולריות

liorgu

New member
שאלה על שפות רגולריות

צריך עזרה בפתרון השאלה המצורפת. תודה מראש לכל עוזר!
 

MegaMango

New member
זה הרעיון שלי..

אם אנחנו מחפשים שפה שמכילה את כל המילים שהמילים בL הן לא תתי מילים שלהן אז אפשר להגיד ש-אלה כל המילים בסיגמא כוכבית פחות כל המילים שהן תתי מילים בL(פחות=חיתוך גג). (קל למצוא אוטומט שמוכיח רגולריות עבור Ls-שפת תתי המילים של L) ואם אני לא טועה עם משפט קליני ידוע שכל שפה שמורכבת מחיתוך של שפות רגולריות גם היא רגולרית...אני לא ממש למדתי את המשפט הזה אז אם אני טועה זו לא התשובה P: אבל אם כן, זה רגולרי למדי.
 

MegaMango

New member
אוקי, הנה פיתרון.

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

vinney

Well-known member
המם...

L1 שלך וL זה אותה שפה בעצם... אוטומט של L1 מקבל בדיוק את אותן המילים שמקבל אוטומט של L.
 

MegaMango

New member
בקשתות הראשונות שמחברות

את q0 ו- q'0 זה לא אפסילון, זה סיגמא. כלומר יש קשת לעצמו עם כל אות בשפה וקשת ל q0 המקורי עם כל אות בשפה. אותו דבר לגבי המצב האחרון שהוספתי, המצב המקבל. רק הקשתות בין המקבלים המקוריים למקבל החדש הן אפסילונים. זה באמת יצא קצת לא מובן..
 

vinney

Well-known member
המם...

אם L שלך זה {א}, L2 יכלול גם אבא גם באבא גם אמא ולא כל מילה חלקית למילים האלה תהיה בL, מן הסתם.
 

MegaMango

New member
ממ...אני לא רואה למה

נניח שהסיגמא שלנו זה {a,b} וL היא השפה הרגולרית {a}. L1 יכיל בו כל מה שמתחיל ב'משהו' , ממשיך במשהו שמתקבל בL כלומר a , ומסתיים בעוד 'משהו'. המילים שיוצאות בL1 הן כל המילים שמכילות את a בתוכן. L2 הן כל המילים שלא מכילות את a בתוכן.
 

vinney

Well-known member
הא, אוקי ../images/Emo13.gif

צודק, חייבת להיות תת מילה כלשהי שהיא מילה בL, לא כל תת מילה, טעות שלי.
 

vinney

Well-known member
נסה לסתור את למת הניפוח

אם תצליח - היא לא רגולרית. אם לא תצליח - כנראה שהיא כן
ניחוש שלי שתצליח, אבל זה באמת בגדר הניחוש
 

MegaMango

New member
ויני, שאלה לי אלייך

איך זה שאתה נמצא כאן תמיד?! כלומר, נכון שאתה מנהל הפורום.. אבל אתה נמצא כאן בצהריים, בערב, מוקדם בבוקר וראיתי אותך גם בלילה! חשבתי שלפחות הלילה יהיה רק שלי כדי שאוכל להיות מסתורי ומגניב אבל לאאאא אז חשבתי לעצמי "אולי בבוקר מוקדם מוקדם אשיג בלעדיות מעל כולם" ושוב אתה מופיע >< ארררר
 

vinney

Well-known member
../images/Emo6.gif

משעמם לי, אין כלום בטלויזיה פה, אז אני גולש לי עד שאלך לישון
 

yonyl

New member
פיתרון

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

yonyl

New member
פיתרון אמיתי

לא ברור לי אם זה איך שרשמתם את הפתרון לא כל כך ברור לי הציור כי הוא לא גמור. אבל הרעיון שלי הוא מצבים גוררים. הסבר:תחילה קיים אס"ד לשפה הראשונה L. ניקח את כל מצבי האוטומט שמסומנים ב Q0--QN ונבנה אוטומט עם מצבים Q0 טאג,Q1 טאג--QN טאג ועוד מצב החלתי שנסמנו QS כאשר קיים מעבר בין QI טאג לQJ טאג אמ"ם QJ הוא מצב מקבל. קיימת קשת בין QS לבין Q0 טאג אמ"ם Q0 המקורי מצב מקבל. נסמן באסלד זה כל המצבים כמצבים מקבלים למאל QS. בנינו אסל"ד שמקבל את השפה שכל תת מילה שלו היא מילה בשפה המקורית. ולכן שפה זאת רגולרית ולכן גם השפה ההפוכה רגולרית והיא מה שצריך.
 

yonyl

New member
תוספת

שככתי מה יש בקשתות אז מQS לQ0טאג אם יש קשת אז זה אפסילון. ועל שאר הקשתות זה בדיוק מה שיש במקורי שמעביר למצב.
 

vinney

Well-known member
זה לא נכון

אבל זה אותה הדרך שהייתה בפתרון הנכון. אתה לא צריך לכתוב אס"ד שמקבל שפה בה לכל מילה כל תת מילה בL, אתה צריך לבנות אס"ד שמקבל את כל המילים בהן קיימת תת מילה בL, וזה בדיוק מה שMegaMango עשה. אם תשים לב, אתה לא היחיד שהתבלבל
 
למעלה