Abo
  • Services:
Anzeige
Versuchsaufbau im Quantenlabor in Innsbruck
Versuchsaufbau im Quantenlabor in Innsbruck (Bild: Werner Pluta)

Ein Programmierbeispiel mit Quipper

Die erste Funktion, plus_minus, erzeugt zunächst mit qinit aus einem gewöhnlichen Bit ein Qubit, das den gleichen Messwert wie das Bit hat, also entweder 0 oder 1. Die Funktion soll aber als Ausgabewert ein Qubit liefern, das mit 50 Prozent Wahrscheinlichkeit mit 0 oder 1 gemessen wird. Es gibt aber zwei unterschiedliche Zustände eines Qubits, die diese Eigenschaft haben: der Zustand Plus und der Zustand Minus. Dazu muss der Quantencomputer ein Hadamard-Gatter auf das Qubit anwenden.

Anzeige

Wenn das Hadamard-Gatter auf ein Qubit im Zustand 0 angewendet wird, nimmt es den Zustand Minus ein, sonst den Zustand Plus. Eine zweite Anwendung des Hadamard-Gatters würde das Qubit danach wieder in seinen ursprünglichen Zustand zurückversetzen. Da der Code von Quipper an Haskall angelehnt ist, beginnt die Implementierung der Funktion hier mit "do".

  1. plus_minus :: Bool -> Circ Qubit
  2. plus_minus b = do
  3. q <- qinit b
  4. r <- hadamard q
  5. return r

Die Share-Funktion erzeugt ein Qubit und verschränkt es durch ein kontrolliertes (quanten-)NOT-Gatter mit einem anderen Qubit. Die Funktion benötigt also ein Qubit als Eingabewert, das verschränkt werden soll, und gibt die beiden verschränkten Qubits als Ausgabewert zurück.

  1. share :: Qubit -> Circ (Qubit, Qubit)
  2. share a = do
  3. b <- qinit False
  4. b <- qnot b 'controlled' a
  5. return (a,b)

Mit beiden Funktionen zusammen kann der Quantencomputer angewiesen werden, ein Paar verschränkter Qubits zu erzeugen. Ganz konkret wird hier der Bellzustand 00 erzeugt. Das ist ein Paar verschränkter Qubits, die beide den Zustand Minus haben, aber durch Anwendung eines Hadamard-Gatters wieder in den Zustand 0 versetzt werden können. Sie dienen in der Teleportation nur als Vermittler.

  1. bell00 :: Circ (Qubit, Qubit)
  2. bell00 = do
  3. a <- plus_minus False
  4. (a,b) <- share a
  5. return (a,b)

Die eigentliche Teleportation findet in diesen sechs Zeilen statt. Alice will das Qubit q teleportieren. Dazu wird mit bell00 ein Paar verschränkter Qubits (a,b) erzeugt. Alice benutzt das erste Qubit, a, und ihr eigenes Qubit, q, um ein Paar herkömmlicher Bits (x,y) zu erzeugen. Das geschieht durch eine Funktion "alice", die hier noch nicht definiert ist. Die Messwerte dieser beiden Bits sind vollkommen zufällig. Die Messwerte werden aber von Bob benötigt.

Denn Bob bekommt nur das Qubit b zugeschickt, das noch keine Informationen trägt. Aber mit Hilfe der beiden Bits (x,y) kann Bob das Qubit b so manipulieren, dass es den Wert annimmt, den das Qubit q anfangs hatte. Das alles passiert in der Funktion "bob", die auch noch zu definieren ist.

  1. teleport :: Qubit -> Circ Qubit
  2. teleport q = do
  3. (a,b) <- bell00
  4. (x,y) <- alice q a
  5. b <- bob b (x,y)
  6. return b

Die Funktion alice benötigt das Qubit q, das teleportiert werden soll, und eines der beiden verschränkten Qubits a und b. Auf das Qubit a wird ein kontrolliertes NOT Gatter angewendet, mit dem Zustand q als Kontrollvariable. Sollte q den Zustand 1 haben, wird der Zustand von a umgekehrt, sonst nicht. Anschließend wird ein Hadamard-Gatter auf q angewendet. Wie schon bei der Plus_minus-Funktion führt das bei der anschließenden Messung dazu, dass q mit 50 Prozent Wahrscheinlichkeit mit 1 oder 0 gemessen wird.

Die Funktion alice misst anschließend q und a. Dabei werden die Zustände dieser beiden Qubits zerstört und die erste Hälfte der Teleportation ist vollzogen. Was bleibt, sind zwei Bits als Messwerte, die Rückgabewerte der Funktion. Diese beiden Bits werden anschließend an Bob weitergegeben, der damit das Qubit q wieder herstellen kann.

  1. alice :: Qubit -> Qubit -> Circ (Bit,Bit)
  2. alice q a = do
  3. a <- qnot a 'controlled' q
  4. q <- hadamard q
  5. (x,y) <- measure (q,a)
  6. return (x,y)

Die Messergebnisse von q und a lassen sich nicht vorhersagen. Aber beide Qubits sind direkt oder indirekt mit Bobs Qubit b verschränkt. Die Messung des Zustands von q und a liefert alle Informationen, die Bob braucht, um aus b wieder den Zustand q zu erzeugen, vorausgesetzt er hat das Qubit b erhalten und es wurde nicht verändert. Das ist der einzige Weg, den ursprünglichen Zustand des Qubits q wieder zu erzeugen, denn der wurde bei der Messung der Qubits zerstört.

