Suche

Der Bernstein-Vazirani-Algorithmus: Mathematische Betrachtung

Coverbild Illustration

Übersicht

Sekundarstufe

Physik, Mathematik, Informatik

Quantencomputing

Auf einen Blick

Schlüsselbegriffe: Algorithmus, Superposition, Interferenz
Alter: 16–18 Jahre
Vorkenntnisse/Fertigkeiten: Grundkenntnisse zu Qubits, Dirac-Notation, Zustandsvektoren und der Matrixdarstellung einfacher Quantengatter, der Deutsch-Algorithmus
Zeitumfang: 90 Minuten (Doppelstunde)

Autor: Sergio Rivera Hernandez (DE)

Inhalt

Lernziele
Unterrichtsplan
Arbeitsblatt 1: Klassische Lösung und Quantenlösung
  • Das Problem
  • Aufgabe 1, Aufgabe 2, Aufgabe 3
  • Die Quantenlösung: Der Bernstein‑Vazirani-Algorithmus
  • Aufgabe 4
Arbeitsblatt 2: Test des Algorithmus für den Fall n = 2
  • Aufgabe 1, Aufgabe 2, Aufgabe 3, Aufgabe 4
  • Optionale Aufgabe

Zusammenfassung

Diese Unterrichtseinheit stellt den Bernstein-Vazirani-Algorithmus als Beispiel vor, bei dem ein quantenbasierter Ansatz dem klassischen Ansatz bei der Suche nach einer verborgenen binären Zeichenfolge deutlich überlegen ist. Die Schüler*innen arbeiten den Algorithmus Schritt für Schritt durch. Sie nutzen Tabellen, Hadamard-Gatter und Zustandstransformationen, um zu verstehen, wie die verborgene Zeichenfolge mit einer einzigen Abfrage ermittelt wird. Anschließend werden die theoretischen Berechnungen mit einer konkreten Schaltungsimplementierung unter Verwendung des IBM Quantum Composer verbunden.

Illustration zu Quantum Algorithms

Lernziele

Ziel dieser Unterrichtsstunde ist es, dass die Schüler*innen die in Lektion 1 eingeführten allgemeinen physikalischen Prinzipien – Superposition, Interferenz und Quanten-Funktionsauswertung – nun im Kontext des Bernstein-Vazirani-Algorithmus anwenden und vertiefen.

Zunächst erschließen die Schüler*innen die Grundidee des Algorithmus, ähnlich wie bereits in Lektion 2. Anschließend wenden sie den Algorithmus auf den Fall n=2 an.

Wichtig ist, dass die Schüler*innen im Verlauf der Stunde verstehen, dass die Rechnungen für n≥3 schnell deutlich aufwendiger werden. Wer jedoch den Fall n=2 verstanden hat, kann den Algorithmus auf größere Werte von n verallgemeinern. Die Wahl von n=2 beruht daher einerseits auf den zeitlichen Rahmenbedingungen und andererseits darauf, dass größere Fälle nicht notwendig sind, um die grundlegenden Prinzipien des Algorithmus zu verstehen.

Diese Stunde vertieft außerdem erneut die grundlegende Struktur, die vielen Quantenalgorithmen zugrunde liegt und als Golden-Circuit bezeichnet wird.

Unterrichtsplan
 

