Open Source im professionellen Einsatz

Newsletter abonnieren
Seite durchsuchen

HEFTARCHIV | NEWS | E-BIBLIOTHEK | VIDEO | BLOGS | WHITEPAPER | EVENTS | ACADEMY | ABO | SHOP

user friendly

  Home  »  Online Artikel  »  Quantenrechner simulieren, Teil 2  

RSS-Feed der aktuellen News von Linux-Magazin Online Folgen Sie Linux-Magazin Online auf Twitter
Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark

Algorithmus Advanced

Der Deutsch-Jozsa-Algorithmus beantwortet die Frage, ob eine Funktion f konstant (zum Beispiel f(x)=0) oder alternierend ist (zum Beispiel f(0)=0, f(1)=1, f(2)=0, ...).

Mit einem klassischen Rechner sind mindestens zwei Aufrufe der algebraischen Funktion f nötig, um die Frage zu beantworten. Der Deutsch-Jozsa-Algorithmus hingegen liefert die richtige Antwort mit nur einem einzelnen Funktionsaufruf (Listing 4). Dieser einfache Quantenalgorithmus ist also jedem klassischen Algorithmus überlegen.

Der Grund ist, dass der Deutsch-Jozsa-Algorithmus nach einem Aufruf der algebraischen Funktion alle möglichen Eingangswerte in eine Superposition bringt und damit auch alle Funktionswerte in einer Superposition vorliegen. Die Funktion wird praktisch für alle Werte gleichzeitig ausgewertet. Welcher Fall (konstant oder alternierend) vorliegt, kann über die Variable constant gesteuert werden. Um den binären Endzustand zu erreichen, wird die Superposition nach dem Funktionsaufruf wieder aufgehoben und das Ergebnis gemessen. Ist die Funktion konstant, liefert die Messung eine 1, ist sie alternierend, eine 0.

Listing 4: Der Deutsch-Jozsa-Algorithmus

#include <quantum.h>
#include <time.h>
#include <stdlib.h>
#include <stdio.h>

void f (quantum_reg *reg)
{
  int constant = 0;
  if(!constant)
    quantum_cnot(0, 2, reg);
}

int main ()
{
  quantum_reg reg;
  srand(time(0));
  reg = quantum_new_qureg(5, 3);
  quantum_hadamard(0, &reg);
  quantum_hadamard(1, &reg);
  quantum_hadamard(2, &reg);
  f(&reg);
  quantum_hadamard(0, &reg);
  quantum_hadamard(1, &reg);
  printf("Ergebnis: %i\n", quantum_bmeasure(0, &reg));
  return 0;
}

Immer grüßt die Dekohärenz

Um auch die in einem Quantencomputer unvermeidbaren Fehler durch Dekohärenz zu berücksichtigen, schaltet der Programmierer die Dekohärenz-Effekte zu Beginn der Simulation ein:

quantum_set_decoherence(0.1);

Damit wird nach jedem Quantengatter ein zufälliger Phasenfehler auf jedes Qubit angewendet. Der Parameter der Funktion gibt die Stärke des Phasenfehlers an.

Allerdings ist der simulierte Quantencomputer der Dekohärenz nicht hoffnungslos ausgeliefert. Quantenfehlerkorrekur-Verfahren (quantum error correction, QEC) sind in der Lage, die Auswirkungen von Fehlern durch Dekohärenz einzudämmen. QEC kann in Libquantum bequem mit

quantum_qec_encode(1, 3, &reg);

aktiviert werden. Der erste Parameter bezeichnet das verwendete Verfahren (hier der Steane-Algorithmus). Der zweite Parameter gibt die Anzahl der mit QEC zu schützenden Qubits an. Nach der Rechnung kann QEC mittels

quantum_qec_decode(1, 3, &reg);

wieder abgeschaltet werden und Messungen können wie gewohnt vor sich gehen.


			Vergleich der Erfolgswahrscheinlichkeiten für den Deutsch-Jozsa-Algorithmus unter Berücksichtigung von Dekohärenz und QEC.

Vergleich der Erfolgswahrscheinlichkeiten für den Deutsch-Jozsa-Algorithmus unter Berücksichtigung von Dekohärenz und QEC.

Abbildung 3 zeigt die Auswirkungen von Dekohärenz und QEC auf eine Variante des Deutsch-Jozsa-Algorithmus. Ohne Dekohärenz wird stets das richtige Ergebnis gemessen. Finden dagegen die Fehler durch Dekohärenz Berücksichtigung, aber keine QEC wird durchgeführt, sinkt die Wahrscheinlichkeit für das richtige Ergebnis deutlich ab. Bei Verwendung von QEC steigt die Wahrscheinlichkeit wieder an.

Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark
Ähnliche Artikel
Quantenrechner simulieren, Teil 1 Quantenrechner simulieren
In Kinderschuhen Anwendungen für das Trusted Platform Module
Virtuelle Welt Interaktive 3D-Welten mit Coin und Qt
Leserbriefe Auf den Punkt gebracht
Höllenglut Trusted Computing für Linux: Stand der Dinge
Zufall unter Beobachtung OCR im Eigenbau mit Perl-Modulen
Whitepaper
Usage Landscape Enterprise Open Source Data Integration

Die Nachfrage nach Datenintegrationslösungen für Unternehmen ist zunehmend gestiegen und vor allem das Interesse an Open Source Technologien wird immer größer. Doch wie und von wem werden Open Source Datenintegrationslösungen genutzt und welches Nutzungsverhalten lässt sich daraus ableiten? Das vorliegende White Paper präsentiert die Erfahrungswerte von über 1000 Open Source Nutzern und liefert fundierte Antworten auf diese Fragen.

Download PDF (Registrierung erforderlich)
Daten Migration - Eine Publikation von Bloor Research

Datenmigrationsprojekte überschreiten häufig das Budget, neigen zu Verzögerung und werden unter Umständen komplett abgebrochen. Bloor Research ist eines der weltweit führenden IT-Forschungs-, Analyse- und Beratungsunternehmen und wird in dem vorliegenden White Paper die wichtigsten Aspekte dieser Problematik näher beleuchten. Ferner werden praktische Empfehlungen für erfolgreiche Migrationsprojekte gegeben, die Sie auf Ihr nächstes Projekt übertragen können.

Download PDF (Registrierung erforderlich)
Kommentare (0)