סדנא במודלים חישוביים

40
1 אאאא אאאא א א אאאאאאא אאאאאאא א א אאאאאאאא אאאאאאאא18 ררררררר,18 רררר2009 ררר רררר, רררר רררר, ררר ר'רררררר, רררררררר- ררררררר

Upload: minor

Post on 05-Jan-2016

95 views

Category:

Documents


1 download

DESCRIPTION

סדנא במודלים חישוביים. 18 בפברואר, 18 במרץ 2009. רחל אלון, ורדה פורת, רחל צ'רניחוב, שירלי רוזנברג-כהן. חלק מהשקפים במצגת זו נלקחו מהמצגת של ד"ר מיכל ארמוני (במיוחד שקפים 26-36). המצגת המקורית של ד"ר ארמוני נמצאית בכתובת http://cse.proj.ac.il/modelim/michal/comp_models_teachers_23_6.ppt. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: סדנא במודלים חישוביים

1

חישובייםחישובייםבמודליםבמודליםסדנאסדנא

2009 במרץ 18 בפברואר, 18

רחל אלון, ורדה פורת, רחל צ'רניחוב, שירלי רוזנברג-כהן

Page 3: סדנא במודלים חישוביים

3

אוטומט סופי ושפות רגולריותאוטומט סופי ושפות רגולריותמוטיבציה - שעורי פתיחה•

מכפלת אוטומטים •

אי-דטרמיניזם•

פעולות על שפות•

תכונות של שפות רגולריות•

הוכחת רגולריות ואי-רגולריות•

ויזואליזציה•

מודלים נושאי הסדנא נושאי הסדנא חישוביים

היום:היום:

Page 4: סדנא במודלים חישוביים

4

מודלים הקדמהחישוביים

הנחות:

יודעים "אוטומטים, שפות פורמליות )ודקדוקים( •מתורת המחשב.

יודעים "מודלים חישוביים" •

מטרות:

דידקטיקה של התכנים החדשים•

פתרון שאלות בגרות•

טיפים וטריקים•

Page 5: סדנא במודלים חישוביים

5

מודלים מודלים מוטיבציהחישובייםחישוביים

{ היא מספר ממשי , . 9..0)נקודה(האם סדרת תווים מהא"ב }תקין?

0/1העברת הקלט ל- //static int Tav2Num)char t( { if )t=='.'( return 1; else return 0;}

static void getMavarim)int[,] f( קלט טבלת)++for )int state = 0; state < ST; state { // מעברים for )int sig = 0; sig < IN; sig++( { Console.Write)"q" + state + " s: " + sig + " --> "(; f[state, sig] = int.Parse)Console.ReadLine)((; }}

Page 6: סדנא במודלים חישוביים

6

מודלים מודלים מוטיבציהחישובייםחישוביים

} היא מספר ממשי תקין? ., 9..0)נקודה(}האם סדרת תווים מהא"ב

