PySparQ.pysparq.algorithms.grover 源代码
"""
Grover's Quantum Search Algorithm Implementation
"""
import pysparq as ps
[文档]
class GroverOracle:
"""Oracle for Grover's search that marks target values."""
[文档]
qram: ps.QRAMCircuit_qutrit
[文档]
search_reg: str | int
_condition_regs: list[str | int]
_condition_bits: list[tuple[str | int, int]]
def __init__(
self,
qram: ps.QRAMCircuit_qutrit,
addr_reg: str | int,
data_reg: str | int,
search_reg: str | int,
) -> None: ...
[文档]
def conditioned_by_nonzeros(
self, cond: str | int | list[str | int]
) -> "GroverOracle": ...
[文档]
def conditioned_by_all_ones(self, conds: str | int | list[str | int]) -> "GroverOracle": ...
[文档]
def conditioned_by_bit(self, reg: str | int, pos: int) -> "GroverOracle": ...
[文档]
def clear_conditions(self) -> None: ...
[文档]
def dag(self, state: ps.SparseState) -> None: ...
def __call__(self, state: ps.SparseState) -> None: ...
[文档]
class DiffusionOperator:
"""HPH (Hadamard-Phase-Hadamard) diffusion operator."""
_condition_regs: list[str | int]
_condition_bits: list[tuple[str | int, int]]
def __init__(self, addr_reg: str | int) -> None: ...
[文档]
def conditioned_by_nonzeros(
self, cond: str | int | list[str | int]
) -> "DiffusionOperator": ...
[文档]
def conditioned_by_all_ones(self, conds: str | int | list[str | int]) -> "DiffusionOperator": ...
[文档]
def conditioned_by_bit(self, reg: str | int, pos: int) -> "DiffusionOperator": ...
[文档]
def clear_conditions(self) -> None: ...
[文档]
def dag(self, state: ps.SparseState) -> None: ...
def __call__(self, state: ps.SparseState) -> None: ...
[文档]
class GroverOperator:
"""Combined Grover operator: Oracle followed by Diffusion."""
[文档]
oracle: GroverOracle
[文档]
diffusion: DiffusionOperator
_condition_regs: list[str | int]
_condition_bits: list[tuple[str | int, int]]
def __init__(
self,
qram: ps.QRAMCircuit_qutrit,
addr_reg: str | int,
data_reg: str | int,
search_reg: str | int,
) -> None: ...
[文档]
def conditioned_by_nonzeros(
self, cond: str | int | list[str | int]
) -> "GroverOperator": ...
[文档]
def conditioned_by_all_ones(self, conds: str | int | list[str | int]) -> "GroverOperator": ...
[文档]
def conditioned_by_bit(self, reg: str | int, pos: int) -> "GroverOperator": ...
[文档]
def clear_conditions(self) -> None: ...
[文档]
def dag(self, state: ps.SparseState) -> None: ...
def __call__(self, state: ps.SparseState) -> None: ...
[文档]
def grover_search(
memory: list[int],
target: int,
n_iterations: int | None = ...,
data_size: int = ...,
) -> tuple[int, float]:
"""Execute Grover's search to find target in memory."""
...
[文档]
def grover_count(
memory: list[int],
target: int,
precision_bits: int = ...,
data_size: int = ...,
) -> tuple[int, float]:
"""Quantum counting variant of Grover's algorithm."""
...
[文档]
def create_grover_demo() -> str:
"""Generate a demo script for Grover's algorithm."""
...