אלגוריתם דויטש-ג'וזה
אלגוריתם דויטש עולה על כל האלגוריתמים הקלאסיים עבור בעיית שאילתה, אך היתרון צנוע למדי: שאילתה אחת לעומת שתיים. אלגוריתם דויטש-ג'וזה מרחיב יתרון זה — ולמעשה, ניתן להשתמש בו כדי לפתור כמה בעיות שאילתה שונות.
הנה תיאור Circuit קוונטי של אלגוריתם דויטש-ג'וזה. ייתכן שנדרש גם שלב עיבוד קלאסי נוסף, שאינו מוצג באיור, בהתאם לבעיה הספציפית הנפתרת.
כמובן, עדיין לא דנו בבעיות שאלגוריתם זה פותר; הדבר נעשה בשני הסעיפים הבאים.
בעיית דויטש-ג'וזה
נתחיל עם בעיית השאילתה שאלגוריתם דויטש-ג'וזה נועד לפתור במקורו, המוכרת בשם בעיית דויטש-ג'וזה.
פונקציית הקלט לבעיה זו היא מהצורה עבור מספר שלם חיובי שרירותי כמו בבעיית דויטש, המשימה היא להוציא אם היא קבועה ו- אם היא מאוזנת, כלומר מספר מחרוזות הקלט שעליהן הפונקציה מקבלת ערך שווה למספר מחרוזות הקלט שעליהן הפונקציה מקבלת ערך .
שימו לב שכאשר גדול מ-, יש פונקציות מהצורה שאינן קבועות ואינן מאוזנות. לדוגמה, הפונקציה המוגדרת כך:
אינה נכללת באף אחת מהקטגוריות הללו. בבעיית דויטש-ג'וזה, פשוט אין אנו מתייחסים לפונקציות כאלה — הן נחשבות לקלטי "לא אכפת". כלומר, לבעיה זו יש הבטחה שהפונקציה היא או קבועה או מאוזנת.
אלגוריתם דויטש-ג'וזה, עם שאילתתו היחידה, פותר בעיה זו במובן הבא: אם כל אחד מ- תוצאות המדידה הוא , אז הפונקציה קבועה; ואחרת, אם לפחות אחת מתוצאות המדידה היא , אז הפונקציה מאוזנת. דרך נוספת לומר זאת היא שה-Circuit המתואר לעיל מלווה בשלב עיבוד קלאסי שבו מחושב ה-OR של תוצאות המדידה כדי לייצר את הפלט.
ניתוח האלגוריתם
כדי לנתח את ביצועי אלגוריתם דויטש-ג'וזה לבעיית דויטש-ג'וזה, כדאי להתחיל בחשיבה על פעולת שכבה יחידה של Gate-ים הדאמר. פעולת הדאמר ניתנת לביטוי כמטריצה בצורה הרגילה,
אך ניתן גם לבטא פעולה זו במונחים של פעולתה על מצבי הבסיס הסטנדרטיים: