diff --git a/crates/ml/src/trainers/dqn/trainer/training_loop.rs b/crates/ml/src/trainers/dqn/trainer/training_loop.rs index 665dc085e..a1813db8e 100644 --- a/crates/ml/src/trainers/dqn/trainer/training_loop.rs +++ b/crates/ml/src/trainers/dqn/trainer/training_loop.rs @@ -1872,9 +1872,9 @@ impl DQNTrainer { let active_factored = active_dirmag * active_ord * active_urg; let diversity_pct = (active_factored as f64 / total_factored_space as f64) * 100.0; - // Max reachable dir*mag = (b0-1)*b1 + 1: Short and Long each have b1 mag options. - // Flat forces mag=Half, so only 1 of the 3 Flat cells is reachable. - let max_dirmag = (b0.saturating_sub(1)) * b1 + 1; // 2*3+1 = 7 (of 9 total) + // Max dir*mag = b0 * b1 = 9 (full combinatorial space). + // Epsilon exploration can hit any combo including Flat×{Small,Full}. + let max_dirmag = b0 * b1; info!( "Epoch {}/{}: Action diversity={}/{} ({:.1}%) — dir*mag={}/{} order={}/{} urgency={}/{}", epoch + 1, self.hyperparams.epochs,