Zeit in MinutenUnterrichtsphaseAktivitätMaterial
0–5EinstiegIn dieser Phase erläutert die Lehrkraft, dass in dieser Stunde ein anspruchsvollerer Algorithmus behandelt wird, der eines der in Lektion 1 eingeführten Suchprobleme in nur einem einzigen Schritt löst. 
5–20Arbeitsphase IIn dieser Phase erhalten die Schüler*innen das Arbeitsblatt, bearbeiten die Aufgaben 1, 2 und 3 und lesen die drei Schritte des Algorithmus.Arbeitsblatt 1
20–45Zwischenreflexion und Arbeitsphase IIIn dieser Phase werden die Ergebnisse der ersten drei Aufgaben besprochen, um sicherzustellen, dass die Schüler*innen die Grundidee verstanden haben, bevor sie mit der konkreten Anwendung des Algorithmus fortfahren. Anschließend erklärt die Lehrkraft den Algorithmus im Detail, damit die Schüler*innen ihn vollständig verstehen, bevor sie Aufgabe 4 bearbeiten. 
45–75Arbeitsphase IIIIn dieser Phase erhalten die Schüler*innen das nächste Arbeitsblatt und bearbeiten die Aufgaben 1–4. Wer früher fertig ist, kann am Computer weiterarbeiten und mit der Zusatzaufgabe fortfahren.Arbeitsblatt 2
75–90SicherungBesprechung der Ergebnisse. In diesem Abschnitt betont die Lehrkraft erneut die physikalischen Prinzipien hinter dem Algorithmus und hebt hervor, dass diese Prinzipien in der nächsten Stunde wieder benötigt werden. 

Hinweis für Lehrkräfte

Diese Unterrichtsstunde ist als Doppelstunde (ca. 90 Minuten) konzipiert. Wenn Ihr Stundenplan mit 45-Minuten-Einheiten arbeitet, können Aufgabe 4 und die Arbeit mit dem IBM Composer als Hausaufgabe vergeben oder in einer zweiten Stunde behandelt werden.

Sie können beide Arbeitsblätter für Ihre Klasse herunterladen:

Arbeitsblatt 1

Der Bernstein-Vazirani-Algorithmus, entwickelt im Jahr 1993, baut auf dem Deutsch-Algorithmus auf und zeigt, wie Quantencomputer bestimmte Probleme effizienter lösen können als klassische Computer.

In Lektion 1 hast du bereits eine Aufgabe kennengelernt, bei der ein geheimer Bitstring mit Ja/Nein-Fragen Bit für Bit bestimmt werden musste. Ein klassischer Algorithmus benötigt dafür im ungünstigsten Fall eine Abfrage pro Bit. Für einen geheimen Bitstring mit n Bits sind also n Abfragen notwendig. Der Bernstein-Vazirani-Algorithmus schafft dies mit nur einer einzigen Quantenabfrage, unabhängig von der Länge des Bitstrings.

In dieser Lektion lernst du anhand eines Beispiels mit drei Bits, wie dieser Quantenvorteil entsteht. Anschließend überträgst du das Prinzip auf beliebige Bitlängen.

Das Problem

Stell dir eine Blackbox vor, die durch eine Funktion fa beschrieben wird. Diese Box ist besonders: Wenn man ihr eine Binärzahl mit n Bits gibt, liefert sie als Ausgabe entweder 0 oder 1. Die Funktion fa ist dabei über einen feste, geheimen Binärstring a= a1 a2 ... an definiert, wobei jedes ai entweder 0 oder 1 ist.

Um den Funktionswert fa (x) , zu berechnen, wird folgender Ablauf genutzt:

  • Man gibt eine n-stellige Binärzahl x= x1 x2 ... xn ein, wobei jedes xi ebenfalls 0 oder 1 ist.
  • Multipliziere jedes Eingabebit mit dem entsprechenden Bit von a: a1·x1 + a2·x2 + ... + an·xn
  • Anschließend prüft man die Summe:
    • Ist die Summe gerade, gibt die Funktion 0 zurück.
    • Ist die Summe ungerade, gibt die Funktion 1 zurück.

Diese Art der Addition nennt man Addition modulo 2. Dabei gilt: Gibt es insgesamt eine gerade Anzahl von Einsen, ist das Ergebnis 0. Gibt es eine ungerade Anzahl von Einsen, ist das Ergebnis 1.

Aufgabe 1

Verwende den geheimen Binärstring a = 1 0 1 für den Fall n=3 und vervollständige die folgende Tabelle, indem du fa (x) berechnest.
 

Eingabe x

 

a·x = a1·x1 + a2·x2 + a3·x3
UngeradeGeradeAusgabe   fa (x)

 

000

 

1·0 + 0·0 + 1·0 =0
 x0

 

001

 

