Time Series Optimisation & Optimal Control FAQ
What kind of problems can this solve?
Anything where you have a simulation, controls at each time step, constraints, uncertainty, and an objective. The simulation needs to be differentiable or smoothly approximable. The domain doesn't matter much: gas storage, insulin dosing, hydropower, and climate risk analytics (NGFS stress testing, carbon sensitivity) all use the same machinery.
How is this different from reinforcement learning?
RL estimates gradients from noisy reward signals over millions of episodes. We compute exact gradients in a single backward pass through the simulation. In practice that means 100-400x faster training, deterministic policies, and all sensitivities from the same computation.
How is this different from dynamic programming?
DP discretises the state space into a grid and works backward through time. That scales exponentially with the number of state variables. We parameterise the policy with a neural network, so adding state dimensions adds inputs to the network but doesn't explode the computation. 10 coupled reservoirs train in 80 seconds.
What do you mean by 'sensitivities for free'?
The adjoint pass computes the gradient of the objective with respect to every input in one backward pass. 5 risk factors or 365 daily price deltas, same cost. Roughly equal to one forward evaluation.
What accuracy guarantees do you provide?
We validate every model with a cohort mirror test: the same computation in standard floating-point and in AADC must agree to machine precision (< 1e-12 relative error). Adjoint gradients are checked against finite differences on independent code paths.
What hardware do I need?
Any modern x86 CPU with AVX2. No GPU. All benchmarks on this page ran on a single CPU. Multi-threading across 8+ cores is supported.
How does this compare to PyTorch autograd?
We implemented the same gas storage algorithm in PyTorch. It was 16x slower for training and 2,500x slower for evaluation. The difference is AADC's JIT compilation to AVX machine code vs Python interpreter overhead.
Can I use my own simulation code?
Yes. Write your simulation as a templated C++ function or use AADC's idouble type in Python. We handle the recording, optimisation, and sensitivity computation.
Do I need machine learning expertise?
No. The neural policy, optimiser, and training loop are pre-built. You write the simulation and define the constraints.
Can RL eventually match this with enough training?
PPO captured 65% of the gas storage optimum after 3.7 hours. SAC failed on hydropower (-$5.8M loss). RL estimates gradients from noisy rewards; we compute them exactly. More training time doesn't close that gap.
How does AADC compare to NVIDIA Isaac Gym for robotics?
Isaac Gym uses simplified rigid-body physics on GPU with forward-mode AD. AADC differentiates through the real MuJoCo C code on CPU using reverse-mode AD. Isaac Gym is faster for massively parallel RL training. AADC is better for trajectory optimisation, MPC, and system identification where physics fidelity and exact gradients matter more than throughput. Also runs on any CPU, no GPU clusters required.
How does AADC compare to JAX for physics simulation?
JAX re-traces the computation graph on each call. AADC records once and replays the compiled kernel indefinitely. For a 50-step MuJoCo trajectory, AADC completes 200 iterations in 57 ms. JAX-based alternatives (DiffMJX, Brax) get roughly 10x over FD. AADC gets 158x. And AADC differentiates through the real MuJoCo C code; JAX alternatives reimplement the physics.
How does this handle climate risk and NGFS scenarios?
The entire climate-financial chain goes on one AADC tape: carbon price dynamics, transition risk (PD/LGD from carbon costs), physical risk (temperature-dependent damage), and climate-adjusted XVA. One adjoint pass gives d(expected_loss)/d(carbon_price) and d(expected_loss)/d(temperature) simultaneously. The full 6-scenario x 3-horizon NGFS capital matrix computes in under a second. EIOPA compliance deadline is January 2027.
What medical applications does this support?
Five so far: ECG cardiac diagnostics (5-class, 0.914 beat-level AUC with exact adjoint interpretability), EEG seizure detection (per-patient channel selection in 1.3 seconds), ICU sepsis triage (12-state ODE with 7 intervention controls), insulin dosing (99.1% time-in-range), and pharma manufacturing (70 ICH Q8 sensitivities in 149 ms). All train on CPU in seconds to minutes.