Download presentation
Presentation is loading. Please wait.
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.