שאלה באוטומטים ושפות פורמליות

שאלה באוטומטים ושפות פורמליות

הוכח שהשפה הבאה אינה רגולרית:
L={wE{0,1}*|#0(w)≥#1(w)}​
לאחר ההוכחה רשום ביטוי רגולרי המציין את השפה
L={wE{0,1}*|#0(w)≥#1(w)}\1*​
 

1ca1

New member
זה פשוט למת הניפוח

נניח p קבוע הניפוח של השפה L, נבחר במילה zzz 1^p0^(p+1) zz ברור שהמילה בשפה, כעת נניח קיימת חלוקה xyz של המילה כך ש zz |xy|<p zz כלומר בהכרח y=1^i לאיזשהו i וברור כי i>0 כעת עבור n מספיק גדול, נקבל מילה מהצורה zzz 1^(p-i)1^(ni)0^(p+1) zz ועבור i מספיק גדול, המילה לא בשפה. לגבי הביטוי הרגולרי, שים לב שבגלל שמספר האפסים גדול שווה ממספר האחדות, ובשפה 1* יש רק מספרים מהצורה 1 (ייתכן גם אפסילון, המילה הריקה), אז בעצם מדובר על כך שמדובר בשפה L ללא המילה הריקה, כלומר תחייב לפחות מקרה אחד. כעת לא נראה לי צריכה להיות בעיה לרשום את הביטוי במפורש...
 
צודק זה למת הניפוח..

ז"א מניחים בשלילה ש L רגולרית ויהי n קבוע שקיומו מובטח בלמה אז בחורים מילה z=0^n1^n...את ההמשך ידוע ואז מקבלים סתירה. והאם הביטוי המפורש הוא
0*1​
למרות שנראה כי לא הצאתי את האפסילון מהשפה
 

1ca1

New member
דבר ראשון הוצאת את אפסילון

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

1ca1

New member
לא

השפה המסומנת בביטוי הרגולרי 1* היא השפה zzz {w|w=1^i, i>=0} zz הפשה הראשונית לא נותנת לנו אף הגבלה על המבנה הפנימי של המילה (למרות למשל שהשפה zzz {w|w=0^n1^n,n>=0} zz ודומותיה גם לא רגולריות (ככל יש כאן צורך במונה כלשהו שלא ידוע מראש, הפאטרן הוא מאורך דינאמי, ואז פשוט מהסופיות של אוטומט סופי וחוסר הזיכרון שלו, אתה נכשל)). כלומר אפשר למשל לקחת את 01, הוא מילה בשפה, והוא גם לא מהצורה 1* ולכן גם נמצא בשפה של ההפרש. נ.ב. אם קשה לך לראות את זה, ולא רוצה להתחיל לצייר כאן דיאגרמות ון, אפשר לחשוב על זה בצורה הבאה: zzz A\B=a intersect (B^c) zz כאשר B^c הינה המשלימה של B מעל האלף-בית {0,1}.
 

1ca1

New member
אתה צודק

ברור שהשפה 1* היא רגולרית. כעת אם השפה הייתה רגולרית, אז האיחוד שלם עם 1* היה רגולרי מסגירות שפות רגולריות, אבל יחד עם האיחוד אנחנו מקבלים את השפה מסעיף א' שהוכחנו שהיא לא רגולרית, וקיבלנו סתירה...
 
שאלה נוספת ברשותך

אפשרי להוכיח זאת בשימוש בהצבה והומומורפיזם הפוך זה הכיוון ..? תהי
L={w E {0,1}*| w=0^k(111)^2^m ,k,m>=0 OR w=1^q ,q>=0}​
הוכח שהיא אינה רגולרית
 

1ca1

New member
אלוהים ישמור, מה זה המילים האלה?

נכון שאפשר להגדיר כל מיני הגדרות אלגבריות (ואף טופולוגיות!) על שפות, אבל אין טעם להסתך יתר על המידה, לפחות בקורס לתואר ראשון (אם אתה לומד בוייצמן אצל גולדרייך, זה כבר סיפור אחר). בכל אופן, נניח בשלילה שהשפה רגולרית, המשלימה של השפה 1* היא רגולרית (כל דבר שיתחיל ב0 תקבל, אחרת תדחה), תחתוך אותה יחד עם השפה הנתונה, תקבל מתכונת הסגור של השפות הרגולריות שפה רגולרית. כעת נשאר לך להוכיח שהשפה zz L'={w|w=0^k(111)^(2^m), k,m>=0 } zz איננה רגולרית. כעת ברור שהחלק של ה 0 בחזקת k כאשר k>=0 לא מעניין אותנו (קל לבנות משהו שיקבל את זה, פשוט תעבור למצב שכל הזמן יקבל כל עוד הוא מקבל אפסים), אנחנו נתקעים בבחור השני. נניח p קבוע הניפוח, נסתכל במילה zzz (111)^(2^p) zz נניח שיש חלוקה xyz כאשר y לא ריק ונסתכל ב xyz וב xy^2z zz |xyz|=3*2^p זוהי הצורה של כל מילה המתקבלת בשפה! (ע"י בחירת מעריך שונה כמובן)! ולכן zz |xy^2z|<=3*2^p+p zz כעת אפשר להראות שלכל x>=1 לצורך העניין (אפשר למצוא מינימום מדוייק יותר) מתקיים ש zz 2^x>x zz כלומר zz |xy^2z|<=3*2^p+p<3*2^p+2^p<=3*2^p+3*2^p=3^2^(p+1) zz כעת אורך האיבר העוקב בסדרה (כפי שהראנו) הוא zz 3*2^(p+1) zz, אך האיבר שקיבלנו קטן ממש! מאיבר זה, ולכן לא בשפה, בסתירה לרגולריות. זאת הוכחה טיפה מסובכת, אבל דומה מאוד לזאת של משהו בחזקת n בריבוע וכאלה, ייתכן שההוכחה שלך פשוטה יותר, למרות שנראה לי שאו זה, או מחלקות mn אלה הדרכים הנכונות...
 
זהו חשבתי יותר בכיוון של

אם נניח שהיא רגולרית, ונחתוך עם שפת כל המילים שמתחילות ב-0 ואז נעשה הומומורפיזם מכל 111 ל-1 ומכל 0 לאפסילון - נקבל את כל המילים מעל {1} באורך 2 ב-m..
 

גיל14

New member
אתה מדבר על הומומורפיזם?

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