Generation of a GHZ state#

Description#

The circuit in Figure 9 illustrates an algorithm for the generation of a GHZ state (169) from primitive \(\ket{0}\) states.

A quantum circuit diagram depicting the generation of a GHZ state.
A quantum circuit diagram depicting the generation of a GHZ state.

The complete unitary transformation described by this circuit is the product

(326)#\[\Unitary = \Control^1 \NOT^2 \cdot \Control^0 \NOT^1 \cdot \Hadamard^0.\]

Implementation#

Listing 9 /text/examples/algorithms/generation_ghz.py#
from qhronology.quantum.states import VectorState
from qhronology.quantum.gates import Hadamard, Not
from qhronology.quantum.circuits import QuantumCircuit

# Input
zero_state = VectorState(spec=[(1, [0])], label="0")

# Gates
HII = Hadamard(targets=[0], num_systems=3)
CNI = Not(targets=[1], controls=[0], num_systems=3)
ICN = Not(targets=[2], controls=[1], num_systems=3)

# Circuit
generator = QuantumCircuit(
    inputs=[zero_state, zero_state, zero_state], gates=[HII, CNI, ICN]
)
generator.diagram()

# Output
ghz_state = generator.state(label="GHZ")

# Results
ghz_state.print()

Output#

Diagram#

>>> generator.diagram()

State#

>>> ghz_state.print()
|GHZ⟩ = sqrt(2)/2|0,0,0⟩ + sqrt(2)/2|1,1,1⟩