{"id":34088066,"url":"https://github.com/smtorg/smt-design-space-ext","last_synced_at":"2026-03-09T20:31:12.564Z","repository":{"id":257553631,"uuid":"855200156","full_name":"SMTorg/smt-design-space-ext","owner":"SMTorg","description":"SMT design space extension for hierarchical variable handling","archived":false,"fork":false,"pushed_at":"2025-11-24T05:13:33.000Z","size":121,"stargazers_count":2,"open_issues_count":5,"forks_count":2,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-12-09T12:15:54.039Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SMTorg.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-09-10T13:38:31.000Z","updated_at":"2025-09-27T17:58:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"675d1913-e8a6-430b-9adf-337aabc353e0","html_url":"https://github.com/SMTorg/smt-design-space-ext","commit_stats":null,"previous_names":["smtorg/smt-design-space"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/SMTorg/smt-design-space-ext","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SMTorg%2Fsmt-design-space-ext","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SMTorg%2Fsmt-design-space-ext/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SMTorg%2Fsmt-design-space-ext/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SMTorg%2Fsmt-design-space-ext/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SMTorg","download_url":"https://codeload.github.com/SMTorg/smt-design-space-ext/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SMTorg%2Fsmt-design-space-ext/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27729418,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-14T02:00:11.348Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2025-12-14T13:59:59.928Z","updated_at":"2025-12-14T14:00:01.623Z","avatar_url":"https://github.com/SMTorg.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# SMT Design Space Extension 🌳\n\n**Enhancing SMT with Hierarchical \u0026 Conditional Design Spaces**\n\nThis package is an extension to the SMT (Surrogate Modeling Toolbox), offering a powerful framework to define and manage **hierarchical**, **mixed-type**, and **conditionally active** variables in design spaces.\n\n---\n\n## 🔍 What It Does\n\n- **Hierarchical variables**: Support for nested conditional variables (e.g., a rotor configuration branch that only activates when `use_rotor = yes`).\n- **Mixed types**: Handles continuous, integer or categorical variables uniformly.\n- **Conditional activation**: Meta-variables powerfully control lower-level variable activation based on context.\n- **Graph-based design space representation**: Clean and intuitive implementation of complex, branching designs.\n- **Extensible subtress**: Easily add new types or layers of conditional logic.\n\n---\n\n## 📖 Why It Matters\n\nIn many engineering and simulation contexts, the design parameters form a structured, dependent hierarchy—optimizing them without a formal framework can lead to errors or inefficient models. This extension provides:\n\n- A **formal representation** of hierarchical dependencies.\n- Seamless integration with surrogate modeling tools and optimization routines.\n- A foundation for improved experimental design and architectural exploration.\n\n---\n\n## 🔗 Reference\n\nThis implementation is based on:\n\n\u003e **Hierarchical Modeling and Architecture Optimization: Review and Unified Framework**  \n\u003e P. Saves, E. Hallé‑Hannan, J. Bussemaker, Y. Diouane, N. Bartoli (June 2025). arXiv:2506.22621 ([arXiv](https://arxiv.org/abs/2506.22621))\n\nThe paper provides a comprehensive survey and introduces a unified graph-based model that serves as the theoretical foundation for this extension.\n\n---\n\n## 📦 Installation\n\n```bash\npip install smt-design-space-ext\n```\nhttps://pypi.org/project/smt-design-space-ext/\n\nRequirements. See [Requirements](requirements.txt) for details.\n\n---\n\n## 🚀 Quick Start Example\n\n```python\nfrom smt_design_space_ext import (\n    HAS_CONFIG_SPACE,\n    HAS_ADSG,\n    AdsgDesignSpaceImpl,\n    ConfigSpaceDesignSpaceImpl,\n    BaseDesignSpace,\n    CategoricalVariable,\n    FloatVariable,\n    IntegerVariable,\n    OrdinalVariable,\n)\n\n ds = ConfigSpaceDesignSpaceImpl(\n            [\n                CategoricalVariable([\"A\", \"B\", \"C\"]),  # x0\n                CategoricalVariable([\"E\", \"F\"]),  # x1\n                IntegerVariable(0, 1),  # x2\n                FloatVariable(0.1, 1),  # x3\n            ],\n            random_state=42,\n        )\n        ds.declare_decreed_var(\n            decreed_var=3, meta_var=0, meta_value=\"A\"\n        )  # Activate x3 if x0 == A\n\n\n```\n\nThis dynamically builds a tree-like structure of variables, enabling clear and constrained space exploration.\n\n---\n\n## 🧩 Integration\n\n- Integrates readily with SMT’s Kriging modules.\n- Compatible with Bayesian or gradient‑based optimizers.\n- Prepare space definitions for use with surrogate modeling pipelines.\n\n---\n\n## 📚 Additional Resources\n\n- The **SMT repository** contains tutorials and example notebooks to demonstrate usage.\n- Issue tracker and usage discussions can be found under `SMTorg/smt-design-space-ext`.\n- Author metadata and license summary confirm this is BSD‑licensed.\n\n---\n\n## ✅ Citation\n\nIf you use this package in research, please cite:\n\n```\nP. Saves, E. Hallé‑Hannan, J. Bussemaker, Y. Diouane, N. Bartoli,\n“Hierarchical Modeling and Architecture Optimization: Review and Unified Framework,”\narXiv:2506.22621, June 2025.\n```\n\n---\n\n## 📜 License\n\nDistributed under the **BSD-3-Clause** license. See [LICENSE](LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmtorg%2Fsmt-design-space-ext","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmtorg%2Fsmt-design-space-ext","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmtorg%2Fsmt-design-space-ext/lists"}