לב התכנית: int state = 0; Console.Write)"enter word :)char by char - end with $(: "(; char tav = char.Parse)Console.Read)((; while )tav != '$'( { state = func[state, Tav2Num)tav(]; tav = char.Parse)Console.ReadLine)((; } if )state == 1 || state == 3(

Console.WriteLine)"word excepted"(; else Console.WriteLine)"N O T excepted!"(;

מעבר בתוך טבלת המעברים >--

Page 7: סדנא במודלים חישוביים

7

מודלים מוטיבציהחישוביים

?3האם מספר הוא כפולה של

state=0;dig=int.Parse)Console.ReadLine)((;While ) dig != -1 ({ state= )state+dig%3(%3; dig=int.Parse)Console.ReadLine)((;}If )state==0 ( Console.WriteLine)“num divides by 3”(;else Console.WriteLine)“does NOT divide by 3”(;

Page 8: סדנא במודלים חישוביים

8

מכפלת אוטומטים מודלים חישוביים

למה? ולמה לא...

Page 9: סדנא במודלים חישוביים

9

מכפלת אוטומטים מודלים חישוביים

Page 10: סדנא במודלים חישוביים

10

מכפלת אוטומטים מודלים חישוביים

בנה אוטומאט המקבל מילים בשפה מעל הא"ב }a,b,c-המתחילות ב {a-מסתיימות ב b-ומספר ה b

במילה זוגי.

ומסתיימות aמתחילות ב-bב- זוגיbמספר ה-

שלב א: נחלק לשתי שפות/אוטומטים, ונצייר בנפרד

Page 11: סדנא במודלים חישוביים

11

מכפלת אוטומטים מודלים חישוביים

ומסתיימות aמתחילות ב-bב-

זוגיbמספר ה-

QΣabc

q04143534

q14142514

q35353435

q25152415

q34343534

q24142514

q15152415

שלב ב: "נזרום" יחד בשני האוטומטים וניצור טבלת מעברים

Page 12: סדנא במודלים חישוביים

12

מכפלת אוטומטים מודלים חישוביים

ומסתיימות aמתחילות ב-bב-

זוגיbמספר ה-

QΣabc

q04143534

q14142514

q35353435

q25152415

q34343534

q24142514

q15152415

שלב ג: נאתר מצבים מקבלים: וגם/או

Page 13: סדנא במודלים חישוביים

13

מכפלת אוטומטים מודלים חישוביים

QΣabc

q04143534

q14142514

q35353435

q25152415

q34343534

q24142514

q15152415

שלב ד: נצייר את האוטומאט.

שלב ה: נאתר מצבים מיותרים ונאחד אותם

Page 14: סדנא במודלים חישוביים

14

מכפלת אוטומטים מודלים חישוביים

QΣabc

q04143534

q14142514

q35353435

q25152415

q34343534

q24142514

q15152415

האוטומט

Page 15: סדנא במודלים חישוביים

15

מכפלת אוטומטים מודלים חישוביים

בגרות תשס"ז

Page 16: סדנא במודלים חישוביים

16

מכפלת אוטומטים מודלים חישוביים

בגרות תשס"ז

abaיש

babאין

Page 17: סדנא במודלים חישוביים

17

מודלים מודלים חישובייםחישוביים

ab041405

141425

051605

253405

161427

343435

273707

353635

373737

071707

171727

363437

Page 18: סדנא במודלים חישוביים

18

מכפלת אוטומטים מודלים חישוביים

בגרות תשס"ז

Page 19: סדנא במודלים חישוביים

19

מכפלת אוטומטים מודלים חישוביים

בגרות תשס"ז

Page 20: סדנא במודלים חישוביים

20

מודלים נוספים מודלים חישוביים

אוטומט סופי דטרמיניסטי לא-מלא:

מעברים חסרים )המובילים להתקעות(•

כאשר האוטומט "נתקע" ולא יודע מה לעשות, המילה נדחית )גם אם •ה"תקיעה" היא במצב מקבל(

ואין בהן a}, מילים המתחילות ב-a, b, c א"ב {דוגמא:c .

אוטומט מלא אוטומט לא מלא

Page 21: סדנא במודלים חישוביים

21

מודלים נוספים מודלים חישוביים

אוטומט סופי לא דטרמיניסטי:

מעברים כפולים )ממצב מסוים עם אות מסוימת יש יותר ממעבר •אחד(

בד"כ האוטומט גם לא מלא.•

כאשר האוטומט "נתקע" ולא יודע מה לעשות, המילה נדחית )גם אם •ה"תקיעה" היא במצב מקבל(

כאשר יש יותר מאפשרות אחת האוטומט "מנחש" לאיזה מסלול •לפנות כדי להגיע למצב מקבל.

מסלול מקבל - המילה מתקבלת.ישאם •abaדוגמא: מסתיים ברצף bדוגמא: מסתיים ב-

Page 22: סדנא במודלים חישוביים

22

מודלים נוספים מודלים חישוביים

אוטומט סופי לא דטרמיניסטי - איך להסביר aba דוגמא: יש רצף לתלמידים?

aabbabaמסלול על מילה:

X

XX V

Page 23: סדנא במודלים חישוביים

23

אוטומט סופי לא דטרמיניסטי - ההסברים

"מטבע קסם"•

"ניווט סוף מסלול"•

חישוב מקבילי – ריבוי מעבדים•

מודלים מודלים חישובייםנוספים

Page 24: סדנא במודלים חישוביים

24

מודלים מודלים מכפלת אוטומטים מכפלת אוטומטים חישובייםחישוביים

ואי-דטרמיניזםואי-דטרמיניזם

b} אות שלישית מהסוף היא a,bהשפה: א"ב {

