פורטל:מדעי המחשב

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה לניווט קפיצה לחיפוש

Gnome-colors-view-refresh.svg רענון הפורטל Netvibes.svg כיצד אוכל לעזור?    


P Computer-science.png

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

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

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

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

מרווין לי מינסקי (נולד ב-9 באוגוסט 1927) המכונה לעיתים בחיבה "Old man Minsky", הוא מדען אמריקאי יהודי המתמחה בתחום הבינה המלאכותית ונחשב לאחד מאבות תחום זה. מינסקי הוא אחד ממייסדי מעבדת הבינה המלאכותית של MIT וכותבם של מספר ספרים חשובים בתחום.

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

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

ZK cave.jpg

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

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

השאלה האם מחשב יודע לחשוב דומה לשאלה האם צוללת יודעת לשחות.



7n graph with minimal spanning tree.svg

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

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

Maquina.png המחשה ציורית של רעיון מכונת טיורינג

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

LampFlowchart-he.svg

תרשים זרימה הינו כלי נפוץ לתיאור אלגוריתם.

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

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

Sub main()
   msgbox("Hello World!") 
End Sub

דוגמה לתוכנת Hello World הכתובה בשפת Visual Basic

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


למידע - לחצו על הלשונית המתאימה

[עריכה]
מבנה בסיסי של אלמנט ברשת עצבית מלאכותית, שהינה ניסיון למצוא מודל חישובי המדמה פעולת המוח האנושי

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

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

[עריכה]
הקְמוֹר של אוסף של נקודות במישור הדו-ממדי (בכחול). ניתן לחשוב על הקמור כעל גומייה שנמתחה כך שתקיף את כל הנקודות, ולאחר מכן שוחררה.

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

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

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

[עריכה]
תמונה של זברה, המצוירת בעזרת תווי ASCII‏ בלבד, מהווה דוגמה לתחום בשנותיו הראשונות, בה אמנות ASCII‏ היוותה גורם מרכזי

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

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

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

[עריכה]

ספירת בלוך המתארת את מושג הסיבית הקוונטית.

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

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

[עריכה]
Symmetric.jpg

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

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

[עריכה]
אות דגום ב-PCM

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

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


David Harel2.jpg

דוד הראל, ‏אלגוריתמיקה: יסודות מדעי המחשב, תרגום לעברית: תמר אלמוג, ‏האוניברסיטה הפתוחה, 2008 (הספר במיזם פא"ר)

בעקבות ספרו פרקי יסוד במדעי המחשב כתב דוד הראל גרסה מורחבת בשם Algorithmics - The Spirit of Computing, וזה תורגם לעברית לספר שלפנינו. המחבר מציג את הספר בהקדמתו: "ספר זה עוסק במושגים, ברעיונות, בשיטות ובתוצאות שהם בבסיסו של מדע המחשב. אין הוא עוסק בטכנולוגיית מחשבים או בתכנות, אף על פי שהוא מושפע כמובן מנושאים אלה במידה רבה". הספר עוסק באלגוריתמים, נכונותם ויעילותם, חישוביות, מכונת טיורינג ועוד.




Tools blue.svg

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

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