Class StrangeBackend
java.lang.Object
org.episteme.natural.physics.quantum.backends.StrangeBackend
- All Implemented Interfaces:
AlgorithmProvider, Backend, ComputeBackend, QuantumAlgorithmProvider, QuantumBackend
@AutoService({AlgorithmProvider.class,QuantumBackend.class,ComputeBackend.class,Backend.class})
public class StrangeBackend
extends Object
implements QuantumBackend, QuantumAlgorithmProvider
Quantum Backend implementation using the Strange pure Java library.
-
Nested Class Summary
Nested classes/interfaces inherited from interface QuantumBackend
QuantumBackend.QuantumCircuit, QuantumBackend.QuantumResult -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncreateCircuit(int q, int c) Creates a new quantum circuit.Creates an execution context for running operations.execute(QuantumBackend.QuantumCircuit circuit) Executes a quantum circuit on a simulator with default 1024 shots.executeHardware(QuantumBackend.QuantumCircuit c, int s, String b) Executes a quantum circuit on real quantum hardware.executeSimulator(QuantumBackend.QuantumCircuit circuit, int shots) Executes a quantum circuit on a simulator.Returns the type of hardware accelerator used by this backend.String[]Returns available quantum backends (simulators and hardware).Returns backend information (num_qubits, connectivity, etc.).Returns a description of the backend.getId()Returns the unique identifier for this backend (e.g., "javafx", "jmol", "cuda").getName()Returns the display name for UI presentation.intReturns the priority for auto-selection (higher = preferred).Returns a human-readable status message for this backend.groverSearch(QuantumBackend.QuantumCircuit oracle, int numQubits) Performs Grover's search algorithm.booleanChecks if this backend is currently available (libraries loaded, etc.).Converts a classical matrix to a quantum unitary operator.Performs Quantum Approximate Optimization Algorithm (QAOA).doublequantumPhaseEstimation(Matrix<Complex> u, Vector<Complex> e, int p) Performs Quantum Phase Estimation (QPE).int[]shorFactor(int N) Performs Shor's factoring algorithm.voidshutdown()Called when the application is shutting down or the backend is being replaced.stateTomography(QuantumBackend.QuantumCircuit c, int s) Performs quantum state tomography to reconstruct a density matrix.doublevqe(Matrix<Complex> h, QuantumBackend.QuantumCircuit a, String o) Performs Variational Quantum Eigensolver (VQE) to find ground state energy.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface AlgorithmProvider
description, getMetadata, scoreMethods inherited from interface Backend
getAlgorithmProviders, isExplicitlyDisabledMethods inherited from interface ComputeBackend
createBackend, supportsComplexNumbers, supportsFloatingPoint, supportsParallelOpsMethods inherited from interface QuantumAlgorithmProvider
getAlgorithmTypeMethods inherited from interface QuantumBackend
getType
-
Constructor Details
-
StrangeBackend
public StrangeBackend()
-
-
Method Details
-
getName
Description copied from interface:BackendReturns the display name for UI presentation.- Specified by:
getNamein interfaceAlgorithmProvider- Specified by:
getNamein interfaceBackend- Specified by:
getNamein interfaceQuantumAlgorithmProvider
-
getId
-
getDescription
Description copied from interface:BackendReturns a description of the backend.- Specified by:
getDescriptionin interfaceBackend- Specified by:
getDescriptionin interfaceComputeBackend
-
getPriority
public int getPriority()Description copied from interface:BackendReturns the priority for auto-selection (higher = preferred). Used when multiple backends are available.- Specified by:
getPriorityin interfaceAlgorithmProvider- Specified by:
getPriorityin interfaceBackend
-
isAvailable
public boolean isAvailable()Description copied from interface:BackendChecks if this backend is currently available (libraries loaded, etc.).Default implementation checks
Backend.isExplicitlyDisabled()and returns false if it is.- Specified by:
isAvailablein interfaceAlgorithmProvider- Specified by:
isAvailablein interfaceBackend- Specified by:
isAvailablein interfaceQuantumBackend
-
getStatusMessage
Description copied from interface:BackendReturns a human-readable status message for this backend. Useful for debugging "Unavailable" states.- Specified by:
getStatusMessagein interfaceBackend- Returns:
- status message (e.g., "Ready", "Native library missing", etc.)
-
shutdown
public void shutdown()Description copied from interface:BackendCalled when the application is shutting down or the backend is being replaced. Use this to release hardware resources, close file handles, or stop background threads.- Specified by:
shutdownin interfaceAlgorithmProvider- Specified by:
shutdownin interfaceBackend
-
createContext
Description copied from interface:ComputeBackendCreates an execution context for running operations.The context should be used within a try-with-resources block to ensure proper cleanup of resources.
- Specified by:
createContextin interfaceComputeBackend- Returns:
- new execution context
-
execute
Description copied from interface:QuantumBackendExecutes a quantum circuit on a simulator with default 1024 shots.- Specified by:
executein interfaceQuantumBackend
-
executeSimulator
public QuantumBackend.QuantumResult executeSimulator(QuantumBackend.QuantumCircuit circuit, int shots) Description copied from interface:QuantumBackendExecutes a quantum circuit on a simulator.- Specified by:
executeSimulatorin interfaceQuantumBackend
-
createCircuit
Description copied from interface:QuantumBackendCreates a new quantum circuit.- Specified by:
createCircuitin interfaceQuantumBackend
-
executeHardware
public QuantumBackend.QuantumResult executeHardware(QuantumBackend.QuantumCircuit c, int s, String b) Description copied from interface:QuantumBackendExecutes a quantum circuit on real quantum hardware.- Specified by:
executeHardwarein interfaceQuantumBackend
-
vqe
Description copied from interface:QuantumAlgorithmProviderPerforms Variational Quantum Eigensolver (VQE) to find ground state energy.- Specified by:
vqein interfaceQuantumAlgorithmProvider- Parameters:
h- Hamiltonian matrixa- Parameterized quantum circuito- Classical optimizer ("COBYLA", "SPSA", etc.)- Returns:
- Ground state energy
-
qaoa
Description copied from interface:QuantumAlgorithmProviderPerforms Quantum Approximate Optimization Algorithm (QAOA).- Specified by:
qaoain interfaceQuantumAlgorithmProvider- Parameters:
h- Cost Hamiltonian for the optimization probleml- Number of QAOA layers (p parameter)- Returns:
- Optimal parameters and final state
-
quantumPhaseEstimation
Description copied from interface:QuantumAlgorithmProviderPerforms Quantum Phase Estimation (QPE).- Specified by:
quantumPhaseEstimationin interfaceQuantumAlgorithmProvider- Parameters:
u- Unitary operatore- Initial eigenstatep- Number of precision qubits- Returns:
- Estimated phase
-
groverSearch
public QuantumBackend.QuantumResult groverSearch(QuantumBackend.QuantumCircuit oracle, int numQubits) Description copied from interface:QuantumAlgorithmProviderPerforms Grover's search algorithm.- Specified by:
groverSearchin interfaceQuantumAlgorithmProvider- Parameters:
oracle- Oracle function (marks solution states)numQubits- Number of qubits in search space- Returns:
- Measurement result (solution state)
-
shorFactor
public int[] shorFactor(int N) Description copied from interface:QuantumAlgorithmProviderPerforms Shor's factoring algorithm.- Specified by:
shorFactorin interfaceQuantumAlgorithmProvider- Parameters:
N- Number to factor- Returns:
- Factors of N
-
matrixToUnitary
Description copied from interface:QuantumAlgorithmProviderConverts a classical matrix to a quantum unitary operator.- Specified by:
matrixToUnitaryin interfaceQuantumAlgorithmProvider
-
stateTomography
Description copied from interface:QuantumAlgorithmProviderPerforms quantum state tomography to reconstruct a density matrix.- Specified by:
stateTomographyin interfaceQuantumAlgorithmProvider
-
getAvailableBackends
Description copied from interface:QuantumBackendReturns available quantum backends (simulators and hardware).- Specified by:
getAvailableBackendsin interfaceQuantumBackend
-
getBackendInfo
Description copied from interface:QuantumBackendReturns backend information (num_qubits, connectivity, etc.).- Specified by:
getBackendInfoin interfaceQuantumBackend
-
getAcceleratorType
Description copied from interface:ComputeBackendReturns the type of hardware accelerator used by this backend.- Specified by:
getAcceleratorTypein interfaceComputeBackend- Returns:
- the accelerator type
-