5 Selecting outcomes with quantum oracles

 

This chapter covers

  • Specifying “good” outcomes of quantum computations with quantum oracles
  • Implementing phase and bit quantum oracles
  • Converting between phase and bit quantum oracles

In chapter 1, we discussed three main patterns of quantum computations:

  • Sampling from probability distributions
  • Searching for specific outcomes
  • Estimating the probability of specific outcomes

We explored several examples of the first pattern: sampling from probability distributions encoded into quantum states. In this chapter, we will learn how to identify specific outcomes of a quantum computation. This is an essential component for implementing solutions to problems that involve searching for certain outcomes or estimating the probabilities of certain outcomes.

Depending on the problem context, the possible outcomes of a quantum computation may represent items in an unstructured database, choices in a binary optimization problem, or the possible prices of a stock at a specific point in time. To search for an item in a database, find an optimal selection, or estimate the probability of a price, we need to specify desired outcomes in each context. To specify desired outcomes, we will use a quantum oracle. An oracle is a quantum circuit that recognizes desired outcomes and “tags” or marks them in some way.

5.1 Describing outcomes with quantum oracles: Intuition and classical implementation

5.1.1 Phase oracles

5.1.2 Bit oracles

5.2 Quantum implementation of oracles

5.2.1 Creating quantum circuits from building blocks

5.2.2 Phase oracle

5.2.3 Bit oracle

5.3 Converting between phase and bit quantum oracles

5.3.1 Converting a phase oracle to a bit oracle

5.3.2 Converting a bit oracle to a phase oracle

5.4 Fibonacci numbers and the golden ratio with good outcomes

Summary