Abstract State Machines

Post on 07-Jan-2016

41 views 2 download

description

Abstract State Machines. נתחיל בהגדרות. אלגברה יהי סט U , ותהי f: U n -> U . במידה ו- n=0 , fϵU היא למעשה קבוע בשפה. n תקרא ה- arity של הפונקציה F . יהיו n 1 ,…., n k ϵN . אזי לכל i =1,…,k תהי f i פונק' מעל U עם arity n i . אזי - PowerPoint PPT Presentation

transcript

Abstract State Machines

נתחיל בהגדרות אלגברה

. במידה f: Un -> U, ותהי Uיהי סט • היא למעשה קבוע n=0, fϵUו-

של arity תקרא ה- nבשפה. . Fהפונקציה

i=1,…,k. אזי לכל n1,….,nkϵNיהיו •. אזי arity ni עם U פונק' מעל fiתהי

S = (U, f1,…,fk)תקרא אלגברה .U הוא התחום שלה )קבוצת הערכים

הם הסוג שלה.niהסמנטיים שלה(,ו-

סיגנטורה נותנת שמות לפונק' של האלגברה. יהיו •

f1,…,fk -סמלים ו n1,….,nk ϵ N אזי . Σ = )f1,…,fk, n1,….,nk( היא

arity הוא ה-i, niסיגנטורה. כאשר לכל , אזי מדובר 0 הוא arity. אם ה-fiשל

בסמל קבוע.

Σאלגברה-כל סיגנטורה מגדירה אוסף של •

,Σ = )f1,…,fkסיגמות-אלגברות. תהי n1,….,nk( .סיגנטורה

עם )S = )U, g1,…,gkכל אלגברה •arity )n1,….,nk( -תקרא סיגמא תקרא Sאלגברה. לעיתים

תכתב Σ. Giאינטרפרטציה של כדי לסמן שהיא fisלעיתים

.S ב-fiהאינטרפרטציה של

את קבוצת כל algΣ נסמן ב- סימון:•הסיגמות- אלגברות.

[ Σ-ground termsשמות עצם ]מוגדר רקורסיבית: • הוא שם עצם.arity=0כל סימן עם •כל פונקציה על שמות עצם היא גם שם עצם.•.TΣסימון: נסמן את קבוצת שמות העצם ב- •

לרוב מניחים סימונים כלשהם של מצבים •ופעולות.

כל מבנה ,יורי גורביץ'לפי המודל של •מתמטי )לוגי מסדר ראשון( יכול לשמש

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

יותר מהמודלים הסטנדרטיים. נציג את מודל מכונות המצבים •

מערכות מעברים האבסטרקטיות כסוג של (transition systems .)

הגדרה: מערכת מעברים דטרמיניסטית מאותחלת

. כאשר:)C=)Q,I,Fהשלשה: ••Qאוסף של מצבים – •I≤Qאוסף המצבים ההתחלתיים •F:Q->Qפונק' המעברים בנוסף, מניחים קיום קבוצת מצבים •

