Wofür ist Quantum Computing gut?

Beim Thema Quantum Computing (QC) hat sich nach den durchaus realen Durchbrüchen in der Hardware und einigen spektakulären Ankündigungen unter Titeln wie „Quantum Supremacy“ der übliche Hype Cycle entwickelt mit einer Phase von vagen und überzogenen Erwartungen. Ich möchte hier versuchen, kurz einzuordnen, warum der enorme Aufwand in diesem Bereich überhaupt getrieben wird und welche realistischen Erwartungen dahinter stecken.

Um die fundamentalen Unterschiede zwischen QC und Classical Computing (CC) zu verstehen, muss man zunächst einen Schritt zurücktreten und sich fragen, auf welcher Basis beide Computing-Paradigmen operieren. Für das CC ist die Basis die universelle Turing-Maschine ausgedrückt in der allgegenwärtigen von-Neumann-Architektur. Das mag ein wenig abgehoben klingen, ist aber im Grunde einfach zu verstehen: Eine universelle Turing-Maschine abstrahiert den Sachverhalt, dass man in einen klassischen Computer jeden Algorithmus einprogrammieren kann (universell), der irgendwie (klassisch) algorithmisch ausdrückbar ist (Turing-Maschine).

Die weitaus meisten „Algorithmen“, die praktisch implementiert werden, sind dabei schlichte Sequenzen von Aktionen, die auf äußere Ereignisse reagieren wie Mausklicks auf einer Webseite, Transaktionen im Web-Shop oder Meldungen von anderen Computern im Netzwerk. Ein sehr sehr geringer, wenn auch wichtiger Anteil von Programmen macht das, was man im Allgemeinen mit dem Wort Algorithmus assoziiert, nämlich das Durchführen von Rechenoperationen zur Lösung eines mathematischen Problems. Die Turing-Maschine ist das angepasste Denkmodell zur Programmierung dieser Probleme und führt dazu, dass Programmiersprachen die Konstrukte aufweisen, die man gewohnt ist: Schleifen, Verzweigungen, elementare Rechenoperationen etc.

Was ist das Computing-Paradigma für einen Quantencomputer?

Ein Quantencomputer ist aufgebaut aus Quantenzuständen, die miteinander verschränkt werden können und über Quantengatter evolviert werden. Ist auch ein bisschen abgehoben, heißt aber einfach ausgedrückt, dass ein Quantencomputer so eingestellt wird, dass er einen (Quanten)Anfangszustand hat, der sich in der Zeit entwickelt und zum Schluss gemessen wird. Das Paradigma für einen Quantencomputer ist deshalb die Schrödingergleichung, die fundamentale Gleichung der Quantenmechanik. Ohne die Details zu verstehen, dürfte klar sein, dass sich Allerweltsprobleme schwer in den Formalismus der Quantenmechanik pressen lassen und dieser Aufwand wahrscheinlich auch keinen Gewinn bringt: Die Quantenmechanik ist eben nicht das angepasste Denkmodell für die meisten (Allerwelts-)Probleme und bei der Lösung auch nicht effizienter.

Was kann man dann damit?

Die Antwort ist sehr einfach: QC ist im Wesentlichen eine Methode zum Quantum Computing. Das klingt jetzt redundant, heißt aber, dass ein Quantencomputer eine universelle Maschine ist, um Quantensysteme zu berechnen. Dieser Vision, die Richard Feynman schon 1981 formuliert hat, folgt die Logik der Forschung bis heute. So ist es wenig überraschend, dass die Veröffentlichungen zum Thema, die sich mit Anwendungen befassen, entweder in der Quantenchemie oder der Grundlagenforschung der Physik angesiedelt sind [5][6].

Warum ist das wichtig?

Weil der klassische Computer sehr ineffizient darin ist, Quantensysteme zu berechnen oder zu simulieren. Diese Ineffizienz ist prinzipiell begründet in der mathematischen Struktur der Quantenmechanik und wird sich durch noch so gute klassische Algorithmen nicht beheben lassen. Neben Fragen der Grundlagenforschung wird QC wahrscheinlich auch wichtig werden im Bereich der Hardware klassischer Computer, wo man im Zuge der Miniaturisierung an Grenzen der Auslegung von Transistoren auf den Chips mit Hilfe der klassischen Theorien zur Elektrizität stößt. 

Daneben gibt es eine Reihe interessanter Verbindungen zur Zahlentheorie und anderen diversen Problemen, die man bisher als interessante Kuriosa einstufen kann. Allein die Verbindung zur Zahlentheorie könnte nach jetzigem Wissensstand eine erhebliche Auswirkung haben, da sich aus historischen Gründen fast alle praktischen asymmetrischen Verschlüsselungsverfahren auf Algorithmen stützen, die im Wesentlichen annehmen (einen Beweis dafür gibt es nicht), dass die Primzahlfaktorisierung mit klassischen Algorithmen nicht effizient zu lösen ist. Quantencomputer können das im Prinzip, sind jedoch hardware-technisch weit davon entfernt, das zu realisieren.

