מודל חישובי

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

בתורת הסיבוכיות ובתורת הרקורסיה, מודל חישובי הוא אוסף של פעולות המותרות בחישוב והעלות שלהן. מודלים אלו משמשים למדידת המורכבות של אלגוריתם מבחינת זמן ריצה או זיכרון, ואף עונים על שאלות מהצורה: "בהינתן מודל חישובי מסוים, האם ניתן להכריע בעיה מסוימת, ובכמה זמן?"

דוגמות

אוטומט סופי

דוגמה לאוטומט סופי דטרמיניסטי מעל הא"ב הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \Sigma=\{0,1\}} , ששפתו היא כל המילים שמתחילות ונגמרות באותה ספרה.
ערך מורחב – אוטומט סופי

אוטומט סופי הוא חמישייה הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle <Q,\Sigma,q_0,\delta,F>} כאשר:

  • הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle Q} היא קבוצת המצבים האפשריים באוטומט.
  • הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \Sigma} היא הא"ב הסופי של השפה שהאוטומט מתאר.
  • הוא המצב ההתחלתי באוטומט
  • היא פונקציית המעבר, המוגדרת כך
    . למעשה, מקבלת מצב ואות קלט, ומחזירה את המצב הבא.
  • היא קבוצת המצבים המקבלים באוטומט.

האוטומט מקבל מילת קלט (נוכל גם לומר כי הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle w=w_0w_1...w_{n-1}, \forall i<n: w_i \isin \Sigma} ), וקורא את האותיות בה בזו אחר זו. הוא מתחיל את ריצתו על המילה במצב הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle q_0} , משם עובר למצב הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle q_1=\delta (q_0,w_0)} , וכך הלאה (באמצעות הכלל הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle q_i= \delta(q_{i-1},w_{i-1})} . נאמר כי המילה שייכת לשפת האוטומט, אם"ם הריצה של האוטומט על המילה מסתיימת במצב מקבל, כלומר, הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle q_{|w|} \isin F} .

קיימים שני סוגים של אוטומט סופי: אוטומט סופי דטרמיניסטי ואוטומט סופי לא דטרמיניסטי. משפט הדטרמיניזציה קובע כי שני המודלים הללו שקולים מבחינת יכולת החישוב שלהם, כלומר לכל אוטומט סופי לא דטרמיניסטי הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle N} קיים אוטומט סופי דטרמיניסטי הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle A} כך שמתקיים הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle L(A)=L(N)} .

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

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

דוגמה לאוטומט מחסנית מעל הא"ב , המקבלת את השפה הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle L=\{ a^i b^j | i \ge j \}} .
ערך מורחב – אוטומט מחסנית

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

פורמלית, אוטומט מחסנית הוא השישייה הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle <Q,\Sigma,\Gamma,\delta,q_0,F>} כאשר:

  • הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle Q} היא קבוצת המצבים ההתחלתיים.
  • הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \Sigma} היא הא"ב הסופי שמעליו מוגדרת שפת האוטומט.
  • הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \Gamma} היא הא"ב הסופי של המחסנית (קבוצת האותיות שיכולה להיכתב במחסנית).
  • הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \delta} פונקציית המעבר הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \delta : Q \times (\Sigma \cup\{\varepsilon\}) \times \Gamma \rightarrow Q \times \Gamma } , המקבלת מצב, אות קלט, ואות מחסנית (לקריאה) ומחזירה את המצב הבא ואות מחסנית (לכתיבה במחסנית).
  • הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle q_0 \isin Q} המצב ההתחלתי.
  • קבוצת המצבים המקבלים.

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

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

מכונת טיורינג שקוראת מספר בינארי וכותבת את המספר הנגדי לו בשיטת המשלים ל-2.
ערך מורחב – מכונת טיורינג

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

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

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

זמן ריצה

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

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

ראו גם