שלום,
נראה שכבר הכרתם את אאוריקה. בטח כבר גיליתם כאן דברים מדהימים, אולי כבר שאלתם שאלות וקיבלתם תשובות טובות.
נשמח לראות משהו מכם בספר האורחים שלנו: איזו מילה טובה, חוות דעת, עצה חכמה לשיפור או כל מה שיש לכם לספר לנו על אאוריקה, כפי שאתם חווים אותה.
»
«
אלגוריתמיקה
מי המציא את האלגוריתם?
מיהו ממציא האלגוריתם?
כל מי שמתחבר היום לאינטרנט ודאי יתעניין לדעת שחוקר ערבי מהמאה ה-9 הוא שהמציא את אחד הכלים החשובים בעידן המחשבים המודרניים של המאה ה-21.
קראו לו מוחמד אבן מוסא אל-ח'ואריזמי (Muhammad ibn Musa al-Khwarizmi) או בקיצור אל-ח'ואריזמי (al-Khwarizmi). שיבוש או פישוט שמו לשפות אירופאיות הפך את אל-ח'ואריזמי לשם "אל-גוריתם", שבימינו הוא כבר מילה אחת והיא "אלגוריתם".
הוא היה אחד מגדולי החוקרים במדע המוקדם. אמנם שפת אימו הייתה פרסית אך עבודתו המדעית נכתבה בערבית, שפת המדע בתקופתו. ספריו המתורגמים ללטינית היו מהמשפיעים והחשובים במדע האירופי וספר האלגברה שכתב היה מספרי הלימוד והמחקר החשובים באוניברסיטאות אירופה עד המאה ה-16.
מתמטיקאי, אסטרונום וגיאוגרף, אל-חואריזמי נולד בשנת 780 בערך בעיר חיווה שבאוזבקיסטן של היום. משם עברה משפחתו להתגורר באזור בגדאד, שם פעל אל-ח'ואריזמי כל חייו ופרסם את רוב כתביו.
אז מי ששיבוש שמו בתרגום ללטינית הפך לאחד המושגים החשובים בתחום המחשב המודרני - מושג האלגוריתם, הוא גם זה שפיתח את תורת האלגברה, עוד מילה שנולדה משיבוש השם של ספרו "חיסאב אל-ג'אבר ואל-מוקאבלה" ("חשבון ההשלמה וההקבלה"). גם כאן הפך "אל ג'אבר" ל"אלגברה".
אל-ח'ואריזמי הוא שהפיץ את השימוש בספרה אפס ותרם בכך תרומה עצומה לשימוש בספרות המוכרות לנו כספרות החשבון. כן, ספרות החשבון שמשמשות אותנו הן הספרות ההודיות-ערביות שהחליפו את הספרות הרומיות העתיקות.
כגיאוגרף פעיל הוא שכלל את מחקריו של תלמי היווני ובהמשך יצר את מפת העולם הראשונה, בעזרת 70 גאוגרפים שעבדו תחתיו.
כאסטרונום חקר אל חואריזמי את האצטרולב ושעון השמש. לאות כבוד קראו על שמו את מכתש "אל-ח'ואריזמי" שעל הירח.
הנה סיפורו של ממציא האלגוריתם:
https://youtu.be/oRkNaF0QvnI
תולדות חייו של חוואריזמי:
https://youtu.be/oyhOlGsDXP8
הוא גם המציא את האלגברה:
https://youtu.be/Ok5BGimzUkg
הרצאת וידאו קצרה על האיש:
https://youtu.be/Ar7CNsJUm58
ודוגמה לאלגוריתם שפותר בעיה של שידוך בין שני צדדים, אלגוריתם השידוך היציב (עברית):
https://youtu.be/-sdjDmS-hCw
כל מי שמתחבר היום לאינטרנט ודאי יתעניין לדעת שחוקר ערבי מהמאה ה-9 הוא שהמציא את אחד הכלים החשובים בעידן המחשבים המודרניים של המאה ה-21.
קראו לו מוחמד אבן מוסא אל-ח'ואריזמי (Muhammad ibn Musa al-Khwarizmi) או בקיצור אל-ח'ואריזמי (al-Khwarizmi). שיבוש או פישוט שמו לשפות אירופאיות הפך את אל-ח'ואריזמי לשם "אל-גוריתם", שבימינו הוא כבר מילה אחת והיא "אלגוריתם".
הוא היה אחד מגדולי החוקרים במדע המוקדם. אמנם שפת אימו הייתה פרסית אך עבודתו המדעית נכתבה בערבית, שפת המדע בתקופתו. ספריו המתורגמים ללטינית היו מהמשפיעים והחשובים במדע האירופי וספר האלגברה שכתב היה מספרי הלימוד והמחקר החשובים באוניברסיטאות אירופה עד המאה ה-16.
מתמטיקאי, אסטרונום וגיאוגרף, אל-חואריזמי נולד בשנת 780 בערך בעיר חיווה שבאוזבקיסטן של היום. משם עברה משפחתו להתגורר באזור בגדאד, שם פעל אל-ח'ואריזמי כל חייו ופרסם את רוב כתביו.
אז מי ששיבוש שמו בתרגום ללטינית הפך לאחד המושגים החשובים בתחום המחשב המודרני - מושג האלגוריתם, הוא גם זה שפיתח את תורת האלגברה, עוד מילה שנולדה משיבוש השם של ספרו "חיסאב אל-ג'אבר ואל-מוקאבלה" ("חשבון ההשלמה וההקבלה"). גם כאן הפך "אל ג'אבר" ל"אלגברה".
אל-ח'ואריזמי הוא שהפיץ את השימוש בספרה אפס ותרם בכך תרומה עצומה לשימוש בספרות המוכרות לנו כספרות החשבון. כן, ספרות החשבון שמשמשות אותנו הן הספרות ההודיות-ערביות שהחליפו את הספרות הרומיות העתיקות.
כגיאוגרף פעיל הוא שכלל את מחקריו של תלמי היווני ובהמשך יצר את מפת העולם הראשונה, בעזרת 70 גאוגרפים שעבדו תחתיו.
כאסטרונום חקר אל חואריזמי את האצטרולב ושעון השמש. לאות כבוד קראו על שמו את מכתש "אל-ח'ואריזמי" שעל הירח.
הנה סיפורו של ממציא האלגוריתם:
https://youtu.be/oRkNaF0QvnI
תולדות חייו של חוואריזמי:
https://youtu.be/oyhOlGsDXP8
הוא גם המציא את האלגברה:
https://youtu.be/Ok5BGimzUkg
הרצאת וידאו קצרה על האיש:
https://youtu.be/Ar7CNsJUm58
ודוגמה לאלגוריתם שפותר בעיה של שידוך בין שני צדדים, אלגוריתם השידוך היציב (עברית):
https://youtu.be/-sdjDmS-hCw
מהם אלגוריתמים ואיך כל אחד משתמש באלגוריתם?
אם התפלאתם כיצד יודעים שירותים כמו ספוטיפיי או אפל מיוזיק להציע לכם שירים ואמנים שאינכם מכירים ולקלוע לטעם שלכם, או שנדהמתם מהסדרות והסרטים שנטפליקס מציע לכם לצפות בהם ומכמה שהם מתאימים לטעמכם, אם אתם נדהמים מזה שאתם מוקפים בפייסבוק באנשים שחושבים כמוכם, או הפוך, ממש בדיוק הפוך מכם - בכל המקרים הללו נראה שאתם מתפעלים מאלגוריתמים.
בכלל, זה העידן של האלגוריתמים, אותם חלקי תוכנות שמאפשרות לתוכנות ללמוד היטב את הטעם שלכם, הדיעות שלכם, ההתנהגות, החיפושים בגוגל ומה לא - הכל כדי לשרת אתכם היטב. טוב, לגבי החלק האחרון לא בטוח שהוא מדויק... בואו נאמר שהכל בעיקר כדי לשרת את הרווחים של התאגידים הללו ואת המשקיעים ובעלי המניות שלהם.
אבל רגע, מה הם אלגוריתמים בכלל?
אלגוריתם (Algorithm) הוא מתכון כללי לפתרון של בעיה כלשהי. מדובר במתכון שניתן להזין למחשב והוא יסייע לפתור אותה.
זהו רצף של הוראות לביצוע משימה או פתרון של בעיה מסוימת. אפשר לומר שאלגוריתם מציע סדרת הוראות וסדר ביצוע שמוגדר היטב. או במילים פשוטות, אלגוריתם הוא דרך שכוללת צעדים מדויקים ומסודרים לפי סדר, לביצוע משימה או לפתרון בעיה.
תכנית מחשב היא ייצוג בשפת תכנות, של אלגוריתם. היא מאפשרת להריץ את האלגוריתם על מחשב.
גם מי שלא מתעסקים במחשבים מכירים מחיי היום-יום אלגוריתמים פשוטים. למשל מתכונים למטבח (כן אדוני השף החובב - מתכון הוא אלגוריתם פשוט וקלאסי שכולנו משתמשים בו, אפילו כדי להכין חביתה). גם הוראות ההרכבה של איקאה או מדריכי DIY מספרי "עשה זאת בעצמך" הם אלגוריתמים.
ועדיין, לרוב משתמשים במונח "אלגוריתם" כדי לכנות פתרון מתמטי או דרך לביצוע של משימה בעולם המחשבים ומערכות דיגיטליות מתקדמות דומות.
משימות כמו התאמה של פריטים לפי טעם המשתמשים, מכירה מקוונת של מוצרים שאמזון מעריכה שסביר שתרצו לקנות, המלצה על שירים שיגרמו הנאה, או סרטים וסדרות כאלה, או חברים ופוסטים בפייסבוק שיביאו את המשתמש להגיב ולהיות מעורב בדיון - אלה רק דוגמאות.
אז כן. האלגוריתם הוא רכיב תוכנה שנועד לייצר פעולה מסוימת. אם כשהוא מכוון ללמוד אותנו, משתמשי התוכנה, האתר, האפליקציה או שירות כלשהו, אז הוא כבר הופך למכונה לומדת - משהו שמתעקש ללמוד עלינו דברים שאפילו אנחנו לא יודעים על עצמנו. זה הכוח של הכלי הזה ואת הכוח הזה הוא מעביר לבעליו.
כך יכולים התאגידים החזקים בעולם להתאים לנו פרסומות מטורגטות, שיפעילו אותנו ולכן יכניסו להם סכומי כסף אדירים. כך הם יכולים גם לסחור בידע שהאלגוריתמים הללו הקנו להם עלינו, כדי להרוויח הרבה יותר כסף ממה שהן מרוויחות כחברות המספקות תוכנה או שירותי אינטרנט.
אגב, ודאי יפתיע אתכם שהמילה הכל כך טרנדית ואופנתית הזו, "אלגוריתם", מקורה הוא משיבוש שמו של מוחמד אבן מוסא "אל-ח'וואריזמי", שהיה מתמטיקאי פרסי מהמאה ה-9.
הנה סרטון שמסביר בצורה פשוטה יחסית מהו אלגוריתם (מתורגם):
http://youtu.be/6hfOvs8pY1k
האלגוריתם הוא המלך בעולם המחשבים ולכן התכנות חייב להתחיל ממנו:
https://youtu.be/MRPpYX8SOA8
סוג של אלגוריתמים לפתרון הקוביה ההונגרית (עברית):
http://youtu.be/RQo8WoHQIz8
בחיוך מסוים - מסתבר שיש אלגוריתם אפילו לתרמילאים שרוצים לשרוד:
https://youtu.be/PQKOpvypN2Y
ותכנית חינוכית על אלגוריתמים (עברית):
https://youtu.be/nMJ8R9K9EQw?long=yes
אם התפלאתם כיצד יודעים שירותים כמו ספוטיפיי או אפל מיוזיק להציע לכם שירים ואמנים שאינכם מכירים ולקלוע לטעם שלכם, או שנדהמתם מהסדרות והסרטים שנטפליקס מציע לכם לצפות בהם ומכמה שהם מתאימים לטעמכם, אם אתם נדהמים מזה שאתם מוקפים בפייסבוק באנשים שחושבים כמוכם, או הפוך, ממש בדיוק הפוך מכם - בכל המקרים הללו נראה שאתם מתפעלים מאלגוריתמים.
בכלל, זה העידן של האלגוריתמים, אותם חלקי תוכנות שמאפשרות לתוכנות ללמוד היטב את הטעם שלכם, הדיעות שלכם, ההתנהגות, החיפושים בגוגל ומה לא - הכל כדי לשרת אתכם היטב. טוב, לגבי החלק האחרון לא בטוח שהוא מדויק... בואו נאמר שהכל בעיקר כדי לשרת את הרווחים של התאגידים הללו ואת המשקיעים ובעלי המניות שלהם.
אבל רגע, מה הם אלגוריתמים בכלל?
אלגוריתם (Algorithm) הוא מתכון כללי לפתרון של בעיה כלשהי. מדובר במתכון שניתן להזין למחשב והוא יסייע לפתור אותה.
זהו רצף של הוראות לביצוע משימה או פתרון של בעיה מסוימת. אפשר לומר שאלגוריתם מציע סדרת הוראות וסדר ביצוע שמוגדר היטב. או במילים פשוטות, אלגוריתם הוא דרך שכוללת צעדים מדויקים ומסודרים לפי סדר, לביצוע משימה או לפתרון בעיה.
תכנית מחשב היא ייצוג בשפת תכנות, של אלגוריתם. היא מאפשרת להריץ את האלגוריתם על מחשב.
גם מי שלא מתעסקים במחשבים מכירים מחיי היום-יום אלגוריתמים פשוטים. למשל מתכונים למטבח (כן אדוני השף החובב - מתכון הוא אלגוריתם פשוט וקלאסי שכולנו משתמשים בו, אפילו כדי להכין חביתה). גם הוראות ההרכבה של איקאה או מדריכי DIY מספרי "עשה זאת בעצמך" הם אלגוריתמים.
ועדיין, לרוב משתמשים במונח "אלגוריתם" כדי לכנות פתרון מתמטי או דרך לביצוע של משימה בעולם המחשבים ומערכות דיגיטליות מתקדמות דומות.
משימות כמו התאמה של פריטים לפי טעם המשתמשים, מכירה מקוונת של מוצרים שאמזון מעריכה שסביר שתרצו לקנות, המלצה על שירים שיגרמו הנאה, או סרטים וסדרות כאלה, או חברים ופוסטים בפייסבוק שיביאו את המשתמש להגיב ולהיות מעורב בדיון - אלה רק דוגמאות.
אז כן. האלגוריתם הוא רכיב תוכנה שנועד לייצר פעולה מסוימת. אם כשהוא מכוון ללמוד אותנו, משתמשי התוכנה, האתר, האפליקציה או שירות כלשהו, אז הוא כבר הופך למכונה לומדת - משהו שמתעקש ללמוד עלינו דברים שאפילו אנחנו לא יודעים על עצמנו. זה הכוח של הכלי הזה ואת הכוח הזה הוא מעביר לבעליו.
כך יכולים התאגידים החזקים בעולם להתאים לנו פרסומות מטורגטות, שיפעילו אותנו ולכן יכניסו להם סכומי כסף אדירים. כך הם יכולים גם לסחור בידע שהאלגוריתמים הללו הקנו להם עלינו, כדי להרוויח הרבה יותר כסף ממה שהן מרוויחות כחברות המספקות תוכנה או שירותי אינטרנט.
אגב, ודאי יפתיע אתכם שהמילה הכל כך טרנדית ואופנתית הזו, "אלגוריתם", מקורה הוא משיבוש שמו של מוחמד אבן מוסא "אל-ח'וואריזמי", שהיה מתמטיקאי פרסי מהמאה ה-9.
הנה סרטון שמסביר בצורה פשוטה יחסית מהו אלגוריתם (מתורגם):
http://youtu.be/6hfOvs8pY1k
האלגוריתם הוא המלך בעולם המחשבים ולכן התכנות חייב להתחיל ממנו:
https://youtu.be/MRPpYX8SOA8
סוג של אלגוריתמים לפתרון הקוביה ההונגרית (עברית):
http://youtu.be/RQo8WoHQIz8
בחיוך מסוים - מסתבר שיש אלגוריתם אפילו לתרמילאים שרוצים לשרוד:
https://youtu.be/PQKOpvypN2Y
ותכנית חינוכית על אלגוריתמים (עברית):
https://youtu.be/nMJ8R9K9EQw?long=yes
אילו תכונות מאפיינות אלגוריתמים?
האלגוריתם הוא הדרך לפתרון בעיה אלגוריתמית. הוא הבסיס לתוכנת מחשב.
כשהוא בנוי נכון יש לאלגוריתם כמה תכונות:
#הוראות מסודרות
הוא מורכב מהוראות המוגדרות ברמת פירוט הנדרשת למבצע ההוראות. כל ההוראות חייבות להיות ברורות ואפשריות לביצוע.
#פתרון לכל נקודת מוצא
עליו לתת פתרון, או לפחות מענה, המתאימים לכל קלט חוקי שהוא מקבל בנקודת המוצא שלו.
#מספר סופי של צעדים
על האלגוריתם להיות בעל מספר סופי של צעדים מהבעיה לפתרון. בכל מקרה אחר הוא יהיה אינסופי ולפיכך לא יעיל.
הנה האלגוריתם ותכונותיו (מתורגם):
https://youtu.be/6hfOvs8pY1k
האלגוריתם הוא הדרך לפתרון בעיה אלגוריתמית. הוא הבסיס לתוכנת מחשב.
כשהוא בנוי נכון יש לאלגוריתם כמה תכונות:
#הוראות מסודרות
הוא מורכב מהוראות המוגדרות ברמת פירוט הנדרשת למבצע ההוראות. כל ההוראות חייבות להיות ברורות ואפשריות לביצוע.
#פתרון לכל נקודת מוצא
עליו לתת פתרון, או לפחות מענה, המתאימים לכל קלט חוקי שהוא מקבל בנקודת המוצא שלו.
#מספר סופי של צעדים
על האלגוריתם להיות בעל מספר סופי של צעדים מהבעיה לפתרון. בכל מקרה אחר הוא יהיה אינסופי ולפיכך לא יעיל.
הנה האלגוריתם ותכונותיו (מתורגם):
https://youtu.be/6hfOvs8pY1k
איך מייצגים אלגוריתמים?
אלגוריתם הוא שם כללי להוראות ביצוע של משימה או דרך לפתור בעיה מוגדרת. זהו, אם תרצו, מתכון כללי בו מטופלת בעיה לצורך פתרונה.
אם אתם מנסים למצוא רצף של הוראות לביצוע משימה או לפתרון של בעיה מסוימת, הרי שאתם מחפשים אלגוריתם.
כמובן שמדובר במגוון אדיר של בעיות המחייבות ייצוג ולכן גם הדרכים מגוונות ואין דרך אחת. אם בכל זאת נצטמצם לעולם הטכנולוגיה והמחשבים, הרי שבכל זאת ניתן לייצג אלגוריתמים בכמה דרכים או שיטות.
אז הנה השיטות הבולטות ביותר לייצוג אלגוריתמים:
#תרשים זרימה
תצוגה גרפית של האלגוריתם, בעזרת תרשים כמו בתמונה שלמעלה, המכיל סימנים מקובלים וחלקים שונים באלגוריתם: נקודות התחלה וסיום - אליפסה, הצגת הוראות - מלבן, הוראות קלט פלט - מקבילית וביצוע מותנה של פעולות באלגוריתם - מעוין.
#ייצוג מילולי לאלגוריתם
כאן מתוארת סדרת ההוראות בשפה רגילה. דוגמה:
1. קבל שלושה מספרים.
2. חשב את הממוצע של המספרים.
3. הדפס את הממוצע שנמצא.
#פסאודו קוד (Pseudu code)
תיאור סדרת ההוראות במילים, אבל באופן שמזכיר שפת תכנות. זו דרך מעולה להציג ומשתמשים בה יותר ויותר כיום, כולל באתרי לימוד ובספרים. דוגמה:
1. קבל כקלט שלושה מספרים שלמים a, b, c
2. רשום את תוצאת (a+b+c)/3 במשתנה avg
3. הצג בפלט את ממוצע המספרים avg
אלגוריתם הוא שם כללי להוראות ביצוע של משימה או דרך לפתור בעיה מוגדרת. זהו, אם תרצו, מתכון כללי בו מטופלת בעיה לצורך פתרונה.
אם אתם מנסים למצוא רצף של הוראות לביצוע משימה או לפתרון של בעיה מסוימת, הרי שאתם מחפשים אלגוריתם.
כמובן שמדובר במגוון אדיר של בעיות המחייבות ייצוג ולכן גם הדרכים מגוונות ואין דרך אחת. אם בכל זאת נצטמצם לעולם הטכנולוגיה והמחשבים, הרי שבכל זאת ניתן לייצג אלגוריתמים בכמה דרכים או שיטות.
אז הנה השיטות הבולטות ביותר לייצוג אלגוריתמים:
#תרשים זרימה
תצוגה גרפית של האלגוריתם, בעזרת תרשים כמו בתמונה שלמעלה, המכיל סימנים מקובלים וחלקים שונים באלגוריתם: נקודות התחלה וסיום - אליפסה, הצגת הוראות - מלבן, הוראות קלט פלט - מקבילית וביצוע מותנה של פעולות באלגוריתם - מעוין.
#ייצוג מילולי לאלגוריתם
כאן מתוארת סדרת ההוראות בשפה רגילה. דוגמה:
1. קבל שלושה מספרים.
2. חשב את הממוצע של המספרים.
3. הדפס את הממוצע שנמצא.
#פסאודו קוד (Pseudu code)
תיאור סדרת ההוראות במילים, אבל באופן שמזכיר שפת תכנות. זו דרך מעולה להציג ומשתמשים בה יותר ויותר כיום, כולל באתרי לימוד ובספרים. דוגמה:
1. קבל כקלט שלושה מספרים שלמים a, b, c
2. רשום את תוצאת (a+b+c)/3 במשתנה avg
3. הצג בפלט את ממוצע המספרים avg