Skip to main content

Find Pareto-optimal cruise trajectories to optimize energy consumption and travel time for any vehicle with state-dependent costs.

Project description

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. submitted to 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") and is not restricted to, for instance, just aircraft flights.

Example Applications

Domain "Height" dimension "Energy" dimension State dependency
Aircraft Flight level/altitude Fuel remaining Lighter aircraft = more efficient
UAV Altitude Battery charge Altitude affects efficiency
AUV Depth Battery charge Depth affects drag/buoyancy
Ground vehicle Terrain elevation Fuel/battery Elevation changes cost energy
Ship Sails Fuel remaining Weight affects hull resistance

Scientific References

The model draws on established principles from various 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

smart_cruise-0.1.1.tar.gz (385.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

smart_cruise-0.1.1-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

Details for the file smart_cruise-0.1.1.tar.gz.

File metadata

  • Download URL: smart_cruise-0.1.1.tar.gz
  • Upload date:
  • Size: 385.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","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}

File hashes

Hashes for smart_cruise-0.1.1.tar.gz
Algorithm Hash digest
SHA256 0417e20274340c7572d9977ba31127ee0c3c20623e1a38e15ff1568f2f37c6c3
MD5 08276071c571c376b4aa8c71957e0530
BLAKE2b-256 5f0b9ae30e6113bf17ca12178aed552bd95a0a9fb93fa83ef744e1e44924c296

See more details on using hashes here.

File details

Details for the file smart_cruise-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: smart_cruise-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 11.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","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}

File hashes

Hashes for smart_cruise-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1f431e8552aad6a06331dcf317482b2f1ee489463297b6514ed52d05e29addba
MD5 08dbe5a2c372378e4231914c953dce07
BLAKE2b-256 a148b49167f42797ce5c8f9370e3d661273b82bc29aeb989f25e6cc03d76b188

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page