Quantensimulator-Lab: Qubits, Gatter und Messung in JupyterLab
Dieses Lab gibt jeder lernenden Person ein eigenes JupyterLab mit einem kleinen Quantensimulator, qsim.py, geschrieben in etwa 70 Zeilen NumPy, die man von oben bis unten lesen kann. Der Arbeitsordner enthält außerdem ein Start-Notebook und kurze Skripte, die ein Qubit erzeugen, Gatter anwenden, messen, einen Bell-Zustand bauen und Interferenz zeigen.
Es ist ein Simulator, der auf einem gewöhnlichen Computer läuft. Er ist kein Quantencomputer, und er kann nicht zeigen, dass ein Quantencomputer schneller ist: Er hält jede Amplitude im Speicher, also verdoppelt jedes weitere Qubit die Arbeit. Er zeigt die Regeln. Es ist kein Angriffs-Lab: Jede Kopie hat keinen Weg ins Internet und keinen zu anderen Lernenden.
Was die Lernenden lernen
Dass ein Qubit durch Amplituden beschrieben wird und die Wahrscheinlichkeit einer Antwort die Amplitude zum Quadrat ist. Dass ein Gatter die Amplituden verändert: X vertauscht 0 und 1, H macht eine gleichmäßige Mischung. Dass eine Messung zufällig eine Antwort liefert, sodass 1000 Durchläufe einer gleichmäßigen Mischung nahe bei je 500 liegen und nie genau dabei. Dass ein Bell-Zustand zwei Qubits so verbindet, dass sie immer übereinstimmen, und dass sich Amplituden auslöschen können, was Interferenz ist. Zuletzt ein Schritt, der vier Einträge zum markierten lenkt. Das passt für einen ersten Blick auf Quantencomputing bei Lernenden mit etwas Python; prüfen Sie die genaue Formulierung in der Einheit Ihrer eigenen Prüfstelle, hier wird keine zitiert.
Im Browser ausführen
Das Lab startet einen Dienst, jupyter, der den Simulator, das Notebook und die kurzen Skripte in seinen Arbeitsordner schreibt. JupyterLab verlangt kein Token, weil die Tür der Plattform schon weiß, wer es öffnet. Das Terminal neben dem Lab hat kein eigenes Python, es erreicht das des Labs mit docker exec jupyter, gefolgt vom Befehl, der darin ausgeführt wird.
- Container-Seite öffnen. Öffnen Sie in der Leiste „Entwickeln“ und wählen Sie „Einen Container ausführen“. Die Seite kann jeder öffnen, und das Git-Lab und das SQL-Lab starten ohne Konto. Alle anderen Labs brauchen ein kostenloses Konto: Erstellen Sie eines, melden Sie sich an und klicken Sie dann auf „Starten“.
- Lab suchen. Die Karte „Beispiel-Labs“ listet alle Beispiele auf. Suchen Sie JupyterLab: ein Quantensimulator.
- Auf „Starten“ klicken. „Starten“ führt das Lab unverändert mit einem einzigen Klick aus. „Zuerst die Datei bearbeiten“ öffnet die Compose-Datei, damit Sie sie vor dem Start ändern können.
- Öffnen. Auf der Seite des Labs hat die Lab-Leiste einen Link namens JupyterLab: Klicken Sie darauf, um JupyterLab im Browser zu öffnen, und doppelklicken Sie auf start.ipynb. Klicken Sie dann auf „Terminal öffnen“ und tippen Sie docker exec jupyter python3 steps/qubit.py, um ein Qubit im Zustand |0> zu sehen.
Was die Lernenden abgeben sollen
Ein eigenes Notebook, das qsim.py benutzt, zum Beispiel einen Drei-Qubit-Zustand mit H auf jedem Qubit oder was ein anderes Gatter mit |0> macht, aus JupyterLab mit File, Download heruntergeladen. Dazu ein oder zwei Sätze in eigenen Worten dazu, was sie gesehen haben und was ein Simulator nicht zeigen kann. Nichts wird automatisch bewertet: Der Satz zeigt, ob es verstanden wurde. Für anspruchsvollere Arbeit lassen Sie die Zählwerte vorhersagen, bevor eine Zelle ausgeführt wird.
Eine Grundlagenlektion zu diesem Lab
Quantum Simulator Basics ist eine kleine Lektion, die in diesem Lab abläuft. Darin listen die Lernenden den Arbeitsordner auf, erzeugen ein Qubit, wenden X und H an, messen mit festem Startwert, bauen einen Bell-Zustand, sehen Amplituden sich auslöschen und lenken vier Einträge zum markierten.
Sie ist bewusst klein: Sie zeigt Lehrkräften, was eine Lektion in einem Lab ist, und das Lab erledigt den Rest. Kopieren Sie sie in ein eigenes Modul, um sie zu ändern.
Der Code auf GitHub
Die Compose-Datei hat kein Dockerfile: Sie startet ein einziges öffentliches Standard-Image, das scipy-notebook der Jupyter Docker Stacks, auf ein datiertes Tag festgelegt, als eigenes unprivilegiertes Konto mit 512 MB Speicher. Das Image steht unter BSD-3-Clause und wird nicht von uns verteilt. Die Datei schreibt qsim.py und die Skripte beim Start, lädt nichts herunter, und jedes Skript gibt jedes Mal dasselbe aus. Die Grenzen sind ehrlich: Es ist ein Simulator und zeigt keine Geschwindigkeit, er hält jede Amplitude und taugt daher nur für wenige Qubits, und aus dem Internet lässt sich nichts installieren. Beim Stoppen des Labs bleibt nichts erhalten, die Lernenden laden ihr Notebook also vorher herunter.
Als Aufgabe stellen
Schreiben Sie in die Aufgabe, was abzugeben ist.
- Lab erstellen. Fügen Sie in Ihrem Modul eine Aufgabe hinzu und wählen Sie die Karte „Container-Lab“, dann „In einem GitHub-Repository“. Geben Sie https://github.com/mitsurutech/lab-quantum-sim mit dem Branch main an. Die Compose-Datei ist standardmäßig compose.yaml. Forken Sie das Repository zuerst, wenn Sie es ändern möchten, zum Beispiel um ein eigenes Gatter hinzuzufügen.
- Veröffentlichen und ausprobieren. „Veröffentlichen“ legt den Commit fest, den Sie gesehen haben. Eine spätere Änderung im Repository verändert also kein Lab, das Sie bereits gestellt haben. Starten Sie zuerst Ihre eigene Kopie.
- Zuweisen. Weisen Sie es wie jede Aufgabe zu, auf Wunsch mit Fälligkeitsdatum, und schreiben Sie in die Aufgabe, was zu tun ist und was abgegeben werden soll.
- Abgaben bewerten. Öffnen Sie die Kopie einer lernenden Person und die abgegebene Arbeit, bewerten Sie sie und geben Sie sie mit einer Begründung zur Überarbeitung zurück, wenn mehr nötig ist.
Dieses Lab ausprobieren, und was es kostet
Mit einem kostenlosen persönlichen Konto können Sie die Grundlagenlektionen in diesem Lab durcharbeiten, mit genug kostenlosem Guthaben pro Monat für die meisten Lektionen und ohne Karte. Für eine Klasse sind die ersten 365 Tage für eine Schule kostenlos, für bis zu 50 Lernende; danach zahlt sie je lernender Person und Jahr, alle Labs inklusive und Lehrkräfte kostenlos.
Häufige Fragen
- Ist das ein echter Quantencomputer?
- Nein. Es ist ein Simulator: ein gewöhnliches Programm, das die Regeln der Qubits mit NumPy befolgt. Er eignet sich zum Lernen der Regeln und kann nicht zeigen, ob ein Quantencomputer schneller ist, denn er arbeitet, indem er jede Amplitude speichert.
- Warum gibt ein Lauf jedes Mal dieselben Zählwerte aus?
- Die Messung bekommt einen Startwert, und derselbe Startwert liefert dieselben Ziehungen. Ändere den Startwert, und die Zählwerte ändern sich ein wenig, wie es der Zufall tut. Die Skripte legen ihn fest, damit Lektion und Bildschirm übereinstimmen.
- Warum benutzt das Terminal docker exec jupyter?
- Das Terminal des Labs enthält curl, psql und ein paar andere Clients, aber kein Python. docker exec jupyter führt einen Befehl im Container des Labs aus, der Python und NumPy hat. JupyterLab hat auch ein eigenes Terminal, unter File, New, Terminal.