Think Fast, Plan Selectively: Adaptive Deliberation for Efficient Data-Driven MPC
Organizations: Independent Researcher · Faculty of Computer Science and Information Technology, Universiti Malaya · School of Computing, National University of Singapore
Abstract
Data-driven model predictive control (MPC) combines learned world models with online trajectory optimization, achieving strong performance in continuous control. However, the per-step cost of sampling and evaluating hundreds of candidate trajectories restricts deployment to control frequencies well below what real-time robotics demands. Motivated by the dual-process theory of human cognition, which distinguishes between fast, intuitive processing (System 1) and slower, deliberative reasoning (System 2), we ask whether every decision requires the same degree of computational deliberation. We propose Fast-TD-MPC, a lightweight framework that adaptively routes between fast policy execution and test-time planning, reserving costly deliberation for states where it is most needed. Fast-TD-MPC delivers competitive task performance across 103 continuous control tasks while achieving up to ~4x faster inference. Under external disturbances, Fast-TD-MPC selectively falls back to planning, maintaining robustness comparable to the original planner.
Figures & tables
| DMControl | Meta-World | MyoSuite | ManiSkill2 | |||||
| Method | Return | Lat. | Succ. | Lat. | Succ. | Lat. | Succ. | Lat. |
| (ms) | (%) | (ms) | (%) | (ms) | (%) | (ms) | ||
| DreamerV3 | ||||||||
| SAC | ||||||||
| S2-alone (TD-MPC2) | ||||||||
| S2-alone ( ) | ||||||||
| Policy components (ms) | Total | GPU | ||||||
| Method | Env | (ms) | (%) | (MB) | ||||
| H100 — DMControl + Meta-World + MyoSuite | ||||||||
| S2-alone (TD-MPC2) | — | — | ||||||
| S1 alone | — | — | ||||||
| Fast-TD-MPC ( all , ) | ||||||||
| Fast-TD-MPC ( all , ) | ||||||||
| DMControl | Meta-World | MyoSuite | ManiSkill2 | |||||
| Method | Return | Lat. | Succ. | Lat. | Succ. | Lat. | Succ. | Lat. |
| (ms) | (%) | (ms) | (%) | (ms) | (%) | (ms) | ||
| S2-alone (TD-MPC2) | ||||||||
| S2 policy-only | ||||||||
| S1 alone | ||||||||
| Round-robin (S2 50%) | ||||||||
Appendix figures & tables28 assets
Supplementary material from the paper’s appendix.
Appendix
| Task | Obs. dim | Action dim |
|---|---|---|
| Acrobot Swingup | 6 | 1 |
| Cartpole Balance | 5 | 1 |
| Cartpole Balance Sparse | 5 | 1 |
| Cartpole Swingup | 5 | 1 |
| Cartpole Swingup Sparse | 5 | 1 |
| Cheetah Jump | 17 | 6 |
| Task | Obs. dim | Action dim |
| Assembly | 39 | 4 |
| Basketball | 39 | 4 |
| Bin Picking | 39 | 4 |
| Box Close | 39 | 4 |
| Button Press | 39 | 4 |
| Button Press Topdown | 39 | 4 |
| Task | Obs. dim | Action dim |
|---|---|---|
| Myo Hand Key Turn | 93 | 39 |
| Myo Hand Key Turn Hard | 93 | 39 |
| Myo Hand Obj Hold | 91 | 39 |
| Myo Hand Obj Hold Hard | 91 | 39 |
| Myo Hand Pen Twirl | 83 | 39 |
| Myo Hand Pen Twirl Hard | 83 | 39 |
| Task | Obs. dim | Action dim |
|---|---|---|
| Lift Cube | 42 | 4 |
| Pick Cube | 51 | 4 |
| Pick Ycb | 51 | 7 |
| Stack Cube | 55 | 4 |
| DMControl | Meta-World | ManiSkill2 | MyoSuite | |
| Episode length | 1,000 | 200 | 200 | 100 |
| Action repeat | 2 | 2 | 2 | 1 |
| Effective length | 500 | 100 | 100 | 100 |
| Performance metric | Reward | Success | Success | Success |
| Disturbance | Cat. | Mechanism | Parameter | |
|---|---|---|---|---|
| Obs. noise | Obs. | 1.0 | Relative on | |
| Act. noise | Act. | 1.0 | Additive on , clamp | |
| Vel. kick | Env. | 1.0 † | Impulse on at 1–2 random | |
| Grav. shift | Env. | 1.0 | Sustained per episode | |
| Sus. force | Env. | 0.15 | Per-step force injection when active | |
| Combined | All | — | All five applied simultaneously | — |
| Method | Return | Lat. (ms) | (%) | GPU (MB) |
|---|---|---|---|---|
| DreamerV3 | — | — | ||
| SAC | — | — | ||
| S2-alone (TD-MPC2) | ||||
| S2-alone ( ) | ||||
| S2 policy-only | ||||
| S1 alone |
| Method | Succ. | Lat. (ms) | (%) | GPU (MB) |
|---|---|---|---|---|
| DreamerV3 | — | — | ||
| SAC | — | — | ||
| S2-alone (TD-MPC2) | ||||
| S2-alone ( ) | ||||
| S2 policy-only | ||||
| S1 alone |
| Method | Succ. | Lat. (ms) | (%) | GPU (MB) |
|---|---|---|---|---|
| DreamerV3 | — | — | ||
| SAC | — | — | ||
| S2-alone (TD-MPC2) | ||||
| S2-alone ( ) | ||||
| S2 policy-only | ||||
| S1 alone |
| Method | Succ. | Lat. (ms) | (%) | GPU (MB) |
|---|---|---|---|---|
| DreamerV3 | — | — | ||
| SAC | — | — | ||
| S2-alone (TD-MPC2) | ||||
| S2-alone ( ) | ||||
| S2 policy-only | ||||
| S1 alone |
| Task | S2-alone (TD-MPC2) | S1 alone | Fast-TD-MPC (all, ) | Fast-TD-MPC (all, ) | ||||
|---|---|---|---|---|---|---|---|---|
| Return | Lat. (ms) | Return | Lat. (ms) | Return | Lat. (ms) | Return | Lat. (ms) | |
| Acrobot Swingup | ||||||||
| Cartpole Balance Sparse | ||||||||
| Cartpole Balance | ||||||||
| Cartpole Swingup Sparse | ||||||||
| Cartpole Swingup | ||||||||
| Task | S2-alone (TD-MPC2) | S1 alone | Fast-TD-MPC (all, ) | Fast-TD-MPC (all, ) | ||||
|---|---|---|---|---|---|---|---|---|
| Succ. | Lat. (ms) | Succ. | Lat. (ms) | Succ. | Lat. (ms) | Succ. | Lat. (ms) | |
| Assembly | ||||||||
| Basketball | ||||||||
| Bin Picking | ||||||||
| Box Close | ||||||||
| Button Press Topdown Wall | ||||||||
| Task | S2-alone (TD-MPC2) | S1 alone | Fast-TD-MPC (all, ) | Fast-TD-MPC (all, ) | ||||
|---|---|---|---|---|---|---|---|---|
| Succ. | Lat. (ms) | Succ. | Lat. (ms) | Succ. | Lat. (ms) | Succ. | Lat. (ms) | |
| MyoHand Key Turn Hard | ||||||||
| MyoHand Key Turn | ||||||||
| MyoHand Obj Hold Hard | ||||||||
| MyoHand Obj Hold | ||||||||
| MyoHand Pen Twirl Hard | ||||||||
| Task | S2-alone (TD-MPC2) | S1 alone | Fast-TD-MPC (all, ) | Fast-TD-MPC (all, ) | ||||
|---|---|---|---|---|---|---|---|---|
| Succ. | Lat. (ms) | Succ. | Lat. (ms) | Succ. | Lat. (ms) | Succ. | Lat. (ms) | |
| Lift Cube | ||||||||
| Pick Cube | ||||||||
| Pick Ycb | ||||||||
| Stack Cube | ||||||||
| Method | Return | Lat. (ms) | (%) | GPU (MB) |
|---|---|---|---|---|
| S2-alone (TD-MPC2) | ||||
| S2 policy-only | ||||
| S1 alone | ||||
| Round-robin (S2 50%) | ||||
| Fast-TD-MPC ( all , ) | ||||
| Fast-TD-MPC ( all , ) |
| Method | Succ. | Lat. (ms) | (%) | GPU (MB) |
|---|---|---|---|---|
| S2-alone (TD-MPC2) | ||||
| S2 policy-only | ||||
| S1 alone | ||||
| Round-robin (S2 50%) | ||||
| Fast-TD-MPC ( all , ) | ||||
| Fast-TD-MPC ( all , ) |
| Method | Succ. | Lat. (ms) | (%) | GPU (MB) |
|---|---|---|---|---|
| S2-alone (TD-MPC2) | ||||
| S2 policy-only | ||||
| S1 alone | ||||
| Round-robin (S2 50%) | ||||
| Fast-TD-MPC ( all , ) | ||||
| Fast-TD-MPC ( all , ) |
| Method | Succ. | Lat. (ms) | (%) | GPU (MB) |
|---|---|---|---|---|
| S2-alone (TD-MPC2) | ||||
| S2 policy-only | ||||
| S1 alone | ||||
| Round-robin (S2 50%) | ||||
| Fast-TD-MPC ( all , ) | ||||
| Fast-TD-MPC ( all , ) |
| Task | S2-alone (TD-MPC2) | S1 alone | Fast-TD-MPC (all, ) | Fast-TD-MPC (all, ) | ||||
|---|---|---|---|---|---|---|---|---|
| Return | Lat. (ms) | Return | Lat. (ms) | Return | Lat. (ms) | Return | Lat. (ms) | |
| Acrobot Swingup | ||||||||
| Cartpole Balance Sparse | ||||||||
| Cartpole Balance | ||||||||
| Cartpole Swingup Sparse | ||||||||
| Cartpole Swingup | ||||||||
| Task | S2-alone (TD-MPC2) | S1 alone | Fast-TD-MPC (all, ) | Fast-TD-MPC (all, ) | ||||
|---|---|---|---|---|---|---|---|---|
| Succ. | Lat. (ms) | Succ. | Lat. (ms) | Succ. | Lat. (ms) | Succ. | Lat. (ms) | |
| Assembly | ||||||||
| Basketball | ||||||||
| Bin Picking | ||||||||
| Box Close | ||||||||
| Button Press Topdown Wall | ||||||||
| Task | S2-alone (TD-MPC2) | S1 alone | Fast-TD-MPC (all, ) | Fast-TD-MPC (all, ) | ||||
|---|---|---|---|---|---|---|---|---|
| Succ. | Lat. (ms) | Succ. | Lat. (ms) | Succ. | Lat. (ms) | Succ. | Lat. (ms) | |
| MyoHand Key Turn Hard | ||||||||
| MyoHand Key Turn | ||||||||
| MyoHand Obj Hold Hard | ||||||||
| MyoHand Obj Hold | ||||||||
| MyoHand Pen Twirl Hard | ||||||||
| Task | S2-alone (TD-MPC2) | S1 alone | Fast-TD-MPC (all, ) | Fast-TD-MPC (all, ) | ||||
|---|---|---|---|---|---|---|---|---|
| Succ. | Lat. (ms) | Succ. | Lat. (ms) | Succ. | Lat. (ms) | Succ. | Lat. (ms) | |
| Lift Cube | ||||||||
| Pick Cube | ||||||||
| Stack Cube | ||||||||
| DMControl | Meta-World | MyoSuite | ManiSkill2 | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Config | Warm-Start | Return | Lat. (ms) | Succ. (%) | Lat. (ms) | Succ. (%) | Lat. (ms) | Succ. (%) | Lat. (ms) |
| ( all , ) | Cold start | ||||||||
| K-shifted | |||||||||
| ( all , ) | Cold start | ||||||||
| K-shifted | |||||||||
| ( all , ) | Cold start | ||||||||
| DMControl | Meta-World | MyoSuite | ManiSkill2 | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Config | Warm-Start | Return | Lat. (ms) | Succ. (%) | Lat. (ms) | Succ. (%) | Lat. (ms) | Succ. (%) | Lat. (ms) |
| ( all , ) | Cold start | ||||||||
| K-shifted | |||||||||
| ( all , ) | Cold start | ||||||||
| K-shifted | |||||||||
| ( all , ) | Cold start | ||||||||
| DMControl | Meta-World | MyoSuite | ManiSkill2 | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Config | Metric | Return | Lat. (ms) | Succ. (%) | Lat. (ms) | Succ. (%) | Lat. (ms) | Succ. (%) | Lat. (ms) |
| ( all , ) | Maha. | ||||||||
| Tan. | |||||||||
| ( all , ) | Maha. | ||||||||
| Tan. | |||||||||
| ( all , ) | Maha. | ||||||||
| DMControl | Meta-World | MyoSuite | ManiSkill2 | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Config | Metric | Return | Lat. (ms) | Succ. (%) | Lat. (ms) | Succ. (%) | Lat. (ms) | Succ. (%) | Lat. (ms) |
| ( all , ) | Maha. | ||||||||
| Tan. | |||||||||
| ( all , ) | Maha. | ||||||||
| Tan. | |||||||||
| ( all , ) | Maha. | ||||||||