שער קוונטי

שער קוונטי הוא סוג של שער לוגי אשר פועל לפי חוקי מכניקת הקוונטים. שער קוונטי מממש טרנספורמציה של n קיוביטים בכניסת השער, אל n קיוביטים במוצא השער. הטרנספורמציה ניתנת לביטוי בתור אופרטור יוניטרי בממד n, לרוב מסומנת כ <math>\left. U \right.</math> או <math>\left. U_n \right.</math>. כל שער קוונטי חייב להיות הפיך, כלומר לכל שער <math>\left. U \right.</math> קיים שער הפכי <math>\left. U^{\dagger} \right.</math>, כך שהפעלת השער ההפכי על מוצא <math>\left. U \right.</math> מחזירה את המצב ההתחלתי של הקיוביטים.
[[שער הדמר של קיוביט בודד]]

הפעלת שער קוונטי <math>\left. U \right.</math> על אוגר המכיל קיוביטים במצב הקוונטי <math>|x\rangle</math> תשנה את מצב האוגר ל <math>\left. U |x\rangle\right.</math>. כמובן, שמצב האוגר בכניסה יכול להיות כל מצב שהוא (מצב בסיס או סופרפוזיציה קוונטית כלשהי של מצבי בסיס). מעקרון הליניאריות יתקבל כי הפעלת השער על הסופרפוזיציה <math>\alpha|x\rangle + \beta|y\rangle</math> תתן במוצא השער את המצב <math>U(\alpha|x\rangle + \beta|y\rangle)= \alpha U|x\rangle + \beta U|y\rangle</math>.

== הפיכות ==
כל שער קוונטי חייב להיות הפיך. תכונה זו מתקבלת עקב העובדה שהשער מממש אופרטור יוניטרי, שהוא בעצמו אופרטור הפיך.
לדוגמה, בעולם הקלאסי, שער NOT הוא שער הפיך - ניתן לשחזר את המצב ההתחלתי על ידי שרשור שער NOT נוסף, כלומר, שער NOT הוא ההפכי של עצמו. מצד שני, שער AND לדוגמה אינו הפיך וזאת מכמה סיבות: א. רוחב המוצא קטן מרוחב הכניסה (2 סיביות הופכות לסיבית יחידה, דבר המעיד על מחיקת מידע, ומונע את הפיכות השער). ב. מספר קלטים שונים ממופים לאותו מצב יציאה, כלומר השער אינו חד-חד-ערכי. 

ניתן להראות ששער קוונטי הוא הפיך אם ורק אם מקיים את התכונות הבאות:
# מספר קיוביטי הכניסה שווים למספר קיוביטי היציאה
# בבסיס החישוב השער מממש טרנספורמציה חד-חד ערכית.

==שער מבוקר ==
לכל שער קוונטי <math>\left. U_n \right.</math> ניתן להגדיר שער מבוקר (מסומן לרוב 
ב 
<math>\left.\mbox{c-}U_n\right.</math>). לשער המבוקר מתווספת כניסה נוספת (כניסת ה control) אשר מהווה כניסה מאפשרת (enable) לאותו שער. כלומר, אם ה-control במצב <math>|0\rangle</math> השער אינו מאופשר והמוצא יהיה זהה אל הכניסה. אם ה-control במצב <math>|1\rangle</math> השער פועל באופן רגיל.
שער קוונטי מבוקר. הכניסה העליונה היא ה control, והתחתונה הtarget.

בניסוח מתמטי, <math>\mbox{c-}U_n|0\rangle|x\rangle = |0\rangle|x\rangle</math> ואילו <math>\mbox{c-}U_n|1\rangle|x\rangle = |1\rangle U_n|x\rangle</math>. השער המבוקר מממש את האופרטור היוניטרי (בממד <math>n+1</math>) 
: <math>\mbox{c-}U_n = \begin{pmatrix} I_n & 0 \\ 0 & U_n \end{pmatrix}</math> 
כאשר <math>\left.I_n\right.</math> היא מטריצת היחידה בממד n.
כניסת ה-control אינה חייבת להיות באחד ממצבי הבסיס <math>|0\rangle</math> או <math>|1\rangle</math>, אלא יכולה להיות כל סופרפוזיציה שלהם. יכולת זו חשובה לשם יצירת שזירות.

