Smart Cruise#
Find Pareto-optimal cruise trajectories to optimize energy consumption and travel time.
Free software: MIT
Documentation: https://balouf.github.io/smart-cruise/.
Features#
Find Pareto-optimal cruise trajectories balancing energy consumption and travel time.
Dynamic programming with multi-objective Pareto optimization.
JIT-compiled core engine for fast computation.
Customizable cost models for different scenarios.
Trajectory visualization tools.
Theoretical Foundations#
This package implements the multi-objective dynamic programming framework described in:
Bui-Xuan, Mathieu, Tighilt (2026). La croisière s’amuse. Algotel 2026.
Main model assumptions:
Dominance preservation (H1): Any resource advantage at step d can be maintained through transitions
Lipschitz continuity (H2): Small perturbations lead to bounded output changes
Complexity: O(n² log n) for 2 objectives with constant precision, vs. exponential for exact Pareto front
The pareto_max parameter (denoted S in the paper) controls the trade-off between computation time and approximation quality.
Model Applicability#
This package implements a state-dependent multi-objective optimization model using dynamic programming to find Pareto-optimal trajectories. While the default parameters are tuned for ship / aircraft cruise optimization, the underlying model applies to any vehicle where:
Cruise mode exists: A fixed trajectory is studied, which can be split in segments.
A set of values (e.g. time, energy) must be optimized.
The rest of the state description (e.g., height, speed, …) has finite values.
H1 and H2 apply.
The name Smart Cruise refers to optimizing any steady-state operation mode (“cruise”). The underlying model has a large range of applications, drawing on various scientific domains:
Aircraft: The Breguet range equation captures state-dependent fuel consumption
UAV optimization: Fuel-weight trajectory optimization demonstrates 25% fuel reduction through weight tracking
Multi-rotor UAV: Energy-aware path planning shows power varies with flight state
Fuel cell vehicles: Multi-dimensional DP for global energy optimization
AUV trajectory: Energy-optimal MPC for underwater vehicle path planning
Quickstart#
Install Smart Cruise:
$ pip install smart-cruise
Use Smart Cruise in a Python project:
>>> from smart_cruise import CostRandom, Cruise
>>> model = CostRandom(n_d=100, seed=42)
>>> cruise = Cruise(model)
>>> cruise.parameters.pareto_max = 5
>>> cruise.compute()
>>> w, t = cruise.trajectories.get_front()
>>> f"Weight optimal: {w[0]:.2f}, Time optimal: {t[-1]:.2f}"
'Weight optimal: 22979.35, Time optimal: 22734.91'
Credits#
This package was created with Cookiecutter and the Package Helper 3 project template.