{"id":41121579,"url":"https://github.com/jbussemaker/adsg-core","last_synced_at":"2026-02-12T18:04:59.389Z","repository":{"id":218927483,"uuid":"747718154","full_name":"jbussemaker/adsg-core","owner":"jbussemaker","description":"The Design Space Graph (DSG)","archived":false,"fork":false,"pushed_at":"2026-01-22T14:38:05.000Z","size":16324,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-23T08:39:37.751Z","etag":null,"topics":["engineering","graphs","mbse","optimization","systems"],"latest_commit_sha":null,"homepage":"https://adsg-core.readthedocs.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jbussemaker.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-01-24T14:01:43.000Z","updated_at":"2026-01-22T14:34:25.000Z","dependencies_parsed_at":"2025-12-19T20:03:56.691Z","dependency_job_id":null,"html_url":"https://github.com/jbussemaker/adsg-core","commit_stats":null,"previous_names":["jbussemaker/adsg-core"],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/jbussemaker/adsg-core","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbussemaker%2Fadsg-core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbussemaker%2Fadsg-core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbussemaker%2Fadsg-core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbussemaker%2Fadsg-core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jbussemaker","download_url":"https://codeload.github.com/jbussemaker/adsg-core/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbussemaker%2Fadsg-core/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29375656,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T08:51:36.827Z","status":"ssl_error","status_checked_at":"2026-02-12T08:51:26.849Z","response_time":55,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["engineering","graphs","mbse","optimization","systems"],"created_at":"2026-01-22T17:37:04.063Z","updated_at":"2026-02-12T18:04:59.373Z","avatar_url":"https://github.com/jbussemaker.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# The Design Space Graph (ADSG Core)\n\n[![Tests](https://github.com/jbussemaker/adsg-core/workflows/Tests/badge.svg)](https://github.com/jbussemaker/adsg-core/actions/workflows/tests.yml?query=workflow%3ATests)\n[![PyPI](https://img.shields.io/pypi/v/adsg-core.svg)](https://pypi.org/project/adsg-core)\n[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)\n[![Documentation Status](https://readthedocs.org/projects/adsg-core/badge/?version=latest)](https://adsg-core.readthedocs.io/en/latest/?badge=latest)\n\n[GitHub Repository](https://github.com/jbussemaker/adsg-core) |\n[Documentation](https://adsg-core.readthedocs.io/)\n\nThe Design Space Graph (DSG) allows you to model design spaces using a directed graph that contains three\ntypes of architectural choices:\n\n- Selection choices (see example below): selecting among mutually-exclusive options, used for *selecting* which nodes\n  are part of an architecture instance\n- Connection choices: connecting one or more source nodes to one or more target nodes, subject to connection constraints\n  and optional node existence (due to selection choices)\n- Additional design variables: continuous or discrete, subject to optional existence (due to selection choices)\n\n![DSG with selection](https://raw.githubusercontent.com/jbussemaker/adsg-core/main/docs/figures/adsg_ex_sel.svg)\n\nModeling a design space like this allows you to:\n\n- Model hierarchical relationships between choices, for example only activating a choice when another choice has some\n  option selected, or restricting the available options for choices based on higher-up choices\n- Formulate the design space as an optimization problem that can be solved using numerical optimization algorithms\n- Generate architecture instances for a given design vector, automatically correct incorrect design variables, and get\n  information about which design variables were active\n- Implement an evaluation function (architecture instance --\u003e metrics) and run the optimization problem\n\n*Note: due to historical reasons the package and code refer to the ADSG (Architecture DSG), because originally it had\nbeen developed to model system architecture design spaces. In the context of this library, the ADSG and DSG can be\nconsidered to be equivalent.*\n\n## Installation\n\nFirst, create a conda environment (skip if you already have one):\n```\nconda create --name dsg python=3.12\nconda activate dsg\n```\n\nThen install the package:\n```\nconda install numpy scipy~=1.9\npip install adsg-core\n```\n\nOptionally also install optimization algorithms ([SBArchOpt](sbarchopt.readthedocs.io/)):\n```\npip install adsg-core[opt]\n```\n\nIf you want to interact with the DSG from a [Jupyter notebook](https://jupyter.org/):\n```\npip install adsg-core[nb]\njupyter notebook\n```\n\n## Documentation\n\nRefer to the [documentation](https://adsg-core.readthedocs.io/) for more background on the DSG\nand how to implement architecture optimization problems.\n\n### Examples\n\nAn example DSG with two selection choices:\n\n![DSG with selection](https://raw.githubusercontent.com/jbussemaker/adsg-core/main/docs/figures/adsg_ex_sel.svg)\n\nAn example DSG with a connection choice:\n\n![DSG with connection](https://raw.githubusercontent.com/jbussemaker/adsg-core/main/docs/figures/adsg_ex_conn.svg)\n\nThe DSG of the [Apollo problem](https://adsg-core.readthedocs.io/en/latest/example_apollo/):\n\n![GNC DSG](https://raw.githubusercontent.com/jbussemaker/adsg-core/main/docs/figures/adsg_ex_apollo.svg)\n\nThe DSG of the [GNC problem](https://adsg-core.readthedocs.io/en/latest/example_gnc/):\n\n![GNC DSG](https://raw.githubusercontent.com/jbussemaker/adsg-core/main/docs/figures/adsg_ex_gnc.svg)\n\n## Citing\n\nIf you use the DSG in your work, please cite it:\n\nJ.H. Bussemaker.\nSystem Architecture Optimization: Function-Based Modeling, Optimization Algorithms, and Multidisciplinary Evaluation.\nDissertation, Delft University of Technology, July 2025.\nDOI: [10.4233/uuid:246b18f9-1f8c-4ff7-b824-2b1786cf9d14](https://repository.tudelft.nl/record/uuid:246b18f9-1f8c-4ff7-b824-2b1786cf9d14)\n\n## Contributing\n\nThe project is coordinated by: Jasper Bussemaker (*jasper.bussemaker at dlr.de*)\n\nIf you find a bug or have a feature request, please file an issue using the Github issue tracker.\nIf you require support for using the DSG or want to collaborate, feel free to contact me.\n\nContributions are appreciated too:\n- Fork the repository\n- Add your contributions to the fork\n  - Update/add documentation\n  - Add tests and make sure they pass (tests are run using `pytest`)\n- Read and sign the [Contributor License Agreement (CLA)](https://github.com/jbussemaker/adsg-core/blob/main/ADSG%20Core%20DLR%20Individual%20Contributor%20License%20Agreement.docx)\n  , and send it to the project coordinator\n- Issue a pull request into the `dev` branch\n\n**NOTE:** Do *NOT* directly contribute to the `adsg_core.optimization.assign_enc` and `.sel_choice_enc` modules!\nTheir development happens in separate repositories:\n- [AssignmentEncoding](https://github.com/jbussemaker/AssignmentEncoding)\n- [SelectionChoiceEncoding](https://github.com/jbussemaker/SelectionChoiceEncoding)\n\nUse `update_enc_repos.py` to update the code in this repository.\n\n### Adding Documentation\n\n```\npip install -r requirements-docs.txt\nmkdocs serve\n```\n\nRefer to [mkdocs](https://www.mkdocs.org/) and [mkdocstrings](https://mkdocstrings.github.io/) documentation\nfor more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjbussemaker%2Fadsg-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjbussemaker%2Fadsg-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjbussemaker%2Fadsg-core/lists"}