F)q( = q, עבורם מתקיים Ω"סופיים" של fix-points. אלה בעצם qϵΩלכל

F.

רצף :Cהגדרה - רצף חישובי של •x0x1x2 של מצבים …xiϵQ כאשר ,x0ϵI,

xi+1 = F)xi( לכל i .

Ω xkϵ" אם סופיהרצף הנ"ל ייקרא "• כלשהו.kעבור

•C אם כל רצף חישובי אלגוריתם ייקרא הוא סופי.Cשל

מתודה ששווה )בכוח מתודה אפקטיבית:•החישוב שלה( למכונת טיורינג או לכל

מכניזם לפונק' חישוביות. כיום, לזה בד"כ מתכוונים כשאומרים "אלגוריתם".

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

חישובית אפקטיבית".

בהמשך השיעור ננסה להבין למה מכונות מצבים אבסטרקטיות הן למעשה יותר

אוניברסליות ממודלים חישוביים סטנדרטיים. כמו כן, נספק סיבות

אינטואיטיביות להצלחת מכונות המצבים האבסטרקטיות.

נתחיל מהצגת דוגמא.

ASTדוגמא ל-

בדוגמא הבאה ננסה להראות אלגוריתם שלא יכולים להיות שמוגדר ע"י מצבים

. מיוצגים ע"י סמלים פונק' שמקבלת שני augmentתהי

ארגומנטים: הראשון קבוצה כלשהי, m ואובייקט Mוהשני אובייקט. לקבוצה

נגדיר: augment)M, m( =def M U {m} .

נרצה לכתוב אלגוריתם שמאחד שני אלמנטים לקבוצה אחת, תוך שימוש

.augmentבפונק'

,C0 = )Q0, I0נרצה לבנות מערכת מעברים F0( כך שכל קבוצה ,M ביחד עם שני

. רצף xM,m,n יהוו מצב סופי m, nאלמנטים צריך xM,m,nחישובי שמתחיל ברצף

M Uלהסתיים במצב שמייצג את הקבוצה {m, n} כעת נבחר משתנים שיתארו את .

ישתנה עם הקבוצות – Xהאלגוריתם. X הערך של C0של xM,m,nבמצב התחלתי

. Mהוא

:P0נתאר ע"י אלגוריתם C0את הצעדים של

P0 : begin X := augment)X,m(;

X := augment)X, n(end.

מצב התחלתי של P0: S0ע"פ האלגוריתם C0 שמוביל למצב ,S1 שמציב את הקבוצה ,

M U {m}-ב X לאחר מצב .S1 מגיע מצב ,S2 שמציב את M U {m, n}-ב X. S2

.C0של מצב סופי הוא

,"X"בתיאור הפונקציה השתמשנו בסימנים "begin", "end באובייקטים ,"=:" , ";" ,"

m, n 'ובפונק augment נעדיף כעת .ייצוג שכולו עם סימנים. נשיג זאת ע"י

, וסימן אופרטור x, yהוספת שני משתנים, C0 של xM,m,n. במצב התחלתי gבינארי,

M, m ,n הוא X, x, yנניח שהערך של הוא gבהתאמה, והערך של האופרטור

. augmentהפונקציה

נייצג זאת כך:P1 : begin X := g)X, x(;

X := g)X, y( end. ,Mהייצוג של מצבים עדיין כולל סימנים כמו

m, n augment, M U {m, n} נרצה גם . ייצוג בסימנים למצבים. ייצוג כזה יכלול רצף

. Σשל סימנים מעל אלף-בית סופי כלשהו, אבל יש רק מספר בן מנייה של מילים מעל

Σ והרבה יותר ממספר בן-מנייה של ,קבוצות.

בלתי אפשרי לייצג את כל לכן, זה . המצבים הללו באמצעות סימנים

בלתי אפשרי להגדיר השמה של ערכים ?למשתנים באמצעות סימנים.

לסיכום, פונק' המעברים יכולה להיות מיוצגת ע"י סימנים, בעוד המצבים עצמם לא

יכולים.

ASTסדרתיות

הדוגמא הקודמת לא מתאימה להגדרה •ה"מוכרת" של מודל חישובי, היא

מתאימה למודל חישובי כללי יותר. ,C = )Q, Iכדי להדגיש את ההבדל, תהי •

