Lernen Sie die Quantenprogrammierung in Python anhand von Beispielen. Yandex-Bericht

Heute kann jeder Quantenprogrammiertechniken verwenden, einfachen Python-Code schreiben und ihn auf einem echten Quantencomputer ausführen. Rishat Ibragimovrishat_ibrahimov untersuchten die Grundlagen des Quantencomputers anhand von Beispielen mit Code und zeigten, wie Programme auf einem lokalen Simulator und einem entfernten Quantencomputer ausgeführt werden.





- Hallo zusammen, ich heiße Rishat. Ich arbeite seit fast drei Jahren an der Qualität der Yandex-Suche. Aber heute möchte ich nicht über Arbeit sprechen, sondern darüber, was ich in meiner Freizeit mache. Ich beschäftige mich mit Quanteninformatik, aber tatsächlich - mit einer Vielzahl von Rechenmodellen, einschließlich Quantenmodellen.



Die Quanteninformatik ist derzeit ein interessantes Gebiet. Dort wird viel Mühe investiert, es wurde viel getan. In meinem Bericht werde ich versuchen, einige von Ihnen zu interessieren. Vielleicht gibt es einen coolen ML-Ingenieur unter Ihnen, der quantenmaschinelles Lernen betreiben möchte, oder nur einen starken Algorithmus, der in diese Richtung investieren kann. Es wird großartig sein, denn die Zukunft kommt bald.



Ich muss sofort sagen, dass ich kein Physiker bin. Sicherlich gibt es unter Ihnen Menschen, die all diese Prozesse in der Physik besser verstehen als ich. Daher werde ich fast nichts über Physik sagen.



Ich erwarte von Ihnen, dass Sie sich ein wenig an die Algebra erinnern, sich daran erinnern, was ein Vektor ist und wie man einen Vektor mit einer Matrix multipliziert.







Wie wird mein Bericht aufgebaut sein? Zuerst werden wir ein wenig über die Geschichte sprechen, darüber, woher alles kam, um sicher in die Zukunft zu schauen. Dann werden wir sehen, wo dies angewendet werden kann, welcher Zustand jetzt ist, ob es jetzt möglich ist, etwas mit Ihren Händen zu tun. Wir werden das erste Python-Programm schreiben, das auf einem Quantencomputer ausgeführt werden kann. Und als Bonus zeige ich Ihnen einige Beispiele für Algorithmen, mit denen Quantencomputer zu einer unvergleichlich besseren Leistung im Vergleich zu klassischen Algorithmen beitragen.







Wie hat alles angefangen? Von diesem jungen Mann. Dies ist Alan Turing, er kann sicher als der Vater der Informatik oder der Informatik bezeichnet werden, von dem wir alle jetzt leben, um Geld zu verdienen. In den 1930er Jahren entwickelte Turing ein Rechenmodell, das wir jetzt als programmierbaren Computer bezeichnen würden. Aber wird jemand diese Person erkennen?







Schwieriger. Sein Nachname steht sehr oft neben dem Nachnamen von Turing. Dies ist Alonzo Church, er beschäftigte sich auch mit Problemen der Berechenbarkeit und noch kurz bevor Turing seine eigenen Rechenmodelle entwickelte. Aber Turings Arbeit wurde populärer. Und im Allgemeinen war Church irgendwann Turings wissenschaftlicher Berater. Zusammengenommen sind ihre Namen normalerweise mit dieser These verbunden.



Die Church-Turing-These besagt: Jeder Prozess kann effizient auf einer Turing-Maschine modelliert werden. Dies sind die späten 30er - frühen 40er Jahre, und alles ist sehr gut. Seit ungefähr 30 Jahren ist alles sehr gut, bis diese beiden Leute auftauchten. Kennt jemand sie?







Dies ist bereits in den 70er Jahren, sehr nah an der Gegenwart. Ihre Nachnamen finden sich häufig in Kryptographiekursen. Dies sind Robert Nightingale und Volker Strassen. Diese beiden Personen sind dafür bekannt, einen probabilistischen Algorithmus zur Überprüfung einer Zahl auf Einfachheit zu entwickeln, den Solovey-Strassen-Test.



