רדוקציית קוק

תהיינה A,B שתי בעיות חישוב , נגדיר רדוקציית קוק מ A ל B על ידי אלגוריתם פולינומי שפותר את A בעזרת גישה ל ״אורקל״ שפותר את B.
למשל - נזכר בבעיית k-clique

RkClique={((G,k),S) |S is a clique with size at lest k in G }

כפי שאמרנו לכל בעיית חיפוש ישנה בעיית הכרעה מתאימה נוכל להגדיר את בעיית ההכרעה כך

Sclique=clique={(G,k) | exists a k clique in G}

נבצע רידוקציית קוק בין Rclique ל clique , על ידי בניית אלגוריתם פולינומי שמקבל (G,k) ומחזיר קליקה בגודל k או אם אין כזאת באמצעות גישה לבעיית ההכרעה המתאימה.

A(G,k)

  1. אם (G,k)clique אז החזר
  2. אחרת, לכל קודקוד u ב G :
    • הסר מ G את u והקשתות הנוגעות בו. נסמן את הגרף החדש G
    • בדוק האם (G,k)clique
      • אם בגרף החדש יש קליקה ממשיכים על G אחרת, ממשיכים על G
  3. החזר את קבוצת הקודקודים שנותרה ב G.

הסבר: האלגוריתם מסיר מהגרף את כל הקודקודים בלעדיהם יש קליקה בגודל k ולבסור מחזיר קליקה בגודל k בזמן O(|V|) .

מכונת טיורינג בעלת גישת אורקל

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

רידוקצייה עצמית

יחס RPC ניתן לרידקוצייה עצמית אם אפשר לפתור את R על ידי מספר גישות פולינומי לבעיית ההכרעה SR.

טענה: אם RPC המקיים ש SRNPC אזי R ניתן לרדוקצייה עצמית.
בהוכחת המשפט PCPFNPP ראינו רדוקציית קוק מ R ל SR בעיית התחיליות.
כיוון שנתון שSR היא NP שלמה אזי ישנה רידוקציית קארפ מ SR ל SR ומטרנזיטיביות הרידוקציות נקבל רדוקציית קוק מ R ל SR.

טענה: לכל יחס RPF כך ש SRP אין רדוקצייה עצמית.
נניח בשלילה שיש ל R רדוקצייה עצמית אז ניתן לפתור את R בזמן פולינומי ללא גישת אורקל על ידי החלפת כל גישת אורקל באלגוריתם פולינומי שמכריע את SR ולכן RPFבסתירה.

דוגמה:
בעיה לדוגמה שמשערים שאין לה רדוקצייה עצמית היא

Rfactoring={(n,k) | nN , k|n }

כאשר k מחלק לא טריוויאלי.

משערים שבעיה זו אינה ב PF  אבל יודעים להכריע בזמן פולינומי האם מספר הוא ראשוני או לא כלומר SRP ולכן ל Rfactoring אין רדוקצייה עצמית.

הבחנה

המחלקה NP אינה סגורה לרדוקציית קוק, רק לרדוקציית קארפ

NP-קשה*

משפט- לכל S{0,1} קיימת רדוקציית קוק מ S ל S . נוכל להוכיח זאת על ידי כך שלכל קלט x נריץ את האורקל המכריע את S ונחזיר תשובה הפוכה..

הבחנה

בניגוד לרידוקציית קארפ שבה לא תמיד יש רידוקצייה מבעיה למשלים שלה, ברידוקציית קוק הדבר תמיד מתקיים למשל מ SAT ל SAT למרות שהראשונה לא שייכת כנראה ל NP. המסקנה המתבקשת היא ש NP ככל הנראה אינה סגורה לרדוקציית קוק

הגדרה בעיה S נקראת NP -קשה* אם היא קשה יחסית לרדוקציית קוק. כלומר, קיימת רדוקציית קוק מכל SNP ל S .

נשים לב

ב NPC של A דרשנו רדוקציית קארפ מכל BNP ל A. בעיות NP קשות הן יותר קלות מבעיות NPC , כי בעיות שלמות כ״כ קשות שבקלות אפשר לעבור אליהן ע״י רדוקציית קארפ, לעומת זאת במקרה הזה צריך לעבוד קשה יותר כדי לעשות את המעבר כי הבעיה יותר קלה..

משפט Lander

קיימות בעיות הכרעה שהן ב NP ואינן NPC , כך שאם PNP אז הן אינן ב P . לדוגמה: בעיית Factoring (פירוק לגורמים ראשוניים) היא כזו.