אלגוריתם דטרמיניסטי – הבדלי גרסאות
תוכן שנמחק תוכן שנוסף
מ בוט: החלפת טקסט אוטומטית (-[ +[) |
אין תקציר עריכה |
||
שורה 1:
'''אלגוריתם דטרמיניסטי''' במדעי המחשב הוא [[אלגוריתם]] המתנהג בצורה צפויה וניתנת לניבוי. כלומר, בהינתן
על אף שהשימוש במונח [[אלגוריתם]] בכלל, ואלגוריתם דטרמיניסטי בפרט, נפוץ ב[[מדעי המחשב]], השניים משמשים בכל צורות החיים. דוגמה לאלגוריתם דטרמינסטי היא החילוק הארוך.
שורה 8:
באופן פורמלי אלגוריתם דטרמינסטי יכול להיות מוגדר במונחי [[מכונת מצבים]]: מצב מתאר מה תעשה מכונה בזמן מסוים. מכונת המצבים עוברת בין המצבים. מיד לאחר מתן ה[[קלט]] המכונה נמצאת במצב ההתחלתי שלה (הידוע גם כמצב התחלה). במכונה דטרמיניסטית המצב הנוכחי והקלט קובעים מה יהיה המצב הבא אליו תעבור המכונה (כלומר סדר הפעולות בו תעבור המכונה קבוע מראש). חשוב לציין שמכונה יכולה להיות דטרמיניסטית ועדיין לא לעצור לעולם, התנאי היחיד להיותה של המכונה דטרמינסטית היא שנוכל לדעת בכל שלב היכן תהיה המכונה.
כל ה[[מחשב
==בעיות באלגוריתמים דטרמינסטיים==
קיימים יישומים בהם לא רוצים שהמצבים הבאים יהיו צפויים (כמתחייב מההגדרה). משחקי קלפים למשל הם דוגמה ליישום בו לא ניתן לתת את האפשרות לחזות את הקלפים הבאים בחפיסה. מכיוון שהאקראיות שבה המחשב משתמש אינה אקראיות "אמיתית" אלא ניפוח דטרמיניסטי של Seed שעשוי להגיע ממקור בעל חוקיות מסוימת (בפרט, שעון המחשב), לא ניתן למנוע באופן מוחלט מפעולת המחשב מלהיות צפויה עבור מי שמנסה לנתחה.
אף על פי שכל בעיה אלגוריתמית פתירה, ניתנת לפתרון באמצעות אלגוריתם דטרמינסטי, בעבור חלק גדול מהבעיות האלגוריתמים הדטרמניסטיים הידועים איטיים יותר (במונחי [[סיבוכיות]]) ממשפחות אלגוריתמיות
===השלכות שליליות לאי היכולת לפתור בעיות בזמן סביר===
שורה 20:
===השלכות חיוביות לאי היכולת לפתור בעיות בזמן סביר===
כיום ידועות מספר בעיות שלא מוכר אלגוריתם יעיל הפותר אותן, אך בהינתן מידע נוסף הן ניתנות לפתרון יעיל, מה שפותח פתח לשימוש בבעיות אלו כבסיס למערכות הצפנה. הדוגמה הקלאסית היא של מערכת ה[[הצפנה]] [[RSA]], שבה כדי לפענח הודעה יש לבצע חישוב התלוי במספר
==ראו גם==
|