Und das ist ein sehr wichtiger Punkt für uns, denn bis jetzt haben wir gesagt, dass jeder algorithmische Prozess auf einer Turing-Maschine modelliert werden kann. Jetzt stellt sich jedoch heraus, dass ihr Algorithmus nicht modelliert werden kann. Es ist probabilistisch, es gibt nichts Vergleichbares in der Turing-Maschine.



Ich musste eine schnelle Lösung finden und sagen, dass jeder Prozess auf einer probabilistischen Turing-Maschine modelliert werden kann. Das ist nicht mehr sehr cool, sicher hat einer von euch eine Prise in der Brust. Sie dachten: wie so? Jetzt sagen wir "probabilistisch", in zehn Jahren wird etwas anderes entdeckt, etwas anderes muss korrigiert werden. Das ist nicht sehr angenehm. Aber du und ich sind natürlich nicht allein.







Da war noch ein junger Mann - David Deutsch. Und auch er fragte sich: Wie? Wie man lebt? Er ist ausgebildeter Physiker und widmete sein ganzes Leben der Physik. Und ich habe mich entschlossen, dieses Problem aus physikalischer Sicht anzugehen. Er sagte: Versuchen wir zu begründen, etwas zu bekommen, damit die Natur uns sagt, dass dies genau der Fall ist. Und die Natur hat damals schon gesagt (und wir glauben immer noch), dass es quantenmechanisch ist. Also suchten wir nach einer Antwort in der Quantenmechanik. Und mit David Deutsch begann mit seinen ersten Algorithmen die Quanteninformatik.



Dies ist ein so kleiner Ausflug in die Geschichte, dass Sie verstehen: Es kam nicht aus heiterem Himmel. In diesem Bereich gibt es echte theoretische Probleme, die die Menschen quälen, die alles begonnen haben.



Aber ist alles nur auf der Ebene der Theorie? Im Großen und Ganzen gibt es aus mathematischer Sicht keine Probleme mehr. Mathematisch wissen wir alles darüber, wie ein Quantencomputer funktionieren sollte. Jetzt gibt es bereits echte Quantencomputer mit unterschiedlichen Konfigurationen, die auf unterschiedliche Weise arbeiten. Und dies ist im Großen und Ganzen eine technische Herausforderung.



Zum Beispiel haben wir an unserem Institut eine ganze Abteilung, die sich mit Quanteninformatik befasst. Es gibt Mathematiker und Physiker. Die Physiker beschäftigen sich jetzt sehr intensiv mit dem Problem der Langzeitspeicherung von Quanteninformationen. Es ist unseren Festplatten sehr ähnlich, aber wir möchten, dass dort Quanteninformationen gespeichert werden.







Was nützt diese gesamte Wirtschaft? Das erste, was mir in den Sinn kommt, ist natürlich die Modellierung von Prozessen, denn die Welt ist quantenmechanisch. Und wenn wir einen Quantencomputer verwenden, um Prozesse, chemische Reaktionen oder was auch immer zu simulieren, ist dies rechnerisch viel billiger.



Der zweite und sehr große Abschnitt, dem jetzt viele Anstrengungen gewidmet sind, ist das quantenmaschinelle Lernen. Es besteht große Hoffnung, dass Quantencomputer dazu beitragen werden, die Lernprozesse selbst zu beschleunigen und Algorithmen zu verbessern. Hier wird viel gearbeitet. Jetzt arbeitet unsere Quantengruppe zum Beispiel mit einem Wissenschaftler aus China zusammen. Er ist ein sehr starker ML-Ingenieur, und wir haben ein bisschen Quantenbias und versuchen, gemeinsam etwas zu finden.



Das dritte war vor ein paar Monaten ein bisschen Hype. Vielleicht schläft der Hype schon, aber es gibt sogar eine ganze Quantenblockkette. Es wurde von meinem guten Freund und guten Freund erfunden. Das bin ich, sage ich ein wenig stolz.



Aber wir haben keinen Quantencomputer. Leider können wir nicht so einfach nach Hause kommen und Programme ausführen wie in Python.



Was zu tun ist? Ich dachte darüber nach, was ich in meinem dritten Jahr tun sollte, als ich meine erste Hausarbeit schrieb. Ich habe einen Quantencomputer-Emulator geschrieben. Natürlich schreibt jeder Emulatoren und jeder benutzt sie irgendwie. In meinem vierten Jahr habe ich einen Emulator geschrieben, der Interferenzen, Rauschen usw. simuliert. Und dann langweilte ich mich.



Ich habe versucht, in einer Suchmaschine zu suchen und festgestellt, dass es viele Emulatoren gibt. Hier sind einige Links, sie sind recht einfach und interessant:





Aber ich möchte bei Qiskit aufhören. Er ist etwas Besonderes, hebt sich von allen ab. Als?







Es funktioniert in zwei Modi. Der erste ist, wie alle anderen auch, ein regulärer lokaler Emulator. Die zweite Möglichkeit besteht darin, Ihr Programm auf einem echten IBM Q-Quantencomputer auszuführen, der ungefähr so ​​aussieht.







Jetzt ist es ein ganzes Fass, in dem eine extrem niedrige Temperatur aufrechterhalten wird - ungefähr drei Millikelvin. Es ist sehr kalt. Und IBM bietet die Cloud-basierte Möglichkeit, Ihren Code direkt auf diesem Computer zu verbinden und auszuführen.



Natürlich kompiliert er Befehle und so weiter auf besondere Weise. Wie funktioniert es überhaupt? Es gibt mehrere Installationen eines solchen Computers für den allgemeinen Zugriff. Eines davon ist 5 Qubit, es gibt 15 Qubit, 16 Qubit, sogar 20 Qubits stehen uns zur Verfügung. Dies sind ungefähr 20 Bits gewöhnlicher, klassischer Informationen, aber schon etwas.



Hier denken sicher viele von Ihnen: Das ist es, ich will es! Aber du musst dich an ein bisschen Mathe erinnern. Ein bisschen Algebra, aber nur ein bisschen, wie ich versprochen habe.



Um mit dem Programmieren auf einem Quantencomputer zu beginnen, müssen Sie verstehen, was ein Qubit ist. Es ist nur ein Vektor im 2D-Vektorraum. Da es sich jedoch um Vektorräume handelt, haben sie eine Basis.







Die Basis sieht ungefähr so ​​aus. Es gibt zwei Vektorspalten und eine Einheitsbasis, Standard, in Algebra-Kursen wird sie wie folgt bezeichnet:

[10]

und

[01]

. Und in Diracs Notation gibt es eine Standardnotation in diesen spitzen Klammern.



Das heißt, damit Sie nicht verwirrt werden, werde ich so weiter verkürzen.







Und da es sich um einen Vektor handelt, kann sein Zustand so geschrieben werden. Ein Qubit q ist eine Überlagerung zweier Basisvektoren, wobei α und β komplexe Zahlen sind, aber keine absolut beliebigen Zahlen, sondern dass die Summe der Module ihrer Quadrate gleich eins ist.







Wenn wir versuchen, dieses Ding zu zeichnen, erhalten wir, dass ein Qubit ein Vektor auf einer dreidimensionalen Kugel ist. Eine unendliche Menge an Informationen kann in einem Qubit gespeichert werden, da es sich nur um einen Vektor handelt, von dem es eine unendliche Menge gibt.



Sie müssen nicht auf das Bild achten, es ist nur eine Visualisierungstechnik, um Aufmerksamkeit zu erregen.



Wir haben über Qubits gesprochen. Am wichtigsten ist, dass ein Qubit ein Vektor ist. Vektor im komplexen Vektorraum. Was kannst du damit machen?







Das erste, was wir gemacht haben, ist zu versuchen, den Wert unserer Variablen zu berechnen, zum Beispiel in Python. Wir wollen lesen, in welchem ​​Zustand sich das Qubit befindet. Aber wir werden niemals die genaue Bedeutung von α und β kennen.



Wenn wir versuchen, ein Qubit zu betrachten und es zu lesen, erhalten wir entweder eine Null oder eine Eins mit den entsprechenden Wahrscheinlichkeiten. Wahrscheinlichkeiten sind einfach Projektionen auf die entsprechenden Basisvektoren.



Das zweite, was wir tun können, ist zum Beispiel ein Qubit zu klonen. Wir nennen dies das Zuweisen einer Variablen zu einer anderen. Leider ist dies in der Quantenwelt nicht möglich.







Es gibt keine Zuweisungsoperation, und dies hängt sehr mit dem zusammen, was ich gerade gesagt habe: Wir werden nicht einmal in der Lage sein, den genauen Wert zu sehen. Dies ist ein grundlegendes Ergebnis. Es ist sehr einfach bewiesen : buchstäblich zwei Vergleichslinien durch Widerspruch.







Es gibt ein Qubit, das wir nicht lesen und nicht klonen können. Was können Sie überhaupt tun?



Ein Qubit ist ein Vektor. Der Vektor kann aufgenommen und um die Kugel gedreht werden. Zum Drehen können Sie sich eine Matrix vorstellen, die diese Drehung vornimmt. Alle Operationen an Qubits sind Matrizen. Sie werden einheitlich genannt.



Einheitlich - damit eine solche Bedingung erfüllt ist, wird sie hier auf listige Weise geschrieben. Dieses Symbol kennzeichnet eine transponierte und komplexe konjugierte Matrix. Diese Eigenschaft ist sehr wichtig, es bedeutet, dass es für jede Operation eine Umkehrung gibt. Das heißt, egal wie wir den Vektor verdrehen, wir können ihn immer an seine vorherige Position zurückbringen. Es gibt immer eine umgekehrte Operation.



Mal sehen, was Operationen sein können. Was wir im klassischen Fall gewohnt sind. Es gibt eine Null, Sie können sie in eine verwandeln und umgekehrt.







Dies ist der Negationsoperator und sehr einfach. Es wird mit einer solchen Matrix aufgezeichnet. Wenn wir versuchen zu multiplizieren, bekommen wir genau das, was wir wollen.







Ich habe es sogar hier gezeichnet. Nichts kompliziertes. Der Negationsoperator hat eine Standardnotation, den X-Operator. Wenn Sie sich das vorstellen, ist es nur eine Drehung um eine der Achsen. Und es gibt Operatoren Y und Z, die sich um andere Achsen drehen, aber das ist jetzt nicht so wichtig.



Und wir können unser erstes Programm bereits auf einem Quantencomputer ausführen, der ein Qubit negiert.



Aber wir in der Quanteninformatik schreiben natürlich sehr selten in Python. Wir verwenden häufiger Schemata.







Das Diagramm sieht normalerweise so aus. Die horizontalen Linien sind einfach Qubit-Werte. Ich habe fünf davon hier gezeichnet. Und im Block - die Operation, die wir machen werden.



Erster Block. Hier wird ein Messgerät gezeichnet. Das heißt, wir wollen nur messen, was sich im ersten Qubit befindet.







Wenn wir dieses Ding ausführen, erhalten wir mit einer Wahrscheinlichkeit von eins eine Null, da sie in diesem Zustand initialisiert sind und wir nichts mit ihnen gemacht haben.







So etwas kann in Python mit der qiskit-Bibliothek geschrieben werden. Mal sehen, was hier Zeile für Zeile passiert. Zuerst starten wir das Quantenregister. Ich schalte es hier von einem Qubit aus ein. Und das klassische Register. Das klassische Register wird benötigt, um das Messergebnis irgendwo zu schreiben. Das heißt, ich mache Transformationen mit einem Quantenregister, das Ergebnis ist eine klassische Eins - Null oder Eins. Und dann erstelle ich meine eigene Schaltung, die dieses quantenklassische Qubit hat. Ich sage nur: Lass uns das Q-Qubit in C messen. Lass uns diese ganze Sache beginnen und alles wird gut. Aber der aufmerksame Leser wird sehen: Hier steht, dass mein Backend ein lokaler Emulator ist.







Das gleiche kann mit IBM Q gemacht werden, aber hier gibt es etwas mehr Code. Es gibt alle möglichen Nudeln bei der Auswahl eines Geräts, das so schnell wie möglich auf uns reagiert und einige Token überträgt. Das ist alles. Aber es gibt nichts Schwieriges.







Das gleiche kann mit dem Negationsoperator gemacht werden. Dies ist der X-Operator, wie gesagt. Auf dem Diagramm sieht es genauso aus. Lassen Sie uns dasselbe ausführen.







Jetzt bekommen wir mit einer Wahrscheinlichkeit von eins wie geplant einen. Keine Magie.







Der Code ist der gleiche. Es ist nur so, dass ich hier auch den X-Operator auf das q-Qubit anwende.



Okay, lass uns versuchen weiter zu gehen.







Hier gibt es eine sehr knifflige Sache. Versuchen wir, diesen Zustand zu erreichen. Dieser Zustand ist sehr interessant. Wir werden eine solche Überlagerung bekommen. Wenn wir versuchen, es zu messen, erhalten wir mit einer Wahrscheinlichkeit von 1/2 entweder null oder eins. Das heißt, es wird eine so einheitliche Überlagerung sein, dass wir alles bekommen können.



Es kann eine Analogie zu einem Quantenmünzwurf gezogen werden. Wir werden okay sagen, mit der Wahrscheinlichkeit ½ bekommen wir null und eins. Die Matrix sieht so aus.







Leicht zu überprüfen, aber wir werden es bestimmt nicht. Zeichnen wir ein Diagramm. Betreiber H zu Ehren von Hadamard.







Lassen Sie uns messen und ungefähr das bekommen, was wir erwarten. Mit einer Wahrscheinlichkeit von ½, null und eins. Ein bisschen mehr, ein bisschen weniger, aber so funktioniert es.



Hier ist der Python-Code. Um dort zu sein, sind wir auf einer Python-Konferenz.







Es gibt eine solche Überlagerung. Wir wenden den Hadamard-Operator darauf an und messen.



Aber Sie können zweimal eine Münze werfen, daran sind wir alle gewöhnt. Wenn Sie zweimal eine Münze werfen, ändert sich nichts. Versuchen wir dies im Quantenfall.







Wir wenden den Hadamard-Operator zweimal hintereinander an und erhalten immer eine Null.







Das heißt, wenn Sie eine Quantenmünze zweimal werfen, erhalten Sie immer eine Null, da der Hadamard-Operator zu sich selbst invers ist. Wenn Sie sich selbst vermehren, erhalten Sie immer eine. Hier ist eine Sache.



Sie können also etwas mit einem Qubit machen. Kann verdreht, verdreht und gemessen werden. Versuchen wir, weitere Qubits hinzuzufügen. Was sind wir in der klassischen Welt gewohnt? Nehmen Sie einfache logische Operationen "oder" und "und" und führen Sie sie aus.







In der Quantenwelt können Sie dies nicht tun, da sie nicht vollständig reversibel sind. Das heißt, wenn wir in der "und" -Operation Null bekommen, können wir nie wissen, was die Anfangswerte waren.



Und in der Quantenwelt ist eine Operation, wie gesagt, eine einheitliche Matrix, die immer reversibel ist. Wie programmieren Sie dann überhaupt? Alles, was wir gewohnt sind, bröckelt. Aber ein neuer Held erscheint, dies ist der Operator der sogenannten kontrollierten Negation.







