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.3.tar.gz (69.2 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.3-py3-none-any.whl (84.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aeroopt-0.1.3.tar.gz
  • Upload date:
  • Size: 69.2 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.3.tar.gz
Algorithm Hash digest
SHA256 ecc251c32101e4f8ad0b1063a24fcbed23104d6643ea19c621f512696b4702be
MD5 1ee6b4662d8218c37a08cae306e7b384
BLAKE2b-256 eadea4b0b7c4d6e6f6cd7fedffa2ede9303d9d409282b5c932c683fc416b5014

See more details on using hashes here.

File details

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

File metadata

  • Download URL: aeroopt-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 84.1 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 160575a658c4a2a59591bf0f9f18ae437088a4abe0e64b4a01f018669fbf7792
MD5 fe7cc66d6f373a8c6770a4c19ef2bade
BLAKE2b-256 3a5f3b03fbfb56d8cba65c2e37638824df0d269d76d0510677d17fe63593a36b

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