diff --git a/README.md b/README.md index d26c193a94ec9f1d74e5f9f56125892f46e50e89..7abe00abd0ca79ccf7d2b58d60c178ee2757937f 100644 --- a/README.md +++ b/README.md @@ -1,41 +1,29 @@ # MOO4Modelica -A Multi-objective Optimization framework and workflow for Modelica. +An optimization framework and workflow for Modelica which supports both single- and multi-objective optimization. GitHub Page: [https://wangzizhe.github.io/MOO4Modelica](https://wangzizhe.github.io/MOO4Modelica) <img src="./diagrams/MOO4Modelica_framework.png" alt="framework" style="zoom:80%;" /> -**Motivation:** The paper "*A Multi-objective Optimization Algorithm and Process for Modelica Model*" stated two challenges: - -1. the functions for multi-objective optimization are limited in Modelica, -2. MOO is slow. - -I want to design a general framework to solve these two challenges by - -1. coupling Python's MOO frameworks to Modelica using OMPython, - -2. Speed up MOO by enabling parallel computing and adaptive instance selection. - ## Framework #### Highlights: -1. **Easy to configure:** All settings and configurations can be defined in `config.json`. -2. **SoTA algorithms for MOO:** Dynamic import of algorithms from *pymoo*. +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. -4. **Enable use of adaptive instance selection:** Automated search space reduction. 5. **Support transformation into feature models**: To better analyze and understand large-scale models. -6. **Comprehensive debugging system**: Debugging functions for all critical steps. #### Structure: ``` ./src/ (Feature Model Transformation) - |-- modelica.g4 - |-- parse_modelica.py - |-- feature_model.py + |-- feature_model + |-- modelica.g4 + |-- parse_modelica.py + |-- feature_model.py (Optimization Operation) |-- config.json |-- config.py @@ -54,47 +42,13 @@ I want to design a general framework to solve these two challenges by * `config.json` & `config.py`: global settings and configurations * `optimize_main.py`: main optimization script * `parallel_computing.py`: parallel computing - * `adaptive_instance_selection.py`: automated search space reduction * `optimization_libraries.py`: dynamic import of algorithms from *pymoo* - * `evaluate.py`: performance evaluation (time efficiency, optimization accuracy, additional statistical analysis) #### Usage - -[https://wangzizhe.github.io/MOO4Modelica/docs/Usage.html](https://wangzizhe.github.io/MOO4Modelica/docs/Usage.html) +https://wangzizhe.github.io/MOO4Modelica/docs/Usage.html #### Example +https://wangzizhe.github.io/MOO4Modelica/docs/Example.html -[https://wangzizhe.github.io/MOO4Modelica/docs/Example.html)](https://wangzizhe.github.io/MOO4Modelica/docs/Example.html) - -## Background - -### 1. A Multi-objective Optimization Algorithm and Process for Modelica Model - -Zhang, Congcong, et al. "A Multi-objective Optimization Algorithm and Process for Modelica Model." *2022 4th International Conference on Artificial Intelligence and Advanced Manufacturing (AIAM)*. IEEE, 2022. - -**Problem:** In the current commercial software based on Modelica model, there are few functions for multi-objective optimization, and the current multi-objective optimization algorithm has the problems of insufficient approximation of the optimal solution set and uneven distribution of the solution set. - -**Objective:** To solve this problem, Combined with the characteristics of Modelica model and NSGA-II algorithm, this paper proposes a multi-objective optimization algorithm and process for Modelica model. - -**Solution:** This paper provides a multi-objective optimization design process for the current modeling and simulation platform. **The process analyzes the model variables according to ANTLR4 and transforms the tree structure**. - -**Future Work:** MOO takes huge computing resources, so it is slow, the future work would be to implement parallel computing to solve this problem. - - - -**Zizhe's thoughts:** - -* This paper only provides the idea of the overall process, I can't find it anywhere or reproduce it. Also, the ANTLR method seems complicated. -* The future work part in this paper is interesting for me and the authors are not doing it. So I could think about implementing parallel computing. - -#### 2. DESA - Optimization of variable structure Modelica models using custom annotations - -Bender, Daniel. "DESA: Optimization of variable structure modelica models using custom annotations." *Proceedings of the 7th International Workshop on Equation-Based Object-Oriented Modeling Languages and Tools*. 2016. - -**Contribution:** The library DESA uses custom annotations to implement the optimization task to the model. Further, the model is exported including this meta-information. The DESA optimization tool then allows to set of the optimization task in a Matlab environment and operates the optimization run. In this way, the optimization of variable structure models is achieved. - - - -**Zizhe's thoughts:** - -* This only works in Dymola... +#### Dynamic Adaptation and Orchestration of Systems with Modelica and MOO4Modelica +https://wangzizhe.github.io/MOO4Modelica/docs/OrchestrationWorkflow.html \ No newline at end of file diff --git a/diagrams/MOO4Modelica_framework.png b/diagrams/MOO4Modelica_framework.png index 1361cb4435bc1c0f00e10cec3643864e9748d89d..5f11fda08c43f55e474449d5199fb686352fd8ef 100644 Binary files a/diagrams/MOO4Modelica_framework.png and b/diagrams/MOO4Modelica_framework.png differ