Die Messergebnisse y und x sagen Bob, was er mit dem Qubit b tun muss, um daraus den Zustand des zerstörten Qubits q zu erzeugen. Falls y eine 1 ist, muss er ein X Gate anwenden, ein Phasenschieber mit einem bestimmten Winkel, der den Zustand des Qubits um die X-Achse rotiert. Falls x eine 1 ist, wird ein Z Gate angewendet, das ganz ähnlich funktioniert. Die beiden Bits werden jetzt nicht mehr benötigt und b ist in dem Zustand, den ursprünglich das von Alice teleportierte Qubit q hatte.

  1. bob :: Qubit -> (Bit,Bit) -> Circ Qubit
  2. bob b (x,y) = do
  3. b <- gate_X b 'controlled' y
  4. b <- gate_Z b 'controlled' x
  5. cdiscard (x,y)
  6. return b

Die Implementierung fortgeschrittenerer Algorithmen ist entsprechend komplexer. Sie wird mehr Funktionen erfordern, aber auch mehr Komfort durch vorhandene Bibliotheken bieten, in der die Teleportation eines Qubits von einer Speicherstelle zu einer anderen mit einem einzigen Befehl geschieht. Diese Grundlagen sollen schon jetzt gelegt werden, noch bevor die Technik tatsächlich Anwendungsbereit ist.

Wenn die Hardware existiert, sollen die ersten Programme schon längst mit Hilfe der Simulatoren entwickelt sein und in den Datenbanken auf ihre Ausführung warten. Und so wird die Programmierung von Quantencomputern heute schon zu einem realen Problem.

 Simulatoren: Quantencomputer werden heute schon programmiert

eye home zur Startseite
jnv 08. Aug 2017

wtf. So eine blöde Einstellung...

divStar 08. Aug 2017

Ich würde dir gerne glauben, denn ich traue das allen genannten Akteuren absolut zu...

NitroX007 07. Aug 2017

@Tollversteher +1



Anzeige

Stellenmarkt
  1. Bechtle IT-Systemhaus GmbH, Düsseldorf, Krefeld
  2. OEDIV KG, Bielefeld
  3. SYNLAB Holding Deutschland GmbH, Augsburg
  4. SYNLAB Holding Deutschland GmbH, München, Augsburg


Anzeige
Blu-ray-Angebote
  1. 27,99€ (Vorbesteller-Preisgarantie)
  2. 24,99€ (Vorbesteller-Preisgarantie)
  3. Einzelne Folge für 2,99€ oder ganze Staffel für 19,99€ kaufen (Amazon Video)

Folgen Sie uns
       


  1. Mirai-Nachfolger

    Experten warnen vor "Cyber-Hurrican" durch neues Botnetz

  2. Europol

    EU will "Entschlüsselungsplattform" ausbauen

  3. Krack-Angriff

    AVM liefert erste Updates für Repeater und Powerline

  4. Spieleklassiker

    Mafia digital bei GoG erhältlich

  5. Air-Berlin-Insolvenz

    Bundesbeamte müssen videotelefonieren statt zu fliegen

  6. Fraport

    Autonomer Bus im dichten Verkehr auf dem Flughafen

  7. Mixed Reality

    Microsoft verdoppelt Sichtfeld der Hololens

  8. Nvidia

    Shield TV ohne Controller kostet 200 Euro

  9. Die Woche im Video

    Wegen Krack wie auf Crack!

  10. Windows 10

    Fall Creators Update macht Ryzen schneller



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
ZFS ausprobiert: Ein Dateisystem fürs Rechenzentrum im privaten Einsatz
ZFS ausprobiert
Ein Dateisystem fürs Rechenzentrum im privaten Einsatz
  1. Librem 5 Purism zeigt Funktionsprototyp für freies Linux-Smartphone
  2. Pipewire Fedora bekommt neues Multimedia-Framework
  3. Linux-Desktops Gnome 3.26 räumt die Systemeinstellungen auf

Verschlüsselung: Niemand hat die Absicht, TLS zu knacken
Verschlüsselung
Niemand hat die Absicht, TLS zu knacken
  1. RSA-Sicherheitslücke Infineon erzeugt Millionen unsicherer Krypto-Schlüssel
  2. TLS-Zertifikate Zertifizierungsstellen müssen CAA-Records prüfen
  3. Certificate Transparency Webanwendungen hacken, bevor sie installiert sind

Zotac Zbox PI225 im Test: Der Kreditkarten-Rechner
Zotac Zbox PI225 im Test
Der Kreditkarten-Rechner

  1. Und ...

    mhstar | 19:45

  2. Re: Dann eben nicht

    hum4n0id3 | 19:39

  3. Re: Scheint mir eigentlich ne gute Entwicklung ..

    derdiedas | 19:23

  4. Re: Toll Überschrift, doch leider Fail... XBox X...

    derdiedas | 19:17

  5. Re: schnell gelangweilt

    plutoniumsulfat | 19:08


  1. 14:50

  2. 13:27

  3. 11:25

  4. 17:14

  5. 16:25

  6. 15:34

  7. 13:05

  8. 11:59


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel