Class QuantumAlgorithms

java.lang.Object
org.episteme.natural.physics.quantum.QuantumAlgorithms

public class QuantumAlgorithms extends Object
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 Details

    • QuantumAlgorithms

      public QuantumAlgorithms()
  • Method Details

    • groverOracle

      public static QuantumGate groverOracle(int numQubits, int markedState)
      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 qubits
      markedState - Index of the state to search for
      Returns:
      Oracle gate
    • groverDiffusion

      public static QuantumGate groverDiffusion(int numQubits)
      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

      public static BraKet groverSearch(int numQubits, int markedState)
      Runs Grover's search algorithm.
      Parameters:
      numQubits - Number of qubits
      markedState - State to search for
      Returns:
      Final quantum state (should have high amplitude at markedState)
    • qft

      public static QuantumGate qft(int numQubits)
      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

      public static QuantumGate inverseQft(int numQubits)
      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 circuit
      oracle - 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