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

Anonim

אלגוריתם אקראי לעומת רקורסיבי

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

-> ->

מהו אלגוריתם אקראי?

אלגוריתמים אקראיים משלבים תחושה של אקראיות על ידי בחירה אקראית המנחה את ביצוע האלגוריתם. זה נעשה בדרך כלל על ידי לקיחת סדרה של מספרים אקראיים שנוצרו על ידי גנרטור מספר pseudorandom כקלט נוסף. כתוצאה מכך, התנהגות האלגוריתם עשויה להשתנות גם עבור קלט קבוע. Quicksort הוא אלגוריתם ידוע רחב המשתמשת במושג אקראיות ויש לו זמן ריצה של O (n log n) ללא קשר למאפייני הקלט. יתר על כן, שיטת בנייה מצטברת אקראית משמש לבניית מבנים כמו גוף קמורה בגיאומטריה חישובית. בשיטה זו, נקודות הקלט מתוזמנות באופן אקראי ולאחר מכן מוכנסות אחת על אחת למבנה. יישום אלגוריתם אקראי הוא פשוט יחסית מאשר יישום אלגוריתם דטרמיניסטי לאותה בעיה. האתגר הגדול ביותר בעיצוב אלגוריתם אקראי טמון בביצוע ניתוח אסימפטוטי למורכבות זמן ומרחב.

-> ->

מהו אלגוריתם רקורסיבי?

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

-> ->

מה ההבדל בין אלגוריתם אקראי לבין אלגוריתם רקורסיבי?

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