<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Optimisation Methods for Model-Driven Engineering ?</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Alexandru Burdusel</string-name>
          <email>alexandru.burdusel@kcl.ac.uk</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Informatics, King's College London</institution>
          ,
          <addr-line>London, UK, WC2R 2LS</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>Recently there has been increased interest in combining the elds of Model-Driven Engineering (MDE) and Search-Based Software Engineering (SBSE). Currently, when solving MDE-SBSE problems, in addition to the problem description, the user is required to manually provide design space exploration (DSE) information, encoded as model transformation rules and an optimisation algorithm. Performance and solution quality strongly depend on the right choice of transformations and optimisation algorithm. The aim of this research is to develop an approach to solving MDE optimisation problems, by removing the need to manually specify model transformations and an optimisation algorithm. The inputs required for the problem description are the metamodel, the initial model if one is available and a set of constraints and tness functions. The remaining components needed for running the optimisation, are inferred from the given problem description. Solving this challenge allows domain experts to model optimisation problems using MDE and nd good solutions without needing extensive knowledge about model transformations, constraint solving or optimisation.</p>
      </abstract>
      <kwd-group>
        <kwd>model driven engineering</kwd>
        <kwd>domain speci c language</kwd>
        <kwd>search based optimisation</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        MDE introduces models as a principal entity to describe complex engineering
problems at a higher abstraction level than code [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. The model is a
representation consistent with a domain speci ed by the parent metamodel. A model is
also referred to as an instance of a metamodel. A core MDE concept is model
transformations, which enable model creation and alteration while maintaining
metamodel consistency of the transformed model.
      </p>
      <p>
        SBSE is a methodology for describing software engineering problems as
optimisation problems [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. A search based problem consists of a system to represent
solutions, a process to generate new solutions from existing ones and a solution
quality evaluation method.
? This research is in the rst year stage.
      </p>
      <p>
        Recently there has been an increasing amount of interest in combining the
elds of MDE and SBSE [
        <xref ref-type="bibr" rid="ref3 ref4 ref5 ref6">3,4,5,6</xref>
        ]. For all of these approaches, the user describes
the optimisation problem using MDE and SBSE concepts and the tool returns
converging solution models resulting from running the optimisation. In [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] the
authors propose MOMoT, a rule based optimisation tool that o ers a Domain
Speci c Language (DSL), implemented as an Eclipse plugin, to enable users to
specify optimisation problems in MDE. Viatra-DSE is another tool performing
rule based model optimisation [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Both tools in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] and [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] optimise a chain of
rule applications to nd the most suitable derivation chain which applied to an
initial model results in a good solution model. A tool that runs optimisation
directly on models is Crepe [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. It has been extended in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] to support multiple
objectives. The tool uses a generic encoding for the models, as a set of integers,
which is then used by genetic algorithms to apply mutations and crossover.
      </p>
      <p>The research question this PhD aims to answer is: Can we simplify the
process of running optimisation on models? We aim to contribute solutions to the
following challenges in response to this research question: a) manual speci cation
of transformation rules to be used as search operators requires knowledge about
model transformations, optimisation and how the two elds can be combined; b)
manual optimisation algorithm selection suitable for the problem being solved
requires advanced knowledge about optimisation methods; c) choosing the most
suitable model for the chosen optimisation strategy is not trivial. The proposed
solution is to build a tool o ering a DSL that allows users to specify an MDE
optimisation problem by supplying only the metamodel, an optional initial model
and a set of constraints and tness functions. Using this information, the tool
will then determine the best model to start the optimisation from, along with
automatically generated transformation rules and a problem suited optimisation
algorithm.</p>
      <p>
        The contributions of this research will make the speci cation and solving of
MDE optimisation problems more accessible, enabling domain experts to solve
them without having knowledge about transformations and optimisation
methods. The proposed solution will be evaluated by using the tool to solve industry
case studies [
        <xref ref-type="bibr" rid="ref4 ref8">8,4</xref>
        ]. This type of evaluation will show if our proposed automated
approach is better than the existing user driven alternatives.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Background</title>
      <p>
        Search-Based MDE is the idea of combining the concepts of search based
optimisation (SBO) and MDE, in order to solve optimisation problems speci ed using
MDE [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. An SBO problem speci cation requires the following elements: a) a
candidate representation method; b) operators to generate new solutions from
existing ones, by mutation or breeding; and c) a candidate quality evaluation
method commonly referred to as tness functions.
      </p>
      <p>The MDE model and metamodel concepts are an ideal equivalent of the
candidate and search space representations from SBO. In MDE, model
transformations are the process to change the structure of models while ensuring
that their metamodel conformance is maintained. In SBO, transformations can
be seen as operators, which are the process to mutate or combine individuals
to explore the search space in order to nd better solutions. The SBO search
space is the set of all possible candidates that can be solutions to the problem
being optimised. The process of generating new candidates using operators and
evaluating their suitability is also known as DSE.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Problem statement</title>
      <p>Existing tools solving MDE-SBSE problems require the users to specify a
