Class QuantumAlgorithms
java.lang.Object
org.episteme.natural.physics.quantum.QuantumAlgorithms
Quantum algorithms (Grover's search, Shor's period finding).
References:
- Grover, L. K. (1996). A fast quantum mechanical algorithm for database search. Proceedings of the 28th Annual ACM Symposium on Theory of Computing, 212-219.
- Shor, P. W. (1994). Algorithms for quantum computation: discrete logarithms and factoring. Proceedings of the 35th Annual Symposium on Foundations of Computer Science, 124-134.
- Nielsen, M. A., invalid input: '&' Chuang, I. L. (2010). Quantum Computation and Quantum Information. Cambridge University Press.
- Since:
- 1.0
- Author:
- Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncreateGroverCircuit(QuantumBackend backend, QuantumBackend.QuantumCircuit oracle, int numQubits) Generates a quantum circuit for Grover's search algorithm. constructs initialization + iterations * (oracle + diffusion).static QuantumGategroverDiffusion(int numQubits) Creates the Grover diffusion operator.static QuantumGategroverOracle(int numQubits, int markedState) Creates a Grover oracle for a specific marked state.static BraKetgroverSearch(int numQubits, int markedState) Runs Grover's search algorithm.static QuantumGateinverseQft(int numQubits) Inverse QFT.static intoptimalGroverIterations(int numQubits) Optimal number of Grover iterations. r ≈(À/4) * sqrt(N)static QuantumGateqft(int numQubits) Quantum Fourier Transform gate for n qubits.static int[]shor(int N) Executes Shor's algorithm to factorize N.
-
Constructor Details
-
QuantumAlgorithms
public QuantumAlgorithms()
-
-
Method Details
-
groverOracle
Creates a Grover oracle for a specific marked state. Oracle flips the sign of the marked state: O|x⟩ = -|x⟩ if x = marked, else |x⟩- Parameters:
numQubits- Number of qubitsmarkedState- Index of the state to search for- Returns:
- Oracle gate
-
groverDiffusion
Creates the Grover diffusion operator. D = 2|s⟩⟨s| - I where |s⟩ is the uniform superposition.- Parameters:
numQubits- Number of qubits- Returns:
- Diffusion gate
-
optimalGroverIterations
public static int optimalGroverIterations(int numQubits) Optimal number of Grover iterations. r ≈(À/4) * sqrt(N)- Parameters:
numQubits- Number of qubits (N = 2^n)- Returns:
- Optimal iteration count
-
groverSearch
Runs Grover's search algorithm.- Parameters:
numQubits- Number of qubitsmarkedState- State to search for- Returns:
- Final quantum state (should have high amplitude at markedState)
-
qft
Quantum Fourier Transform gate for n qubits. QFT|j⟩ = (1/sqrt(N)) Σ_k exp(2Àijk/N)|k⟩- Parameters:
numQubits- Number of qubits- Returns:
- QFT gate
-
inverseQft
Inverse QFT. -
createGroverCircuit
public static QuantumBackend.QuantumCircuit createGroverCircuit(QuantumBackend backend, QuantumBackend.QuantumCircuit oracle, int numQubits) Generates a quantum circuit for Grover's search algorithm. constructs initialization + iterations * (oracle + diffusion).- Parameters:
backend- The quantum backend to create the circuitoracle- The oracle circuit (operator O)numQubits- Number of qubits- Returns:
- The complete Grover circuit
-
shor
public static int[] shor(int N) Executes Shor's algorithm to factorize N. Currently implements the classical part and a classical period finding for simulation efficiency.- Parameters:
N- The integer to factorize- Returns:
- Array of prime factors
-