== מערכת שערים אוניברסלית ==
מערכת שערים אוניברסלית היא קבוצה של שערים, איתם ניתן לבנות מעגל המממש חישוב של כל פונקציה קוונטית רצויה. במילים אחרות, קבוצת שערים <math>\left. S \right.</math> תיקרא אוניברסלית, אם לכל אופרטור יוניטרי <math>\left. U_n \right.</math> קיים צירוף סופי של שערים מ-<math>\left. S \right.</math>, כך שלכל מצב קוונטי <math>|x\rangle</math> בכניסת המעגל, יתקבל במוצא המעגל, המצב הקוונטי <math>\left. U_n |x\rangle \right.</math>.

דוגמאות למערכת שערים אוניברסלית קוונטית:
# שער דויטש (עם פאזה לא רציונלית)
# שער CNOT עם שער הדמר H, ושער פאזה <math>R(\pi/4)</math>

==שערים לדוגמה ==
=== שערים של קיוביט בודד ===
כל מטריצה יוניטרית בממד 2x2 מהווה שער של קיוביט בודד. להלן מספר דוגמאות מפורסמות.

שער אדמר מוגדר בתור האופרטור
<math display="block"> H = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix} </math>

שער פאזה הוא למעשה משפחה של שערים המוגדרים על ידי האופרטור
<math display="block"> R(\theta) = \begin{bmatrix} 1 & 0 \\ 0 & e^{i\theta} \end{bmatrix} </math>
לכל פאזה <math>\theta \in [0,2\pi]</math>. השער משנה את המצב הקוונטי 
על ידי הוספת פאזה של <math>\theta</math> אל הפאזה של רכיב הבסיס <math>|1\rangle</math>, ואינו משנה את הפאזה של רכיב ה-<math>|0\rangle</math>. על-מנת להבין את פעולת השער על מצב כללי <math>|x\rangle</math>, ניתן לרשום את המצב בבסיס החישוב <math>|x\rangle = \alpha|0\rangle + \beta|1\rangle</math>, ולהכפיל את המקדם של הרכיב <math>|1\rangle</math> באיבר <math>e^{i\theta}</math>, כלומר <math>R(\theta)|x\rangle = \alpha|0\rangle + e^{i\theta}\beta|1\rangle</math>.

שער NOT מממש את האופרטור <math>\operatorname{NOT} = \begin{pmatrix}0 & 1 \\ 1 &0\end{pmatrix}</math>. בדומה לשער הקלאסי, <math>\operatorname{NOT}|0\rangle=|1\rangle</math> וכן <math>\operatorname{NOT}|1\rangle=|0\rangle</math> ובאופן כללי 
<math display="block">NOT|x\rangle=\operatorname{NOT}(\alpha|0\rangle + \beta|1\rangle) = \beta|0\rangle + \alpha|1\rangle</math>שער NOT הוא אחד מן השערים הקוונטיים שעושים שימוש במטריצות פאולי שמייצגות טרנספורמציות סיבוב במרחב מממד זוגי של פונקציות מרוכבות. 

=== שערים של 2 קיוביטים ===
במקרה הכללי, כל מטריצה יוניטרית בממד 4x4 מהווה שער קוונטי של שני קיוביטים. כמו כן, ניתן להפוך כל שער של קיוביט יחיד לשער-מבוקר של 2 קיוביטים. דוגמה מפורסמת היא שער NOT מבוקר, CNOT, אשר ניתן לתיאור על ידי האופרטור
<div style="text-align: center;">
<math> \operatorname{CNOT} = \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 \end{pmatrix}</math>.
</div>

פעולת השער על קיוביט המטרה (ה-target) היא היפוך המצב של קיוביט המטרה, כאשר קיוביט הבקרה (ה-control) "דולק", כאשר הביטים מיוצגים בבסיס החישוב.
{| align="center" class="wikitable"
|-
! colspan="2" | כניסה || colspan="2" | יציאה
|-
! Control || Target || Control || Target
|- align=center
| 0 || 0 || 0 || 0
|- align=center
| 0 || 1 || 0 || 1
|- align=center
| 1 || 0 || 1 || 1
|- align=center
| 1 || 1 || 1 || 0
|}
שימוש בשער זה מאפשר יצירת מצב שזור כגון מצב בל על ידי הפעלת השער על כניסת בקרה אשר נמצאת בסופרפוזיציה של אברי בסיס החישוב. למשל, הפעלת השער על המצב <math>|0\rangle_t</math> כאשר קיוביט הבקרה הוא <math>|+\rangle_c=\frac{1}{\sqrt{2}}(|0\rangle_c+|1\rangle_c)</math>, ייצר את המצב <math>|\Phi^+\rangle = \frac{1}{\sqrt{2}} (|0\rangle_c \otimes |0\rangle_{t} + |1\rangle_c \otimes |1\rangle_{t})</math>. 
באופן דומה, ניתן לקבל את ארבעת מצבי בל על ידי אתחול קיוביט הבקרה ל <math>|-\rangle_c</math> או <math>|+\rangle_c</math>, ואתחול קיוביט המטרה לאחד ממצבי בסיס החישוב <math>|0\rangle_t</math> או <math>|1\rangle_t</math>.