Wenn wir in Python schreiben würden, würde es so aussehen. Wenn das erste Qubit eins ist, invertieren wir das zweite Qubit. Dies ist keine Matrix, so sieht der Operator aus. Aber im Prinzip ist das, was ich gesagt habe, hier geschrieben. Wo im ersten Qubit Einheit ist, wird das zweite invertiert.







Die Matrix ist bereits vier mal vier. Für zwei Qubits sieht es so aus. Ich lasse das Problem mit einem Sternchen multiplizieren und prüfen, ob dies der Fall ist.







Dieses Ding kann sogar programmiert werden. Keine Raketenwissenschaft. Sie müssen nur eine Schaltung mit zwei Qubits erstellen, mit zwei klassischen, und nicht nur CNOT, sondern CX, kontrollierte Negation.



Die Negation war der X-Operator, daher ist im Prinzip alles logisch. Und Sie können ein Diagramm zeichnen. Das Schema ist wie folgt.







Das heißt, kontrollierte Negation ist ein solches Plus für das Qubit, dass wir es ändern wollen. Und der Punkt, der die Kontrolle ist. Wenn hier das Qubit in Einheit ist, werden wir das zweite ändern.







Hier invertiere ich speziell zuerst das erste, so dass es eins ist, und dann messe ich beide und erhalte das Ergebnis | 11⟩. Alles ist wie wir erwartet hatten.



Jetzt ist es an der Zeit, unser gesamtes Wissen gemeinsam zu nutzen.







Nehmen wir alle drei oder vier Operatoren, die wir kennen, und fügen sie in ein Schema ein. Das heißt, wir wenden den Hadamard-Operator auf den ersten Operator an. Invertieren Sie die zweite, dann alle zusammen, führen Sie eine kontrollierte Negation durch und messen Sie.



Lassen Sie es uns noch nicht ausführen, aber versuchen Sie zu erraten, was passieren wird.







Wenn wir den Hadamard-Operator auf das erste Qubit anwenden und das zweite negieren, erhalten wir eine solche Überlagerung. Ich möchte jetzt keine Zeit mit dem Überprüfen verschwenden, es kann leicht multipliziert werden. Aber die Position ist sehr interessant. Erstens ist es der Uniform sehr ähnlich, und zweitens wird dieser Zustand jetzt als verwickelt bezeichnet, wenn wir auch kontrollierte Negation nehmen.







Der Staat ist verwirrend. Und warum? Versuchen wir, eine Messung durchzuführen. Wenn ich das erste Qubit messe und es im Zustand Null habe, kann ich sagen, dass das zweite Qubit notwendigerweise im Zustand Eins ist.



Das heißt, wenn ich mit meinen Qubits eine solche Transformation vornehme, gebe ich meinem Freund ein Qubit, er wird nach New York fliegen, und ich messe das zweite Qubit an mir selbst. Ich werde genau wissen, in welchem ​​Zustand sich sein Qubit befindet. Dies wird als Effekt der Quantenverschränkung oder der Quantenverbindung bezeichnet. Und dies ist der Hauptmechanismus, mit dem Quantencomputer arbeiten. Es wird sich ändern, sie sind sehr starr miteinander verbunden, und während der Messung können wir nur | 00⟩ oder | 11⟩ erhalten.



Bei dieser Gelegenheit gibt es eine sehr interessante Illustration zugunsten eines Wissenschaftlers, meiner Meinung nach des Österreichers, der sehr abwesend war (Update ).







Die Ablenkung war, dass er die ganze Zeit verschiedene Socken trug. Und seine Kollegen scherzten über ihn: Wenn er mit einem Fuß den Raum betritt und wir sehen, dass die Socke rosa ist, können wir definitiv sagen, dass die zweite Socke nicht rosa ist. So geht es.







Wenn wir dieses Ding laufen lassen, bekommen wir genau das, was wir wollen. Es ist schon ziemlich lustig hier. Die Wahrscheinlichkeit beträgt genau 0,5, aber das ist ein Zufall.







