liveBook · Manning

Grover iterate

As explained in Building Quantum Software with Python

A Grover iteration is one application of a Grover operator within a quantum search procedure.

A Grover iterate, or Grover operator, is one repeatable amplification step in quantum search. It applies an oracle that tags desired outcomes by multiplying their amplitudes by −1, then applies an inversion operator that raises the magnitudes of tagged outcomes while lowering those of untagged outcomes. Repeating the iterate makes desired measurement outcomes more likely. section 6.1.4 section 6.3

Magnitude amplification starts by preparing a state with an operator A, then applies G a chosen number of times: GjA. The iterate is tied to the prepared state because its inversion operator corresponds to that state. In circuit form, the general construction is G = AM0A−1O, with O as the oracle and M0 as the inversion about the zero state. section 6.1 section 6.2.3

Figure 6.16 Circuit diagram of the magnitude amplification procedure GjA, where g consists of an oracle O and the inversion operator M
figure

Use the circuit diagram to separate state preparation A from the repeated block G, whose oracle precedes inversion. section 6.1.4

Implement one iteration as a reusable circuit-building pattern:

  • Accept an oracle O and a state-preparation operator A for the same number of qubits. section 6.2.3
  • Append O first so desired outcomes are tagged. section 6.2.3 section 6.3
  • Append the inversion circuit derived from A to complete the iterate. section 6.2.3
  • Repeat the completed G block rather than rebuilding search logic for every iteration. section 6.1.4

Three-qubit search for outcome 3

Prepare a uniform three-qubit state, mark outcome 3 with a predicate, and apply the classical Grover procedure. After one iteration the good outcome’s amplitude increases; after two it increases further. Assertions compare the simulated state with the expected amplitude for the selected iteration count. section 6.1.4 section 6.1.4

The number of iterations matters. For a uniform state with n qubits and L good outcomes, a suggested count uses floor(π/4 √(2n/L)); the ideal count depends on how many outcomes the oracle specifies, which may not be known. Amplifying amplitudes alone is not the advantage: measurement and an efficient oracle are essential to an effective search procedure. section 6.1.4 section 6.2 section 10.2

Search encoded function values

Construct an oracle over a value register, then use it in a Grover operator to search an encoded function. For f(k) = k + 1 on two key qubits, an oracle matching a leading value bit of 1 identifies outputs at least 4; after one iteration, the matching key–value pair has magnitude 1. section 10.2

How Building Quantum Software with Python covers it

How deep it goes
Derives repeated probability behavior and implements both classical simulation and a quantum circuit.
Examples
Uses uniform three-qubit search for outcome 3 and searches encoded polynomial function values.
What it assumes
Assumes quantum oracles and state preparation while introducing the Grover iterate as their repeated amplification pattern.
What you can do after
Build it from scratch as a circuit that appends an oracle followed by inversion derived from state preparation.
How it connects
Connects amplitude amplification with quantum oracles, inversion operators, state preparation, and quantum measurement.

Also explained in

Compare how 2 books explain Grover iterate →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Building Quantum Software with Python. The section links point to the parts of the book it draws on.