צמצום הוא מושג בסיסי בתורת המורכבות החישובית, הממלא תפקיד חשוב בהוכחת חוסר הכרעה. זוהי טכניקה המשמשת לבסס את חוסר הכרעה של בעיה על ידי הפחתתה לבעיה ידועה שאינה ניתנת להכרעה. למעשה, ההפחתה מאפשרת לנו להראות שאם היה לנו אלגוריתם לפתור את הבעיה המדוברת, נוכל להשתמש בו כדי לפתור את הבעיה הבלתי ניתנת להכרעה הידועה, שהיא סתירה.
כדי להבין את יכולת ההפחתה, הבה נגדיר תחילה את הרעיון של בעיית החלטה. בעיית החלטה היא בעיה חישובית הדורשת תשובה של כן/לא. לדוגמה, הבעיה של קביעה אם מספר נתון הוא ראשוני או מורכב היא בעיית החלטה. אנו יכולים לייצג בעיות החלטה כשפות פורמליות, כאשר המחרוזות בשפה הן המקרים שבהם התשובה היא "כן".
כעת, הבה נבחן שתי בעיות החלטה, P ו-Q. אנו אומרים ש-P ניתן לצמצום ל-Q (מסומן כ-P ≤ Q) אם קיימת פונקציה ניתנת לחישוב f שהופכת מופעים של P למופעים של Q בצורה כזו שהתשובה למופע x של P הוא "כן" אם ורק אם התשובה ל-f(x) של Q היא "כן". במילים אחרות, f משמר את התשובה לבעיה.
הרעיון המרכזי מאחורי ההפחתה הוא שאם נוכל לצמצם את הבעיה P לבעיה Q, אז Q קשה לפחות כמו P. אם היה לנו אלגוריתם לפתור את Q, נוכל להשתמש בו, יחד עם פונקציית ההפחתה f, כדי לפתור P. זה אומר שאם Q אינו ניתן להכרעה, אז גם P חייב להיות בלתי ניתן להכרעה. לפיכך, ההפחתה מאפשרת לנו "להעביר" חוסר הכרעה מבעיה אחת לאחרת.
כדי להוכיח אי-הכרעה באמצעות רדוקטיביות, אנו מתחילים בדרך כלל בבעיה ידועה שאינה ניתנת להכרעה, כגון ה-Halting Problem, ששואלת אם תוכנית נתונה נעצרת בקלט נתון. לאחר מכן אנו מראים שאם היה לנו אלגוריתם לפתור את בעיית העניין שלנו, נוכל להשתמש בו כדי לפתור את בעיית ההפסקה, מה שמוביל לסתירה. זה מבסס את חוסר ההכרעה של הבעיה שלנו.
לדוגמה, הבה נבחן את הבעיה של קביעה אם תוכנית P נתונה מקבלת קלט כלשהו. נוכל לצמצם את בעיית ההפסקה לבעיה זו על ידי בניית פונקציית הפחתה f שלוקחת כקלט תוכנית Q וקלט x, ומוציאה תוכנית P שמתנהגת באופן הבא: אם Q נעצר ב-x, אז P מקבל כל קלט; אחרת, P נכנס ללולאה אינסופית עבור כל קלט. אם היה לנו אלגוריתם לפתור את הבעיה של קביעה אם P מקבל קלט כלשהו, נוכל להשתמש בו כדי לפתור את בעיית ההפסקה על-ידי החלתו על f(Q, x). לכן, הבעיה של קביעה אם תוכנית מקבלת קלט כלשהי אינה ניתנת להכרעה.
רדוקטיביות היא טכניקה רבת עוצמה בתורת המורכבות החישובית המאפשרת לנו להוכיח את חוסר הכרעה של בעיה על ידי הפחתה לבעיה ידועה שאינה ניתנת להכרעה. על ידי קביעת הפחתה מבעיה P לבעיה Q, אנו מראים ש-Q קשה לפחות כמו P, ואם Q אינו ניתן להכרעה, אז גם P חייב להיות בלתי ניתן להכרעה. טכניקה זו מאפשרת לנו להעביר חוסר הכרעה בין בעיות ומספקת כלי רב ערך להבנת גבולות החישוב.
שאלות ותשובות אחרונות אחרות בנושא הכרעה:
- האם ניתן להגביל קלטת לגודל הקלט (שווה ערך לכך שראש מכונת הטיורינג מוגבל לנוע מעבר לקלט ה-TM)?
- מה המשמעות של וריאציות שונות של מכונות טיורינג להיות שוות ביכולות המחשוב?
- האם שפה הניתנת לזיהוי טיורינג יכולה להוות תת-קבוצה של שפה הניתנת להכרעה?
- האם ניתן להכריע בבעיית העצירה של מכונת טיורינג?
- אם יש לנו שני TMs שמתארים שפה ניתנת להכרעה, האם עדיין לא ניתן להכריע בשאלת השוויון?
- במה שונה בעיית הקבלה של אוטומטיות מוגבלות ליניארי מזו של מכונות טיורינג?
- תן דוגמה לבעיה שניתן להחליט על ידי אוטומט מוגבל ליניארי.
- הסבר את המושג ניתנות להכרעה בהקשר של אוטומטיות מוגבלות ליניאריות.
- כיצד משפיע גודל הקלטת באוטומטים עם גבולות ליניאריים על מספר התצורות הנבדלות?
- מה ההבדל העיקרי בין אוטומטיות מוגבלות ליניאריות למכונות טיורינג?
צפו בשאלות ותשובות נוספות ב-Decidability