F( מערכת מעברים דטרמיניסטית מאותחלת.

היא מערכת מעברים Cנניח ש-•אפקטיבית.

מיוצג ע"י רצף S ϵ Qנניח שכל מצב • גם )F)Sסופי של סימנים. המצב העוקב

הוא מיוצג ע"י רצף של סימנים, שונה .Sמזה שמייצג את

לסיכום, ארגומנטים ותוצאות הפעלת •פונק' המעברים הם רצף סופי של

בסימנים של סופי סימנים, לכן קיים ייצוג .Fפונק' המעברים

היא מערכת מעברים ע"פ Cכעת נניח ש-• לא C ב-Sהמודל הכללי יותר. מצב

מיוצג ע"י סימנים, אלא הוא אובייקט )ייתכן Uסמנטי. הוא מכיל קבוצה

,u1אינסופית(, מספר סופי של אלמנטים …,uk-ב U ומספר סופי של פונקציות g1,…,gk מעל U 'כך שלכל פונק ,gi

.ui שלה הוא arityה-

מסמן אובייקט xi, משתנה Sבכל מצב •ui לכן נסמן .xis עבור ui נסמן בהתאם .

.gj את הפונק' fjsב-

לכל המצבים במערכת מעברים אותם •סימני משתנים ופונקציות, שמשמשים כדי

.C של Fלייצג את פונק' המעברים טכנית, הסימנים הללו מהווים סיגנטורה •

Σ-כל מצב ב ,C הוא Σ .אלגברה-משתנים בד"כ מסומנים כקבועים, או

.arity=0פונק' עם

נגדיר כעת את פונק' המעברים. נסמן •. סימן ההשמה בעצם x := tהשמה כך:

)s(xf, מתקיים )F)Sאומר שבמצב הבא, = ts .

השמות לא מוגדרות רק לקבועים, אלא •לכל סימני היחס בשפה. נסמן השמה

f)t1,…,tn( := t0כללית לסימן יחס כך: כך f– בעצם מעדכנת את הפונקציה

,s()t1s(fF, יתקיים )F)Sשבמצב העוקב, …,tns( = t0s .

נאפשר שתי השמות על אותה פונק' בו •.קונסיסטנטיותזמנית, רק בהנתן שהן

סיגנטורה.Σ תהי הגדרה פורמלית:. אזי )t = f)t1,…,tk כאשר t,t0 ϵ TΣיהיו •

f)t1,…,tk( := t0.היא סיגמא-השמה

. שתי סיגמא-השמות S ϵ algΣיהי •f)t1,…,tk( := t0 , f)t1',…,tk'( := t0 '

אם"ם Sב-קונסיסטנטיות ייקראו f)t1s,…,tks( = )t1s',…,tks'( גורר .t0s' = t0sש:

סט של סיגמא-השמות ייקרא • אם"ם האיברים שלו S ב-קונסיסטנטי

בזוגות.Sקונסיסטנטיים ב-

אנחנו מתעסקים בסיגנטורות שכוללות את , true, false, undefinedהסימנים:

ואת הסימנים הרגילים ל"וגם", "או" ו- "not זו תהיה סיגנטורת ."ASM.

.ASM סיגנטורת Σ תהי הגדרה: היא הקבוצה הקטנה guardΣהקבוצה •

)= t, t' ϵ TΣביותר של תנאים כך שלכל שמות עצם( מתקיים:

1 .t=t' ϵ guardΣ .

מתקיים b,b' ϵ guardΣ. לכל 2 Y b ϵ guardΣ וגםb˄b'ϵ

guardΣ.

. אזי b ϵ guardΣ-השמה ותהי r Σתהי • sigma- guarded" היא r אז b"אם

assignment. q1,…,qm sigma-guardedיהיו •

assignments" אזי .par q1,…,qm

endpar היא תכנית "ASM סדרתית .Σחסומה מעל

סיגמא-אלגברה S סיגנטורה, Σתהי הגדרה: סט של Z, ויהי Uעם עולם

.Sסיגמא-השמות, קונסיסטנטיות ב- :k-ary, Σ f ϵעבור סמל •

FZ,S : Uk -> U )t1s,…,tks( -> t0 iff f)t1,…,tk( := t0 ϵ Z

U -> fs)u( , otherwise

סיגמא-אלגברה עם )R = def semz)Sתהי • = fR כך: Σ f ϵ, מגדירה כל סימן Uעולם

fZ,S כלומר .R הוא המצב הבא אחרי .S על Fהפעלת

.ASM סיגנטורת Σ תהי הגדרה: = bs. אזי b ϵ guardΣ, S ϵ algΣיהי •

true אם"ם b = )t = t'( וגם ts = t's או , b, או אם b's = true' וגם לא b = Y bאם