=== שערים של 3 קיוביטים ===
==== שער טופולי ====
שער טופולי הוא שער הפועל על אוגר של 3 קיוביטים, אשר הומצא על ידי תומאסו טופולי.
שער טופולי. מיוצג על ידי שער NOT-מבוקר-מבוקר
פעולת השער על מצבי בסיס החישוב מתוארת בטבלה הבאה
{| class="wikitable" align="center"
! colspan="3" | כניסה
! colspan="3" | יציאה
|- align="center"
| c1 || c2 || t || c1 || c2 || t
|- align="center"
| 0 || 0 || 0 || 0 || 0 || 0 
|- align="center"
| 0 || 0 || 1 || 0 || 0 || 1
|- align="center"
| 0 || 1 || 0 || 0 || 1 || 0
|- align="center"
| 0 || 1 || 1 || 0 || 1 || 1
|- align="center"
| 1 || 0 || 0 || 1 || 0 || 0
|- align="center"
| 1 || 0 || 1 || 1 || 0 || 1
|- align="center"
| 1 || 1 || 0 || 1 || 1 || 1
|- align="center"
| 1 || 1 || 1 || 1 || 1 || 0
|}
ניתן להתייחס אל שער טופולי כאל שער NOT מבוקר פעמיים, או לחלופין, בתור שער CNOT מבוקר. בשל כך, השער ידוע גם בשם controlled-controlled-NOT או CCNOT. לשער שתי כניסות בקרה (c1, c2 בטבלה) וכניסת מטרה יחידה (t). רק כאשר שתי כניסות הבקרה "דולקות", השער הופך את סיבית המטרה. מדרך פעולתו של השער קל לראות כי שער טופולי הוא ההפכי של עצמו. 
שער טופולי מהווה מערכת שערים אוניברסלית לחישוב הפיך (כלומר, ניתן בעזרתו ליצור מעגל הפיך עבור כל פונקציה בוליאנית).

==== שער פרדקין ====
שער פרדקין הוא שער הפועל על אוגר של 3 קיוביטים, אשר הומצא על ידי אד פרדקין.
לשער כניסת בקרה (c) ושתי כניסות מטרה (I1, I2). כאשר כניסת הבקרה "כבויה" השער ממפה את כניסות המטרה אל היציאות (O1, O2 בהתאמה). כאשר כניסת הבקרה דולקת, השער מבצע החלפה בין שני קיוביטי המטרה, כלומר ממפה את הכניסה I1 אל היציאה O2 ואת הכניסה I2 אל היציאה O1. למעשה, זהו שער החלפה-מבוקר (controlled-SWAP). טבלת האמת של השער (על אברי בסיס החישוב) ניתנת לסיכום באופן הבא
{| class="wikitable" align="center"
|-
! colspan="3" | כניסה
! colspan="3" | יציאה
|- align="center"
! C !! I<sub>1</sub> !! I<sub>2</sub>
! C !! O<sub>1</sub> !! O<sub>2</sub>
|- align="center"
| 0 || 0 || 0 
| 0 || 0 || 0 
|- align="center"
| 0 || 0 || 1 || 0 || 0 || 1 
|- align="center"
| 0 || 1 || 0 || 0 || 1 || 0 
|- align="center"
| 0 || 1 || 1 || 0 || 1 || 1 
|- align="center"
| 1 || 0 || 0 || 1 || 0 || 0 
|- align="center"
| 1 || 0 || 1 || 1 || 1 || 0
|- align="center"
| 1 || 1 || 0 || 1 || 0 || 1 
|- align="center"
| 1 || 1 || 1 || 1 || 1 || 1
|}
שער פרדקין הוא ההפכי של עצמו, ומהווה מערכת שערים אוניברסלית לחישוב הפיך. 

==קישורים חיצוניים==
* 

קטגוריה:חישוב קוונטי