ab

0001

0102012

0203013

0120230123

03001

01302012

02303013

01230230123

הפיכת א"ס לא-דטרמיניסטי לדטרמיניסטי

Page 25: סדנא במודלים חישוביים

25

מודלים מודלים חישובייםחישוביים

מצגת של רחלי צרניחוב

שפות רגולריותשפות רגולריות

Page 26: סדנא במודלים חישוביים

26

מודלים מודלים הוכחת אי-רגולריותהוכחת אי-רגולריותחישובייםחישוביים

הסעיף הקשה ביותר ביחידה כולה:• הוכחה פורמלית– בדרך השלילה– שבתוכה חבויה שוב דרך השלילה...–

מוטיבציה: • הגדרנו מודל חישובי – האם אפשר בעזרתו לעשות –

הכל?

Page 27: סדנא במודלים חישוביים

27

מודלים מודלים הוכחת אי-רגולריותהוכחת אי-רגולריותחישובייםחישוביים

רגולרית.Lנניח שהשפה •.L שמקבל את Aלכן קיים אוטומט סופי • ונראה:Wנבחר קבוצת מילים אינסופית • מגיע למצב A, האוטומט Wעל כל מילה בקבוצה •

שונה. אינסוף מצבים, בסתירה להיותו אוטומט סופי.Aל- •

האם שפה ___________ היא רגולרית?

Page 28: סדנא במודלים חישוביים

28

מודלים מודלים הוכחת אי-רגולריותהוכחת אי-רגולריותחישובייםחישוביים

הוכחת טענת העזר

מגיע למצב שונה.A, האוטומט Wעל כל מילה בקבוצה

– שעליהן מגיע w2 ו-w1 שתי מילים – Wנניח שיש בקבוצה :q לאותו מצב Aהאוטומט

המקיימת:wכעת נמצא מילה

w1wL

w2wL

q, כלומר, מהמצב w1wL מקבל את A אז w1wLמאחר ש- מקבל A מובילה אותו למצב מקבל. אך אז בהכרח wהמילה . w2wגם את

.Lסתירה להיותו אוטומט המקבל את

Page 29: סדנא במודלים חישוביים

29

מודלים מודלים חישובייםחישוביים

ד ו ג מ א ו ת

הוכחת אי-רגולריותהוכחת אי-רגולריות

Page 30: סדנא במודלים חישוביים

30

מודלים מודלים חישובייםחישוביים

.L שמקבל את A רגולרית. לכן קיים אוטומט סופי Lנניח בשלילה שהשפה •

}W = }an| n>0נבחר קבוצת מילים אינסופית • אינסוף A מגיע למצב שונה => ל-A האוטומט wטענה: על כל מילה בקבוצה •

מצבים, בסתירה להיותו אוטומט סופי.

,≠j iכך ש: w1=ai ,w2= aj שתי מילים: Wנניח בשלילה שיש בקבוצה •i,j>0 שעליהן מגיע האוטומטA לאותו מצב q :

מגיע עליה למצב Aהמילה שייכת לשפה ולכן האוטומט .aibi נתבונן במילה •

למצב מקבל.q מובילה את האוטומט ממצב biמקבל. כלומר: קריאת הסיפא שאינה שייכת לשפה. ajbi מקבל גם את המילה A מכאן נובע שהאוטומט אבל•

הגענו לסתירה ולכן הנחת השלילה השניה אינה נכונה. כלומר- לא קיימות • האוטומט מגיע W כמפורט לעיל ולכן עבור כל מילה בקבוצה w1,w2מילים

למצב שונה.• <=W-אינסופית, => ל A אינסוף מצבים בסתירה להיותו אוטומט סופי. לכן, גם

