Skip to main content

Predictive Pareto Planning

A single execution plan optimizes for one objective. Pareto planning generates the full set of non-dominated trade-offs across four objectives simultaneously, letting you choose the plan that best fits your mission constraints.
How it works — CAE evaluates thousands of candidate plans with different relaxation combinations, filters dominated solutions, and returns only the Pareto-optimal frontier.

Objectives

Every plan is scored on four axes:
ObjectiveUnitDirectionDescription
LatencysecondsminimizeTotal time from job start to final output delivery
Energywatt-hoursminimizeTotal on-board energy consumed across all steps
ReliabilityprobabilitymaximizeDelivery confidence accounting for link errors and retransmissions
Quality0-1 scoremaximizeOutput fidelity — driven by quality tier selection in window steps
A plan is Pareto-optimal (non-dominated) if no other plan is better on every objective. The frontier is the set of all non-dominated plans.

Relaxation Types

To explore the frontier, the planner applies controlled relaxations — each trades one objective for gains in others.
RelaxationTrades AwayGains
extend_windowsLatencyReliability, Quality — more time allows higher tiers and more retransmission margin
skip_checkpointReliabilityLatency, Energy — removing checkpoints saves time and power
reduce_fecReliabilityLatency, Energy — less FEC overhead means smaller transfers
lower_quality_tierQualityLatency, Energy — lower tiers complete faster with less compute
The planner generates candidates by combining relaxations at multiple levels, then applies dominance filtering to discard any solution that is strictly worse than another.

Dominance Filtering

Given two plans A and B, A dominates B if A is at least as good as B on all four objectives and strictly better on at least one. The Pareto frontier is the set of plans that no other plan dominates.
Plan A: latency=4200s  energy=18Wh  reliability=0.97  quality=0.85
Plan B: latency=5100s  energy=22Wh  reliability=0.95  quality=0.80
  → A dominates B (better on all four axes)

Plan C: latency=3800s  energy=24Wh  reliability=0.93  quality=0.90
  → A does not dominate C (C has better latency and quality)
  → Both A and C are on the frontier

API Usage

Single-Satellite Pareto

Add pareto: true to a standard plan request:
curl -X POST https://rotastellar-cae.subhadip-mitra.workers.dev/v1/plan \
  -H "Content-Type: application/json" \
  -H "Origin: https://rotastellar.com" \
  -d '{
    "satellite_id": "25544",
    "preset_id": "onboard-ml-inference",
    "pareto": true
  }'
The response includes a frontier array instead of a single plan:
{
  "id": "pareto-a92f33e8-...",
  "frontier": [
    {
      "plan_index": 0,
      "objectives": {
        "latency_s": 3240,
        "energy_wh": 14.2,
        "reliability": 0.991,
        "quality": 0.95
      },
      "relaxations_applied": [],
      "plan": { ... }
    },
    {
      "plan_index": 1,
      "objectives": {
        "latency_s": 2880,
        "energy_wh": 12.8,
        "reliability": 0.967,
        "quality": 0.85
      },
      "relaxations_applied": ["lower_quality_tier", "reduce_fec"],
      "plan": { ... }
    }
  ],
  "frontier_size": 5,
  "candidates_evaluated": 128,
  "dominated_filtered": 123
}

Fleet-Level Pareto

For constellation workloads, use the fleet Pareto endpoint:
curl -X POST https://rotastellar-cae.subhadip-mitra.workers.dev/v1/constellation/pareto \
  -H "Content-Type: application/json" \
  -H "Origin: https://rotastellar.com" \
  -d '{
    "satellite_ids": ["25544", "48274", "55909"],
    "preset_id": "split-learning",
    "pareto": true
  }'
Fleet Pareto evaluates trade-offs across all satellites in the constellation, including ISL transfer alternatives and cross-satellite placement variations.

Response Parameters

FieldTypeDescription
frontierarrayArray of Pareto-optimal plan variants
frontier[].plan_indexnumberIndex within the frontier (0 = baseline)
frontier[].objectivesobjectObjective scores for this variant
frontier[].relaxations_appliedarrayWhich relaxations produced this variant
frontier[].planobjectFull plan object (same schema as standard plans)
frontier_sizenumberNumber of non-dominated solutions
candidates_evaluatednumberTotal candidate plans generated
dominated_filterednumberCandidates eliminated by dominance filtering

Console Integration

In the RotaStellar Console, the Generate Trade-offs button on the plan detail page triggers a Pareto analysis. Results are displayed as an interactive scatter chart where:
  • Each axis maps to one of the four objectives
  • Each point is a Pareto-optimal plan variant
  • Clicking a point loads the full plan detail
  • Hovering shows the relaxations applied and objective scores
Pareto planning takes longer than single-objective planning because the planner must evaluate and filter many candidates. For complex workloads with many steps, expect 2-5x the normal planning time.