problem description consisting of a metamodel, model instances, model
transformations and an optimisation algorithm. The problem is that in order to use these
tools to nd a solution to an optimisation problem, the user is required to know
not only the domain of the problem, but also how to specify model
transformations to use as search operators and what optimisation algorithm is the most
suitable.</p>
      <p>
        The aim of our research is to propose an approach to automatically infer from
the problem speci cation consisting of a metamodel and a set of constraints and
tness functions, the most suitable starting model for the optimisation process
required for the current problem, if this is not already provided by the user,
the best operators for e cient design space exploration and the optimisation
algorithm. To make this possible, we have identi ed the following challenges
that would have to be solved as part of this research:
1. Model evolutions. In order to e ciently explore the search space, it may not
be enough to have transformation rules that ensure model consistency, but
which also avoid local optima and provide good design space exploration
during the search, through mutations and breeding. Automatically generating
such transformation rules remains a challenging problem;
2. Optimisation algorithms. Automatically selecting the most suitable
optimisation algorithm from a deterministic or stochastic repository of algorithms,
using only high-level problem description and no user input is not trivial.
Using the right algorithm for a problem can result in considerable performance
and quality improvements [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ];
3. Initial model provision. In some cases an initial model may be available
when an existing system needs to be improved or in other cases an initial
model may have to be generated automatically. Determining the most
suitable model version to use as an input for the selected optimisation algorithm
in order to nd the best solutions is a di cult problem.
4
      </p>
    </sec>
    <sec id="sec-4">
      <title>Approach</title>
      <p>
        The plan for this research project is to start by identifying case studies that can
be represented as MDE-SBSE problems [
        <xref ref-type="bibr" rid="ref4 ref8">8,4</xref>
        ]. The number of case studies will be
continuously increased for the duration of the project, to allow us to e ectively
validate the proposed solutions.
      </p>
      <p>In Fig. 1 we identify the three
steps required to solve the research
challenges discussed in Sect. 3. Step 1,
consists of using the user given
constraints, objectives and the problem
metamodel to generate e cient DSE
operators. In Step 2, the most suitable
search algorithm to solve the prob- Fig. 1: Research steps.
lem is automatically identi ed using
the generated search operators, the
tool input used to generate them and
knowledge about algorithm requirements. Step 3, is nding the best model to
start the optimisation from. This step consists of determining if there are any
transformations that can be applied to the input model before the start of the
search process, to better guide the optimisation algorithm towards good
solutions by starting from a suitable initial model. For each challenge we will propose
an algorithm. This will then be implemented in our MDEOptimiser 1 (MDEO)
tool and validated using the identi ed case studies.</p>
      <p>
        The tool is built as an Eclipse
plugin and is using the Eclipse
Modelling Framework, allowing the user
to specify the problem using a
Domain Speci c Language (DSL)
implemented using XText 2. The
optimisation algorithms supported by the tool
are implemented using the MOEA
framework 3. A high level architecture Fig. 2: Tool architecture.
of the tool can be seen in Fig. 2. The
grayed box for the initial model
denotes that it may be provided by the user only in some cases and therefore,
when not available, it would have to be generated automatically using a tool like
Cartier [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
      </p>
      <p>A high level overview of the expected timeline for completion has been
included in Fig. 3. One of the main risks of the proposed research plan, is that
1 https://mde-optimiser.github.io/
2 https://eclipse.org/Xtext/
3 http://moeaframework.org/
there may not be a good solution which can be generalized to any MDE
optimisation problem. In such a case, because the main aim is to simplify the process
of running SBO on MDE, there are two mitigation strategies planned: a) reduce
the scope of the research by focusing only on a certain type of problems that can
be solved with our approach; b) rather than completely eliminating the
requirements for the user to specify model evolutions and an optimisation algorithm,
instead require the user to provide a set of helpers that could guide our proposed
algorithms to achieve their goals. The occurrence of these risks can be identi ed
in the initial stage of solving each of the challenges and mitigated accordingly
once identi ed.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Current status</title>
      <p>
        The research has been started by working on the model evolutions challenge.
While working on this step, we have found promising results by proposing an
automated way of generating transformation rules from a metamodel and a set
of additional multiplicity constraints. The algorithm is based on the SERGe rule
generation meta-tool [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], and it improves the transformation rules generated
by SERGe, by adding a set of re nements to enable the model search to avoid
getting stuck in local optima and ensuring a better search space exploration.
      </p>
      <p>
        Our approach has been tested using the Class Responsibility Assignment
