ToolDingo

סימולטור מחשב קוונטי

כתוב מעגל קוונטי קטן ב- JavaScript, דמיין אותו ישירות בדפדפן שלך, ולראות את תרשים המעגל, ההסתברות וקטור המדינה. או לתאר חישוב ברמה גבוהה (למשל תוספת) ולצפות בו באופן אוטומטי הופך למעגל קוונטי אמיתי.

מודל רעש

מחשבים קוונטיים אמיתיים לא מתחשבים בצורה מושלמת: qubits הם רגישים מאוד לאבד חלק מהמידע שלהם (decoherence) באמצעות כל אינטראקציה לא רצויה עם הסביבה שלהם - חום, שדות אלקטרומגנטיים, qubiting שכנים. פעולות שער לעולם אינן מדויקות לחלוטין, ואפילו הקריאה הסופית יכולה להשתבש. סימולטור זה קובע בצורה אידיאלית כברירת מחדל; כאן אתה יכול לאפשר מודלים טיפוסיים של שגיאות ולצפות את ההשפעה שלהם ישירות בתוצאות.

מתאים לכל סימולציה בדף זה - עבור ריצות ברמה גבוהה מעגלים כתובים ידנית.
%
Per Gate ו-qubit מעורב, או לקריאה של מודל הקריאה. בחרו ערך לתרחיש שאתם רוצים לחקור.

קוד תוכנה

תאר חישוב עם קוונטים.add, קוונטית.subtract, קוונטית.multiply, קוונטי.divide או קוונטי.random. Ctrl+ הכניסה מתחילה את הסימולציה. תיעוד מלא באמצעות כפתור "Documentation"

מסמך

תאר חישוב בעורך - מעגל קוונטי אמיתי נוצר באופן אוטומטי ממנו וסימולציה. מקסימום 4000 דמויות Ctrl+הזינו מתחילים את הסימולציה.

פורמולהתיאור תיאורגבולות
quantum.add({ a, b })הוסף שני מספריםתוצאות מקס 4 bits (0–15)
quantum.subtract({ a, b })המונחיםA A A A ≥ max. 4 bits
quantum.multiply({ a, b })Multiplicationגורמים 0–7 (3 bits)
quantum.divide({ a, b })ליגה (quotient + השאר)B ≥ 1חזק מאוד: bits(a)+bits(b)+bits(a)÷)+1 ≤ 10
quantum.random({ bits })מספר אקראי אמיתיbits 1–10

בחרו דוגמה

קוד עגול

מקסימום 4000 דמויות שיטות קוונטיות זמינות: x, y, z, h, s, sdg, t, t, t, t, tdg, rx, ry, rz, cnot, cz, ccnot (alias: toffoli), חילופי, מדידה, לרוץ. Ctrl+ הכניסה מתחילה את הסימולציה.

בחרו דוגמה

יסודות: איך זה עובד?

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

תוכנית ל-qubit פיזי

מחשב קוונטי אמיתי הוא יותר מאשר שבב. אלקטרוניקה בקרה קלאסית תרגם את המעגל לדופקים מדויקים. בדוגמה המוצגת, קירור, pump, qubit, ו לייזרי קראט מעצבים אותות אלה על שולחן אופטי ומכוונים אותם לתוך תא ריק מוגן. שם הם משתנים ומדידים את מצב ה-qubit; התוצאה המדידה חוזרת למחשב הקלאסי.

המונחים:

גם קצת קלאסית 0 או 1qubit יכול להתקיים גם בסופרפוזיציה של שתי מדינות הבסיס |0⟩ ו |1⟩עם כמה qubits, כל קובעי הבסיס כתובים כמחרוזת קטנה, למשל. |10⟩ עבור 2 המונחים: where q0 בסימולטור זה תמיד הדבר החשוב ביותר (שמאל)

סופרפוזיציה

qubit בסופרפוזיציה בו זמנית נושא מרכיבים של מספר מדינות בסיס. מרכיבים אלה מתוארים כמתפתחים מורכבים; הגודל הריבועי של amplitude נותן את ההסתברות להשיג את המדינה המקבילה למדידה.

אזור Bloch

מצב של qubit אחד יכול להיות ויזואליזציה כחץ בתחום: הקוטב הצפוני מייצג |0⟩הקוטב הדרומי |1⟩, וכל הנקודות על קו המשווה הן בעלות משקל שווה - השלב קובע את הכיוון לאורך קו המשווה שבו נקודות החצים. שערי הסיבוב rx, ryו rz לסובב את החץ סביב ציר בהתאמה, שערי שלב כמו S ו-T לסובב אותו סביב ציר Z. עם qubits מסובכים, החץ מתכווץ לכיוון מרכז התחום: ה-qubit הפרט אז כבר אין מצב טהור משלו - כה סבך הופך פשוטו כמשמעו.

מדד וצילומים

measureAll() מודדים את כל הקביטים בבת אחת ומסתיימים את המעגל. מאז מדידה אחת בלבד מניבה תוצאה אקראית אחת, המעגל נמדד באופן קונספטואלי "צילומים" פעמים עם "צילומים" עם run({ shots })כך שהתפלגות ההסתברות מופיעה כמכשיר. ההסתברויות המדויקות נקובות גם ישירות מן הווקטור של המדינה, ללא תלות באקראיות של היריות.

