בעיית הכרעה היא בעיה שיש לה תשובה של "כן" או "לא".
דוגמה מפורשת היא השאלה האם מספר טבעי מסוים הוא מספר ראשוני. לעומת זאת, "מציאת המספר הראשוני הקטן ביותר בעל 77 ספרות" אינה בעיית הכרעה, כי התשובה שם אינה כן/לא.
בעיית הכרעה ידועה במתמטיקה היא הבעיה העשירית של הילברט. אפשר לקשר בעיות הכרעה לשפות פורמליות: מילה נמצאת בשפה אם ות רק אם תשובת בעיית ההכרעה עבור המילה היא "כן". קבוצות בעיות מסוימות, כמו אלו המכונות NP-קשות, חשובות מאוד במדעי המחשב והן חלק מבעיות פתוחות גדולות.
תורת החישוביות בוחנת מה מחשבים יכולים ומה הם לא יכולים לעשות. שאלה מרכזית היא האם כל בעיית הכרעה ניתנת לפתרון על ידי תוכנית מחשב. באמצעות משפט קנטור מראים שהתשובה היא לא.
קלט סופי אפשרי ניתן לקודד כמספר טבעי. כלומר אפשר לייצג כל קלט על ידי מספר. כך לכל בעיית הכרעה מקבלים קבוצה A של מספרים שמקודדים קלטים שעבורם התשובה היא "כן". גם תוכניות מחשב ניתן לקודד כמספרים טבעיים. לפי משפט קנטור יש יותר תת-קבוצות של הטבעיים מאשר מספרים טבעיים עצמם. לכן יש יותר בעיות הכרעה מאשר תוכניות מחשב. ממסקנה זו נובע שקיימות בעיות הכרעה שאף תוכנית לא פותרת.
הדוגמה המפורסמת ביותר היא בעיית העצירה. אלן טיורינג הוכיח ב-1936 שאין תוכנית שמחליטה תמיד אם תוכנית אחרת תעצור. שיטות כמו הלכסון של טיורינג ומשפט רייס נותנות דוגמאות נוספות לבעיות בלתי-פתירות.
תורת הסיבוכיות מתמקדת לעתים קרובות בבעיות הכרעה, כי התשובה הפשוטה כן/לא מקלה על הניתוח. גם בעיות שאינן בעיות הכרעה ניתנות לעיתים להמרה לבעיות הכרעה שקולות, כך שאם יודעים לפתור את בעיית ההכרעה במשאבים מסוימים, אפשר לפתור גם את הבעיה המקורית במשאבים דומים. לדוגמה, בעיית פירוק הגורמים (שלא בהכרח כן/לא) ניתנת לטיפול על ידי סדרת שאלות של ההכרעה "האם ל-n יש גורם ראשוני קטן מ-k". כך מצמצמים את טווח האפשרויות בעזרת כמה תשובות כן/לא.
בעיית הכרעה היא שאלה שיש לה תשובה של כן או לא.
דוגמה פשוטה: האם מספר טבעי הוא ראשוני? זו בעיית הכרעה. למצוא מספר ראשוני עם 77 ספרות זו לא בעיית הכרעה.
יש בעיות מפורסמות, כמו הבעיה העשירית של הילברט. אפשר לחשוב על בעיות הכרעה כמו רשימות של מילים ששייכות ל"שפה פורמלית" (שפה פורמלית = קבוצה של מילים שמוכרות לפי חוק ברור).
תורת החישוביות בודקת מה מחשבים יכולים לחשב ומה הם לא יכולים. אפשר להציג כל קלט כמספר. גם תוכניות אפשר להציג כמספר. משפט קנטור אומר שיש יותר קבוצות של מספרים מאשר מספרים. לכן יש יותר בעיות ממה שיש תוכניות שיכולות לפתור.
הדוגמה המוכרת היא בעיית העצירה. אלן טיורינג הראה ב-1936 שאין תוכנית שתענה תמיד אם תוכנית אחרת תעצור. יש עוד דוגמאות שנוצרו על ידי משפט רייס.
חלק גדול מתורת הסיבוכיות עוסק בבעיות הכרעה. גם בעיות שאינן כן/לא אפשר לפעמים לשנות כדי להפוך אותן לסדרה של שאלות כן/לא. לדוגמה, כדי לפרק מספר לגורמים שואלים האם יש לו גורם ראשוני קטן מ-k ואז מצמצמים את האפשרויות בעזרת תשובות כן/לא.
תגובות גולשים