1·0 + 0·0 + 1·1 =1
x 1

 

010
    

 

011
    

 

100
    

 

101
    

 

110
    

 

111
    

 

Verständnis des Problems

Unser Ziel ist es, die geheime Binärzahl a , die in der Funktion fa (x) verwendet wird, herauszufinden. Dazu können wir der Funktion Fragen stellen, indem wir ihr verschiedene Binärzahlen x = x1 x2 xn übergeben und beobachten, welche Ausgabe wir erhalten.

Berechnung von fa (x) für a = 1 0 1 und  n = 3

Eingabe x

 

a·x = a1·x1 + a2·x2 + a3·x3
UngeradeGeradeAusgabe  fa (x)

 

000

 

1·0 +0·0 +1·0 =0
 x0

 

001

 

1·0 +0·0 +1·1 =1
x 1

 

010

 

1·0 +0·1 +1·0 =0
 X0

 

011

 

1·0 +0·1 +1·1 =1
X 1

 

100

 

1·1 +0·0 +1·0 =1
X 1

 

101

 

1·1 +0·0 +1·1 =2
 X0

 

110

 

1·1 +0·1 +1·0 =1
X 1

 

111

 

1·1 +0·1 +1·1 =2
 x0

Klassische Lösung
 

Aufgabe 2

Bestimme die minimale Anzahl an Abfragen, die nötig ist, um den Binärstring a = a1 a2 a3 vollständig zu ermitteln. Begründe deine Antwort.

Hinweis: Denk an die Aufgabe zurück, bei der du eine versteckte Binärzahl durch Ja/Nein-Fragen herausfinden musstest. Wie hängt das mit dem aktuellen Problem zusammen?

Klassisches Vorgehen zur Bestimmung von a

Minimale Anzahl benötigter Abfragen: 3 (eine pro Bit)

Begründung: Jedes Bit ai wird in der Funktion fa (x) nur durch das entsprechende Bit xi beeinflusst. Daher kann man a durch geschickt gewählte Abfragen Schritt für Schritt bestimmen:

  • Die Abfrage x = 1 0 0 liefert a1.
  • Die Abfrage x = 0 1 0 liefert a2.
  • Die Abfrage x = 0 0 1 liefert a3.

Aufgabe 3

Betrachte nun den Fall, dass der Binärstring n Bits hat: a = a1 a2 an .

Bestimme, wie viele Abfragen in diesem allgemeinen Fall notwendig sind. Begründe deine Antwort.

Verallgemeinerung auf n Bits

Benötigte Anzahl an Abfragen im klassischen Fall: n

Begründung: Die beste Strategie besteht darin, jeweils ein Bit nach dem anderen abzufragen:

  • x = 1 0 0 0 0  liefert a1
  • x = 0 1 0 0 0  liefert a2
  • x = 0 0 1 0 0  liefert a3, usw.

Die Quantenlösung: Der Bernstein-Vazirani-Algorithmus

Anstatt die Funktion wie im klassischen Verfahren mehrfach abzufragen, bestimmt der Bernstein-Vazirani-Algorithmus den gesamten geheimen Bitstring mit nur einer einzigen Abfrage mithilfe des folgenden Quantenschaltkreises:

 

Es funktioniert in den folgenden Schritten:

Schritt I: Erzeugung einer Superposition

Bereite im ersten Register n Qubits im Zustand |0 vor. Wende auf jedes dieser Qubits ein Hadamard-Gatter an. Dadurch entsteht eine Superposition aller möglichen Zustände der n Qubits:

H|0 H|0 H|0 = 1 2n ( |000 + |001 + + |111 )

Schritt II: Anwenden der Funktion fa und Einführen von Phasen

Wende die Funktion fa auf den Zustand aus Schritt I an, indem du das zweite Register verwendest. Dabei wird jeder Basiszustand der Superposition mit einem Phasenfaktor (-1)0 oder (-1)1 multipliziert:

1 2n [ (-1) fa (000) |000 + (-1) fa (001) |001 + + (-1) fa (111) |111 ]

