refactor: remove 8 always-on use_ booleans — features are mandatory

Remove use_double_dqn, use_dueling, use_per, use_branching,
use_distributional, use_noisy_nets, use_huber_loss, and use_cql
from DQNConfig, DQNHyperparameters, and DqnParams structs.

These features are always enabled (Rainbow DQN standard). The boolean
flags were dead code — every constructor set them to true, and the
only code paths that set them to false were in tests that disabled
features for simplicity. With the fields removed, the features are
unconditionally active, eliminating ~490 lines of dead configuration.

Key changes:
- Struct field declarations removed from 3 core config structs
- Conditional branches (if use_X { ... } else { ... }) simplified:
  dueling/branching/PER network creation is now unconditional
- Checkpoint metadata hardcodes "true" for backward compatibility
- Hyperopt search space index 11 (use_branching) fixed at 1.0
- TOML/YAML config files cleaned of removed fields
- Tests that toggled these flags updated or rewritten

45 files changed, -487 net lines. Zero new test failures.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
jgrusewski
2026-03-25 09:45:54 +01:00
parent 70a9499f33
commit 04d8802c94
45 changed files with 99 additions and 586 deletions

View File

@@ -23,7 +23,6 @@ buffer_size = 100000 # Experience replay capacity
min_replay_size = 1000 # Minimum experiences before training
# Branching DQN (Tavakoli et al., 2018)
use_branching = true
branch_hidden_dim = 128
# Training Configuration