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

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

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

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

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

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


גרפיקת מנוי פנימית


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

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

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

כאשר הדוגמנות נכשלת

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

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

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

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

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

יתרה מכך, גם אם הקורא של עבודת מחקר יכול לפרש בהצלחה את המשמעות המדויקת של הכותב, ולאחר מכן לתרגם אותה ללא דופי לתוכנית, עדיין יש מלכודות בביצועה. סוג אחד מסובך במיוחד של בעיות נובע מהאופן שבו מחשבים מטפלים במספרים: למרות שהם יכולים לתפעל מספרים שלמים כמו 42 ו-17 בדיוק מושלם, טכניקות סטנדרטיות למניפולציה של מספרים ממשיים כמו ??3.14 ו-?2?1.414 מאפשרות דיוק משוער בלבד. קירובים אלה פירושם שדרכים מקבילות לכאורה לחישוב אותו ערך יכולות מניבים תוצאות שונות.

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

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

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

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

על המחבר

ג'רמי גיבונס, פרופסור למחשוב, אוניברסיטת אוקספורד. ראש נושא מחקר שפות תכנות.

מאמר זה הופיע במקור ב"שיחה "

ספר קשור:

at InnerSelf Market ואמזון