quantrs2_sim/qaoa_optimization/
qaoaoptimizer_adaptive_parameter_optimization_group.rs1use crate::error::Result;
8use scirs2_core::random::prelude::*;
9
10use super::qaoaoptimizer_type::QAOAOptimizer;
11
12impl QAOAOptimizer {
13 pub(super) fn adaptive_parameter_optimization(&mut self, cost_history: &[f64]) -> Result<()> {
15 if cost_history.len() > 5 {
16 let recent_improvement =
17 cost_history[cost_history.len() - 1] - cost_history[cost_history.len() - 5];
18 if recent_improvement > 0.0 {
19 self.config.learning_rate *= 1.1;
20 } else {
21 self.config.learning_rate *= 0.9;
22 }
23 }
24 self.classical_parameter_optimization()
25 }
26}