top of page

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

אז מהו בפועל אלגוריתם?

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

אז מה הוא בעצם אותו "אלגוריתם" מדובר?

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

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

1. בחירת מברשת השיניים שלנו מהכוס

2. בחירת משחת השיניים המועדפת

3. מריחת כמות מתאימה של משחה

4. שטיפת המברשת במים (למביני העניין שבינינו)

5. צחצוח למשך זמן של כ-2 דקות. מצורף הסבר בקישור להנאתכם

6. שטיפת הפה במים ויריקה

7. שטיפת המברשת

אז אחרי שהבנו מהו אלגוריתם, בוא נבין ממה מורכב האלגוריתם עצמו:

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

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

פלט – התוצאה אשר תתקבל לאחר הרצת האלגוריתם. במקרה שלנו – שיניים נקיות.

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

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

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

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

Comentários


bottom of page