חינוך

מהו אלגוריתם? »הגדרתו ומשמעותו

תוכן עניינים:

Anonim

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

מהו אלגוריתם

תוכן עניינים

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

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

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

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

מאפייני אלגוריתם

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

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

חלקים מאלגוריתם

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

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

דוגמאות לאלגוריתמים

דוגמאות נפוצות לחישובי מתמטיקה כוללות 2 + 3 = 5 להוספה ו- 15-9 = 6 לחיסור. דרך נוספת לדמיין אלגוריתמים פשוטים היא במתכונים למטבח מאחר והם מתארים תהליך ספציפי ומסודר, למשל, "קודם כדאי להניח חצי סיר מים לחימום, ואז להוסיף קורט מלח ולבסוף הפלפל הולך להיות מחולק כדי לחלץ את הזרעים והוורידים. " במודל זה מוצגת התחלה, תהליך וסוף, שהם בעצם המגדירים את האלגוריתמים.

סוגי אלגוריתמים

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

על פי מערכת השלטים שלך

בקטגוריה זו ממוקמים איכותיים וכמותיים.

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

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

על פי תפקידה

להלן מיקומים בסיווג זה.

1. אלגוריתם סימון

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

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

2. אלגוריתמים הסתברותיים

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

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

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

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

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

3. אלגוריתמים היוריסטיים

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

4. אלגוריתמי מעקב אחורני

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

5. אלגוריתם חמדן

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

מאפייני אלגוריתם

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

הצהרת בעיה

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

ניתוח הפיתרון הכללי

לאחר הגדרת הבעיה, הגיע הזמן לנתח את הדברים הבאים:

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

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

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

פיתוח האלגוריתם

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

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

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

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

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

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

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

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