שער הממזר

השער האדמרד h(q) לוקח qubit ממדינה מוגדרת (|0⟩ או |1⟩) לסופרפוזיציה של |0⟩ ו |1⟩ על כך 50% / 50% כאשר נמדד.

שערי שלב: S & T

השערים s(q) ו t(q) אין לשנות את ההסתברות המדידה של qubit אחד; הם רק לסובב את השלב של |1⟩ ביקורת - S By 90T By 45הם רק מראים את ההשפעה שלהם בשילוב עם סופרפוזיציה: בין שני השערים האדמיראדים, השלב מחליט כיצד הגדלים משלבים או מבטלים (התערבות). גרסאות dagger sdg(q) ו tdg(q) לסובב בדיוק את הדרך הפוכה ו undo S ו- T. הכלל הוא: שני T לעשות S, שני S לעשות Z.

CNOT סיבוכים מותניים

CNOT שער השער cnot(control, target) הופך את המטרה ל-qubit בדיוק כאשר בקרת ה-qubit נמצאת במצב |1⟩אם qubit הבקרה הוא בסופרפוזיציה לפני כן, זה יכול ליצור סבך - שני ה-qubits כבר לא ניתן לתאר באופן עצמאי אחד מהשני, כמו למשל מדינת בל. אם qubit השליטה הוא במצב מוגדר, במקום זאת, CNOT רק עושה קצת מצב ללא סיבוכים. לא כל CNOT באופן אוטומטי יוצר סבך.

CZהיחס הסימטרי של CNOT

CZ שער השער cz(a, b) למנוע את הסימן של amplitude בדיוק כאשר שני qubits הם |1⟩בניגוד CNOTאין שליטה ואין יעד - השער פועל זהה בשני הקוויביטים, ולכן הוא נמשך שני דוטים מחוברים בתרשים. CZ ו CNOT ניתן להפוך אחד לשני: CNOT הוא CZ qubit היעד שלו מועבר דרך שער אדריד לפני ואחרי. CZ הוא אבן בניין מרכזית של אלגוריתמים רבים, כגון חיפוש גרוב.

GHZ מדינה: הסתבכו כשלישייה

GHZ המדינה (שנקראה לאחר גרינברגר, הורין וזייד) מרחיבה את עקרון מדינת בל לשלושה qubits: שער אחד האדמרד בתוספת שני CNOTs מסבך את כל השלושה כך המדידה רק מניבה רק מניבה רק מניבה. |000⟩ או |111⟩ אף פעם לא מעורב מחרוזת. אין ל-qubit מדינה משלה יותר; המידע נמצא אך ורק בקורלציה המשותפת.

אלגוריתם דויטש: היתרון הקוונטי הקטן ביותר

האלגוריתם דויטש עונה, עם הערכה אחת של אורקל לא ידוע, שאלה שעבורה מחשב קלאסי צריך שתי הערכות: האם הפונקציה קבועה או מאוזנת? הטריק הוא לשלוח את הקלט דרך האורקל בסופרפוזיציה - הודות להפרעה, התשובה לאחר מכן היא מקודמת באופן חד-משמעי בנקודת הקלט. העיקרון שמאחוריו (phase Kickback) נמצא בבסיס כמעט כל אלגוריתמי הקוונטים.

חיפוש ב-Goverr: Amplitudes

חיפוש גרובר מוצא כניסה מסומנים במערכת ללא הפרעה עם פחות שאילתות באופן משמעותי מאשר צורך קלאסי. אורקל מסמן את המדינה המבוקשת עם תפנית בשלב (כאן דרך a point) CZ שער), ואז מפעיל הדיפוזיה מדגים את האמרה המסומנת על חשבון כל האחרים. עם 2 qubits, השקיה אחת מספיקה כדי למדוד את הלהיט עם 100% הסתברות

תוספת בולטת: מ קוונטים.add() למעגל