(CRA) case study proposed as a challenge at TTC 16 [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. The CRA scores found
by the automatically generated rules have been close to, or in some cases better
than, the scores obtained with the manually de ned rules. A detailed overview
of our results for this implementation can be found in [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. We are now working
on generalising the approach and validating it with more case studies.
6
      </p>
    </sec>
    <sec id="sec-6">
      <title>Related work</title>
      <p>
        In [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] the authors introduce an automated way for generating consistency
preserving edit operations (CPERs) from a metamodel. The rules are generated
so that they can generate a valid model upon multiple applications. Another
approach to generating transformation rules is proposed in [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. The author
presents a framework to generate DSE exploration rules using a genetic
algorithm which is used to run a set of higher-order transformations on a training
model. The obtained rules can then be used to transform models conforming
to the same metamodel as the training model. This approach is one possible
solution to the identi ed evolutions generator challenge, however, we aim to
generate transformation rules using a deterministic algorithm, eliminating the
performance overhead of a genetic algorithm.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] the author introduces the model transformations by example (MTBE)
approach to generating model transformation rules using an iterative,
semiautomated method of generating model transformation rules from a set of
example mappings between the source and the target models of the transformations,
provided by the user at the start of the process. At each iteration, the user
can re ne the generated rules by validating them with more test models. Using
this approach, the quality of the generated rules depends on the intuition of the
user and also on increased availability of test models. In [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] the authors propose
the Model Transformation as Optimisation by Examples (MOTOE) approach to
transform a source model into a target model using particle swarm optimisation
(PSO) [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] and without specifying transformation rules.
      </p>
      <p>
        Kessentini et al. propose an approach to generating transformation rules as
an optimisation problem in [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. The solution starts by randomly generating
transformation rules, which are used to nd target models. The solution uses
PSO to nd the best rules that generate good quality target models and once
these rules are identi ed a local heuristic is used for further improvement.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], the author identi es some of the current approaches to automatically
selecting an algorithm to solve an optimisation problem. The survey also
highlights the need for more contributions to this eld as the problem of algorithm
selection is non-trivial.
7
      </p>
    </sec>
    <sec id="sec-7">
      <title>Conclusions</title>
      <p>This research will contribute to the eld by proposing an automated way to
solve complex MDE optimisation problems by only requiring the user to input
the problem metamodel, an optional initial model, and a set of constraints and
tness functions. The solution will automatically determine: a) the most suitable
model to start the optimisation from, b) the most e cient transformation rules to
use for exploring the search space and c) the appropriate optimisation algorithm
to nd the best solution.</p>
      <p>The contributions made by this project will consist of proposed algorithmic
