A tool demonstration of the MOMoT framework for the ICMT conference 2016 in Vienna. The demonstration shows the application of search-based model transformations on the Class Responsibility Assignment problem.
ICMT 2016: Search-Based Model Transformations with MOMoT
1. Search-Based Model Transformations with MOMoT
http://martin-fleck.github.io/momot/
ICMT, Vienna
4th July 2016
A Tool Demonstration
Martin Fleck, Javier Troya, Manuel Wimmer
2. Problem Statement
2
Solving Complex Optimization Problems
Example: Class Responsibility Assignment Problem
Modularization of features into classes
3. Problem Statement
2
Solving Complex Optimization Problems
Example: Class Responsibility Assignment Problem
Modularization of features into classes
1 2 5 15 52 203 …
1
10
100
1,000
10,000
100,000
1,000,000
10,000,000
100,000,000
1,000,000,000
10,000,000,000
100,000,000,000
1,000,000,000,000
10,000,000,000,000
100,000,000,000,000
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
NumberofPossibilities
Number of Features
4. Metamodel?
Problem Statement
3
Solving Complex Optimization Problems
ClassModel
name : EString
Feature
name : EString
Class
name : EString
features
classes
isEncapsulatedBy
dataDep
0..*
0..*
0..*
0..*
0..1
0..*
AttributeMethod
encapsulates
funcDep
5. Trans-
formations?
Problem Statement
3
Solving Complex Optimization Problems
Rule createClass(className: EString)
«preserve»
: ClassModel
«forbid»
: Class
name = className
«create»
: Class
name = className
«create»
classesclasses
«forbid»
Rule assignFeature(feature: Feature, class: Class) @ClassModel
«preserve»
feature : Feature
«forbid»
: Class
«preserve»
class : Class
«create»
moduleclass
«forbid»
7. Manually solving problems intelligently requires detailed knowledge
Effect of transformation rules on output model
Conflicting and supporting rules
Rule parameterization
Rule scheduling: Order of rules
Conflicting output characteristics
Problem Statement
3
Solving Complex Optimization Problems
Rule createClass(className: EString)
«preserve»
: ClassModel
«forbid»
: Class
name = className
«create»
: Class
name = className
«create»
classesclasses
«forbid»
Rule assignFeature(feature: Feature, class: Class) @ClassModel
«preserve»
feature : Feature
«forbid»
: Class
«preserve»
class : Class
«create»
moduleclass
«forbid»
8. Manually solving problems intelligently requires detailed knowledge
Effect of transformation rules on output model
Conflicting and supporting rules
Rule parameterization
Rule scheduling: Order of rules
Conflicting output characteristics
Complex problem with large or even infinite transformation space
Automatic transformation orchestration
Problem Statement
3
Solving Complex Optimization Problems
Rule createClass(className: EString)
«preserve»
: ClassModel
«forbid»
: Class
name = className
«create»
: Class
name = className
«create»
classesclasses
«forbid»
Rule assignFeature(feature: Feature, class: Class) @ClassModel
«preserve»
feature : Feature
«forbid»
: Class
«preserve»
class : Class
«create»
moduleclass
«forbid»
10. Aim: Automatic transformation orchestration for complex problems
Utilize abstraction capabilities of MDE
Benefit from declarative exploration capabilities of SBO methods
Search-Based Model Transformations
5
Overview
11. Aim: Automatic transformation orchestration for complex problems
Utilize abstraction capabilities of MDE
Benefit from declarative exploration capabilities of SBO methods
Search-Based Exploration
Example: Population-based search method
Search-Based Model Transformations
5
Overview
Population
(size = 10)
12. Aim: Automatic transformation orchestration for complex problems
Utilize abstraction capabilities of MDE
Benefit from declarative exploration capabilities of SBO methods
Search-Based Exploration
Example: Population-based search method
Search-Based Model Transformations
5
Overview
Select k
random
(k = 4)
= 1
= 3
= 2
= 4
Population
(size = 10)
13. Aim: Automatic transformation orchestration for complex problems
Utilize abstraction capabilities of MDE
Benefit from declarative exploration capabilities of SBO methods
Search-Based Exploration
Example: Population-based search method
Search-Based Model Transformations
5
Overview
Select k
random
(k = 4)
Choose n
best
(n = 2)
= 1
= 3
= 2
= 4
Population
(size = 10)
14. Aim: Automatic transformation orchestration for complex problems
Utilize abstraction capabilities of MDE
Benefit from declarative exploration capabilities of SBO methods
Search-Based Exploration
Example: Population-based search method
Search-Based Model Transformations
5
Overview
Select k
random
(k = 4)
Choose n
best
(n = 2)
Recombine
= 1
= 3
= 2
= 4
Population
(size = 10)
Cut Point
15. Aim: Automatic transformation orchestration for complex problems
Utilize abstraction capabilities of MDE
Benefit from declarative exploration capabilities of SBO methods
Search-Based Exploration
Example: Population-based search method
Search-Based Model Transformations
5
Overview
Select k
random
(k = 4)
Choose n
best
(n = 2)
Recombine Mutate
= 1
= 3
= 2
= 4
Population
(size = 10)
Cut Point
16. Aim: Automatic transformation orchestration for complex problems
Utilize abstraction capabilities of MDE
Benefit from declarative exploration capabilities of SBO methods
Search-Based Exploration
Example: Population-based search method
Idea: Define generic encoding based on model transformations
Transformation as sequence of transformation units
Parameters set automatically and randomly
Search-Based Model Transformations
5
Overview
Select k
random
(k = 4)
Choose n
best
(n = 2)
Recombine Mutate
= 1
= 3
= 2
= 4
Population
(size = 10)
Cut Point
Transformation Units = Decision Variables
rule = createClass
name = 'Class A'
rule = assignFeature
class = Class A
feature = Feature A
Placeholder
rule = createClass
name = 'Class B'
17. Marrying Optimization and Model Transformations
Based on Eclipse platform
Eclipse EMF as modeling environment
Henshin as graph transformation engine
MOEA Framework for SBO algorithms
Search-Based Model Transformations
6
Marrying Optimization and Model Transformations (MOMoT)
MOMoT
Problem Instance Model
Objectives
Constraints
Transformation Rules
Exploration Configuration
Result Models
Objective Values
Generic
Encoding
Search-based
Exploration
Result
Generation
Constraint Values
Rule Orchestrations
Exploration Statistics
Objective and
Constraint Evaluation
Transformation
Orchestration
[1] MOMoT Project: http://martin-fleck.github.io/momot/
[2] Eclipse Modeling Framework: https://eclipse.org/modeling/emf/
[3] Henshin Project: https://www.eclipse.org/henshin/
[4] MOEA Framework: http://moeaframework.org/
MOEA
19. Summary
Transformation orchestration is a non-trivial task
Smart exploration of transformation space to solve complex problems
Generic: Problem- and SBO method-agnostic approach
Transparent: Input and output provided directly on model level
Declarative: Objectives and constraints specified using MDE techniques
Supportive: Dedicated configuration language for model engineers
Search-Based Model Transformations
8
Summary
MOMoT
Problem Instance Model
Objectives
Constraints
Transformation Rules
Exploration Configuration
Result Models
Objective Values
Generic
Encoding
Search-based
Exploration
Result
Generation
Constraint Values
Rule Orchestrations
Exploration Statistics
Objective and
Constraint Evaluation
Transformation
Orchestration
20. Interesting Research Lines
Application on out-place transformations
Support of memetic algorithms
Integration of optimization method languages
Search-Based Model Transformations
9
Further Research
MOMoT
Problem Instance Model
Objectives
Constraints
Transformation Rules
Exploration Configuration
Result Models
Objective Values
Generic
Encoding
Search-based
Exploration
Result
Generation
Constraint Values
Rule Orchestrations
Exploration Statistics
Objective and
Constraint Evaluation
Transformation
Orchestration
21. Search-Based Model Transformations with MOMoT
http://martin-fleck.github.io/momot/
ICMT, Vienna
4th July 2016
A Tool Demonstration
Martin Fleck, Javier Troya, Manuel Wimmer
Notes de l'éditeur
Mention Input-Output Transformation
Concrete algorithms include local search methods such as Tabu Search [10] and Simulated Annealing [14], or genetic algorithms [12] such as NSGA-II [6] and NSGA-III [5].
Therefore, an alternative approach is the usage of meta-heuristics that are problem-independent. This line is investigated by Search-Based Software Engineering (SBSE) [11], which is a lively
research field applying search-based optimization techniques to software engineering problems. Search-based optimization techniques deal with large or even infinite search spaces in an efficient manner.
Mention Input-Output Transformation
Concrete algorithms include local search methods such as Tabu Search [10] and Simulated Annealing [14], or genetic algorithms [12] such as NSGA-II [6] and NSGA-III [5].
Therefore, an alternative approach is the usage of meta-heuristics that are problem-independent. This line is investigated by Search-Based Software Engineering (SBSE) [11], which is a lively
research field applying search-based optimization techniques to software engineering problems. Search-based optimization techniques deal with large or even infinite search spaces in an efficient manner.
Mention Input-Output Transformation
Concrete algorithms include local search methods such as Tabu Search [10] and Simulated Annealing [14], or genetic algorithms [12] such as NSGA-II [6] and NSGA-III [5].
Therefore, an alternative approach is the usage of meta-heuristics that are problem-independent. This line is investigated by Search-Based Software Engineering (SBSE) [11], which is a lively
research field applying search-based optimization techniques to software engineering problems. Search-based optimization techniques deal with large or even infinite search spaces in an efficient manner.
Mention Input-Output Transformation
Concrete algorithms include local search methods such as Tabu Search [10] and Simulated Annealing [14], or genetic algorithms [12] such as NSGA-II [6] and NSGA-III [5].
Therefore, an alternative approach is the usage of meta-heuristics that are problem-independent. This line is investigated by Search-Based Software Engineering (SBSE) [11], which is a lively
research field applying search-based optimization techniques to software engineering problems. Search-based optimization techniques deal with large or even infinite search spaces in an efficient manner.
Mention Input-Output Transformation
Concrete algorithms include local search methods such as Tabu Search [10] and Simulated Annealing [14], or genetic algorithms [12] such as NSGA-II [6] and NSGA-III [5].
Therefore, an alternative approach is the usage of meta-heuristics that are problem-independent. This line is investigated by Search-Based Software Engineering (SBSE) [11], which is a lively
research field applying search-based optimization techniques to software engineering problems. Search-based optimization techniques deal with large or even infinite search spaces in an efficient manner.
Mention Input-Output Transformation
Concrete algorithms include local search methods such as Tabu Search [10] and Simulated Annealing [14], or genetic algorithms [12] such as NSGA-II [6] and NSGA-III [5].
Therefore, an alternative approach is the usage of meta-heuristics that are problem-independent. This line is investigated by Search-Based Software Engineering (SBSE) [11], which is a lively
research field applying search-based optimization techniques to software engineering problems. Search-based optimization techniques deal with large or even infinite search spaces in an efficient manner.
Mention Input-Output Transformation
Concrete algorithms include local search methods such as Tabu Search [10] and Simulated Annealing [14], or genetic algorithms [12] such as NSGA-II [6] and NSGA-III [5].
Therefore, an alternative approach is the usage of meta-heuristics that are problem-independent. This line is investigated by Search-Based Software Engineering (SBSE) [11], which is a lively
research field applying search-based optimization techniques to software engineering problems. Search-based optimization techniques deal with large or even infinite search spaces in an efficient manner.