|
||||
|
||||
לך ולירדן: תודה. אני מניח שההגדרה שאני מכיר "A finite set of well-defined rules for the solution of a problem in a finite number of steps" אינה ההגדרה המקובלת. בסדר, נא לראות את ההערה בסוגריים כמבוטלת. |
|
||||
|
||||
וויקיפדיה איתך "אלגוריתם הוא דרך שיטתית (כלומר כזו שצעדיה מוגדרים היטב) לביצועה של משימה מסוימת *במספר סופי של צעדים.*" http://he.wikipedia.org/wiki/%D7%90%D7%9C%D7%92%D7%9... |
|
||||
|
||||
מה שמבדיל את ויקיפדיה מויקימילון הוא שאפשר לפרט גם בפסקאות שבאות אחרי ההגדרה. |
|
||||
|
||||
תודה. האמת היא, כמובן, שזה לא ממש חשוב לעצם העניין. (ניחוש לגבי ההמשך: - מישהי תטען ש"צעדיה מוגדרים היטב" הוא מה שפוסל את האלגוריתם מלהיות הכלי בעזרתו מתבצעת הבחירה. - אני אבקש הסבר מהם צעדים שאינם מוגדרים היטב. - לא אקבל תשובה, אבל אשאל בחזרה מהם צעדים שכן מוגדרים היטב. - אני אגיד שצעד שמוגדר היטב הוא צעד שהתוצאה שלו נקבעת באופן חד-משמעי. - יגידו לי שאם כך, צעד שאינו מוגדר היטב הוא צעד שהתוצאה שלו אינה נקבעת באופן חד-משמעי. - אני אטען שאם כך, התוצאה שלו נקבעת באופן אקראי או ע"י אלגוריתם כלשהו. - יגידו לי "מה פתאום"? - אני אגיד שאינני מכיר דרך נוספת, ואבקש שיראו לי כזאת. - ... - השרת של האייל יקרוס, או השמש תכבה (לא ברור מה יקרה קודם). ) |
|
||||
|
||||
זה שהשתמשת במילה ''אלגוריתם'' במקום במילה ''מנגנון''. יש אנשים שיכולים לחשוב שכשאתה אומר ''אלגוריתם'' (או כל מושג אחר שמזכיר להם מתמטיקה) אתה גורם להם לתגובה מוזרה שגורמת מהם להתעלם מכל מה שאתה כותב אחר כך. |
|
||||
|
||||
סביר שיש אנשים כאלה. לא זה המקרה כאן. |
|
||||
|
||||
יש בעיה חמורה עם "צעד שהפעולה שלו מוגדרת באופן חד משמעי". קח למשל את בעית העצירה, שהוכח שלא ניתן לפתור עם מכונת טיורינג: בהינתן קלט לבעיית העצירה, הפלט האפשרי הוא או "כן" או "לא". לכן על פי גישתך, "צעד" שבו אומרים "כן" או אומרים "לא" הוא צעד לגיטימי. כמובן שהוא לא לגיטימי, כי לא ברור איך אפשר *לדעת* אם צריך לומר כן או לא. מה שחשוב הוא לא שהתוצאה תהיה מוגדרת באופן חד משמעי (זה בכלל לא הכרחי) אלא ש*החישוב שמבוצע במהלך הצעד* יהיה ברור בצורה חד משמעית. זה אפשרי רק אם הצעד מאוד פשוט - למשל, "חשב את ערך התא א' ועוד ערך התא ב' ושים את התוצאה בתא ג"'. |
|
||||
|
||||
לדעתי הצעד באמת לגיטימי, אבל ייתכן שהאלגוריתם ייתן תוצאה שגויה. זה קורה הרבה גם למכונות וגם לאנשים. |
|
||||
|
||||
בניגוד לדרישה שהאלגוריתם יעצור, הדרישה לנכונות הרבה יותר נוקשה (אם כי גם עליה מוותרים באופן חלקי לפעמים), אבל זה עדיין לא רלוונטי. כדי שהצעד יתבצע, אתה צריך שיהיה ברור איך ניתן לבצע אותו. צעד כמו ''בדוק האם התשובה הנכונה היא כן או לא'' הוא לא צעד שניתן לבצע בהקשר של בעיית העצירה. אתה כנראה חושב על צעד כמו ''הטל מטבע וענה ''כן'' אם יצא עץ'', שהוא כן נמנה על הצעדים ה''קלים לביצוע''. |
|
||||
|
||||
אני חשבתי על הצעד "ענה "כן"". בעיני, כל קופסא שחורה שנותנת בזמן סופי תוצאה חד-משמעית לכל קלט אפשרי יכולה להיחשב כ"צעד" לגיטימי בשמלגוריתם. כמו שאתה מבין, שמלגוריתם פטור ממגבלת הנכונות שאלגוריתם חייב לעמוד בה. אני חושב שאנשים משתמשים בשמלגוריתמים לעתים קרובות. לדוגמא, שמלגוריתם נפוץ אחד נראה בערך כך: אם אתה מרגיש שהתשובה היא "כן", ענה "כן". אחרת, ענה "לא". |
|
||||
|
||||
הצעד הזה הופך אלגוריתמים לחסר כל ערך. באופן כללי, גם כשיש לך אלגוריתם הסתברותי, דרישה בסיסית ממנו היא שעל *כל* קלט יתן תשובה נכונה בהסתברות חיובית, אחרת מה הטעם בו? אלגוריתם נהדר לבדיקת ראשוניות הוא "ענה כי המספר לא ראשוני". הרי רוב המספרים לא ראשוניים, אז רוב הזמן האלגוריתם צודק. הבעיה היא שיש קלטים שעליהם האלגוריתם *תמיד* טועה. אחרי שנתתי את הנאום הזה (ולא נעים למחוק) שמתי לב שאתה לא מדבר על אלגוריתמים אלא על שמלגוריתמים. מכיוון שבני אדם לא צריכים אלגוריתמים (=פתרונות לבעיות) אלא שמלגוריתמים (=מישהו שיגיד להם מה לעשות, גם אם הם עושים טעות), אני נוטה להסכים שאין כאן בעיה. |
|
||||
|
||||
יש הרבה הגדרות מקובלות לאלגוריתמים. דרישת עצירה היא דרישה סבירה מרוב האלגוריתמים הבסיסיים (קבל קלט-בצע עליו חישוב כלשהו-החזר את תוצאת החישוב). ההגדרה הכללית יותר של אלגוריתם היא ''משהו שמכונת טיורינג עושה'', ואז הוא לא חייב לעצור. |
|
||||
|
||||
בההגדרה הזאת אני ממש לא רוצה להשתמש, כי היא *באמת* הופכת את הטיעון שלי למעגלי: אם האדם הוא מכונת טיורינג, ברור שאין לו בחירה חופשית. |
|
||||
|
||||
זו בעיה משמעותית, כי אז אתה באמת צריך למצוא הגדרה טובה *מאוד* לאלגוריתם - בפרט הגדרה כזו שתהיה כללית יותר מזו של מכונת טיורינג. כלומר, אתה צריך להגדיר אלגוריתם בתור משהו שייתכן שמכונת טיורינג לא יכולה לעשות - ובכך להגיד שהתזה של צ'רץ' וטיורינג לא נכונה. בהצלחה עם זה. לחילופין, אולי עדיף לא להשתמש במילה "אלגוריתם". |
|
||||
|
||||
כן, אני הולך ומגיע למסקנה שהמילה הזאת מפריעה יותר משהיא עוזרת כאן. הבה נשכח ממנה. |
|
||||
|
||||
יכול להיות שהתבלבלתי בין אלגוריתם לבין חישוב, או מכונת טיורינג. מבחינתי, ההערה בסוגריים יכולה לחזור לתוקף. כמובן, זה לא משנה. |
חזרה לעמוד הראשי |
מערכת האייל הקורא אינה אחראית לתוכן תגובות שנכתבו בידי קוראים | |
RSS מאמרים | כתבו למערכת | אודות האתר | טרם התעדכנת | ארכיון | חיפוש | עזרה | תנאי שימוש | © כל הזכויות שמורות |