VIATRA Design Space Exploration Framework (VIATRA-DSE)
Design space exploration (DSE) is a multi-criteria, search-based design process, which searches for good enough solutions within the possible design alternatives.
VIATRA-DSE is Java based framework for model-driven, rule-based design space exploration with the following main concepts:
- Model-driven: the problem representation is a typed attributed graph, which well fits in the processes of model-driven approaches, where models are typically graph-like structures and constraints are graph patterns. VIATRA-DSE stores the models (design candidates) as EMF models and captures constraints as VIATRA Query graph patterns.
- Rule-based: in certain scenarios we not only interested in a solution (e.g. sudoku), but we also need to know how to reach that solution (e.g. Rubik's cube). In VIATRA-DSE rules are defined as graph-transformation rules, while solutions are defined as a sequence of rules applications (trajectory) which transforms the initial model into a desired one.
- Multi-Objective Optimization: VIATRA-DSE is able to handle multiple objective functions, both hard objectives (shall be satisfied by a goal state) and soft objectives (should be optimized), which can be derived from the model (graph pattern, simulation, etc.) or from the trajectory.
- Meta-heuristic strategies: meta-heuristic search techniques are widely used in optimization problems. VIATRA-DSE comes with a set of built-in exploration strategies such as depth and breadth first search, fixed-priority strategy, hill climbing strategy, evolutionary algorithms (e.g. NSGA-II and PESA) and more will come. Developers can easily integrate their own strategies.
- Usage of the API
- State coders