אלגוריתם (Algorithm)

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



אלגוריתם  (Algorithm) Algorithm אלגוריתם

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

אבו ג'עפר מחמד אל ח'ואריזמי היה מתמטיקאי פרסי.

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

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

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

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

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

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

סדרה סופית של הוראות ברורות, חד משמעיות ואפשריות לביצוע שסדר ביצוען שיטתי ומוגדר היטב ומטרתן לפתור בעיה מסוימת ומובנת היטב.
 
סדרה סופית – מספר ידוע מראש או ניתן לחישוב של הוראות.
הוראות ברורות וחד משמעיות – בחיים, ולא רק במדעי המחשב נסו להימנע מניסוחים דו משמעיים,לדוגמה: "צייר כלי שייט" הינה הוראה לא מספיק ברורה, כי למה התכוון המבקש?, רפסודה?, אוניה? יאכטה? צוללת? או קאנו?
לעומת זאת "צייר יאכטה מפרשית" היא הוראה הרבה יותר ברורה (ולעיתים גם היא לא מספיק ברורה וצריך יותר פירוט).
"קנה ק"ג חומוס" היא הוראה לא ברורה, האם הכוונה היא לק"ג סלט חומוס מוכן או שאולי לק"ג גרגירי חומוס?
אפשריות לביצוע – רעייתי לעולם לא תבקש ממני לאפות עוגה,
לעולם לא אבקש מאשתי להחליף נורה.
אשתי תאפה עוגה ואני אחליף נורה וכך נוכל שנינו לאכול עוגה באור.
ההוראות המרכיבות את האלגוריתם צריכות להיות אפשריות לביצוע ומתאימות למבצע.
סדר ביצוען מוגדר היטב – ניסיתם פעם לתדלק מכונית על פי האלגוריתם הבא:
"השב אותה למקומה, מלא את המיכל, פתח את מכסה מיכל הדלק, הנע את המכונית, סגור את מיכל הדלק, הכנס את זרבובית משאבת הדלק למיכל, עצור את המכונית, הוצא את המשאבה,  המשך בנסיעה, הפעל את המשאבה, דומם את המנוע."
אם תרצו לצאת בשלום מתחנת הדלק כנראה תשתמשו בסדר הפעולות הבא:
"עצור את המכונית, דומם את המנוע, פתח את מכסה מיכל הדלק, הכנס את זרבובית משאבת הדלק למיכל, הפעל את המשאבה, מלא את המיכל, הוצא את המשאבה, השב אותה למקומה, סגור את מיכל הדלק, הנע את המכונית, המשך בנסיעה."
מטרתן לפתור בעיה מסוימת ומובנת היטב – הבנת הבעיה העומדת בפנינו היא הבסיס לפתרון נכון, אם לא נבין את הבעיה, אולי נצליח לספק פיתרון כלשהוא, אולם למה?,פתגם אמריקאי ישן אומר : "אם אתה לא יודע לאן אתה הולך - כל דרך תוביל אותך לשם",
בבואנו להתמודד עם בעיה אלגוריתמית כדאי לדעת "לאן הולכים".
 
הבעיה האלגוריתמית הראשונה שתעמוד לפתחנו היא גם הבעיה האלגוריתמית הטעימה ביותר שתתקלו בה בחייכם המקצועיים – הכנת עוגת שוקולד עם קצפת ודובדבנים.
מרכיבים:
  1. 1.5 כוסות קמח תופח.
  2. כפית סודה לשתיה.
  3. 1 ורבע כוס סוכר.
  4. רבע כוס קקאו.
  5. 2 כפות שוקולית.
  6. חצי כוס שמן.
  7. חצי כוס יין מתוק.
  8. חצי כוס מיץ תפוזים.
  9. 2 ביצים.
  10. 1 סוכר ווניל.
  11. 1 כף תמצית רום.
  12. 1 כוס חלב
  13. 100 גרם חמאה
  14. 200 גרם דובדבנים.
אופן ההכנה
  1. הכניסו לקערה את חצי כוס השמן, חצי כוס יין מתוק, חצי כוס מיץ תפוזים, כף רום ואת שני הביצים.
  2. הקציפו בעזרת מיקסר את התערובת.
  3. תוך כדי הקצפה הוסיפו בהדרגה את הקמח, הסודה לשתייה, הסוכר, הקקאו, השוקולית ואת סוכר הווניל.
  4. המשיכו את ההקצפה עד שלא יישארו גושים. 
  5. שמנו תבנית אפיה.
  6. שפכו את התערובת לתבנית.
  7. אפו בחום של 180 מעלות למשך 45 דקות.
  8. הכנת הקצפת:
  9. הרתיחו את החלב.
  10. חתכו את החמאה לקוביות.
  11. הכניסו את החלב והחמאה לבלנדר.
  12. הפעילו את הבלנדר לכ-5 דקות.
  13. לאחר שהעוגה התקררה מרחו את הקצפת בצורה שווה על העוגה.
  14. פזרו את הדובדבנים על העוגה. 

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

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

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

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


 
 
 



כל הזכויות שמורות למחבר ©