diff --git a/README.md b/README.md index 7abe00abd0ca79ccf7d2b58d60c178ee2757937f..f620f2a986249c087b20dc31b36834bcc632b4d9 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,16 @@ -# MOO4Modelica +# MOO4Modelica + ModelicaOrchestrator -An optimization framework and workflow for Modelica which supports both single- and multi-objective optimization. +**MOO4Modelica:** An optimization framework for Modelica which supports both single- and multi-objective optimization. + +**ModelicaOrchestrator:** An orchestration workflow for Modelica. GitHub Page: [https://wangzizhe.github.io/MOO4Modelica](https://wangzizhe.github.io/MOO4Modelica) <img src="./diagrams/MOO4Modelica_framework.png" alt="framework" style="zoom:80%;" /> -## Framework - -#### Highlights: +<img src="./assets/MOO4Modelica_framework.png" alt="framework" style="zoom:80%;" /> -1. **Easy to configure:** All configurations can be defined in `config.json`. -2. **SoTA algorithms:** Dynamic import of algorithms from *pymoo*. -3. **Enable use of** **parallel computing**: For accelerated process. -5. **Support transformation into feature models**: To better analyze and understand large-scale models. +<img src="./assets/ModelicaOrchestrator.png" alt="workflow" style="zoom:80%;" /> #### Structure: @@ -29,26 +26,26 @@ GitHub Page: [https://wangzizhe.github.io/MOO4Modelica](https://wangzizhe.github |-- config.py |-- optimize_main.py |-- parallel_computing.py - |-- adaptive_instance_selection.py - |-- optimization_libraries.py - |-- evaluate.py + |-- optimization_libraries.py +(Orchestration Workflow) + |-- orchestration_config.json + |-- orchestrator.py + |-- orchestration_wrapper.py + |-- orchestration_configurator.py ``` -* (Feature Model Transformation) +* **Feature Model Transformation** * `modelica.g4`: an ANTLR4 grammar for Modelica files * `parse_modelica.py`: parse a Modelica model to extract it components and their parameters * `feature_model.py`: create a feature model and add the extracted components -* (Optimization Operation) +* **Optimization Operation** * `config.json` & `config.py`: global settings and configurations * `optimize_main.py`: main optimization script * `parallel_computing.py`: parallel computing * `optimization_libraries.py`: dynamic import of algorithms from *pymoo* -#### Usage -https://wangzizhe.github.io/MOO4Modelica/docs/Usage.html - -#### Example -https://wangzizhe.github.io/MOO4Modelica/docs/Example.html - -#### Dynamic Adaptation and Orchestration of Systems with Modelica and MOO4Modelica -https://wangzizhe.github.io/MOO4Modelica/docs/OrchestrationWorkflow.html \ No newline at end of file +* **Orchestration Workflow** + * `orchestration_config.json`: configuration file for the entire orchestration workflow + * `orchestrator.py`: coordinates the overall workflow + * `orchestration_wrapper.py`: intermediary between MOO4Modelica and orchestration workflow + * `orchestration_configurator.py`: updates configuration based on current status \ No newline at end of file diff --git a/diagrams/ModelicaOrchestrator.png b/diagrams/ModelicaOrchestrator.png new file mode 100644 index 0000000000000000000000000000000000000000..28d86be1c0aabffab49528f9c14ad7f38e1467b8 Binary files /dev/null and b/diagrams/ModelicaOrchestrator.png differ