עורך קוד התוכנה לעיל מתרגם quantum.add({ a, b }) לתוך מעגל של X, CNOTו CCNOT השערים (Toffoli) שמשכפלים תוספת קלאסית באופן רציונאלי לחלוטין: כל שער יכול להיות בלתי שווה בדיוק, כי שום מידע לא נמחק. A A A CCNOT שער (ccnot(c1, c2, target)(הופנה מהדף היעד qubit רק כאשר שתי נקודות השליטה הן |1⟩ - זה מספיק כמו אבן בניין כדי לבנות מחדש כל מעגל קלאסי, כולל סולם מלא עם לשאת. הקלטים A ו- B מוחזרים לראשונה כמדינות בסיס מוגדרות (ללא סופרפוזיציה) באמצעות שערי X. כי המעגל כולו עובר רק דרך מצבים מוגדרים במקום סופרפוזיציה, המדידה בסוף מניבה תוצאה אחת בדיוק עם תוצאה אחת. 100% הסתברות - הסכום הקלאסי הנכון. זו הסיבה quantum.add() מייצרת תוצאה דטרמיניסטית למרות הסימולציה הקוונטית, במקום כמה מדינות אפשריות עם הסתברות נמוכה יותר 100%.

קטגוריה: תוספת הפוכה

כי כל שער של מעגל קוונטי הוא בדיוק בלתי נמנע, מעגל הסולם המלא יכול להתבצע לאחור - והתוספת הופכת תת-קרקעית: quantum.subtract({ a, b }) משתמש בדיוק את שערי הסולם בסדר הפוך ובכך מצמיד − b. זה לא גימיק, אבל העיקרון הבסיסי של חישוב בלתי הפיך: שום צעד חישובי לא הורס מידע, כל צעד יכול להיות לא אחד. בגרסה זו, ≥ B נדרש כך שלא מתרחשת תוצאה שלילית.

המונחים: Quantum.multiply()

Multiplication כאן מופיע מאותו אבני בניין ניתוק כמו גם: לאחר שיטת הספר, גורם אוסיף מספר פעמים בעמדות משתנות - התאמת נקודות סט של גורם b. כל תוספת חלקית היא אותה סוללת ripple-carry הפוכה; הנושא זורם לתוך המוצר הבא בכל פעם. מכיוון שרישום התוצאות גדל עם המוצר, הגורמים מוגבלים 3 bits (0–7כאן - רק אז לעשות גורם, מוצר, לשאת qubit יחד כדי להיכנס סימולטור הזה 10 נקודות.

חילוק: quantum.divide()

גם החטיבה משתמשת רק בלוקים של בנייה הפוכה: quantum.divide({ a, b }) מבצע חלוקה ארוכה הבנויה מתחלפות, ניתוק מחדש של הדיודור מן הרשום הנותרים; התוצאה היא המכסה הנדרשת ו השאר (a = quotient · b + remainder). כי דיבידנד, divisor, מכס ו qubit הלוואה חייב להתאים את כולם 10 qubits יחד, החטיבה היא המבצע המגביל ביותר: bits(a) + bits(b) + bits(a÷b) + 1 ≤ 10 חייב להחזיק, ואת הדיודור b חייב להיות ≥ 1 (ללא חלוקה באפס). אם קלט לא מתאים לתקציב, העורך מדווח על כך במקום מחשוב.

אקראיות אמיתית: קוונטית.random()

מחשבים קלאסיים לא יכולים ליצור אקראיות אמיתית – "מספרי הבטן" שלהם מגיעים מאלגוריתמים determinסטים (פסודו-randomness). מחשב קוונטי יכול: quantum.random({ bits }) מכניס כל חלק לתוך 50/50 על-ידי שימוש בשער האדמרד, ורק המדידה מחליטה – באופן בסיסי לא צפוי – איזה ערך יוצא. על חומרה קוונטית אמיתית זה אקראיות אמיתית פיזית; סימולטור זה מחק אותו עם פסאודו-randomness של הדפדפן שלך.

סימולטור לעומת חומרה קוונטית אמיתית

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

שאלות נפוצות

האם זהו מחשב קוונטי אמיתי?
לא. כלי זה הוא סימולטור קלאסי סטייט-אדריכל אשר מצמיד את המתמטיקה של מעגל קוונטי קטן (עד כדי 10 qubits) בדיוק, באמצעות קידוד צף בדפדפן שלך. חומרה קוונטית אמיתית משתמשת בקווי רוח פיזיים ועובדת באופן מהותי שונה.
איזה qubit הוא q0 קצת מחרוזת כמו "10"?
q0 הוא תמיד החלק החשוב ביותר (שמאל) עם 2 סיביות, x(0לכן יוצר המדינה |10⟩לא |01⟩.
מה פירוש "צילומים"?
יריות הוא מספר המדידות החוזרות ונשנות (1–10,000). כל זריקה באופן אקראי שואבת את תוצאות המדידה בהתאם להתפלגות ההסתברות המדויקת של וקטור המדינה. ההסתברויות המדויקות עצמן אינן תלויות במקרה והן מוצגות בנפרד.
מדוע דוגמאות מראות הודעת שגיאה?
MVP טווח זה מאפשר בדיוק מעגל אחד עם בדיוק ריצה אחת () להתקשר לאחר ציון כל (). כתבי אישום לא חוקיים, השערים לאחר מדד All(), זוויות לא פתורות או ספירות ירי, וטעויות סינטקס בקוד נדחו במסר שגיאה מובן.
מה זה Hadamard, X, CNOT השערים עושים?
חילופי X |0⟩ ו |1⟩Hadamard הופך מצב בסיס לסופרפוזיציה במשקל באותה מידה. CNOT הוא הופך את המטרה רק כאשר השליטה היא |1⟩ יכול ליצור סיבוכים בשילוב עם סופרפוזיציה.
כיצד נוצר הסבך?
דוגמא אחת חלה על האדמריד הראשון ולאחר מכן CNOT לשנייה. ה-qubits כבר לא ניתן לתאר באופן עצמאי, ומדידה מייצרת תוצאות מתואמים כגון: |00⟩ או |11⟩.