atlas_q.grover.DiffusionOperator#

class atlas_q.grover.DiffusionOperator(n_qubits, device='cuda', dtype=torch.complex128)[source]#

Bases: object

Grover diffusion operator (inversion about average)

Implements: D = 2|ψ⟩⟨ψ| - I where |ψ⟩ = |+⟩^⊗n

Mathematical form:

D = H^⊗n (2|0⟩⟨0| - I) H^⊗n

This reflects amplitudes about their average, amplifying marked states.

Methods

apply(mps)

Apply diffusion operator: 2|+⟩⟨+| - I

__init__(n_qubits, device='cuda', dtype=torch.complex128)[source]#

Methods

__init__(n_qubits[, device, dtype])

apply(mps)

Apply diffusion operator: 2|+⟩⟨+| - I

apply(mps)[source]#

Apply diffusion operator: 2|+⟩⟨+| - I

Decomposition: 1. H^⊗n (transform to computational basis) 2. 2|0⟩⟨0| - I (conditional phase shift using MPO) 3. H^⊗n (transform back)

Returns:

New MPS after diffusion