Schritt III: Anwendung von Hadamard-Gattern

Wende erneut auf jedes Qubit im ersten Register ein Hadamard-Gatter an:

1 2n [ (-1) fa (000) H|0 H|0 H|0 + (-1) fa (001) H|0 H|0 H|1 + (-1) fa (111) H|1 H|1 H|1 ]

Hinweis: Dass die Funktion diese Phasenverschiebungen im ersten Register einführt, ohne das zweite Register direkt zu verändern, ist ein zentrales Prinzip des Quantencomputings. Wer genauer verstehen möchte, warum und wie diese Phasen entstehen, kann das Arbeitsblatt zur Quantenauswertung von Funktionen bearbeiten.

Abschließende Messung

Eine Messung des ersten Registers liefert jetzt mit 100 % Wahrscheinlichkeit den geheimen Bitstring a. Im Gegensatz zur klassischen Methode, bei der mehrere Abfragen nötig sind, bestimmt der Quantenalgorithmus a mit nur einer Abfrage. Das Messergebnis ist dann der Zustand: |a = |a1a2an

Aufgabe 4

Vergleiche den Schaltkreis des Deutsch-Algorithmus (siehe Abbildung) mit dem Schaltkreis des Bernstein-Vazirani-Algorithmus und beantworte die folgenden Fragen:

Erläutere die Gemeinsamkeiten und Unterschiede zwischen den beiden Algorithmen. Wie hängt der Deutsch-Algorithmus mit dem Bernstein-Vazirani-Algorithmus zusammen?

Schaltkreis des Deutsch-Algorithmus
Schaltkreis des Deutsch-Algorithmus

Vergleich des Deutsch-Algorithmus und des Bernstein-Vazirani-Algorithmus

AspektDeutsch-AlgorithmusBernstein-Vazirani Algorithm
Ziel des AlgorithmusBestimmt ob f(x) konstant oder balanciert istBestimmt den geheimen Bitstring a
Anzahl der Qubits2 Qubits (1 Eingabe + 1 Hilfsqubit)(n+1)

 Qubits (n Eingabequbits + 1 Hilfsqubit)

Quanten-VorteilReduziert die Anzahl der Abfragen von 2 auf 1Reduziert die Anzahl der Abfragen von n auf 1
Zentraler UnterschiedLöst ein binäres EntscheidungsproblemExtrahiert die vollständige Information über a

Arbeitsblatt 2


Test des Algorithmus für den Fall n=2

Nun wirst du jeden Schritt des Algorithmus analysieren, um zu verstehen, wie die zugrunde liegenden Quantenprinzipien es ermöglichen, das Problem mit nur einer einzigen Abfrage zu lösen – im Fall n=2. Hier siehst du den Schaltkreis für diesen Fall:

Aufgabe 1

Schritt I: Zeige, dass sich das erste Register nach der Anwendung eines Hadamard-Gatters auf jedes Qubit |0 wie folgt transformiert:

H|0 H|0 = 1 2 ( |00 + |01 + |10 + |11 )

Hinweis: Das Hadamard-Gatter lässt sich folgendermaßen darstellen:

H = 1 2 ( |0 0| + |0 1| + |1 0| - |1 1| ) .

Anwendung der Hadamard-Gatter (Schritt I)

Wir wenden auf jedes Qubit im ersten Register ein Hadamard-Gatter an. Dadurch transformiert sich der Anfangszustand wie folgt:

H|0 H|0 = 12 ( |00 + |01 + |10 + |11 )

Erklärung:

  • Das Hadamard-Gatter erzeugt aus |0 eine gleichgewichtige Superposition von |0 und |1.
  • Da es zwei Qubits gibt, führt die Anwendung von Hadamard-Gattern auf beide Qubits zu einer gleichmäßigen Superposition aller vier möglichen 2-Bit-Zustände.

Normierungsfaktor:

Erklären Sie den Schülerinnen und Schülern, dass der Faktor 12 dadurch entsteht, dass sich die Normierungsfaktoren der beiden einzelnen Qubits multiplizieren: ( 12 · 12 = 12 ) . Für ein System mit n Qubits lautet der allgemeine Normierungsfaktor:

