What is Quantum Computing good for?

When it comes to quantum computing (QC), after the quite real breakthroughs in hardware and some spectacular announcements under titles like “Quantum Supremacy“, the usual hype cycle has developed with a phase of vague and exaggerated expectations. I would like to briefly outline here why the enormous effort is being made in this area and what realistic expectations lie behind it.

To understand the fundamental differences between QC and Classical Computing (CC), we first need to take a step back and ask on what basis both computing paradigms operate. For the CC, the basis is the universal Turing machine expressed in the ubiquitous von Neumann architecture. This may sound a bit outlandish, but in principle it is easy to understand: An universal Turing machine abstracts the fact of programming any algorithm into a classical computer (universal) that is somehow (classically) algorithmically expressible (Turing machine).

The vast majority of “algorithms” that are implemented in practice are simple sequences of actions that react to external events such as mouse clicks on a web page, transactions in a web store or messages from other computers in the network. A very very small, but important, number of programs do what is generally associated with the word algorithm, which is to perform arithmetic operations to solve a mathematical problem. The Turing machine is the adapted thought model for programming these problems and leads to programming languages having the constructs we are used to: loops, branches, elementary arithmetic operations etc.

What is the computing paradigm for a quantum computer?

A quantum computer is built up of quantum states that can be entangled with each other and evolved via quantum gates. This is also a bit off the wall, but simply means that a quantum computer is set to have an initial (quantum) state that evolves in time and is measured at the end. The paradigm for a quantum computer is therefore the Schrödinger equation, the fundamental equation of quantum mechanics. Even without understanding the details, it should be clear that everyday problems are difficult to squeeze into the formalism of quantum mechanics and this effort probably does not bring any profit: Quantum mechanics is just not the adjusted model of thought for the most (“everyday”) problems and it is also not more efficient in solving them.

So what can you do with it?

The answer is very simple: QC is essentially a method for quantum computing. Now this sounds redundant, but it means that a quantum computer is a universal machine to calculate quantum systems. This vision, formulated by Richard Feynman way back in 1981, is still followed by the logic of research today. Thus, it is not surprising that publications on the subject dealing with applications are located either in quantum chemistry or in the basic research of physics [5][6].

Why does this matter?

Because the classical computer is very inefficient in calculating or simulating quantum systems. This inefficiency is basically due to the mathematical structure of quantum mechanics and will not be solved by classical algorithms, no matter how good they are. In addition to basic research issues, QC is likely to become important in the hardware of classical computers, where miniaturization is pushing the limits of designing transistors on chips using classical theories of electricity. 

Besides, there are a lot of interesting connections to number theory and other various problems, which so far can be classified as interesting curiosities. Based on current knowledge, the connection to number theory alone could have a significant impact, because for historical reasons almost all practical asymmetric encryption schemes rely on algorithms that essentially assume (there is no proof) that prime number factorization cannot be solved efficiently with classical algorithms. Quantum computers can do this in principle but are far away from being able to do so in terms of hardware.

Developer Experience – from intuitive to complex

It sounds like an exciting vision of the future: users from every discipline can use ready-made program modules to quickly and easily create simulations, optimization tasks or analyses using artificial intelligence (AI). This can then also be implemented by departments whose employees do not have knowledge of a high-level programming language. That’s the idea. Of course, developers must first create these program modules so business users can assemble a solution that meets their requirements.

AI-powered analytics for the business department

Together with our partners, we are researching in the AI marketplace project to get closer to this vision. The name-giving goal is to develop AI applications in the field of the product development process and offer them on a central trading platform. The range will also include services such as seminars on selected AI topics or contract development as well as ready-made AI-supported apps and program blocks for very specific tasks. The development and reuse of the apps are currently being tested. The project team is evaluating the benefits and quality of the results at the same time.

Different programming levels for extended use

So that’ s the state of research, but how exactly do we at CONTACT support the development of reusable program modules, the integration of simulation models or AI-supported analysis methods? One example of practical application can be found in the area of predictive maintenance. Predictive maintenance means that maintenance periods do not take place at fixed intervals as before, but are calculated depending on operating data and events at the machine or plant. For such use cases, our Elements for IoT platform provides a solution to analyze operating data directly. The digital twin stores the data of the machine or plant in a unique context. This data can be directly retrieved and easily analyzed using block-based programming. With the no-code functionality of the IoT platform, departments can intuitively create digital twins, define automatic rules and monitor events, and create diagrams and dashboards – without writing a line of code.