approaches to solve each of the challenges identi ed and a tool implemented
as an Eclipse plugin. The proposed approaches will be validated by using the
tool to solve industry case studies and compare the obtained results with results
obtained by manual attempts at solving the same case studies.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Atkinson</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kuhne</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Model-driven development: a metamodeling foundation</article-title>
          .
          <source>IEEE software 20(5)</source>
          (
          <year>2003</year>
          )
          <volume>36</volume>
          {
          <fpage>41</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Harman</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jones</surname>
            ,
            <given-names>B.F.</given-names>
          </string-name>
          :
          <article-title>Search-based software engineering</article-title>
          .
          <source>Information and Software Technology</source>
          <volume>43</volume>
          (
          <issue>14</issue>
          ) (
          <year>2001</year>
          )
          <volume>833</volume>
          {
          <fpage>839</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Williams</surname>
            ,
            <given-names>J.R.:</given-names>
          </string-name>
          <article-title>A novel representation for search-based model-driven engineering</article-title>
          .
          <source>PhD thesis</source>
          , University of York, UK (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Efstathiou</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Williams</surname>
            ,
            <given-names>J.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zschaler</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Crepe complete: Multi-objective optimisation for your models</article-title>
          .
          <source>In: Proc. 1st Int'l Workshop on Combining Modelling with Search- and Example-Based Approaches (CMSEBA'14)</source>
          . (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Abdeen</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Varro</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sahraoui</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nagy</surname>
            ,
            <given-names>A.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Debreceni</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          , Hegedus,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Horvath</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.</surname>
          </string-name>
          <article-title>: Multi-objective optimization in rule-based design space exploration</article-title>
          . In Crnkovic, I.,
          <string-name>
            <surname>Chechik</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , Grunbacher, P., eds.
          <source>: Proc. 29th ACM/IEEE Int'l Conf</source>
          .
          <source>Automated Software Engineering (ASE'14)</source>
          , ACM (
          <year>2014</year>
          )
          <volume>289</volume>
          {
          <fpage>300</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Fleck</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Troya</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wimmer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Marrying search-based optimization and model transformation technology</article-title>
          .
          <source>Proceedings of the First North American Search Based Software Engineering Symposium</source>
          (
          <year>2015</year>
          )
          <volume>1</volume>
          {
          <fpage>16</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. Hegedus,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Horvath</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Rath</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            ,
            <surname>Varro</surname>
          </string-name>
          ,
          <string-name>
            <surname>D.</surname>
          </string-name>
          :
          <article-title>A model-driven framework for guided design space exploration</article-title>
          .
          <source>In: Proc 26th IEEE/ACM Int'l Conf</source>
          .
          <source>Automated Software Engineering (ASE'11)</source>
          .
          <source>(November</source>
          <year>2011</year>
          )
          <volume>173</volume>
          {
          <fpage>182</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Fleck</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Troya</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wimmer</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>The Class Responsibility Assignment Case</article-title>
          .
          <source>In: Proceedings of the 9th Transformation Tool Contest @STAF. Volume 1758 of CEUR Workshop Proceedings</source>
          . (
          <year>2016</year>
          ) 1{
          <fpage>8</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Burton</surname>
            ,
            <given-names>F.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Poulding</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Complementing metaheuristic search with higher abstraction techniques</article-title>
          .
          <source>In: Proceedings of the 1st International Workshop on Combining Modelling and Search-Based Software Engineering</source>
          , IEEE Press (
          <year>2013</year>
          )
          <volume>45</volume>
          {
          <fpage>48</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Rice</surname>
            ,
            <given-names>J.R.:</given-names>
          </string-name>
          <article-title>The algorithm selection problem</article-title>
          .
          <source>Advances in computers 15</source>
          (
          <year>1976</year>
          )
          <volume>65</volume>
          {
          <fpage>118</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Sen</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Baudry</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mottu</surname>
            ,
            <given-names>J.M.</given-names>
          </string-name>
          :
          <article-title>Automatic model generation strategies for model transformation testing</article-title>
          .
          <source>In: International Conference on Theory and Practice of Model Transformations</source>
          , Springer (
          <year>2009</year>
          )
          <volume>148</volume>
          {
          <fpage>164</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Kehrer</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Taentzer</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rindt</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kelter</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          :
          <article-title>Automatically deriving the speci - cation of model editing operations from meta-models</article-title>
          .
          <source>In: International Conference on Theory and Practice of Model Transformations</source>
          , Springer (
          <year>2016</year>
          )
          <volume>173</volume>
          {
          <fpage>188</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Burdusel</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zschaler</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>Automatic generation of evolution rules for modeldriven optimisation</article-title>
          .
          <source>In: 8th International Workshop on Graph Computation Models (GCM'17)</source>
          .
          <article-title>(2017) accepted</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14. Struber, D.:
          <article-title>Generating e cient mutation operators for search-based model-driven engineering</article-title>
          .
          <source>In: International Conference on Theory and Practice of Model Transformations (ICMT)</source>
          .
          <article-title>(2017) accepted</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Varro</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Model transformation by example</article-title>
          .
          <source>In: Proc. Model Driven Engineering Languages and Systems (MODELS</source>
          <year>2006</year>
          ).
          <article-title>Volume 4199 of LNCS</article-title>
          ., Springer (
          <year>2006</year>
          )
          <volume>410</volume>
          {
          <fpage>424</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Kessentini</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sahraoui</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Boukadoum</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Model transformation as an optimization problem</article-title>
          . In Czarnecki,
          <string-name>
            <given-names>K.</given-names>
            ,
            <surname>Ober</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            ,
            <surname>Bruel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.M.</given-names>
            ,
            <surname>Uhl</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.</surname>
          </string-name>
          , Volter, M., eds.:
          <source>Model Driven Engineering Languages and Systems: 11th International Conference, MoDELS</source>
          <year>2008</year>
          , Toulouse, France,
          <source>September 28 - October 3</source>
          ,
          <year>2008</year>
          . Proceedings, Berlin, Heidelberg, Springer Berlin Heidelberg (
          <year>2008</year>
          )
          <volume>159</volume>
          {
          <fpage>173</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Eberchart</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kennedy</surname>
          </string-name>
          , J.:
          <article-title>Particle swarm optimization</article-title>
          .
          <source>In: IEEE International Conference on Neural Networks, Perth</source>
          ,
          <string-name>
            <surname>Australia.</surname>
          </string-name>
          (
          <year>1995</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Kessentini</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wimmer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sahraoui</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Boukadoum</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Generating transformation rules from examples for behavioral models</article-title>
          .
          <source>In: Proceedings of the Second International Workshop on Behaviour Modelling: Foundation and Applications</source>
          , ACM (
          <year>2010</year>
          )
          <fpage>2</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Kottho</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Algorithm selection for combinatorial search problems: A survey</article-title>
          .
          <source>AI</source>
          Magazine
          <volume>35</volume>
          (
          <issue>3</issue>
          ) (
          <year>2014</year>
          )
          <volume>48</volume>
          {
          <fpage>60</fpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>