Presentation is loading. Please wait.

Presentation is loading. Please wait.

צורות נורמליות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( 236353) תרגיל מספר 10.

Similar presentations


Presentation on theme: "צורות נורמליות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( 236353) תרגיל מספר 10."— Presentation transcript:

1 צורות נורמליות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( 236353) תרגיל מספר 10

2 © אריאל 2 קיימות שתי צורות נורמליות Chomsky Normal Form CNF קללים מהצורה : A  BC A  a Greibach Normal Form GNF קללים מהצורה : A  a  שימושי בלמת הניפוח לשפות חסרות הקשר שימושי באוטומט מחסנית

3 © אריאל 3 הצורה הנורמלית של גרייבך משפט : כל שפה חופשית הקשר שאינה מכילה את  אפשר ליצור באמצעות דקדוק שכל כלליו הם מהצורה A  a  כש - A הוא משתנה, a הוא סימן טרמינלי, ו -  הוא  מילה  המורכבת  מאפס  או יותר  משתנים 

4 © אריאל 4 GNF: פעולות שבהן נשתמש ( 1)  הצבה  אם  קיים  בדקדוק  כלל  A   B   וכל  כללי  B  הם      r  B אז אפשר להחליף את הכלל של A בסדרת כללים מתאימים, שבהם מוצבות התבניות הנגזרות מ- B. A              …     r  

5 © אריאל 5 GNF: פעולות שבהן נשתמש ( 2)  סילוק  רקורסיה  שמאלית  אם  כל  כללי  A  שאגף  ימין  שלהם  מתחיל  ב  A  הם  A  A    A    A  r ושאר  כללי  A  הם  A      s אז אפשר להוסיף משתנה חדש A’, ולהחליף את כללי A בכללים: A  i  i A’, s  i  1 A’  i  i A’, r  i  1

6 © אריאל 6 אלגוריתם המעבר לGNF- נניח כעת ש - V = {A 1, A 2,..., A n } שלב 1: נשנה את הכללים כך שלכל כלל : A i  A j  יתקיים ש  i < j. (בעזרת הצבה וסילוק רקורסיה שמאלית) שלב 2: נדאג שכל כללי A i יתחילו בסימן טרמינלי. (הצבה) שלב 3: נדאג שכל כללי משתני העזר A’ i יתחילו בסימן טרמינלי. (הצבה) שלב 4: נטפל בסימנים טרמינלים שמופיעים לבד. )הוספת משתנה עזר S a וקלל S а  а ).

7 © אריאל 7 GNF: דוגמא נתון הדקדוק : G = ({A 1, A 2, A 3 }, {a, b}, P, A 1 ) P: A 1  A 2 a | b A 2  A 1 ab | aA 3 A 3  A 1 bA 1 A 2

8 © אריאל 8 GNF: דוגמא (המשך 1) שלב 1: שינוי הכללים כך שלכל כלל : A i  A j  יתקיים  i < j. A 1  A 2 a | b A 2  bab | babA’ 2 | aA 3 | aA 3 A’ 2 A’ 2  aab | aabA’ 2 A 3  bbA 1 A 2 | bababA 1 A 2 | babA’ 2 abA 1 A 2 | aA 3 abA 1 A 2 | aA 3 A’ 2 abA 1 A 2

9 © אריאל 9 GNF: דוגמא (המשך 2) שלב 2 : כל כללי A i צריכים להתחיל בסימן טרמינלי. כללי A 3 הם כבר בצורה הדרושה. כללי A 2 הם כבר בצורה הדרושה. את הכלל : A 1  A 2 a נחליף בכללים : A 1  baba | babA’ 2 a | aA 3 a | aA 3 A’ 2 a שלב 3 : כל כללי A’ i צריכים להתחיל בסימן טרמינלי. כל כללי A’ i הם כבר בצורה הדרושה.

10 © אריאל 10 GNF: דוגמא (המשך 3) שלב 4: החלפת סימנים טרמינלים שמופיעים לבד, במשתנים. A 1  b | bS a S b S a | bS a S b A’ 2 S a | aA 3 S a | aA 3 A’ 2 S a A 2  bS a S b | bS a S b A’ 2 | aA 3 | aA 3 A’ 2 A 3  bS b A 1 A 2 | bS a S b S a S b A 1 A 2 | bS a S b A’ 2 S a S b A 1 A 2 | aA 3 S a S b A 1 A 2 | aA 3 A’ 2 S a S b A 1 A 2 A’ 2  aS a S b | aS a S b A’ 2 S a  a S b  b

11 © אריאל 11 הצורה הנורמלית של חומסקי משפט : כל שפה חופשית הקשר שאינה מכילה את  אפשר ליצור באמצעות דקדוק שכל כלליו הם מהצורה A  BC או A  a כש - A, B, C הם משתנים ו - a הוא סימן טרמינלי.

12 © אריאל 12 אלגוריתם המעבר ל- CNF שלב 1: לכל a  T נוסיף משתנה S a ואת הכלל S a  a. בכל כלל, לכל סימן טרמינלי a  T, שמופיע לא לבדו באגף ימין, נחליף כל מופע שלו ב - S a. שלב 2: לכל כלל עם t  2 משתנים באגף ימין, נוסיף (t - 2) משתנים חדשים ובעזרתם נחליף את הכלל בשרשרת שקולה של כללים.

13 © אריאל 13 CNF: דוגמא נתון הדקדוק : G = ({S, A, B}, {a, b}, P, S) P: S  Aa | a A  Ab | b | BBAb | BAa | Aa | BBa | Ba | a | aab B  BBAa | BAa | Aa | BBa | Ba | a | aab

14 © אריאל 14 CNF: דוגמא (המשך 1) שלב 1: החלפת סימנים טרמינליים במשתנים : S  AS a | a A  AS b | b | BBAS b | BAS a | AS a | BBS a | BS a | a | S a S a S b B  BBAS a | BAS a | AS a | BBS a | BS a | S a | S a S a S b S a  a S b  b

15 © אריאל 15 CNF: דוגמא (המשך 2) שלב 2 : קיצור תבניות ארוכות : S  AS a | a A  AS b | b | BY 1 | BY 3 | AS a | BY 4 | BS a | a | S a Y 5 B  BY 6 | BY 8 | AS a | BY 9 | BS a | S a | S a Y 10 S a  a S b  b Y 1  BY 2,Y 6  BY 7 Y 2  AS a,Y 7  AS a Y 3  AS a,Y 8  AS a Y 4  BS a,Y 9  BS a Y 5  S a S b,Y 10  S a S b


Download ppt "צורות נורמליות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( 236353) תרגיל מספר 10."

Similar presentations


Ads by Google