Smart Cruise
Find Pareto-optimal cruise trajectories to optimize energy consumption and travel time.
- Free software: MIT
- Documentation: https://balouf.github.io/smart-cruise/.
- Github: https://github.com/balouf/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.
Metadata
Release files for smart-cruise 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| smart_cruise-0.2.0.tar.gz | 419.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| smart_cruise-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 431.8 kB
Release files / smart_cruise-0.2.0.tar.gz
| Download URL | smart_cruise-0.2.0.tar.gz |
|---|---|
| Size | 419.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
59b97d72bb58793ebc72b6b8b4cdc7d418a26f5dd9729ea6bee2d6bf993f2bf5
|
|
BLAKE2b-256 checksum How to use checksums |
faac81224c4dd564852b16b20210ca4a3e083c4fa39053a04191879aecf4e581
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / smart_cruise-0.2.0-py3-none-any.whl
| Download URL | smart_cruise-0.2.0-py3-none-any.whl |
|---|---|
| Size | 11.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f1298e7d3ddf0a0202792a6d1d91683d80d8274b76510f8c4c17ba2af0ab8eb0
|
|
BLAKE2b-256 checksum How to use checksums |
b7a827007cacaa73a44268cc153e589d18e6676638a21b46bd3a7655786e9392
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|