Quantenmechanik ist eine grundlegende Theorie der Physik, die Phänomene auf mikroskopischer Ebene (wie Atome und subatomare Teilchen) erklärt. Dieses „neue“ (1900) Fachgebiet unterscheidet sich von der klassischen Physik, die die Natur auf makroskopischer Ebene beschreibt (wie Körper und Maschinen) und nicht auf der Quantenebene gilt.

Quantencomputing ist die Ausnutzung der Eigenschaften der Quantenmechanik, um Berechnungen durchzuführen und Probleme zu lösen, die ein klassischer Pc nicht kann und niemals lösen kann.

Normale Pc sprechen das Binärcode Sprache: Sie weisen jedem Zeichen und jeder Anweisung ein Muster aus binären Ziffern (1en und 0en) zu und speichern und verarbeiten diese Informationen in Bits. Sogar Ihr Python-Code wird in Binärziffern übersetzt, wenn er auf Ihrem Laptop computer ausgeführt wird. Zum Beispiel:

Das Wort „Hello“ → „h“: 01001000 und „ich“: 0110100101001000 01101001

Auf der anderen Seite verarbeiten Quantencomputer Informationen mit Qubits (Quantenbits), die gleichzeitig 0 und 1 sein können. Das macht Quantenmaschinen für bestimmte Probleme (z. B. probabilistische Berechnungen) erheblich schneller als normale.

Quantencomputer

Quantencomputer nutzen Atome und Elektronen anstelle klassischer Chips auf Siliziumbasis. Dadurch können sie die Quantenmechanik nutzen, um Berechnungen viel schneller als normale Maschinen durchzuführen. Beispielsweise reichen 8 Bits für einen klassischen Pc aus, um jede Zahl zwischen 0 und 255 darzustellen, aber 8 Qubits reichen für einen Quantencomputer aus, um jede Zahl zwischen 0 und 255 darzustellen gleichzeitig. Ein paar hundert Qubits würden ausreichen, um mehr Zahlen darzustellen, als es Atome im Universum gibt.

Das Gehirn eines Quantencomputers ist winzig Qubit-Chip aus Metallen oder Saphir.

Foto von Niek Doup An Unsplash

Der ikonischste Teil ist jedoch die große Kühlvorrichtung aus Gold, die wie ein Kronleuchter aussieht, der in einem Stahlzylinder hängt: der Verdünnungskühlschrank. Es kühlt den Chip auf eine Temperatur ab, die kälter als der Weltraum ist, da Wärme Quantenzustände zerstört (grundsätzlich gilt: Je kälter es ist, desto genauer wird es).

Foto von Planetenvolumina An Unsplash

Das ist die führende Artwork von Architektur und nennt sich supraleitende Qubits: künstliche Atome, die aus Schaltkreisen mit Supraleitern (wie Aluminium) hergestellt werden, die bei extrem niedrigen Temperaturen keinen elektrischen Widerstand aufweisen. Eine various Architektur sind Ionenfallen (geladene Atome, die in elektromagnetischen Feldern im Ultrahochvakuum gefangen werden), die genauer, aber langsamer als erstere sind.

