|
1 |
| -# SMT Design Space Extension |
2 | 1 |
|
3 |
| -This module allows to use advanced design space implementation for hierachical variables handling. |
| 2 | +# SMT Design Space Extension 🌳 |
| 3 | + |
| 4 | +**Enhancing SMT with Hierarchical & Conditional Design Spaces** |
| 5 | + |
| 6 | +This 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. |
| 7 | + |
| 8 | +--- |
| 9 | + |
| 10 | +## 🔍 What It Does |
| 11 | + |
| 12 | +- **Hierarchical variables**: Support for nested conditional variables (e.g., a rotor configuration branch that only activates when `use_rotor = yes`). |
| 13 | +- **Mixed types**: Handles continuous, integer, categorical, meta and indicator variables uniformly. |
| 14 | +- **Conditional activation**: Meta-variables powerfully control lower-level variable activation based on context. |
| 15 | +- **Graph-based design space representation**: Clean and intuitive implementation of complex, branching designs. |
| 16 | +- **Extensible subtress**: Easily add new types or layers of conditional logic. |
| 17 | + |
| 18 | +--- |
| 19 | + |
| 20 | +## 📖 Why It Matters |
| 21 | + |
| 22 | +In 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: |
| 23 | + |
| 24 | +- A **formal representation** of hierarchical dependencies. |
| 25 | +- Seamless integration with surrogate modeling tools and optimization routines. |
| 26 | +- A foundation for improved experimental design and architectural exploration. |
| 27 | + |
| 28 | +--- |
| 29 | + |
| 30 | +## 🔗 Reference |
| 31 | + |
| 32 | +This implementation is based on: |
| 33 | + |
| 34 | +> **Hierarchical Modeling and Architecture Optimization: Review and Unified Framework** |
| 35 | +> P. Saves, E. Hallé‑Hannan, J. Bussemaker, Y. Diouane, N. Bartoli (June 2025). arXiv:2506.22621 ([arXiv](https://arxiv.org/abs/2506.22621)) |
| 36 | +
|
| 37 | +The paper provides a comprehensive survey and introduces a unified graph-based model that serves as the theoretical foundation for this extension. |
| 38 | + |
| 39 | +--- |
| 40 | + |
| 41 | +## 📦 Installation |
| 42 | + |
| 43 | +```bash |
| 44 | +pip install smt-design-space-ext |
| 45 | +``` |
| 46 | + |
| 47 | +--- |
| 48 | + |
| 49 | +## 🚀 Quick Start Example |
| 50 | + |
| 51 | +```python |
| 52 | +from smt_design_space import DesignSpace |
| 53 | + |
| 54 | +ds = DesignSpace() |
| 55 | +# Meta-variable to enable feature branching |
| 56 | +ds.add_categorical("enable_feature", ["yes", "no"]) |
| 57 | +# Feature type only active if enabled |
| 58 | +ds.add_meta("feature_type", |
| 59 | + parent="enable_feature", |
| 60 | + active_if="yes", |
| 61 | + values=["typeA", "typeB"]) |
| 62 | +# Parameter only active in typeA branch |
| 63 | +ds.add_numeric("featureA_param", |
| 64 | + parent="feature_type", |
| 65 | + active_if="typeA", |
| 66 | + bounds=(0.0, 1.0)) |
| 67 | +``` |
| 68 | + |
| 69 | +This dynamically builds a tree-like structure of variables, enabling clear and constrained space exploration. |
| 70 | + |
| 71 | +--- |
| 72 | + |
| 73 | +## 🧩 Integration |
| 74 | + |
| 75 | +- Integrates readily with SMT’s Kriging and PyKriging modules. |
| 76 | +- Compatible with Bayesian, evolutionary, or gradient‑based optimizers. |
| 77 | +- Prepare space definitions for use with graph neural networks or surrogate modeling pipelines. |
| 78 | + |
| 79 | +--- |
| 80 | + |
| 81 | +## 📚 Additional Resources |
| 82 | + |
| 83 | +- The **SMT repository** contains tutorials and example notebooks to demonstrate usage. |
| 84 | +- Issue tracker and usage discussions can be found under `SMTorg/smt-design-space-ext`. |
| 85 | +- Author metadata and license summary confirm this is BSD‑licensed. |
| 86 | + |
| 87 | +--- |
| 88 | + |
| 89 | +## ✅ Citation |
| 90 | + |
| 91 | +If you use this package in research, please cite: |
| 92 | + |
| 93 | +``` |
| 94 | +P. Saves, E. Hallé‑Hannan, J. Bussemaker, Y. Diouane, N. Bartoli, |
| 95 | +“Hierarchical Modeling and Architecture Optimization: Review and Unified Framework,” |
| 96 | +arXiv:2506.22621, June 2025. |
| 97 | +``` |
| 98 | + |
| 99 | +--- |
| 100 | + |
| 101 | +## 📜 License |
| 102 | + |
| 103 | +Distributed under the **BSD-3-Clause** license. See [LICENSE](LICENSE) for details. |
0 commit comments