Cross-entropy optimization with prioritized constraints
Organizations: LTCI, Télécom Paris, Institut Polytechnique de Paris · The University of Texas at Austin
Abstract
When constraints conflict, an optimizer must determine which requirements to preserve and which to relax. On the one hand, a priority ordering specifies which requirements take precedence. On the other hand, penalty-based formulations encode their relative importance through numerical weights. Depending on these weights, a solution can improve its weighted score while violating intended priorities. We introduce TierCEM, a variant of the cross-entropy method that incorporates strict constraint priorities directly into elite selection without requiring per-constraint importance weights. TierCEM works by sequentially filtering sampled candidates, from highest- to lowest-priority constraint. If and when a constraint eliminates all remaining candidates, TierCEM returns to the last nonempty set and selects elites with the smallest violations of that blocking constraint, recursively preserving satisfaction of all higher-priority constraints. We evaluate TierCEM on 2D navigation and contact-rich pushing tasks in proprioceptive and learned world-model settings. Experiments show that reversing the constraint ordering changes which constraints are violated under conflict. Prioritizing progress toward the task objective also enables TierCEM to relax lower-priority constraints when they would otherwise prevent further progress.
Figures & tables
| ordered margins , |
| candidate samples , elites , iterations |
| task_obstacle_lane | task_lane_obstacle | ||||||||
| Method | Reach | V ↑ | V ↓ | Steps | Reach | V ↑ | V ↓ | Steps | |
| TierCEM | 20/20 | 0 | 20 | 34 | 20/20 | 0 | 20 | 32 | |
| CCE ( Wen and Topcu, 2021 ) | 0/20 | 0 | 0 | 160 | 0/20 | 0 | 0 | 160 | |
| Soft-constraint CEM, | 20/20 | 20 | 12 | 30 | 20/20 | 11 | 20 | 21 | |
| Hierarchical scalarized CEM, (0.5, 0.02)/(0.02, 0.5) | 20/20 | 0 | 20 | 38 | 20/20 | 0 | 20 | 16 | |
| Method/configuration | Metric | Goal | Goal | Goal |
| TierCEM, task obstacle lane | Position error (px) | |||
| Obstacle violation (%) | ||||
| Lane violation (%) | ||||
| CCE ( Wen and Topcu, 2021 ) , joint constraints | Position error (px) | |||
| Obstacle violation (%) | ||||
| Lane violation (%) |
Appendix figures & tables18 assets
Supplementary material from the paper’s appendix.
Appendix
| Parameter | Value | Description |
| (samples) | 1200 | CEM samples per iteration |
| (elites) | 24 | elites kept per iteration |
| (horizon) | 8 | planning horizon |
| iterations | 10 | CEM iterations |
| num_act_stepped | 4 | actions executed per replan |
| var_scale | 1.0 | proposal variance scale |
| Geometry | Config | R | V ↑ | V ↓ | Steps |
| base (reference) | task_obstacle_lane | 10 | 0 | 10 | 46.4 |
| task_lane_obstacle | 10 | 0 | 10 | 40.0 | |
| task_last | 0 | 0 | — | 160 | |
| plain | 9 | — | — | 74.8 | |
| off-diagonal disk | task_obstacle_lane | 10 | 0 | 0 | 42.0 |
| task_lane_obstacle | 10 | 0 | 4 | 34.0 |
| Setting | Hyperparameters | task_obstacle_lane | task_lane_obstacle | ||||
| R | V ↓ | V ↑ | R | V ↓ | V ↑ | ||
| base | 2 | 2 | 0 | 0 | 0 | 0 | |
| samples 600 | 2 | 2 | 0 | 1 | 1 | 0 | |
| samples 2400 | 0 | 0 | 0 | 0 | 0 | 0 | |
| samples 4800 | 0 | 0 | 0 | 0 | 0 | 0 | |
| elites 12 | 0 | 0 | 0 | 1 | 1 | 0 | |
| Reach | V obs | V lane | |
| 0.05 | 20/20 | 20 | 5 |
| 0.1 | 20/20 | 20 | 3 |
| 0.2 | 20/20 | 20 | 7 |
| 0.5 | 20/20 | 20 | 12 |
| 1.0 | 20/20 | 20 | 14 |
| 2.0 | 20/20 | 20 | 16 |
| task_obstacle_lane | task_lane_obstacle | ||||||||
| (ratio) | Reach | V ↑ | V ↓ | Steps | Reach | V ↑ | V ↓ | Steps | |
| (0.5, 0.02), 25:1 | 20/20 | 0 | 20 | 38 | 20/20 | 0 | 20 | 16 | |
| (1.0, 0.05), 20:1 | 20/20 | 1 | 20 | 41 | 20/20 | 1 | 20 | 23 | |
| (0.5, 0.05), 10:1 | 20/20 | 1 | 20 | 35 | 20/20 | 0 | 20 | 25 | |
| (1.0, 0.1), 10:1 | 20/20 | 1 | 20 | 22 | 20/20 | 1 | 20 | 34 | |
| (2.0, 0.2), 10:1 | 20/20 | 0 | 20 | 32 | 20/20 | 2 | 20 | 35 | |
| Body | Speed | Reach | min obs | min lane | |
| Kinematic | |||||
| kinematic | 0.4 | — | 0/20 | ||
| kinematic | 1.4 | — | 0/20 | ||
| kinematic | 2.0 | — | 0/20 | ||
| Inertial, gap = 1.60 | |||||
| inertial | 0.4 | 0.07 | 16/20 | ||
| Scenario | min dist | min obs | min ws | Verdict |
| plain | 0.21 | reaches goal, crashes through | ||
| oracle | 0.23 | reaches goal, always safe | ||
| mlp_head | 0.23 | reaches goal, always safe | ||
| mlp_shifted | 3.31 | never arrives, over-cautious | ||
| noisy_head | 3.94 | never arrives, over-cautious | ||
| model_mismatch | 0.23 | arrives, violates (3/5 seeds) |
| Hyperparameter | Value |
| Input dimension | 384 |
| Hidden dimensions | |
| Output dimension | 2 |
| Hidden activation | GELU |
| Normalization | LayerNorm after each hidden linear layer |
| Dropout | 0.2 |
| Hyperparameter | Value |
| Input dimension | 384 |
| Hidden dimensions | |
| Output dimension | 1 |
| Hidden activation | GELU |
| Normalization | LayerNorm after each hidden linear layer |
| Dropout | 0.5 |
| O (%) | WB (%) | Pos Dist (px) | Angle Error (°) | |
| 0.05 | ||||
| 0.1 | ||||
| 0.3 | ||||
| 0.5 | ||||
| 1.0 |
| / | O (%) | WB (%) | Pos Dist (px) | Angle Error (°) |
| 0.25 / 0.01 | ||||
| 0.5 / 0.02 | ||||
| 1 / 0.04 | ||||
| 0.5 / 0.1 |