1 2n

Dadurch ist sichergestellt, dass die Summe der Wahrscheinlichkeiten aller möglichen Zustände gleich 1 ist.

Aufgabe 2

Schritt II: Die Anwendung der Funktion fa auf den in Schritt I erzeugten Zustand führt zur folgenden Transformation:

1 2 [ (-1) fa (00) |00 + (-1) fa (01) |01 + (-1) fa (10) |10 + (-1) fa (11) |11 ] .

Hinweis: Die Funktion fa bewirkt Phasenverschiebungen im ersten Register, ohne das zweite Register direkt zu beeinflussen. Dies ist ein grundlegendes Konzept des Quantencomputings. Wenn du im Detail verstehen möchtest, wie und warum diese Phasenverschiebungen entstehen, schaue dir das Arbeitsblatt zur Quanten-Funktionsauswertung an.

Deine Aufgaben:

a) Gehe davon aus, dass a = 1 0 ist, und bestimme die Funktionswerte, indem du die folgende Tabelle ausfüllst:

Eingabe x

 

a·x = a1·x1 + a2·x2
UngeradeGeradeAusgabe fa (x)

 

00
    

 

01
    

 

10
    

 

11
    

 

b) Zeige, dass die Anwendung von fa den Zustand aus Schritt I wie folgt transformiert:

1 2 [ |00 + |01 - |10 - |11 ]

Hinweis: Die in deiner Tabelle ermittelten Funktionswerte bestimmen die Vorzeichen der jeweiligen Basiszustände.

Anwendung von fa (Schritt II)

a) Vervollständigung der Funktionstabelle (für a = 1 0 )

Eingabe x

 

a·x = a1·x1 + a2·x2
UngeradeGeradeAusgabe fa (x)

 

00

 

1·0 + 0·0 =0
 X0

 

01

 

1·0 + 0·1 =0
x 0

 

10

 

1·1 + 0·0 =1
X 1

 

11

 

1·1 + 0·1 =1
x 1

 

b) Herleitung der Transformation:

Da die Funktion fa die Phase abhängig davon verändert, ob der Funktionswert 0 oder 1 ist, ergibt sich:

1 2 ( |00 + |01 - |10 - |11 ) .

Aufgabe 3

a) Schritt III: Wende ein Hadamard-Gatter auf jedes Qubit des Zustands aus Schritt II an:

1 2 [ |00 + |01 - |10 - |11 ] .

Zeige, dass diese Transformation genau den Zustand |10 ergibt.

Hinweis 1: Verwende die Hadamard-Transformationen:

H |0 = 1 2 ( |0 + |1 ) , H |1 = 1 2 ( |0 - |1 ) .

Hinweis 2: Zum Beispiel, wenn man Hadamard-Gatter getrennt auf |0 und |1 anwendet:

H|0 H|1 = 1 2 ( |0 + |1 ) 1 2 ( |0 - |1 ) .

b) Was erhältst du nach der Messung des ersten Registers?

  • Vergleiche dein Ergebnis mit a = 1 0 .
  • Was sagt dir das über das Problem aus, das der Algorithmus lösen soll? Erkläre.

c) Skalierung auf n=3: Angenommen, du möchtest den Algorithmus für n=3 testen.
 

  • Wie viele Terme würden in Aufgabe 3a entstehen, bevor sich gleiche Terme gegenseitig aufheben?
  • - Erkläre, warum deine Lehrkraft dich gebeten hat, den Algorithmus nur für n=2 und nicht für n=3 zu testen.

Erneute Anwendung der Hadamard-Gatter (Schritt III)

Wir wenden erneut Hadamard-Gatter auf beide Qubits des Zustands

1 2 ( |00 + |01 - |10 - |11 )

an. Dabei verwenden wir die Hadamard-Transformationen:

H|0 = 1 2 ( |0 + |1 ) , H|1 = 1 2 ( |0 - |1 )

1. Anwendung von HH auf die Superposition:

1 2 [ H|0 H|0 + H|0 H|1 - H|1 H|0 - H|1 H|1 ] .

2. Ausmultiplizieren der einzelnen Terme:

H|0 H|0 = 12 ( |00 + |01 + |10 + |11 )

H|0 H|1 = 12 ( |00 - |01 + |10 - |11 )

- H|1 H|0 = - 12 ( |00 + |01 - |10 - |11 )

- H|1 H|1 = - 12 ( |00 - |01 - |10 + |11 )

3. Ergebnis:

Nach dem Addieren dieser vier Terme heben sich alle Koeffizienten gegenseitig auf, außer der Koeffizient von |10. Der Endzustand ist daher genau |10.

Wir erhalten also bei der abschließenden Messung den Zustand |10. Das bedeutet, dass der Algorithmus den geheimen Bitstring a = 1 0 korrekt bestimmt hat.

Aufgabe 4

Falls du noch Zeit und Motivation hast, wiederhole die Schritte I, II und III für die verbleibenden Bitstrings: a=00 , a=01 , a=11 .

Testen weiterer Werte von a

Wenn wir den Algorithmus für andere Werte von a wiederholen, erhalten wir:

  • a=00 → Messung: |00
  • a=01 → Messung: |01
  • a=11 → Messung: |11

In jedem Fall liefert der Algorithmus den geheimen Bitstring a nach nur einer einzigen Funktionsabfrage direkt als Messergebnis.

Skalierung auf n=3

  • Vor dem Zusammenfassen bzw. Kürzen gäbe es 23 = 8 Terme in der Superposition.
  • Der Grund, weshalb die Lehrkraft nur den Fall n=2 bearbeiten lässt, ist:
    • Für n=3 müssten bereits 8 Terme ausmultipliziert und vereinfacht werden.
    • Die zentralen Ideen — Hadamard-Gatter, Phasenverschiebungen und Interferenz — werden bereits im Fall n=2 deutlich sichtbar.
    • Die Verallgemeinerung auf größere Werte von n folgt demselben Muster.

Implementierung des Bernstein-Vazirani-Algorithmus im IBM Quantum Composer

In dieser Aufgabe implementierst du den Bernstein-Vazirani-Algorithmus mit dem IBM Quantum Composer. Die Abbildung zeigt die Umsetzung des Algorithmus für den Fall n=2. Analysiere den Schaltkreis genau und beantworte anschließend die folgenden Fragen:

  • a) Die ersten beiden Hadamard-Gatter werden auf die ersten beiden Qubits angewendet. Was ist ihre Funktion? Wie hängt ihre Wirkung mit dem Superpositionszustand zusammen, den du in Aufgabe 1 berechnet hast?
     
  • b) Zu Beginn wird ein X-Gatter auf das Ausgabe-Qubit angewendet. Warum ist das notwendig? Überlege, was passieren würde, wenn dieses X-Gatter fehlen würde. Teste anschließend deine Vermutung im Quantum Composer.
     
  • c) Die letzten beiden Hadamard-Gatter werden direkt vor der Messung angewendet. Was bewirken sie? Wie hängt dieser Schritt mit Aufgabe 3 zusammen, in der du den versteckten Bitstring extrahiert hast?
     
  • d) Nach dem Ausführen des Schaltkreises liefert die Messung eines zweistelligen Bitstrings. Welchen Wert für a1 a2 zeigt die Messung an? Stimmt das mit deinen Erwartungen aus den theoretischen Berechnungen in den Aufgaben 1, 2 und 3 überein?

 

Wichtiger Hinweis zum Schaltbild in der optionalen Aufgabe

Bitte beachten Sie, dass der Screenshot aus dem IBM Quantum Composer einen Schaltkreis für den geheimen Bitstring 11 zeigt, da darin zwei CNOT-Gatter enthalten sind. Die theoretischen Rechnungen in den Aufgaben 1–3 basieren jedoch auf 10 . Daher unterscheidet sich das Messergebnis im Bild |11 von dem von Ihnen berechneten Ergebnis |10 .

Close search