= b' ˄ b וגם ''b's = b''s = true.

]זו סמנטיקה שמוכרת לנו משיעורי לוגיקה[

:Σ מעל ASM תכנית M תהי •Par: If b1 then r1

…. If bm then rm endpar.

<- semM : algΣאזי הפונקציה הסמנטית algΣ :מוגדרת כך

יהיS ϵ algΣעבור

Z := {ri | bis = true , 1 ≤ i ≤ m}אזי .

SemM)S( := { semZ)S( if Z is consistent on S

{S otherwise

יכולה Σ מעל סיגנטורה ASM, Mתכנית •לשמש כפונק' המעברים של מערכת מעברים שמגדירה סיגמות- אלגברות

כמצב: M, ותהי ASM סיגנטורת Σ תהי הגדרה:•

)A = )Q, I, F ותהי Σ מעל ASMתכנית = F, ו- Q ≤ algΣמערכת מעברים עם

semM אזי .A מערכת מעברים היאASM.

: P1נזכר בתכנית

P1 : begin X := g)X, x(;X := g)X, y(

end, אך יש ASMהיא לא נראית כמו תכנית

טריק שיהפוך אותה לתכנית ב"פורמט" הרצוי.

, שיאותחל lלצורך כך נגדיר משתנה נוסף, :S0 במצב ההתחלתי 0להיות

If l=0 then X := g)X, x(;If l=0 then l:=1;If l=1 then X := g)X, y(;If l=0 then l:=2; 

כוח החישוב של מערכת מעברים

ASMסדרתית

הן בעלות כוח ASMמערכות מעברים •חישוב חזק מאוד.

אינטואיטיבית, כל מערכת מעברים עם •פונק' מעברים שמיוצגת ע"י סימנים, יכולה

.ASMלהיות מיוצגת כ- לכל Fראשית נתאר את פונק' המעברים •

למצב S ע"י ה"הבדל" בין המצב Sמצב . ההבדל הוא קבוצת עדכונים )F)Sהעוקב

(f, u, v כאשר )f ,הוא סימן של פונקציה u n של אלמנטים כאשר n-tupleהוא

= arity של f -ו ,v .הוא אלמנט יחיד , עדכון שכזה בעצם Sבצירוף עם מצב

.fF)S()u( = vאומר ש:

סימן פונקציה f סיגנטורה, Σ תהי הגדרה:• u ϵ עולם ויהיו U, יהי arity – n עם Σב-

Un, v ϵ U( אזי .f, u, v הוא )Σ עדכון-.Uמעל

( M U {m} ,)( ,Xלדוגמא, העדכון )•. פונק' S1 ל-S0מתאר את המעבר מ-

בד"כ מעדכנת יותר Fהמעברים מפונקציה אחת ביותר ממקום אחד בכל

צעד.

מערכת מעברים )A=)Q, I, Fהגדרה: תהי Q ≤ algΣדטרמיניסטית מאותחלת עם

. אזי:S ϵ Q. יהי Σוסיגנטורה •Σ( עדכון-f, u, v הוא )F עדכון של-S אם"ם

fs)u( != fF)S()u( = v.-עדכונים F( הסט של כל ה-F, Sנסמן ב- ∆)•

.Sשל

. F( ביחד מהווה את F, S, הסט ∆)Sלכל יכולה להיות מאופיינת ע"י הסט Fלכן,

(∆F, S .כלומר ע"י הייצוג שלו בסימנים ,)ייצוג כזה בסימנים חייב לקיים את התנאים

הבאים: מתקייםR, Sאם לשני מצבים •

(∆F, S(∆ =! )F, R אז לפחות תנאי אחד ,)t ϵ TΣ מהווה את ההבדל ביניהם, כלומר ts != tr .

בנוסף, מכיוון שייצוג בסמלים הוא תמיד • כאלה יספיקו לכל tסופי, מספר סופי של

המצבים. F נקראת bounded exploration

במקרה הזה.

מערכת מעברים )A=)Q, I, F תהי הגדרה: Q ≤ algΣדטרמיניסטית מאותחלת עם

כך שלכל המצבים T≤ TΣ. יהי Σוסיגנטורה R,S ϵ Q אם לכל : t ϵT ומתקיים ts = tr ,