הנחת השלילה הראשונה שגויה והשפה אינה רגולרית.

הוכחת אי-רגולריותהוכחת אי-רגולריות

היא שפה רגולרית {anbm|n,m>0, n=m} האם

Page 31: סדנא במודלים חישוביים

31

מודלים מודלים הוכחת אי-רגולריותהוכחת אי-רגולריותחישובייםחישוביים

.L שמקבל את A רגולרית. לכן קיים אוטומט סופי Lנניח בשלילה שהשפה • }W = }anb| n>0נבחר קבוצת מילים אינסופית • A מגיע למצב שונה => ל-A האוטומט wטענה: על כל מילה בקבוצה •

אינסוף מצבים, בסתירה להיותו אוטומט סופי. כך ש: w1=aib ,w2= ajb שתי מילים: Wנניח בשלילה שיש בקבוצה •

j i≠, i,j>0 שעליהן מגיע האוטומטA לאותו מצב q : מגיע עליה Aהמילה שייכת לשפה ולכן האוטומט .aibc4i+3 נתבונן במילה•

qמובילה את האוטומט ממצב c4i+3למצב מקבל. כלומר: קריאת הסיפא למצב מקבל.

שאינה ajbc4i+3 מקבל גם את המילה A, מכאן נובע שהאוטומט ‘אבל•שייכת לשפה.

הגענו לסתירה ולכן הנחת השלילה השניה אינה נכונה. כלומר- לא קיימות • האוטומט מגיע W כמפורט לעיל ולכן עבור כל מילה בקבוצה w1,w2מילים

למצב שונה.• <=W-אינסופית, => ל A ,אינסוף מצבים בסתירה להיותו אוטומט סופי. לכן

גם הנחת השלילה הראשונה שגויה והשפה אינה רגולרית.

היא שפה {anbmcr | n,m,r>0, r=4n+3} האםרגולרית

Page 32: סדנא במודלים חישוביים

32

מודלים מודלים הוכחת אי-רגולריותהוכחת אי-רגולריותחישובייםחישוביים

.L שמקבל את A רגולרית. לכן קיים אוטומט סופי Lנניח בשלילה שהשפה • }W = }b3n+1| n>0נבחר קבוצת מילים אינסופית • אינסוף מצבים, בסתירה A מגיע למצב שונה => ל-A האוטומט wטענה: על כל מילה בקבוצה •

להיותו אוטומט סופי. j i≠, i,j>0 כך ש: w1=a3i+1 ,w2= a3j+1 שתי מילים: Wנניח בשלילה שיש בקבוצה •

: q לאותו מצב Aשעליהן מגיע האוטומט מגיע עליה למצב מקבל. Aהמילה שייכת לשפה ולכן האוטומט .a3i+1c9i+3 נתבונן במילה•

למצב מקבל.qמובילה את האוטומט ממצב c9i+3כלומר: קריאת הסיפא שאינה שייכת לשפה. b3j+1c9i+3 מקבל גם את המילה A, מכאן נובע שהאוטומט ‘אבל• w1,w2הגענו לסתירה ולכן הנחת השלילה השניה אינה נכונה. כלומר- לא קיימות מילים •

האוטומט מגיע למצב שונה.Wכמפורט לעיל ולכן עבור כל מילה בקבוצה • <=W-אינסופית, => ל A אינסוף מצבים בסתירה להיותו אוטומט סופי. לכן, גם הנחת

השלילה הראשונה שגויה והשפה אינה רגולרית.

