שער פרדקין
שער פרדקין (באנגלית: Fredkin Gate) הוא שער קוונטי המבוסס על שולשה קיוביטים. השער הומצא על ידי אדוארד (אד) פרדקין. השער ידוע גם כ-"שער החלפה מבוקר" (באנגלית: controlled-SWAP).
הגדרה
[עריכת קוד מקור | עריכה]לשער שלוש כניסות ושלוש יציאות המוגדרות כך: כניסת בקרה (), שתי כניסות מטרה () ושתי יציאות (). מטרת השער היא לבצע החלפה בין שני הקיוביטים, אם ורק אם קיוביט הבקרה () דלוק.
דרך הפעולה
[עריכת קוד מקור | עריכה]כאשר כניסת הבקרה () כבויה, השער מעתיק את ל-, ואת ל-. אולם, כאשר כניסת הבקרה () דולקת, השער מעתיק את ל-, ואת ל-. בנוסף, השער לא משפיע על קיוביט הבקרה (). משום כך פעולת השער הפיכה ואינה מאבדת מידע בתהליך.
לכן גם מכונה שער זה כ-"שער החלפה מבוקר", מפני שהוא מחליף בין שני קיוביטים בתנאי (כלומר – שניתן להדליקו ולכבותו).
ייצוג של השער בדרכים שונות
[עריכת קוד מקור | עריכה]כניסה | יציאה | ||||
---|---|---|---|---|---|
C | I1 | I2 | C | O1 | O2 |
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 0 | 1 |
0 | 1 | 0 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 1 | 0 | 0 |
1 | 0 | 1 | 1 | 1 | 0 |
1 | 1 | 0 | 1 | 0 | 1 |
1 | 1 | 1 | 1 | 1 | 1 |
מטריצה מייצגת
[עריכת קוד מקור | עריכה]
הגדרה לוגית
[עריכת קוד מקור | עריכה]
הגדרה בקוד (פייתון)
[עריכת קוד מקור | עריכה]def fredkin(i_1: bool, i_2: bool, c: bool):
"""שער פרדקין עבור מערכת קלאסית
מחזיר: tuple באורך 3 כאשר (o_1, o_2, c)"""
if c:
return i_1, i_2, c
else:
return i_2, i_1, c
שימושים
[עריכת קוד מקור | עריכה]- מעגל סוכם לוגי מלא של שלושה קיוביטים
[עריכת קוד מקור | עריכה]השער משמש ליצירת מעגלים לוגיים המסוגלים לסכום 3 קיוביטים שונים (כמתואר בהמשך).
דוגמאות
[עריכת קוד מקור | עריכה]דוגמה נפוצה לשימוש בשער פרדקין היא "מעגל סוכם לוגי מלא של 3 קיוביטים". המעגל מסוגל לסכום שלושה קיוביטים ולפלוט שני קיוביטים המתארים את סכומם כמספר בינארי.