T(. במקרה כזה, F, S(∆ = )F, Rאזי ∆) היא F. F ל-characteristicתקרא

bounded exploration אם קיים characteristic סופי, סט T של תנאים

.Fל- ישנם משתנים שכל Tאינטואיטיבית: ב-

המצבים מסכימים על הפירוש הסמנטי שלהם. לכן כאשר התכנית מסתכלת על המשתנים האלה, היא תפעל באופן זהה

בכל אחד מהמצבים.

, F, bounded explorationההגדרה הזו ל- על מנת שתוכל F ל-הכרחיהיא מאפיין

. ASMלהיות מיוצגת ע"י תכנית דרישה נוספת: מצבים ומצבים התחלתיים

סגורים תחת איזומורפיזם, ופונק' המעברים F אינווריאנטית תחת איזומורפיזם. הדרישות

הללו קיימות בגלל האבחנה שייצוג של תנאי לא יכול להבדיל בין מבנים

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

בלבד.

)A=)Q, I, F ותהי Σ תהי סיגנטורה הגדרה:מערכת מעברים דטרמיניסטית מאותחלת

R,S ϵ Q כך שלכל Q ≤ algΣעם . אם h: R -> Sולכל איזומורפיזם

מתקיים:•R ϵ Q אם"ם S ϵ Q ,וגם R ϵ I אם"ם S ϵ

I• h: F)R( -> F)S(.הוא גם איזומורפיזם

.סגורה לאיזומורפיזם Aאזי

הטענה הבאה מתארת את הכוח החישובי :ASMשל מערכת מעברים

)A=)Q, I, F ותהי Σ תהי סיגנטורה טענה:מערכת מעברים דטרמיניסטית מאותחלת

, ותהי Q ≤ algΣוסגורה לאיזומורפיזם עם F bounded exploration אז קיימת .

.F=semM עם ASMתכנית

היבטים נוספים של ASM

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

מזווית סינטקטית. ASMאלמנטרית של אינו יחיד, ASMבאופן כללי, הסינטקס של יש כמה גרסאות שיעבדו.

יש הרחבות מספיקות לגרסה האלמנטרית • כפי שהוצג בנייר הזה:ASMשל

יכולה Fפונק' המעברים הדטרמיניסטית •להיות מוחלפת בפונק' לא דטרמיניסטית.

יכולה להיות ASMההתנהגות של תכנית • שאינם מבוצעים xixi+1ממודלת ע"י צעדים

ע"י אותה התכנית, אלא ע"י העולם החיצון.וכן הלאה...•

סיגמא- אלגברה היא המבנה המתמטי •הטבעי ביותר. לכן היא מהווה את האמצעי

הגמיש ביותר למדל מצבים של מערכות. יש היכולת לבנות ASMלכן לגישה של ה-

אלגוריתם שרירותי ברמת האבסטרקציה הטבעית שלה, בלי לממש אותו. למעשה,

הדרישה הליברלית ממצבים וצעדים מסתגלת בקלות לכל סוג אלגוריתם,

.high-level system designובמיוחד ל-

•ASM מוצלח במיוחד לתיאור הסמנטיקה של שפות תכנות: סמנטיקה שמתמודדת עם

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

מספק.ASMש- יושם בהצלחה בכל ASMהפורמליזם של •

תחומי התוכנה.

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

ASM .דורשים שמצב התחלתי יהיה מלוגיקה מסדר •

ראשון, אך הוא עדיין יכול להכיל פעולות halting למשל כמו computableשאינן

function .ופעולות על מספרים ממשיים ,כדי למנוע מצב כזה, נדרוש שהמצבים •

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

כלשהי.

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

גם הם יכולים להיות מיוצגים ע"י רשימה סופית של זוגות <מיקום , ערך< ותכניות

כלשהן לפעולות ההתחלתיות. לכן אפשר להשתמש באינטרפרטר, שייקח •

את הייצוג של מצב ויחשב את המצב הבא. את האינטרפרטר ניתן לפתח בכל שפת

תכנות.