Skip to main content

Architecture Design Space Graph Core

Project description

Architecture Design Space Graph Core

Tests PyPI License Documentation Status

GitHub Repository | Documentation

The Architecture Design Space Graph (ADSG) allows you to model design spaces using a directed graph that contains three types of architectural choices:

  • Selection choices (see example below): selecting among mutually-exclusive options, used for selecting which nodes are part of an architecture instance
  • Connection choices: connecting one or more source nodes to one or more target nodes, subject to connection constraints and optional node existence (due to selection choices)
  • Additional design variables: continuous or discrete, subject to optional existence (due to selection choices)

ADSG with selection

Modeling a design space like this allows you to:

  • Model hierarchical relationships between choices, for example only activating a choice when another choice has some option selected, or restricting the available options for choices based on higher-up choices
  • Formulate the design space as an optimization problem that can be solved using numerical optimization algorithms
  • Generate architecture instances for a given design vector, automatically correct incorrect design variables, and get information about which design variables were active
  • Implement an evaluation function (architecture instance --> metrics) and run the optimization problem

Installation

First, create a conda environment (skip if you already have one):

conda create --name adsg python=3.10
conda activate adsg

Then install the package:

conda install numpy scipy~=1.9
pip install adsg-core

Optionally also install optimization algorithms (SBArchOpt):

pip install adsg-core[opt]

If you want to interact with the ADSG from a Jupyter notebook:

pip install adsg-core[nb]
jupyter notebook

Documentation

Refer to the documentation for more background on the ADSG and how to implement architecture optimization problems.

Examples

An example ADSG with two selection choices:

ADSG with selection

An example ADSG with a connection choice:

ADSG with connection

The ADSG of the Apollo problem:

GNC ADSG

The ADSG of the GNC problem:

GNC ADSG

Citing

If you use the ADSG in your work, please cite it:

Bussemaker, J.H., Ciampa, P.D., & Nagel, B. (2020). System architecture design space exploration: An approach to modeling and optimization. In AIAA Aviation 2020 Forum (p. 3172). DOI: 10.2514/6.2020-3172

Contributing

The project is coordinated by: Jasper Bussemaker (jasper.bussemaker at dlr.de)

If you find a bug or have a feature request, please file an issue using the Github issue tracker. If you require support for using ADSG Core or want to collaborate, feel free to contact me.

Contributions are appreciated too:

  • Fork the repository
  • Add your contributions to the fork
    • Update/add documentation
    • Add tests and make sure they pass (tests are run using pytest)
  • Read and sign the Contributor License Agreement (CLA) , and send it to the project coordinator
  • Issue a pull request into the dev branch

NOTE: Do NOT directly contribute to the adsg_core.optimization.assign_enc and .sel_choice_enc modules! Their development happens in separate repositories:

Use update_enc_repos.py to update the code in this repository.

Adding Documentation

pip install -r requirements-docs.txt
mkdocs serve

Refer to mkdocs and mkdocstrings documentation for more information.

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

adsg-core-1.0.1.tar.gz (140.7 kB view details)

Uploaded Source

Built Distribution

adsg_core-1.0.1-py3-none-any.whl (184.9 kB view details)

Uploaded Python 3

File details

Details for the file adsg-core-1.0.1.tar.gz.

File metadata

  • Download URL: adsg-core-1.0.1.tar.gz
  • Upload date:
  • Size: 140.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for adsg-core-1.0.1.tar.gz
Algorithm Hash digest
SHA256 4548b1cd3dc94e63f9c0552b2f4cd827911caa91edb883997fe96f01efbeb88e
MD5 9dbb9e0c6f7354e759bd4d0220bcb148
BLAKE2b-256 73b430ee8620bc9b3b71c0063a8b0b09b2254b8037f9a21029cd930807d849d3

See more details on using hashes here.

Provenance

File details

Details for the file adsg_core-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: adsg_core-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 184.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for adsg_core-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d520bfe0f182472ea8d23247ec3b9dbdbadf7211311828d036fe6372ea363487
MD5 61f23695d4680234da7aef12aad7c2b3
BLAKE2b-256 89fad78157f277b46b49a0a82c1dc013d8ec7e80093895692e6e397d8204b98b

See more details on using hashes here.

Provenance

Supported by

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