{ המכילה בדיוק את כל המילים המקיימות a,b,c מעל הא"ב }Lהאם השפה את שני התנאים להלן, היא שפה רגולרית:

. 1 עם שארית 3 במילה מתחלק ב-bא. מספר האותיות

במילה. b ממספר האותיות 3 במילה הוא פי cב. מספר האותיות

Page 33: סדנא במודלים חישוביים

33

מודלים מודלים הוכחת אי-רגולריותהוכחת אי-רגולריותחישובייםחישוביים

.L שמקבל את A רגולרית. לכן קיים אוטומט סופי Lנניח בשלילה שהשפה • }W = }ca2)bca(m| m>0נבחר קבוצת מילים אינסופית • אינסוף A מגיע למצב שונה => ל-A האוטומט wטענה: על כל מילה בקבוצה •

מצבים, בסתירה להיותו אוטומט סופי. כך ש: w1=ca2)bca(i ,w2=c a2)bca(j שתי מילים: Wנניח בשלילה שיש בקבוצה •

j i≠, i,j>0 שעליהן מגיע האוטומט A לאותו מצב q : מגיע עליה Aהמילה שייכת לשפה ולכן האוטומט .ca2)bca(i)acb(j-1 נתבונן במילה•

למצב qמובילה את האוטומט ממצב j-1(acb)למצב מקבל. כלומר: קריאת הסיפא מקבל.

שאינה ca2)bca(i)acb(j-1 מקבל גם את המילה A, מכאן נובע שהאוטומט ‘אבל•שייכת לשפה.

הגענו לסתירה ולכן הנחת השלילה השניה אינה נכונה. כלומר- לא קיימות מילים •w1,w2 כמפורט לעיל ולכן עבור כל מילה בקבוצה W.האוטומט מגיע למצב שונה

• <=W-אינסופית, => ל A אינסוף מצבים בסתירה להיותו אוטומט סופי. לכן, גם הנחת השלילה הראשונה שגויה והשפה אינה רגולרית.

האם השפה הבאה רגולרית

L=}ca2k)bca(m)acb(n | n.m ≥0, m≠n+k, k>0{

Page 34: סדנא במודלים חישוביים

34

מודלים מודלים הוכחת אי-רגולריותהוכחת אי-רגולריותחישובייםחישוביים

לא עבור כל שפה לא רגולרית שיטת ההוכחה הזאת • אם לא מצליחים להוכיח זה עוד לא אומר עובדת.

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

למרות שההוכחות דומות אחת לשניה נדרשת מיומנות • חשוב לתרגלביישום מסגרת ההוכחה

רק הוכחה מלאה נחשבת הוכחה•

Page 35: סדנא במודלים חישוביים

35

מודלים מודלים חישובייםחישוביים

הלקח החשוב:

השפה מחייבת זיכרון אינסופי

ולאוטומט זיכרון סופי

אבל גם למחשב יש ...זיכרון סופי

הוכחת אי-רגולריותהוכחת אי-רגולריות

Page 36: סדנא במודלים חישוביים

36

קשיים אופייניים

הוכחות לא מלאות, המשתמשות בנימוקים •אינטואיטיביים )"השפה מחייבת זיכרון אינסופי"(

מצליחים היצמדות לתבנית בלי בחינת הפרטים •ל"הוכיח" ששפות רגולריות הן לא רגולריות

מודלים מודלים הוכחת אי-רגולריותהוכחת אי-רגולריותחישובייםחישוביים

Page 37: סדנא במודלים חישוביים

37

JFLAP סביבת ויזואליזציה •

המדריך של שמוליק שוורץhttp://cse.proj.ac.il/modelim/ogdan06/index.htm

/http://www.jflap.org הורדת התכנה

מודלים מודלים ויזואליזציהויזואליזציהחישובייםחישוביים

vas.jarפשוט יותר - •

http://www.cs.usfca.edu/~jbovet/vas.html

Page 39: סדנא במודלים חישוביים

39

כתובות לשאלות וחומרים נוספים:

[email protected]שירלי רוזנברג-כהן

[email protected]רחלי צ'רניחוב

ל ה ת ר א ו ת !

Page 40: סדנא במודלים חישוביים

40

18.3.2009ובפעם הבאה:

*** לפי המיקוד ****** לפי המיקוד ***

אוטומט מחסניתאוטומט מחסנית•

שפות חופשיות הקשרשפות חופשיות הקשר•

מכונת טיורינגמכונת טיורינג•

שאלות בגרותשאלות בגרות•

קשיים ושגיאות אופייניותקשיים ושגיאות אופייניות•

מודלים מודלים חישובייםחישוביים