Es gibt keine genaue öffentliche Zählung darüber, wie viele Quantencomputer es gibt, Schätzungen gehen jedoch von rund 200 weltweit aus. Die derzeit fortschrittlichsten sind:

  1. IBMs Kondordie größte bisher gebaute Qubit-Anzahl (1000 Qubits), auch wenn dies allein keine sinnvolle Berechnung darstellt, da Fehlerraten immer noch eine Rolle spielen.
  2. Googles Willow (105 Qubits), mit guter Fehlerrate, aber immer noch weit entfernt von fehlertolerantem Computing im großen Maßstab.
  3. IonQs Tempo (100 Qubits), Ionenfallen-Quantencomputer mit guten Fähigkeiten, aber immer noch langsamer als supraleitende Maschinen.
  4. Quantinuums Helios (98 Qubits) verwendet eine Ionenfallenarchitektur mit einer der höchsten Genauigkeiten, über die heute berichtet wird.
  5. Rigetti Computing Ankaa (80 Qubits).
  6. Intels Tunnelfälle (12 Qubits).
  7. Kanada Xanadus Aurora (12 Qubits), der erste photonische Quantencomputer, der Licht anstelle von Elektronen zur Informationsverarbeitung verwendet.
  8. Microsofts Majoranader erste Pc, der für eine Skalierung auf eine Million Qubits auf einem einzigen Chip ausgelegt ist (derzeit verfügt er jedoch über 8 Qubits).
  9. chinesisch SpinQs Minider erste tragbare kleine Quantencomputer (2 Qubits).
  10. NVIDIAs QPU (Quantenverarbeitungseinheit), das erste GPU-beschleunigte Quantensystem.

Im Second ist es für einen normalen Menschen unmöglich, einen großen Quantencomputer zu besitzen, aber man kann über die Cloud darauf zugreifen.

Aufstellen

In Python gibt es mehrere Bibliotheken für die Arbeit mit Quantencomputern auf der ganzen Welt:

  • Qiskit von IBM ist das umfassendste Excessive-Stage-Ökosystem zum Ausführen von Quantenprogrammen auf IBM Quantencomputern, perfekt für Anfänger.
  • Cirq von Google, das sich der Low-Stage-Kontrolle seiner {Hardware} widmet und besser für die Forschung geeignet ist.
  • PennyLane von Xanadu ist auf Quantum Machine Studying spezialisiert und läuft auf proprietären photonischen Computern, kann aber auch mit anderen Anbietern verbunden werden.
  • ProjektQ von der ETH Zürich, einem Open-Supply-Projekt, das versucht, das wichtigste Allzweckpaket für Quantencomputing zu werden.

Für dieses Tutorial werde ich IBM verwenden Qiskit da es der Branchenführer ist (pip set up qiskit).

Der einfachste Code, den wir schreiben können, besteht darin, einen zu erstellen Quantenschaltung (Umgebung für Quantenberechnungen) mit nur einem Qubit und initialisieren Sie es als 0. Um den Zustand des Qubits zu messen, benötigen wir ein Zustandsvektorwas Ihnen im Grunde die aktuelle Quantenrealität Ihrer Schaltung verrät.

from qiskit import QuantumCircuit
from qiskit.quantum_info import Statevector

q = QuantumCircuit(1,0) #circuit with 1 quantum bit and 0 basic bit
state = Statevector.from_instruction(q) #measure state
state.possibilities() #print prob%

Das bedeutet: Die Wahrscheinlichkeit, dass das Qubit 0 ist (erstes Ingredient), beträgt 100 %, während die Wahrscheinlichkeit, dass das Qubit 1 ist (zweites Ingredient), 0 % beträgt. Sie können es so ausdrucken:

print(f"(q=0 {spherical(state.possibilities()(0)*100)}%, 
         q=1 {spherical(state.possibilities()(1)*100)}%)")

Lassen Sie uns den Zustand visualisieren:

from qiskit.visualization import plot_bloch_multivector

plot_bloch_multivector(state, figsize=(3,3))

Wie Sie der 3D-Darstellung des Quantenzustands entnehmen können, ist das Qubit zu 100 % bei 0. Das conflict das Quantenäquivalent von „Hallo Welt“, und jetzt können wir zum Quantenäquivalent von „ übergehen1+1=2„.

Qubits

Qubits haben zwei grundlegende Eigenschaften der Quantenmechanik: Überlagerung und Verschränkung.

