1 / 24

מי רוצה להיות מיליונר (בדולרים) ??

מי רוצה להיות מיליונר (בדולרים) ??. פרופ' מוטי בן-ארי המחלקה להוראת המדעים מכון ויצמן למדע http://stwww.weizmann.ac.il/g-cs/benari. בעיית העקביות של Minesweeper. תצורה של Minesweeper מורכבת מלוח מלבני בגודל שרירותי, כאשר חלק מתאי הלוח מסומנים במספרים ומוקשים .

prunella
Télécharger la présentation

מי רוצה להיות מיליונר (בדולרים) ??

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. מי רוצה להיות מיליונר (בדולרים) ?? פרופ' מוטי בן-ארי המחלקה להוראת המדעים מכון ויצמן למדע http://stwww.weizmann.ac.il/g-cs/benari

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

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

  4. יעילות • האלגוריתם אינו יעיל בגלל:עבור כל סימוןS אפשרי של מוקשים בצע • מספר הסימונים האפשריים יכול להיות 2n,כאשר nהוא מספר המתאים בלוח.

  5. אלגוריתם יעיל ! • אם קיים סימוןS המוכיח שהתצורה עקבית אזיוודא שהתצורה עקבית עם הסימוןSהחזרS "מוכיח שהתצורה עקבית"החזר "התצורה אינה עקבית"

  6. הגדרות • בעיה אלגוריתמית נמצאת בקבוצהP או"אקיים אלגוריתם יעיל למציאת פתרון. • בעיה אלגוריתמית נמצאת בקבוצה NPאו"אקיים אלגוריתם יעיל לבדיקת נכונות של פתרון. • בעיה אלגוריתמית ב נמצאת בקבוצה NP-complete או"א ב ב-NPוניתן "להציג" כל בעיה ב-NP כבעיה ב.

  7. P = NP ? • קיימות אלפי בעיות בקבוצהNP-complete. • אם קיים אלגוריתם יעיל לבעיה כלשהי בקבוצהNP-complete, אזי קיים אלגוריתם יעיל לכולם: P=NP. (לא נמצא אלגוריתם יעיל לאף אחת.) • אם נוכיח שלא קיים אלגוריתם יעיל לבעיה כלשהי בקבוצהNP-complete, אזי אין אלגוריתם יעיל לאף אחת: P< >NP. (לא הוכח שלא קיים אלגוריתם יעיל לאף אחת.)

  8. פרס Clay • ה- Clay Mathematics Institute מציע פרס של $1,000,000 לכל מי שיפתור את אחת משבע "בעיות המילניום" במתמטיקה. • הבעיה הראשונה ברשימה היא: P = NP ? • http://www.claymath.org

  9. Minesweeper is NP-complete ! • Richard W. Kaye. • http://www.mat.bham.ac.uk/R.W.Kaye/minesw/minesw.htm

  10. בעיית SAT • נתונה נוסחה בתחשיב הפסוקים. ( (p ^ q) v (~ p -> q) ) -> p v q • האם קיימת השמה של ערכי אמת (True, False) לפסוקים כך שערך האמת של הנוסחה הואTrue? • כאשר נתונה השמה, קל מאוד לבדוק אם ערך האמת של הנוסחה הואTrue. • לא ידוע על אלגוריתם למצוא השמה מספקת שהוא "מהותית" יעיל יותר מבדיקת כל ההשמות.

  11. עיקרון ההוכחה • עבור נוסחה שרירותית בתחשיב הפסוקים, ניתן לבנות תצורה ב- Minesweeper כך שהתצורה עקבית אם ורק אם הנוסחה ספיקה. • כך … שאם קיים אלגוריתם יעיל לעקביות שלMinesweeper, נוכל להשתמש בו כדי לבנות אלגוריתם לבדוק האם נוסחה ספיקה. • יש לבנות תצורות "המתנהגות" כמו and ו- not, ולהראות שניתן לחבר אותן.

  12. למה זה חשוב ? • "הבן שלי גאון מחשב ! הם כתב תכנית יעילה בפסקל המסוגלת לבדוק האם תצורה ב- minesweeper היא קונסיסטנטית.האם אתה מוכן לבדוק את התכנית? בבקשה !" • גאון מחשב הוא\היא מי שמסוגל\ת לקרוא.Cormen, Leiserson, Rivest.Introduction to Algorithmsולפתור תרגילים בספר. (קיים תרגום של האו"פ.)

  13. ה"באג" שחיסל משגר • בשעה 09:34 ביום 4.6.96 שוגר המשגר הצרפתי החדש אריאן 5. כעבור 37 שניות המשגר נטה על צידו והחל להתפרק. מנגנון הבטיחות של המשגר זיהה את ההתפרקות ויזם פיצוץ עצמי. • וועדת החקירה שמונתה על ידי סוכנות החלל האירופאית קבעה שגורם התאונה היה "באג" בתכנה. • http://www.esrin.esa.it/htdocs/tidc/Press/Press96/ariane5rep.html

  14. ניהוג על-ידי הכוונה סילון הפליטה

  15. (1300,400) At 39 deg, 100 m/s * 5 s = 500 m At 90 deg, 100 m/s * 12 s = 1200 m (0,0) (1200,0) ניווט אינרציאלית

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

  17. סיפור ה"באג" • מה התופעה שהתרחשה ?? • מה הסיבה (טכנית) לתופעה ?? • מה מקור השגיאה (בהתנהגות המפתחים) ??

  18. תיאור התקלה (1) • בחישוב הניווט היתה הוראה להמיר מספר של 64 סיביות למספר של 16 סיביות. המספר היה גדול מדי וההמרה גרמה לשגיאת ביצוע. • השגיאה גרמה להפסקת הביצוע של התכנית במנ"א (בדומה ל- run-time error בפסקל). • מחשב הגיבוי ביצע אותו חישוב למקרה של תקלה.כמובן שמחשב זה נעצר בגלל אותה שגיאה.

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

  20. הסיבות לתקלה (1) • שימוש חוזר של תכנה של אריאן 4. • ה"באג" היה בתכנה המתבצעת לפני השיגור לצורך כיוון המערכת. באריאן 4 היתה סיבה כלשהי להמשיך להריץ תכנה זו בזמן השיגור, אבל הסיבה התבטלה עם המעבר לאריאן 5 ! • המסלול של האריאן 5 היה שונה מהמסלול של האריאן 4. 16 סיביות כבר לא הספיקו לתאר את המסלול של האריאן 5.

  21. הסיבות לתקלה (2) • ההודעה על השגיאה היתה מיועדה אך ורק לתקלות בחמרה (כאשר למחשב גיבוי יש משמעות). לא נלקחה בחשבון שגיאה בתכנה. • לא נעשתה בדיקה של התכנה לפני השיגור,כי "אותה" תכנה פעולה כשורה באריאן 4 ! • לא נעשה בדיקה מערכתית בגלל הקושי לייצר תנאים "אמיתיים" במעבדה.

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

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

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

More Related