Skip to main content

Smart Cruise

PyPI Status Build Status Documentation Status License: MIT Code Coverage

Find Pareto-optimal cruise trajectories to optimize energy consumption and travel time.

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:

  1. Cruise mode exists: A fixed trajectory is studied, which can be split in segments.
  2. A set of values (e.g. time, energy) must be optimized.
  3. The rest of the state description (e.g., height, speed, ...) has finite values.
  4. 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:

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)

Source distribution for smart-cruise 0.2.0
File Size Uploaded
smart_cruise-0.2.0.tar.gz 419.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for smart-cruise 0.2.0
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page