Wenn wir ehrlich auf einem Quantencomputer laufen, bekommen wir dieses Bild. Wir scheinen zu sagen: Der Zustand | 00⟩ kann niemals erhalten werden und der Zustand | 11⟩ kann niemals erhalten werden. Aber es funktioniert immer noch: Der aktuelle Stand der Technik ist so, dass es Geräusche gibt, die nicht immer leicht unterdrückt werden können. Und sie kämpfen damit.



Aber wenn Sie sich an die klassische Informatik erinnern, ist es dasselbe: Fehlerkorrekturcodes und all das. Es ist nur so, dass das Qubit zu klein ist, um zusätzliche Bits für die Fehlerkorrektur auszugeben.



Nun, wie ich versprochen habe, einige Beispiele für Algorithmen. Aber dies sind nur unbegründete Beispiele ohne Analyse von Algorithmen, so dass Sie schauen, denken, interessiert werden.







Der erste Algorithmus bezieht sich nur auf Deutsch, über das wir am Anfang gesprochen haben. Dies ist der Deutsch-Jozy-Algorithmus. Und er macht folgendes. Stellen Sie sich vor, wir haben eine Boolesche Funktion in n Variablen. Und wir wissen mit Sicherheit, dass es entweder konstant oder ausgeglichen ist. Ausgeglichen bedeutet, dass genau die Hälfte der Argumente gleich Null und die andere Hälfte gleich Eins ist. Versuchen wir klassisch zu überprüfen, ob es konstant ist oder nicht.



Dazu müssen wir mindestens die Hälfte aller möglichen Optionen prüfen: 2 n - 1 + 1 Option. Mit dem Quantenalgorithmus können Sie dies in n Aufrufen der Funktion selbst und in n Berechnungen der Funktion selbst tun. Dies ist eine exponentiell geringere Anzahl von Treffern.



Das zweite Beispiel ist wahrscheinlich jedem bekannt, weil sie sagen, dass Quantencomputer die gesamte Kryptographie zerstören werden: Wir können Zahlenquanten sehr schnell faktorisieren.







Hier werden Schwierigkeitsschätzungen angegeben, und es gibt ein fantastisches Beispiel. Im Jahr 2011 wurde die Zahl 15 auf einem echten Computer berücksichtigt. Es dauerte sieben Qubits.







Aber nicht alles ist so schlecht. Falls Quantencomputer das Niveau erreichen, auf dem Sie RSA brechen können, gibt es bereits eine Post-Quanten-Kryptographie. Es basiert auf fehlerhaftem Lernen. In diesem Fall wird ein kleiner Fehler in das Problem eingefügt, sodass es sehr schwierig ist, eine Antwort zu finden. Normalerweise sind dies Gleichungen oder Gleichungssysteme. Hier ist ein Beispiel für den Algorithmus. Wer will, kann genauer lesen.



Am interessantesten: Der New Hope-Algorithmus basiert auf dieser Sache , der neuen Hoffnung der gesamten Menschheit. Im Jahr 2016 hat Chrome die Unterstützung für diesen Algorithmus hinzugefügt . Hier gibt es einen Link zum Blog. Das war nicht meine Idee, alles ist wirklich so. Die Zukunft ist schon da.



Es gibt ein paar Links am Ende:





Das ist mehr oder weniger alles. Ich möchte nur hinzufügen, dass Computer vor ungefähr 50 Jahren, als Deutsch anfing, Quanteninformationswissenschaften zu betreiben, groß waren. Sie wurden von mehreren Firmen hergestellt. Sie hatten ungefähr die Größe eines Kleiderschranks. Und jetzt stellen ungefähr dieselben Unternehmen große Quantencomputer her. Und natürlich wissen wir nicht, was in 50 Jahren passieren wird.



Wenn Sie versuchen, Ihre bevorzugte Suchmaschine einzugeben, können Sie heute freie Stellen für einen Quantenprogrammierer finden. Sicher, es gibt mehr Forschung da draußen, aber trotzdem. Vielen Dank.



All Articles