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
Problem Statement
2
Solving Complex Optimization Problems
 Example: Class Responsibility Assignment Problem
 Modularization of features into classes
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
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
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»
Problem Statement
3
Solving Complex Optimization Problems
Coupling?
Cohesion?
?
 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»
 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»
Search-Based Model Transformations
4
Overview
Model-Driven
Engineering
(MDE)
Search-Based
Optimization
(SBO)
Search-Based Model Transformations
 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
 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)
 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)
 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)
 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
 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
 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'
 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
Search-Based Model Transformations
7
Demo
Demo
(linked in next slide and available at
https://www.youtube.com/watch?v=BQDz6OmxABE)
 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
 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
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

ICMT 2016: Search-Based Model Transformations with MOMoT

  • 1.
    Search-Based Model Transformationswith 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 ComplexOptimization Problems  Example: Class Responsibility Assignment Problem  Modularization of features into classes
  • 3.
    Problem Statement 2 Solving ComplexOptimization 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 ComplexOptimization 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 ComplexOptimization 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»
  • 6.
    Problem Statement 3 Solving ComplexOptimization Problems Coupling? Cohesion? ?
  • 7.
     Manually solvingproblems 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 solvingproblems 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»
  • 9.
  • 10.
     Aim: Automatictransformation 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: Automatictransformation 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: Automatictransformation 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: Automatictransformation 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: Automatictransformation 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: Automatictransformation 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: Automatictransformation 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 Optimizationand 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
  • 18.
    Search-Based Model Transformations 7 Demo Demo (linkedin next slide and available at https://www.youtube.com/watch?v=BQDz6OmxABE)
  • 19.
     Summary  Transformationorchestration 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 ResearchLines  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 Transformationswith MOMoT http://martin-fleck.github.io/momot/ ICMT, Vienna 4th July 2016 A Tool Demonstration Martin Fleck, Javier Troya, Manuel Wimmer

Editor's Notes

  • #11 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.
  • #12 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.
  • #13 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.
  • #14 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.
  • #15 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.
  • #16 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.
  • #17 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.