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. 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.

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.2.0.tar.gz (419.9 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.2.0-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: smart_cruise-0.2.0.tar.gz
  • Upload date:
  • Size: 419.9 kB
  • Tags: Source
  • Uploaded using 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}

File hashes

Hashes for smart_cruise-0.2.0.tar.gz
Algorithm Hash digest
SHA256 59b97d72bb58793ebc72b6b8b4cdc7d418a26f5dd9729ea6bee2d6bf993f2bf5
MD5 4d0fb0afe284b38cf327d4b6d5d2fded
BLAKE2b-256 faac81224c4dd564852b16b20210ca4a3e083c4fa39053a04191879aecf4e581

See more details on using hashes here.

File details

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

File metadata

  • Download URL: smart_cruise-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 11.9 kB
  • Tags: Python 3
  • Uploaded using 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}

File hashes

Hashes for smart_cruise-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f1298e7d3ddf0a0202792a6d1d91683d80d8274b76510f8c4c17ba2af0ab8eb0
MD5 ab20e7aa9a62ca454b67c57ada762104
BLAKE2b-256 b7a827007cacaa73a44268cc153e589d18e6676638a21b46bd3a7655786e9392

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