Nachhaltig kommunizieren statt talk and forget

Heute hatte ich eine Aufgabe zu erledigen, die wegen anderer dringlicher Themen zu lange liegen geblieben war. Das Team drängte mich, meinen Part endlich abzuschließen, um die Implementierung einer Funktion in der Software fertigzustellen. Die dafür zu klärende Logik war nicht ganz einfach und ich hatte Mühe, mich wieder hineinzudenken. Meine Aufgabenkarte auf dem Task Board war nur unkonkret formuliert und meine Erinnerung an das zugrundeliegende Meeting bereits verblasst. Also begann ich zu recherchieren und fand eine E-Mail, die mir wieder auf die Sprünge half.

Informationsverluste durch zu viele Kommunikationskanäle

Die gute alte E-Mail also. Dabei stehen mir doch deutlich modernere Kommunikationskanäle zur Verfügung. Nicht erst seit Corona bin ich es gewohnt, fast nur noch remote mit dem Team zusammenzuarbeiten, da wir über ganz Deutschland verteilt sind. Das funktioniert in unserem Fall auch ganz hervorragend, mit Hilfe von agilen Ritualen wie dem Daily Standup Meeting und Kommunikation über Video-Conferencing und Chat. Gelingende Kommunikation ist bekanntlich einer der wichtigsten Erfolgsfaktoren für ein gelingendes Projekt.

Bequem ist außerdem, dass man in Online-Meetings direkt Notizen erfassen oder Dokumente ablegen kann. Der Haken an der Sache: Am Ende stehen oft auch Beschlüsse und Fachliches im Chat. Meine gesuchte Information hätte also genauso gut dort zu finden sein können. In erstaunlich vielen Unternehmen kommt neben E-Mails und Chats noch immer ein weiterer potenzieller Auffindeort hinzu: Netzlaufwerke, auf denen Projektdokumente mehr oder weniger strukturiert abgelegt werden.

Kommunikation im Fachkontext heißt Finden statt Suchen

Viel Spaß beim Suchen, kann man da nur sagen! Dabei haben wir es bei CONTACT doch eigentlich viel leichter. Denn wir nutzen unsere eigene Software für das Projektmanagement. Und die bietet uns hervorragende Möglichkeiten, es besser zu machen. Neben der eigentlichen Projektmanagement-Funktionalität sind das insbesondere ein Dokumentenmanagement und eine Kommunikations-Funktion, die bei uns Activity Stream heißt.

Beiträge im Acitivity Stream – und das ist der Kernpunkt – können immer an ein Objekt geschrieben werden. Beispielsweise an ein Projekt, eine Aufgabe oder einen offenen Punkt. Oder, im Fall unserer Kunden, an Produktdaten wie ein CAD-Modell, eine Stückliste oder Simulationsdaten. Dadurch werden Projekt- und Produktdaten mit der zugehörigen Kommunikation vernetzt. So können Informationen nicht nur leichter in einem einzigen Tool gesucht und gefunden werden. Weil das Objekt als Ankerpunkt für die dazugehörige Kommunikation dient, werden bei dessen Aufrufen auch ohne Suche alle kontextrelevanten Informationen angezeigt.

Objekte en passant mit Information anreichern

Zurück zu meinem Fall: Um die Unordnung wieder aufzuräumen, habe ich an die erledigte Aufgabe ein Dokument mit meiner Lösung angehängt. Dazu die E-Mail, die mir dabei geholfen hat. Außerdem habe ich eine neue Aufgabe für die Implementierung durch meine Kolleg:innen erstellt und verknüpft sowie einen zusammenfassenden Activity Stream-Beitrag verfasst und mit ihnen geteilt.

So hängt nun zusammen, was zusammengehört. Selbst, wenn ein mit der Vorgeschichte nicht vertrautes Teammitglied die Implementierung übernimmt, sind alle Informationen sofort parat. Fragen könnte er oder sie über den Activity Stream stellen, ohne in einer Mail oder einem Chat erst umständlich den Kontext zu erklären. Hätte ich die Kommunikation von Anfang an im Aufgabenkontext im Activity Stream geführt, wäre die Information dort bereits verfügbar gewesen und ich hätte mir das Recherchieren und Zusammenführen ersparen können.

Gewohnheiten zu ändern lohnt sich

Was lernen wir daraus? Erstens: Ein Projektmanagementsystem mit Dokumentenmanagement und kontextbezogener Kommunikation à la Activity Stream verbessert die Zusammenarbeit enorm. Zweitens: Es gehört etwas Disziplin dazu, nicht bei der erstbesten Gelegenheit wieder auf andere Tools zurückzufallen – wie es mir passiert ist. Aber es erspart einem später viel Arbeit.

