Gibt es einen Studienführer, der von einem „reinen CS-Hintergrund“ ausgeht und sich zum „Erstellen einer neuen Quantenprogrammiersprache“ entwickelt?


12

Ich komme aus der Informatik und finde es schwierig, mich für die Ressourcen zu entscheiden, auf die ich mich beim Erlernen des Quantencomputers konzentrieren sollte, da es so viel zu lesen / zu sehen gibt. Mein letztendliches Ziel ist es, eine Programmiersprache zu schaffen, die als Schnittstelle zwischen Quantencomputern und der Person fungiert, die 1972 ähnelt, als C erstellt wurde. Als realistische Zwischenstufe möchte ich zum Schreiben von Programmen auf IBMs QISKit kommen.

Dafür würde ich einen schematischen Studienführer benötigen, um den notwendigen Hintergrund in Physik und den damit verbundenen Bereichen zu erlangen, die erforderlich sind, um in den Bereich des Quantencomputers einzutauchen. Existiert dies bereits: eine geordnete Liste unverzichtbarer Konzepte und Fähigkeiten, die zu beherrschen sind und in denen nach Möglichkeit auch angemessenes Material erwähnt wird, um jedes von ihnen zu erwerben ?

Nehmen Sie ein Physikwissen der High School an. Stellen Sie einen Studienführer bereit, dh vom Anfänger bis zum Experten. Versuchen Sie, Video- / Buchressourcen, denen man folgen sollte, in chronologischer Reihenfolge aufzulisten, um ein Experte auf dem Gebiet des Quantencomputers zu werden, bis ich meine eigene Quantencomputersprache schreiben kann (vorausgesetzt, ich habe bereits andere CS-Kenntnisse, um die Sprache zu schreiben). .



3
Willkommen bei Quantum Computing SE! Derzeit lässt der Titel dieser Frage den Anschein erwecken, dass Sie etwas Breites und Meinungsbasiertes fragen (wofür das SE-Q & A-Format nicht ausgelegt ist), obwohl der Hauptteil der Frage klar macht, dass es sich tatsächlich um eine handelt Ressourcenanforderung (was akzeptabel ist). Daher ist es am hilfreichsten, wenn Sie Ihren Fragentitel so bearbeiten , dass er genauer beschreibt, was Sie wissen möchten. Darüber hinaus kann es hilfreich sein, wenn Sie genau angeben, welche Antworten auf die in den Kommentaren verknüpfte Frage fehlen, damit wir Ihnen besser helfen können. Vielen Dank!
Mithrandir24601

1
Beachten Sie insbesondere unsere Richtlinien zu Fragen zu Ressourcenanfragen . Das ist viel zu weit gefasst.
Heidekraut

1
Denken Sie an etwas wie nand2tetris, aber an Quanten? Oder so etwas wie das Buch „Quantum Computing für Informatiker“?
James Wootton

1
Dank Ihrer Änderungen glaube ich, dass dies jetzt die Anforderungen für Ressourcenanforderungen erfüllt, und habe es daher wieder geöffnet.
Heidekraut

Antworten:


11

Ich glaube nicht, dass es eine einzige goldene Ressource gibt, mit der Sie alle notwendigen Kenntnisse erwerben können. Aber ich könnte einen Weg vorschlagen (oder einen schematischen Studienführer in Ihren Worten):

