Skip to main content

A multi-objective optimization tool for engineering applications.

Project description

AeroOpt (aeroopt)

A multi-objective (and single-objective) optimization framework for engineering workflows.

This framework is developed to handle the complex needs of:

  • calling external tools for evaluation
  • parallel evaluation
  • pre- and post-processing of the population
  • user manipulation of the population

This framework is also developed for other purposes, such as:

  • hybridization of different optimization algorithms, machine learning tools, etc.
  • adaptive sampling

Features

  • Problems and data: Problem, Individual, Database; constraint strings and custom constraint callables; databases can be serialized to JSON / Excel.
  • Evaluation: built-in Python objectives or external executables; MultiProcessEvaluation for parallel runs (examples cover Linux and Windows).
  • Optimization loop: OptBaseFramework with pluggable PreProcess / PostProcess; examples show population pre/post-processing and user hooks.
  • Evolutionary algorithms: NSGA-II, NSGA-III, RVEA, MOEA/D, differential evolution (MODE-style), NRBO, and more; DominanceBasedAlgorithm supplies non-dominated sorting, crowding, parent selection, and related helpers.
  • Surrogates and hybrids: SAO and SBO in aeroopt.optimization.hybrid; aeroopt.utils.surrogate defines surrogate interfaces (e.g. Kriging with SMT or similar backends).
  • Analysis and utilities: AnalyzeDatabase in aeroopt.analysis.analyze_database; standard test functions in aeroopt.utils.benchmark (e.g. Rastrigin, ZDT suites).

For richer visualization and decision-making around multi-objective optimization, see pymoo.

Requirements

  • Python ≥ 3.9
  • Core dependencies: numpy, scipy, scikit-learn (see pyproject.toml)

Installation

Repository: https://github.com/swayli94/AeroOpt

From PyPI:

pip install aeroopt

Editable install from a clone of this repository:

pip install -e .

Package layout

Package Role
aeroopt.core Problem, Individual, Database, settings types, MultiProcessEvaluation, logging and path helpers
aeroopt.optimization OptBaseFramework, PreProcess / PostProcess, algorithm settings, Opt* drivers, MOEA utilities
aeroopt.optimization.stochastic Implementations of NSGA-II/III, RVEA, MOEA/D, DE, NRBO, etc.
aeroopt.optimization.hybrid SAO, SBO, and related post-processing
aeroopt.analysis Database analysis such as AnalyzeDatabase (aeroopt.analysis.analyze_database)
aeroopt.utils benchmark, surrogate

Quick import:

import aeroopt
from aeroopt.core import Problem, Database, MultiProcessEvaluation
from aeroopt.optimization import OptNSGAII, SettingsNSGAII

Examples (example/)

Many scripts prepend the repository root to sys.path so they run without installing the package; remove that block if you already use pip install aeroopt.

Folder Script Summary
1-database-io example_core_functions.py Problem and database setup; JSON / Excel I/O
2-mp-evaluation example_mpEvaluation.py Parallel evaluation with built-in and external executables
3-database-evaluation example_database_evaluation.py Database.evaluate_individuals: serial vs. multiprocessing, external scripts
4-pre-process example_pre_process.py Custom PreProcess and candidate-database repair
5-evolutionary-algorithm example_dominance_based_algorithm.py DominanceBasedAlgorithm dominance and selection tools
5-evolutionary-algorithm example_pareto_analysis.py Pareto-focused analysis (pairs with multi-objective examples)
6-single-objective-optimization example_soo.py Single-objective comparison: NSGA-II, DE, NRBO, etc.
7-multi-objective-optimization example_nsgaii.py and others ZDT benchmarks with NSGA-II, DE, NSGA-III, RVEA, MOEA/D; see README.md in that folder
8-surrogate-hybrid-optimization example_sao.py, example_sbo.py Surrogate-assisted and surrogate-based hybrid optimization
8-surrogate-hybrid-optimization example_kriging.py Kriging / surrogate usage

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

aeroopt-0.1.1.tar.gz (69.5 kB view details)

Uploaded Source

Built Distribution

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

aeroopt-0.1.1-py3-none-any.whl (83.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aeroopt-0.1.1.tar.gz
  • Upload date:
  • Size: 69.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for aeroopt-0.1.1.tar.gz
Algorithm Hash digest
SHA256 b7060b516f069482f2f03801d105a60cc7a85525f7b91e476a7031656062c417
MD5 d260ee1003715f107ae9b33b6c236163
BLAKE2b-256 9e8d7b9be3cbe06ed1364222ddf9ccfdee0b9e7d2d43acde635be34754a02848

See more details on using hashes here.

File details

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

File metadata

  • Download URL: aeroopt-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 83.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for aeroopt-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cc96f7632bda7f9145528b15628881ad97b3215e44122be0b9377e3923c9553b
MD5 cd3eea291ca68d3558d6c3ab89794d5a
BLAKE2b-256 13ad57e7eb2a9724c1228b62a739de3fe1371c673de3b8d3940e7389986264ae

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