Überlagerung — klassische Bits können entweder 1 oder 0 sein, aber niemals beides. Im Gegenteil, ein Qubit kann beides sein (technisch gesehen ist es eine lineare Kombination einer unendlichen Anzahl von Zuständen zwischen 1 und 0), und nur wenn es gemessen wird, bricht die Überlagerung auf 1 oder 0 zusammen und bleibt für immer so. Dies liegt daran, dass die Beobachtung eines Quantenteilchens es dazu zwingt, einen klassischen binären Zustand von entweder 1 oder 0 anzunehmen (im Grunde die Geschichte von Schrödingers Katze die wir alle kennen und lieben). Daher hat ein Qubit eine gewisse Wahrscheinlichkeit, auf 1 oder 0 zu kollabieren.

q = QuantumCircuit(1,0)
q.h(0) #add Superposition
state = Statevector.from_instruction(q) 
print(f"(q=0 {spherical(state.possibilities()(0)*100)}%, 
         q=1 {spherical(state.possibilities()(1)*100)}%)")
plot_bloch_multivector(state, figsize=(3,3))

Mit der Überlagerung haben wir „Zufälligkeit“ eingeführt, sodass der Vektorzustand zwischen 0 und 1 liegt. Anstelle einer Vektordarstellung können wir eine q-Kugel verwenden, bei der die Größe der Punkte proportional zur Wahrscheinlichkeit des entsprechenden Termes im Zustand ist.

from qiskit.visualization import plot_state_qsphere

plot_state_qsphere(state, figsize=(4,4))

Das Qubit ist sowohl 0 als auch 1, mit jeweils 50 % Wahrscheinlichkeit. Aber was passiert, wenn wir messen Es? Manchmal ist es eine feste 1 und manchmal eine feste 0.

consequence, collapsed = state.measure() #Superposition disappears
print("measured:", consequence)
plot_state_qsphere(collapsed, figsize=(4,4)) #plot collapsed state

Verstrickung — Klassische Bits sind unabhängig voneinander, während Qubits miteinander verschränkt sein können. Wenn das passiert, sind Qubits unabhängig von der Entfernung für immer korreliert (oft als mathematische Metapher für Liebe verwendet).

q = QuantumCircuit(2,0) #circuit with 2 quantum bits and 0 basic bit
q.h((0)) #add Superposition on the first qubit
state = Statevector.from_circuit(q) 
plot_bloch_multivector(state, figsize=(3,3))

Wir haben das erste Qubit in Superposition zwischen 0-1, das zweite bei 0, und jetzt werde ich sie verschränken. Wenn additionally das erste Teilchen gemessen wird und auf 1 oder 0 kollabiert, ändert sich auch das zweite Teilchen (nicht unbedingt zum gleichen Ergebnis, eines kann 0 sein, während das andere 1 ist).

q.cx(control_qubit=0, target_qubit=1) #Entanglement
state = Statevector.from_circuit(q)
consequence, collapsed = state.measure((0)) #measure the first qubit
plot_bloch_multivector(collapsed, figsize=(3,3))

Wie Sie sehen können, wurde das erste Qubit, das sich in Superposition befand, gemessen und auf 1 kollabiert. Gleichzeitig ist das zweite Quibit mit dem ersten verschränkt und hat sich daher ebenfalls verändert.

Abschluss

Dieser Artikel conflict ein Tutorial zu Einführung in die Grundlagen des Quantencomputings mit Python und Qiskit. Wir haben gelernt, wie man mit Qubits und ihren zwei grundlegenden Eigenschaften arbeitet: Superposition und Verschränkung. Im nächsten Tutorial werden wir Qubits verwenden, um Quantenmodelle zu erstellen.

Vollständiger Code für diesen Artikel: GitHub

Ich hoffe, es hat Ihnen gefallen! Kontaktieren Sie mich gerne für Fragen und Suggestions oder einfach nur, um mir Ihre interessanten Projekte mitzuteilen.

👉 Lassen Sie uns verbinden 👈

(Alle Bilder stammen vom Autor, sofern nicht anders angegeben)

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert