אך לבצלאל קמו מתחרים. נציג משרד המסחר והתעשייה בהנהלת המכון לעיצוב ביקש לעצמו שליטה על העיצוב בישראל, ושכנע את הנהלת אוניברסיטת תל אביב לפתוח בחולון חוג לעיצוב, בראשות יוסף ראוך. כמה חודשים אחר פתיחתו עזב ראוך, והרברט טירנאור, אז יו"ר האיגוד של המעצבים האמריקנים, בא עם משפחתו לישראל למשך שנה. עם עזיבתו, השאיר במקומו זוג מעצבים מארצות הברית אירווין והלן שכטר, ששמו דגש על עיצוב מעשי ועל קליטת בוגרי החוג לעיצוב בתעשייה, לעומת המגמה של בצלאל שהייתה "לדבר אודות עיצוב".
כיום יש חברות ישראליות רבות ומעצבי פנים המספקים שירותים מודרניים לעיצוב הבית לאדריכל הבית, הדירה והמשרד, והבהן משתמשים המעצבים במחשוב ייעודי מתקדם. בחברות עובדים במהלך פרויקט עיצובי על תכנון המשימה, גודל זמין של שטח, פונקציות, תקציב, סגנון של עיצוב, והגמר של הפרויקט.
משרדים בולטים.
לעיצוב תעשייתי: studio reddish, יעקב קאופמן, עזרי טרזי.
עיצוב תקשורת חזותית: דוד טרטקובר, להב הלוי.
אדריכלות: אריה שרון,
עיצוב אופנה: דורין פרנקפורט, משכית
אוצרות בעיצוב: איזיקה גאון
בעשור האחרון מדורים וכתבי עת דיגיטליים העוסקים בעיצוב וסיקור של עיצוב ישראלי: פורטפוליו ודיזיין זום.
שכבת הייצוג של מודל ה-OSI
שכבת הייצוג (Presentation) של מודל ה-OSI היא השכבה השישית במודל. היא מספקת שירותי רשת לשכבת היישום ומשתמשת בשירותיה של שכבת השיחה על מנת להעביר את הנתונים על גב הרשת.
תפקיד השכבה הוא ייצוג הנתונים, והוא מבוצע בשלושה אופנים עיקריים:
קידוד נתונים.
מערכות מחשבים שונות משתמשות בקידודים שונים על מנת לייצג מידע. לכן, כאשר מעבירים מידע בין מערכות מחשבים שונות, יש לדאוג שהמידע שיוצא מהמקור יהיה קריא בתחנת היעד. לדוגמה, כאשר מעבירים קובץ טקסט, תחנת המקור יכולה להשתמש ב-ASCII כאשר תחנת היעד "מבינה" רק EBCDIC. או לחלופין תחנת המקור עובדת ביוניקוד כאשר תחנת היעד חושבת שמדובר בקידוד ISO-8859-8. דבר דומה קורה כאשר מעבירים קובצי קול (MP3, WAV, MIDI) או סרטוני וידאו (AVI, MPG, WMV).
לכן, שכבת הייצוג דואגת לתאם את הקידוד בין שתי המערכות, ובמקרה הצורך להתאים קידוד ביניים לנתונים - כזה שגם מחשב המקור, וגם מחשב היעד יוכלו להשתמש בו. למרות שהקידוד מוגדר בשכבת הייצוג, כיום ההחלטות לגביו נעשות כמעט באופן בלעדי על ידי המשתמשים, ולכן ניתן לכלול אותו בשכבת היישום.
דחיסת נתונים.
תעבורת הנתונים ברשתות מוגבלת בעיקר על ידי רוחב הפס, לכן, על מנת להעביר את הנתונים בזמן הקצר ביותר יש לשמור עליהם קומפקטיים ככל שניתן. בשלב זה נכנסת לפעולה שכבת הייצוג המשתמשת באלגוריתמים שונים לדחיסת נתונים ובכך מקטינה את נפח הנתונים ומגדילה את מהירות העברה.
הצפנת מידע.
פעמים רבות מועבר ברשת מידע שאינו מיועד לעיני כל (תכתובות אישיות, פרטי כרטיסי אשראי וכו'). במקרים כאלו מופעלים בשכבת הייצוג אלגוריתמים שונים האחראים להצפנה של המידע הרגיש, כלומר - משנים אותו בצורה כזו שרק מי שיודע את השיטה (האלגוריתם) וברוב המקרים גם את המפתח (רצף תווים שמשמש לחיזוק ההצפנה) יוכל לפענח את הנתונים.
פיבונצ'י
אלגוריתם
אלגוריתם הוא דרך שיטתית וחד-משמעית לביצוע של משימה מסוימת, במספר סופי של צעדים. מקור המילה בהגייה לטינית משובשת של שם המתמטיקאי הפרסי המוסלמי בן המאה התשיעית, מוחמד אבן מוסא אל-ח'ואריזמי.
מתכון להכנת עוגה הוא דוגמה לאלגוריתם. בדרך-כלל משמש מונח זה לכינוי שיטת פתרון בעיות במתמטיקה או במדעי המחשב ובעיקר ביחס לנתונים תוויים כלשהם. כל תוכנית מחשב היא אלגוריתם, או אוסף של אלגוריתמים. בתיאור זה של האלגוריתמים יש עמימות מסוימת. כדי לפזר עמימות זו הגה טיורינג את "מכונת טיורינג", שהיא "מכונה" תאורטית המסוגלת, עקרונית, לבצע כל אלגוריתם. במקביל לטיורינג, הגו עוד מתמטיקאים ולוגיקנים הגדרות למושג האלגוריתם והתברר שכל ההגדרות שלהם היו שקולות זו לזו. לכן, היום אלגוריתם הוא מה שכל אחת מההגדרות האלו מתארות, ובפרט, מה שמכונת טיורינג מסוגלת לבצע.
קיימות משימות מוגדרות שלא קיים פתרון אלגוריתמי עבורן, וכבר טיורינג הוכיח זאת (ענף מדעי המחשב העוסק בסוגיה זו קרוי חישוביות). מצד שני, לביצועה של משימה מסוימת ייתכנו אלגוריתמים אחדים, מצב שמצדיק בחינה של יעילות האלגוריתמים, בהתאם למדדי יעילות נאותים. במסגרת מדעי המחשב נבחנת יעילותם של אלגוריתמים (בענף הקרוי סיבוכיות חישובית) על-פי הזמן והזיכרון הנדרשים לביצוע האלגוריתם כפונקציה של גודל הקלט לאלגוריתם. דהיינו, ככל שזמן הריצה של האלגוריתם ביחס לגודל הקלט קטן יותר, האלגוריתם ייחשב טוב יותר. מקובל להגדיר אלגוריתמים כ"יעילים" אם זמן הריצה שלהם פולינומי בגודל הקלט שלהם.
תיאור ויזואלי באלגוריתמיקה ניתן באמצעות תרשים זרימה.
מקור המונח.
המושג "אלגוריתם" נגזר משמו של מוחמד אבן מוסא אל-ח'ואריזמי, מתמטיקאי שחי בבגדאד במאה התשיעית. כאשר ספרו על שיטות חישוב תורגם ללטינית, נכתב שמו של אל ח'ואריזמי כ"אלגוריתמי" (ככל הנראה שיבוש בתעתיק שנגרם מהחלפת האות خ-ח', באות ج -ג, ולאחר מכן החלפת האות ز-ז באות ذ-ד' -שבשפות אירופיות נהגית כ-th וכך ״אל-ח'ואריזמי״ הפך ל״אל-גורית'מי״), והקוראים טעו לחשוב שמדובר בצורת רבים של המושג שיטת חישוב. המילה אלגברה נלקחה מספר אחר שלו - "חיסאב אל-ג'אבר ואל-מוקאבלה". על פי הספר, פעולת ההשלמה, אל-ג'אבר, היא אחת משתי הפעולות שניתן לבצע על משוואה על מנת לפשט אותה.
מחלקות של אלגוריתמים.
בהגדרתו הבסיסית, נדרשות מאלגוריתם שתי דרישות שמבטיחות את איכות ביצועיו: נדרש כי לכל קלט שהוא מקבל האלגוריתם יגיע אל סופו בשלב כלשהו, וכי לאחר שיסיים, התשובה אותה יחזיר היא התשובה הנכונה. טיורינג הוכיח כי קיימות בעיות כדוגמת בעיית העצירה שאותן לא מסוגל המודל של מכונת טיורינג לפתור בהינתן דרישות אלו.
עדיין נהוג לדרוש מאלגוריתם לעצור עבור כל קלט, אחרת תוכניות המחשב שמממשות את האלגוריתם עשויות להיקלע ללולאה אינסופית. עם זאת, קיימות תוכניות מחשב שאמורות להיות מסוגלות לרוץ לנצח (למשל, מערכת ההפעלה של המחשב) וניתן להגדיר גם אלגוריתמים שרצים לנצח ומוציאים פלט בצורה מתמדת תוך כדי הריצה.
דרך נוספת לקטלג אלגוריתמים היא חלוקתם לאלגוריתמים דטרמיניסטיים (באנגלית: deterministic algorithm) ולאלגוריתמים אקראיים (רנדומליים, באנגלית: randomized algorithm). הקטגוריה הראשונה מתייחסת לאלגוריתמים אשר פעולתם תלויה בקלט בלבד (כלומר, שתי הפעלות של האלגוריתם על קלט זהה יניבו תמיד את אותה התוצאה), ואילו הקטגוריה השנייה מתייחסת לאלגוריתמים אשר עשויים "להטיל מטבעות", דהיינו: לקבל החלטות באקראי (ולפיכך ייתכן ששתי הפעלות של האלגוריתם על אותו הקלט יניבו תוצאות שונות). ישנם שני סוגים עיקריים של אלגוריתמים אקראיים: אלגוריתמי מונטה קרלו, אשר מאפשרים סיכוי קטן לטעות בתשובה שהם מחזירים (למשל, אלגוריתם מילר-רבין), ואלגוריתמי לאס וגאס אשר אין סיכוי שיטעו, אך קיים סיכוי קטן שזמן הריצה שלהם יהיה ארוך מאוד. בשתי המחלקות ישנם אלגוריתמים רבים שהסיכוי לבעיות בהרצתם הוא אפסי, מה שהופך אותם לשימושיים מאוד בפועל.
משפחות נוספות של אלגוריתמים מוגדרות על פי "שיטת פעולתם", או במילים אחרות, הכללה של הטכניקה שלהם. משפחות אלה כוללות: אלגוריתמים רקורסיביים בכלל ואלגוריתמי הפרד ומשול (divide and conquer), אלגוריתמים חמדנים, אלגוריתמי תכנות דינמי (באנגלית: dynamic programming, מינוח לא מוצלח גם באנגלית ולכן יש המכנים זאת תכנון דינאמי).
ככלל, מטרתם של אלגוריתמים למצוא פתרון אופטימלי לבעיה נתונה, אולם אלגוריתמים רבים, המוגדרים כאלגוריתמי קירוב (approximation algorithms באנגלית) מוצאים פתרון שאינו פתרון אופטימלי - על פי רוב על מנת לקצר את זמן הריצה של האלגוריתם או על מנת לחשב באופן יעיל בעיה שאחרת היא קשה לחישוב (ולרוב: NP-קשה).
תוכנית מחשב.
טכניקה נפוצה למימוש של אלגוריתמים היא כתיבת תוכנית מחשב העושה זאת. מבני הנתונים, הפקודות ומבני הבקרה של שפת תכנות נתונה משפיעים על מידת הקושי במימושו של אלגוריתם נתון בשפה זו. כשלב ביניים במעבר מהגדרה מילולית של אלגוריתם למימושו בשפת תכנות משמש לעיתים פסאודו קוד - תיאור המשתמש בקונבנציות של שפות תכנות, אך מיועד לקריאה של בני אדם ולא לקריאה על ידי מחשב.
תזת צ'רץ'-טיורינג קושרת בין ההגדרה הפורמלית של אלגוריתם כהליך שניתן לביצוע על ידי מכונת טיורינג, לבין אלגוריתם הממומש על ידי תוכנית מחשב. התזה קובעת שכל אלגוריתם ניתן למימוש כתוכנית מחשב, וכל תוכנית מחשב מממשת אלגוריתם.
הוכחה
במתמטיקה ובלוגיקה הוכחה היא סדרה סופית של טענות הנובעות זו מזו בעזרת כללי היסק, תוך שימוש בהגדרות, באקסיומות, ובידע קודם שהוכח קודם לכן, המראה שטענה מסוימת היא נכונה.
הפרכה של טענה מהווה גם היא הוכחה - הוכחה שטענה זו אינה נכונה (כלומר ששלילתה של הטענה היא נכונה). טענה שטרם זכתה להוכחה קרויה השערה, וטענה שזכתה להוכחה קרויה משפט או תאורמה.
תפקידה המתמטי של ההוכחה הוא להפוך רעיונות והשערות לדרך סלולה, שממנה אפשר להתקדם לרעיונות חדשים. על ההצגה הנאותה של הוכחה מתמטית כתב הרמן וייל "איננו מרוצים כאשר אנו נדרשים לקבל אמת מתמטית מתוקף שרשרת מסובכת של הסקות פורמליות וחישובים, שדרכם אנו מגששים דרכנו במגע. אנו רוצים לקבל סקירה של הדרך ומטרותיה; אנו רוצים להבין את הרעיון, את ההקשר העמוק".
מאפיינים של הוכחות.