מבוא
אלגוריתמים הפכו להיות בכל מקום. הם מייעלים את הנסיעות שלנו, מעבדים תשלומים ומתאמים את זרימת תעבורת האינטרנט. נראה שלכל בעיה שניתן לבטא במונחים מתמטיים מדויקים, יש אלגוריתם שיכול לפתור אותה, לפחות באופן עקרוני.
אבל זה לא המקרה - כמה בעיות פשוטות לכאורה לעולם לא ניתנות לפתרון אלגוריתמי. מדען המחשבים החלוצי אלן טיורינג הוכיח קיומן של בעיות "בלתי ניתנות לחישוב" כאלה לפני כמעט מאה שנה, באותו מאמר שבו הוא ניסח את מודל חישוב מתמטי שהשיקה את מדעי המחשב המודרניים.
טיורינג הוכיח את התוצאה פורצת הדרך הזו באמצעות אסטרטגיה מנוגדת לאינטואיציה: הוא הגדיר בעיה שפשוט דוחה כל ניסיון לפתור אותה.
"אני שואל אותך מה אתה עושה, ואז אני אומר, 'לא, אני הולך לעשות משהו אחר'", אמר רהול אילנגו, סטודנט לתואר שני במכון הטכנולוגי של מסצ'וסטס הלומד מדעי המחשב תיאורטיים.
האסטרטגיה של טיורינג התבססה על טכניקה מתמטית הנקראת אלכסון שיש לה היסטוריה ייחודית. הנה תיאור מפושט של ההיגיון מאחורי ההוכחה שלו.
תיאוריית המיתרים
אלכסון נובע מטריק חכם לפתרון בעיה ארצית הכוללת מחרוזות של ביטים, שכל אחת מהן יכולה להיות 0 או 1. בהינתן רשימה של מחרוזות כאלה, כולן ארוכות באותה מידה, האם תוכל ליצור מחרוזת חדשה שאינה ב- רשימה?
האסטרטגיה הפשוטה ביותר היא לשקול כל מחרוזת אפשרית בתורה. נניח שיש לך חמש מחרוזות, כל אחת באורך חמישה ביטים. התחל בסריקת הרשימה עבור 00000. אם היא לא שם, אתה יכול להפסיק; אם כן, אתה עובר ל-00001 וחוזר על התהליך. זה פשוט מספיק, אבל זה איטי עבור רשימות ארוכות של מחרוזות ארוכות.
אלכסון היא גישה חלופית שבונה מחרוזת חסר טיפין טיפין. התחל עם הסיביות הראשונה של המחרוזת הראשונה ברשימה והפוך אותה - זו תהיה החלק הראשון של המחרוזת החדשה שלך. לאחר מכן הפכו את הסיביות השנייה של המחרוזת השנייה והשתמשו בה בתור הסיביות השנייה של המחרוזת החדשה, וחזרו על הפעולה עד שתגיעו לסוף הרשימה. הביטים שאתה הופך מבטיחים שהמחרוזת החדשה שונה מכל מחרוזת ברשימה המקורית במקום אחד לפחות. (הם גם יוצרים קו אלכסוני דרך רשימת המיתרים, ומעניקים לטכניקה את שמה.)
באלכסון צריך לבחון רק סיביות אחת מכל מחרוזת ברשימה, כך שלעתים קרובות הוא מהיר בהרבה משיטות אחרות. אבל הכוח האמיתי שלו טמון באיזו טוב הוא משחק עם האינסוף.
"המיתרים יכולים כעת להיות אינסופיים; הרשימה יכולה להיות אינסופית - היא עדיין עובדת", אמר ריאן וויליאמס, מדען מחשבים תיאורטי ב-MIT.
האדם הראשון שרתם את הכוח הזה היה גיאורג קנטור, מייסד תת-התחום המתמטי של תורת הקבוצות. בשנת 1873, קנטור השתמש באלכסון כדי להוכיח שכמה אינסופיות כן גדול יותר מאחרים. שישה עשורים מאוחר יותר, טיורינג התאים את גרסת האלכסון של קנטור לתורת החישוב, והעניק לה טעם מנוגד במובהק.
משחק ההגבלה
טיורינג רצה להוכיח את קיומן של בעיות מתמטיות שאף אלגוריתם לא יכול לפתור - כלומר, בעיות עם קלט ופלט מוגדרים היטב אך ללא הליך חסין תקלות למעבר מקלט לפלט. הוא הפך את המשימה המעורפלת הזו לניתנת לניהול על ידי התמקדות בלעדית בבעיות החלטה, כאשר הקלט יכול להיות כל מחרוזת של 0 ו-1 והפלט הוא 0 או 1.
קביעה אם מספר הוא ראשוני (מתחלק רק ב-1 ובעצמו) היא דוגמה אחת לבעיית החלטה - בהינתן מחרוזת קלט המייצגת מספר, הפלט הנכון הוא 1 אם המספר הוא ראשוני ו-0 אם לא. דוגמה נוספת היא בדיקת תוכנות מחשב לאיתור שגיאות תחביר (מקבילה לטעויות דקדוקיות). שם, מחרוזות קלט מייצגות קוד עבור תוכניות שונות - ניתן לייצג את כל התוכניות בצורה זו, מכיוון שכך הן מאוחסנות ומבוצעות במחשבים - והמטרה היא להוציא 1 אם הקוד מכיל שגיאת תחביר ו-0 אם כן' ט.
אלגוריתם פותר בעיה רק אם הוא מייצר את הפלט הנכון עבור כל קלט אפשרי - אם הוא נכשל אפילו פעם אחת, זה לא אלגוריתם כללי לבעיה זו. בדרך כלל, תחילה עליך לציין את הבעיה שברצונך לפתור ולאחר מכן לנסות למצוא אלגוריתם שפותר אותה. טיורינג, בחיפוש אחר בעיות בלתי פתירות, הפך את ההיגיון הזה על ראשו - הוא דמיין רשימה אינסופית של כל האלגוריתמים האפשריים והשתמש באלכסון כדי לבנות בעיה עקשנית שתסכל כל אלגוריתם ברשימה.
תארו לעצמכם משחק מזויף של 20 שאלות, שבו במקום להתחיל עם אובייקט מסוים בראש, המשיב ממציא תירוץ להגיד לא לכל שאלה. עד סוף המשחק, הם תיארו אובייקט המוגדר כולו על ידי התכונות החסרות לו.
הוכחת האלכסון של טיורינג היא גרסה של המשחק הזה שבה השאלות עוברות ברשימה האינסופית של אלגוריתמים אפשריים, ושואלות שוב ושוב, "האם האלגוריתם הזה יכול לפתור את הבעיה שהיינו רוצים להוכיח שאינה ניתנת לחישוב?"
"זה סוג של 'שאלות אינסוף'", אמר וויליאמס.
כדי לנצח במשחק, טיורינג היה צריך ליצור בעיה שבה התשובה היא לא לכל אלגוריתם. משמעות הדבר היא זיהוי קלט מסוים שהופך את פלט האלגוריתם הראשון לתשובה השגויה, קלט אחר שגורם לשנייה להיכשל, וכן הלאה. הוא מצא את התשומות המיוחדות הללו באמצעות טריק דומה לזה שקורט גדל נהג אליו לאחרונה להוכיח כי קביעות הפניות עצמיות כמו "הצהרה זו אינה ניתנת להוכחה" מאייתות צרות ליסודות המתמטיקה.
התובנה העיקרית הייתה שכל אלגוריתם (או תוכנית) יכול להיות מיוצג כמחרוזת של 0 ו-1. כלומר, כמו בדוגמה של תוכנית בדיקת השגיאות, שאלגוריתם יכול לקחת את הקוד של אלגוריתם אחר כקלט. באופן עקרוני, אלגוריתם יכול אפילו לקחת את הקוד שלו כקלט.
עם התובנה הזו, נוכל להגדיר בעיה בלתי ניתנת לחישוב כמו זו שבהוכחה של טיורינג: "בהינתן מחרוזת קלט המייצגת את הקוד של אלגוריתם, פלט 1 אם האלגוריתם הזה מוציא 0 כאשר הקוד שלו הוא הקלט; אחרת, פלט 0." כל אלגוריתם שינסה לפתור בעיה זו יפיק פלט שגוי לפחות בקלט אחד - כלומר, הקלט התואם לקוד שלו. זה אומר שלא ניתן לפתור את הבעיה הפרוורטית הזו בשום אלגוריתם שהוא.
מה השלילה לא יכולה לעשות
מדעני המחשב עדיין לא סיימו את האלכסון. ב-1965, יוריס הרטמניס וריצ'רד סטרנס התאימו את הטיעון של טיורינג ל להוכיח שלא כל הבעיות הניתנות לחישוב נוצרות שוות - חלקן קשות יותר מאחרות. תוצאה זו השיקה את תחום תיאוריית המורכבות החישובית, החוקרת את הקושי של בעיות חישוביות.
אבל תיאוריית המורכבות חשפה גם את גבולות השיטה ההפוכה של טיורינג. בשנת 1975, תיאודור בייקר, ג'ון גיל ורוברט סולובי הוכיח ששאלות פתוחות רבות בתורת המורכבות לעולם אינן יכולות להיפתר על ידי אלכסון בלבד. העיקרית ביניהם היא בעיית P לעומת NP המפורסמת, ששואלת האם כל הבעיות עם פתרונות שניתן לבדוק בקלות גם קלים לפתרון עם האלגוריתם הגאוני הנכון.
הנקודות העיוורות של האלכסון הן תוצאה ישירה של רמת ההפשטה הגבוהה שהופכת אותו לעוצמתי כל כך. ההוכחה של טיורינג לא כללה שום בעיה בלתי ניתנת לחישוב שעלולה להתעורר בפועל - במקום זאת, היא רקחה בעיה כזו תוך כדי תנועה. הוכחות אלכסון אחרות מרוחקות באופן דומה מהעולם האמיתי, כך שהן אינן יכולות לפתור שאלות שבהן יש חשיבות לפרטי העולם האמיתי.
"הם מטפלים בחישוב מרחוק", אמר וויליאמס. "אני מדמיין בחור שמתמודד עם וירוסים וניגש אליהם דרך תא כפפות כלשהו."
הכישלון באלכסון היה אינדיקציה מוקדמת לכך שפתרון הבעיה P מול NP יהיה מסע ארוך. אבל למרות מגבלותיו, האלכסון נותר אחד הכלים המרכזיים בארסנל של תיאורטיקנים של מורכבות. בשנת 2011, וויליאמס השתמש בו יחד עם שורה של טכניקות אחרות כדי להוכיח שמודל חישוב מוגבל מסוים לא יכול לפתור כמה בעיות קשות במיוחד - תוצאה שחמקה מחוקרים במשך 25 שנה. זה היה רחוק מלפתור P מול NP, אבל זה עדיין ייצג התקדמות גדולה.
אם אתה רוצה להוכיח שמשהו לא אפשרי, אל תזלזל בכוח של פשוט להגיד לא.
- הפצת תוכן ויחסי ציבור מופעל על ידי SEO. קבל הגברה היום.
- PlatoData.Network Vertical Generative Ai. העצים את עצמך. גישה כאן.
- PlatoAiStream. Web3 Intelligence. הידע מוגבר. גישה כאן.
- PlatoESG. רכב / רכבים חשמליים, פחמן, קלינטק, אנרגיה, סביבה, שמש, ניהול פסולת. גישה כאן.
- PlatoHealth. מודיעין ביוטכנולוגיה וניסויים קליניים. גישה כאן.
- ChartPrime. הרם את משחק המסחר שלך עם ChartPrime. גישה כאן.
- BlockOffsets. מודרניזציה של בעלות על קיזוז סביבתי. גישה כאן.
- מקור: https://www.quantamagazine.org/alan-turing-and-the-power-of-negative-thinking-20230905/
- :יש ל
- :הוא
- :לֹא
- :איפה
- ][עמ'
- $ למעלה
- 1
- 20
- 2011
- 25
- a
- הפשטה
- חֶשְׁבּוֹן
- לִפנֵי
- אלן
- אלן טיורינג
- אַלגוֹרִיתְם
- באופן אלגוריתמי
- אלגוריתמים
- תעשיות
- לבד
- גם
- בין
- an
- ו
- אחר
- לענות
- כל
- גישה
- ARE
- טענה
- לְהִתְעוֹרֵר
- ארסנל
- AS
- לשאול
- At
- אופה
- מבוסס
- BE
- להיות
- מאחור
- קצת
- אריזה מקורית
- בונה
- אבל
- by
- נקרא
- קיימברידג'
- CAN
- מקרה
- מאה
- מסוים
- בדיקה
- רֹאשׁ
- קוד
- מורכבות
- חישוב
- המחשב
- מדעי מחשב
- מחשבים
- לשקול
- לבנות
- מכיל
- להפך
- לתאם
- לתקן
- תוֹאֵם
- לעצב
- נוצר
- התמודדות
- עשרות שנים
- החלטה
- לְהַגדִיר
- מוגדר
- מְתוּאָר
- למרות
- פרטים
- אחר
- קושי
- ישיר
- מרחק
- נִכבָּד
- do
- לא
- עושה
- לא
- כל אחד
- מוקדם
- בקלות
- קל
- או
- סוף
- מספיק
- לְהַבטִיחַ
- לַחֲלוּטִין
- שווה
- באותה מידה
- שווה
- שגיאה
- שגיאות
- אֲפִילוּ
- כל
- לִבחוֹן
- דוגמה
- אך ורק
- יצא לפועל
- קיום
- באופן יוצא דופן
- FAIL
- נכשל
- כשלון
- מפורסם
- רחוק
- Far Cry
- מהר יותר
- שדה
- ראשון
- חמש
- Flip
- תזרים
- התמקדות
- בעד
- טופס
- מצא
- יסודות
- מייסד
- החל מ-
- מִשְׂחָק
- מטרה כללית
- ליצור
- לקבל
- מקבל
- נתן
- נתינה
- מטרה
- הולך
- בוגר
- פורץ דרך
- בחור
- היה
- לטפל
- קשה
- קשה
- רתמת
- יש
- he
- ראש
- גָבוֹהַ
- שֶׁלוֹ
- היסטוריה
- איך
- HTTPS
- i
- זיהוי
- IEEE
- if
- תמונה
- דמיינו
- in
- סִימָן
- אין סופי
- אין סוף
- קלט
- תשומות
- תובנה
- במקום
- מכון
- אינטרנט
- באופן מהותי
- לערב
- IT
- שֶׁלָה
- עצמו
- ג'ון
- רק
- מפתח
- קורט
- מאוחר יותר
- הושק
- הכי פחות
- רמה
- שקרים
- כמו
- הגבלה
- מגבלות
- גבולות
- קו
- רשימה
- רשימות
- הגיון
- ארוך
- עשוי
- מגזין
- גדול
- עושה
- ניתן לניהול
- רב
- מסצ'וסטס
- המכון הטכנולוגי של מסצ'וסטס
- מתימטי
- מתימטיקה
- דבר
- אומר
- התכוון
- שיטה
- שיטות
- יכול
- אכפת לי
- חסר
- טעויות
- MIT
- מודל
- מודרני
- יותר
- רוב
- המהלך
- הרבה
- שם
- כלומר
- כמעט
- נחוץ
- צרכי
- שלילי
- לעולם לא
- חדש
- לא
- עַכשָׁיו
- מספר
- אובייקט
- of
- לעתים קרובות
- on
- פעם
- ONE
- רק
- לפתוח
- מטב
- or
- מְקוֹרִי
- אחר
- אחרים
- אַחֶרֶת
- שלנו
- תפוקה
- שֶׁלוֹ
- מאמר
- מסוים
- תשלומים
- אדם
- חלוצי
- מקום
- אפלטון
- מודיעין אפלטון
- אפלטון נתונים
- משחק
- אפשרי
- כּוֹחַ
- חזק
- תרגול
- צורך
- ראשוני
- עקרון
- בעיה
- בעיות
- הליך
- תהליך
- לייצר
- ייצור
- תָכְנִית
- תוכניות
- התקדמות
- הוכחה
- הוכחות
- להוכיח
- הוכיח
- תכונות
- קוונטמגזין
- שאלה
- שאלות
- במקום
- ממשי
- עולם אמיתי
- לאחרונה
- שְׂרִידִים
- לחזור על
- שוב ושוב
- לייצג
- מיוצג
- המייצג
- חוקרים
- נפתרה
- פתרון
- מוגבל
- תוצאה
- גילה
- ריצ'רד
- מְבוּיָם
- תקין
- רוברט
- הפעלה
- אמר
- אותו
- לומר
- אמר
- סריקה
- מדע
- מַדְעָן
- מדענים
- חיפוש
- שְׁנִיָה
- לִכאוֹרָה
- נראה
- סט
- סיאם
- דומה
- באופן דומה
- פָּשׁוּט
- פשוט
- בפשטות
- since
- שישה
- להאט
- So
- פתרונות
- לפתור
- פותר
- פותר
- כמה
- משהו
- מיוחד
- נקודות
- התחלה
- החל
- הצהרה
- גבעולים
- עוד
- עצור
- מאוחסן
- פשוט
- אִסטרָטֶגִיָה
- מחרוזת
- סטודנט
- מחקרים
- לומד
- כזה
- תחביר
- לקחת
- המשימות
- טכניקות
- טכנולוגיה
- מונחים
- מֵאֲשֶׁר
- זֶה
- השמיים
- אותם
- אז
- תיאורטי
- התאוריה
- שם.
- אלה
- הֵם
- חושב
- זֶה
- אלה
- דרך
- לְסַכֵּל
- ל
- יַחַד
- כלים
- תְנוּעָה
- צרה
- נָכוֹן
- לנסות
- טיורינג
- תור
- הסתובב
- נמצא בכל מקום
- עד
- להשתמש
- מְשׁוּמָשׁ
- באמצעות
- גרסה
- נגד
- וירוסים
- רוצה
- רציתי
- היה
- דֶרֶך..
- we
- webp
- טוֹב
- מוגדר היטב
- מה
- מתי
- אם
- אשר
- מי
- יצטרך
- וויליאמס
- לנצח
- עם
- עובד
- עוֹלָם
- היה
- טעות
- שנים
- עוד
- אתה
- זפירנט