ICMT 2016: Search-Based Model Transformations with MOMoT
-
Upload
martin-fleck -
Category
Software
-
view
63 -
download
1
Transcript of ICMT 2016: Search-Based Model Transformations with MOMoT
Search-Based Model Transformations with MOMoT
http://martin-fleck.github.io/momot/
ICMT, Vienna4th 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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 201
100
10,000
1,000,000
100,000,000
10,000,000,000
1,000,000,000,000
100,000,000,000,000
Number of Features
Num
ber o
f Pos
sibili
ties
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»: Classname = className
«create»: Classname = 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»: Classname = className
«create»: Classname = 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»: Classname = className
«create»: Classname = 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-DrivenEngineering
(MDE)
Search-BasedOptimization
(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 krandom(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 krandom(k = 4)
Choose nbest
(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 krandom(k = 4)
Choose nbest
(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 krandom(k = 4)
Choose nbest
(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 krandom(k = 4)
Choose nbest
(n = 2)Recombine Mutate
= 1= 3= 2= 4
Population(size = 10)
Cut Point
Transformation Units = Decision Variables
rule = createClassname = 'Class A'
rule = assignFeatureclass = Class Afeature = 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 ValuesGeneric
EncodingSearch-based
ExplorationResult
Generation
Constraint Values
Rule Orchestrations
Exploration Statistics
Objective and Constraint Evaluation
TransformationOrchestration
[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 ValuesGeneric
EncodingSearch-based
ExplorationResult
Generation
Constraint Values
Rule Orchestrations
Exploration Statistics
Objective and Constraint Evaluation
TransformationOrchestration
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 ValuesGeneric
EncodingSearch-based
ExplorationResult
Generation
Constraint Values
Rule Orchestrations
Exploration Statistics
Objective and Constraint Evaluation
TransformationOrchestration
Search-Based Model Transformations with MOMoT
http://martin-fleck.github.io/momot/
ICMT, Vienna4th July 2016
A Tool Demonstration
Martin Fleck, Javier Troya, Manuel Wimmer