Wenn Sie eine neue Quantenprogrammiersprache erstellen möchten, sollten Sie zunächst eine vorhandene Quantenprogrammiersprache zusammen mit den Grundkonzepten des Quantencomputers gründlich lernen, sowohl von der Seite der Physik als auch von der Seite der Informatik (möglicherweise sogar der Mathematik) Seite!).

  • Microsoft hat seine Quantenprogrammiersprache Q # (die Teil des Quantum Development Kit ist ). Die vollständige Dokumentation mit Anleitung finden Sie auf der Website: https://docs.microsoft.com/en-us/quantum . Wenn Sie von der CS-Seite sind, hoffe ich, dass Sie bereits einige Kenntnisse über Vektoren, Matrizen und lineare Algebra im Allgemeinen haben. In diesem Fall können Sie den Leitfaden Artikel für Artikel direkt lesen. Zunächst beginnen sie mit einer kurzen Überarbeitung von Matrizen, Vektoren usw., gefolgt von einer kurzen Einführung in Qubits. Das reicht aus, um zumindest mit dem Schreiben eines grundlegenden Quantenprogramms mit minimalem Verständnis der dahinter stehenden Physik zu beginnen. Übrigens, wenn Ihre linearen Algebra-Konzepte schwach sind, können Sie es immer versuchenDie Vorträge der Khan Academy darüber .

  • Als nächstes möchten Sie zumindest einige Grundlagen der Quantenmechanik lernen. Ich persönlich liebe die Vorträge von Professor Vazirani , die jetzt auf Youtube sind. In etwa 60 zehnminütigen Vorlesungen behandelt er alle notwendigen Grundlagen der Quantenmechanik und der Quantenberechnungsalgorithmen. Danach sind Sie in guter Verfassung, um selbst neue Algorithmen zu erlernen.

  • Als dritten Schritt würde ich vorschlagen, " Quantenberechnung und Quanteninformation von Isaac Chuang und Michael Nielsen " und " Quantencomputer für Informatiker von Mirco A. Mannucci und Noson S. Yanofsky " zu verwenden, um die wichtigen Themen zu behandeln, die Sie behandeln verpasst.

Das sollte für Sie ausreichen, um eine solide Grundlage für das Schreiben Ihrer eigenen Quantenprogrammiersprache zu erhalten. Sie können auch in Tutorials für die anderen gängigen Quantencomputersprachen nachsehen, wie Sie Quantenprogramme schreiben und Quantenprogrammiersprachen entwerfen.


6

Ich würde vorschlagen, dass Sie darüber nachdenken, ob das Ziel, "eine neue Quantenprogrammiersprache zu erstellen", an dieser Stelle in der Entwicklung der Quantenberechnung geeignet ist. Dies ist nicht der gängigste Ansatz, da wir uns meistens noch im Stadium des Denkens in Bezug auf die im Wesentlichen maschinelle Sprache befinden. Wenn wir Algorithmen erstellen, ähnelt die Ebene, auf der dies erfolgt, dem Ausdrücken klassischer Algorithmen in Form von Logikgattern (wie in diesem Beispiel für die Multiplikation). Die Quanten-SDKs wie QISKit sind im Wesentlichen Möglichkeiten zum Erstellen von Jobs, die an Quantenhardware oder Simulatoren gesendet werden. Dies umfasst Tools zum Durchführen von Simulationen, zum Optimieren der Laufzeit oder des Geräuschpegels usw. Sie sind nicht wirklich Sprachen im hohen Sinne, wie wir es für klassische Berechnungen gewohnt sind.

Für eine Einführung in das, was auf dieser Ebene des Quantenstapels vor sich geht, könnte Q is for Quantum von Terry Rudolph hilfreich sein.

Für Ihr Zwischenziel, Programme mit QISKit zu schreiben, würde ich das QISKit-Tutorial empfehlen . Es hat viele Beispiele für die Implementierung kurzer Quantenprogramme gegeben. Es gibt auch eine QISKit-Veröffentlichung auf Medium, in der einige Dinge im Tutorial ausführlicher erklärt werden. Es gibt auch ein gamifiziertes Tutorial zu QISKit , das als Aufwärmübung für das vollständige QISKit-Tutorial nützlich sein kann.

Vollständige Offenlegung: Ich habe zu allen im letzten Absatz genannten Dingen beigetragen.


3
Ich möchte dem nicht zustimmen. Sobald FORTRAN entwickelt wurde (als digitale Computer noch recht primitiv waren), wurde es anstelle der Maschinensprache verwendet, und dies war wahrscheinlich der größte Sprung in den Programmiersprachen in der Geschichte der klassischen Computer. Warum sollten wir Menschen zwingen, in Maschinensprache für Quantencomputer zu programmieren? (Ich bin sicher, sie werden es aus Effizienzgründen tun, aber sie sollten nicht dazu gezwungen werden.)
Peter Shor

1
Toller Punkt! Ich würde sagen, dass die Hardware im Moment nicht viel über die Maschinensprache hinaus denken kann. Aber es wäre großartig, wenn man sich als falsch erweisen würde.
James Wootton

Ich habe meine Antwort ein wenig bearbeitet, um die Negativität abzuschwächen, und nur darauf hingewiesen, dass dies im Moment nicht die übliche Vorgehensweise ist (obwohl das nicht bedeutet, dass es falsch ist)
James Wootton
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.