atlas_q.grover.GroverSearch#

class atlas_q.grover.GroverSearch(oracle, config)[source]#

Bases: object

Grover’s Search Algorithm Implementation

Performs quantum search on an unstructured database with O(√N) queries.

Algorithm:
  1. Initialize to |+⟩^⊗n (uniform superposition)

  2. Repeat k times:
    1. Apply oracle O (mark target states)

    2. Apply diffusion operator D (amplify marked states)

  3. Measure to find marked item with high probability

Example:
>>> config = GroverConfig(n_qubits=4)
>>> oracle = FunctionOracle(4, lambda x: x == 7)
>>> grover = GroverSearch(oracle, config)
>>> result = grover.run()
>>> print(f"Found item: {result['measured_state']}")
Found item: 7

Methods

plot_convergence([save_path])

Plot success probability vs iteration

run([iterations])

Run Grover's algorithm

__init__(oracle, config)[source]#

Methods

__init__(oracle, config)

plot_convergence([save_path])

Plot success probability vs iteration

run([iterations])

Run Grover's algorithm

run(iterations=None)[source]#

Run Grover’s algorithm

Args:

iterations: Number of iterations (None = auto-calculate optimal)

Returns:
Dictionary with results:
  • measured_state: Most likely measurement outcome

  • success_probability: Probability of measuring marked item

  • iterations_used: Number of iterations performed

  • runtime_ms: Execution time in milliseconds

  • bond_dims: Final MPS bond dimensions

plot_convergence(save_path=None)[source]#

Plot success probability vs iteration

Args:

save_path: Optional path to save figure