Ich sehe bei Kunden immer wieder Zögern, von E-Mail auf diese Art der kontextbezogenen Kommunikation umzusteigen. Ich kann dazu nur sagen: Trauen Sie sich! Stellen Sie Ihren Mitarbeitenden ein entsprechendes Werkzeug zur Verfügung und werben Sie dafür. Es ist anfangs ungewohnt und es dauert, bis es sich in der Breite durchsetzt. Aber es lohnt sich. Für die ganze Organisation wie für die einzelnen Mitarbeitenden!

Developer Experience – von intuitiv bis komplex

Es klingt nach einer spannenden Zukunftsvision: Anwender:innen jedes Fachbereichs nutzen vorgefertigte Programmbausteine, um schnell und einfach Simulationen, Optimierungsaufgaben oder Analysen mittels Künstlicher Intelligenz (KI) zu erstellen. Das können dann auch Fachabteilungen umsetzen, deren Mitarbeiter:innen nicht über Kenntnisse in einer höheren Programmiersprache verfügen. Soweit die Idee. Vorab müssen Entwickler:innen diese Programmbausteine natürlich erstellen, damit Fachanwender:innen daraus eine für ihre Anforderung passende Lösung zusammensetzen können.

KI-gestützte Analysen für die Fachabteilung

Gemeinsam mit unseren Partnern forschen wir im Projekt KI-Marktplatz daran, dieser Vision ein Stück näher zu kommen. Namensgebendes Ziel ist es, KI-Anwendungen auf dem Gebiet des Produktentstehungsprozess zu entwickeln und auf einer zentralen Handelsplattform anzubieten. Das Angebot soll zudem Services, wie zum Beispiel Seminare zu ausgewählten KI-Themen oder Auftragsentwicklungen sowie fertige KI-gestützte Apps und Programmblöcke für ganz spezielle Aufgaben umfassen. Die Entwicklung und Wiederverwendung der Apps befinden sich aktuell in der Erprobung. Parallel dazu evaluiert das Projektteam Nutzen und Qualität der Resultate.

Verschiedene Programmierebenen für eine breitere Anwendung

Soweit der Stand der Forschung, aber wie genau unterstützen wir bei CONTACT die Entwicklung wiederverwendbarer Programmbausteine, die Integration von Simulationsmodellen oder KI-gestützter Analysemethoden? Ein Beispiel für den Einsatz in der Praxis findet sich im Bereich der vorausschauenden Wartung (englisch: predictive maintenance). Vorausschauend heißt, dass Wartungszeiträume nicht wie bisher in festen Abständen stattfinden, sondern in Abhängigkeit von Betriebsdaten und Ereignissen an der Maschine oder Anlage berechnet werden. Unsere Plattform Elements for IoT stellt für solche Anwendungsfälle eine Lösung bereit, Betriebsdaten direkt zu analysieren. Dabei speichert der Digitale Zwilling die Daten der jeweiligen Maschine oder Anlage in einem eindeutigen Kontext. Diese lassen sich anhand einer blockbasierten Programmierung direkt abrufen und einfach auswerten. Mit der No-Code-Funktionalität der IoT-Plattform können Fachabteilungen Digitale Zwillinge intuitiv erstellen, automatische Regeln definieren und Ereignisse überwachen sowie Diagramme und Dashboards anlegen – ohne eine Zeile Code zu schreiben.

Darüber hinaus gibt es Anwendungen rund um den Digitalen Zwilling, die mehr Programmier-Know-how erfordern. Hierfür bietet die Plattform Analysten die Möglichkeit, mit einem Jupyter Notebook oder anderen Analysewerkzeug ihre Modelle in einer höheren Programmiersprache selbst zu entwickeln. Vor allem im Bereich des Prototyping ist Python die Sprache der Wahl. Es ist aber auch möglich, mit einer Compiler-basierten Programmiersprache wie C++ zu arbeiten. Eine kontinuierliche Berechnung der Prognosen erfolgt dann über eine Automatisierung der Modelle, die in einer Laufzeitumgebung zur Verfügung stehen. Die Ausführung des Codes erfolgt entweder in der eigenen IT-Infrastruktur oder direkt an der Anlage oder Maschine im Feld (Edge).

Dieses Vorgehen fassen wir unter dem Begriff Low-Code-Entwicklung zusammen, da nur noch der Code für die Entwicklung der Modelle geschrieben wird. Die Datenanbindung erfolgt über den Digitalen Zwilling und geschieht konfigurativ. Das Stück Programm-Code kann dann für verschiedene Anwendungen, wie beispielsweise Digitale Zwillinge innerhalb einer Flotte, als Programmblock wiederverwendet werden.

CONTACT Elements for IoT ist somit offen für Interaktionen auf unterschiedlichen Levels: Von der Verwendung vordefinierter Bausteine (No-Code), über die Möglichkeit, mit selbstgeschriebenem Programm-Code zu interagieren (Low-Code), bis zur Definition eigener Geschäftsobjekte und der Erweiterung der Plattform auf der Basis von Python.