In addition, there are applications around the Digital Twin that require more programming expertise. For this, the platform offers analysts the possibility to develop their models themselves in a higher programming language using a Jupyter Notebook or other analysis tools. Especially in the area of prototyping, Python is the language of choice. However, it is also possible to work with a compiler-based programming language such as C++. Continuous calculation of the predictions is then done by automating the models, which are available in a runtime environment. The code is executed either in the company’s own IT infrastructure or directly at the plant or machine in the field (edge).

We call this procedure low-code development, because only the code for developing the models is written. The data connection is made via the Digital Twin and is done configurationally. The piece of program code can then be reused as a program block for various applications, such as digital twins within a fleet.

CONTACT Elements for IoT is thus open to interactions at different levels: from the use of predefined building blocks (no-code), to the possibility of interacting with self-written program code (low-code), to the definition of own business objects and the extension of the platform based on Python.

AI – Where we are in the Hype Cycle and how it continues

While the artificial intelligence index shows that the increase of research articles and conferences in the field of AI continues, the media is slowly showing some fatigue in the face of the hype. So it’s time to take stock: What has been achieved? What is practically possible? And what is the way forward?

What has been achieved?

In the years 2018 and 2019 the previously developed methods for the application of neural networks (this is how I define AI here) were further refined and perfected. Whereas the focus was initially (2012-2016, Imagenet competition) on methods for image classification and processing and then on audio methods (2015-2017, launch of Alexa and other language assistants), major advances in text processing and generation were made in 2019 (NLP = natural language processing). Overall, the available technologies have been further improved and combined with a great deal of effort, especially from the major players (Google, Facebook, OpenAI, Microsoft).

What is practically possible?

The use of AI is still essentially limited to four areas of application:

  • Images: image recognition and segmentation
  • Audio: Conversion from speech to text and vice versa
  • NLP: word processing and generation
  • Labeled Data: Prediction of the label (e.g. price) from a set of features

This list is surprisingly short, measured by the attention AI receives in the media. The most impressive successes of AI, however, result from a combination of techniques such as speech assistants using a combination of audio, NLP and labeled data to convert the input into text, recognition of text intention with NLP and prediction of the speaker’s wish by using huge amounts of labeled data, meaning previous evaluations of similar utterances.

Decisive for the development of precisely these AI application fields were

  1. the existence of large quantities of freely available benchmark data sets (data sets for machine learning) on which algorithms have been developed and compared
  2. a large community of researchers who have jointly agreed on the benchmark data sets and compared their algorithms in public competitions (GLUE, Benchmarks AI, Machine Translation, etc.)
  3. a free availability of the developed models, which serve as a starting point for the practical application (exemplary Tensorflow Hub)

Based on these prerequisites one can quickly assess how realistic some marketing fantasies are. For example, there are neither benchmark data sets nor a community of researchers for the often strikingly presented field of application of predictive maintenance, and accordingly there are no models.

What’s next?

On the one hand, it is foreseeable that the further development in the AI area will certainly continue initially in the above-mentioned fields of application and continue to develop in the peripheral areas. On the other hand, areas are emerging which, similar to the above-mentioned fields of application, will be driven forward at the expense of large public and private funds (e.g. OpenAI and Deepmind are being subsidised by Elon Musk and Google with billions of euros respectively). An example of large investments in this area is certainly autonomous driving, but also the area of IoT. In total, I see the following areas developing strongly in 2020-2022:

  • The combination of reinforcement learning with AI areas for faster learning of models
  • A further strengthening in the area of autonomous driving resulting from the application and combination of AI and reinforcement learning
  • Breakthroughs in the generalization of the knowledge gained from image processing to 3D (Geometric Deep Learning and Graph Networks)
  • A fusion of traditional methods from statistics with neural networks
  • IoT time series (see below)

I see a big change coming with the rise of IoT and the associated sensor technology and data. By their very nature, IoT data are time series that must be filtered, combined, smoothed and enriched for evaluation. Relatively little specific has been done to date for this purpose. It could be that from 2020 – 2022, this topic could hold some surprising twists and breakthroughs for us. German industry in particular, which has benefited rather little from the initial developments in the field of AI, should find a promising area of application here.