use super::QuantumConfig;
pub struct QuantumOptimizer {
config: QuantumConfig,
optimization_strategies: Vec<QuantumOptimizationStrategy>,
}
impl QuantumOptimizer {
pub fn new(config: QuantumConfig) -> Self {
Self {
config,
optimization_strategies: vec![
QuantumOptimizationStrategy::QAOA,
QuantumOptimizationStrategy::VQE,
QuantumOptimizationStrategy::SPSA,
],
}
}
}
#[derive(Debug, Clone)]
pub enum QuantumOptimizationStrategy {
QAOA,
VQE,
SPSA,
GradientDescent,
ParameterShift,
FiniteDifference,
}