<!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>Computing Alignments with Constraint Programming: The Acyclic Case</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Mar´ıa Teresa G´omez-Lo´pez</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Diana Borrego</string-name>
          <email>dianabn@us.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Josep Carmona</string-name>
          <email>jcarmona@cs.upc.edu</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Rafael M. Gasca</string-name>
          <email>gasca@us.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Universidad de Sevilla</institution>
          ,
          <addr-line>Seville</addr-line>
          ,
          <country country="ES">Spain</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Universitat Polit`ecnica de Catalunya</institution>
          ,
          <addr-line>Barcelona</addr-line>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <fpage>96</fpage>
      <lpage>110</lpage>
      <abstract>
        <p>Conformance checking confronts process models with real process executions to detect and measure deviations between modelled and observed behaviour. The core technique for conformance checking is the computation of an alignment. Current approaches for alignment computation rely on a shortest-path technique over the product of the state-space of a model and the observed trace, thus suffering from the well-known state explosion problem. This paper presents a fresh alternative for alignment computation of acyclic process models, that encodes the alignment problem as a Constraint Satisfaction Problem. Since modern solvers for this framework are capable of dealing with large instances, this contribution has a clear potential. Remarkably, our prototype implementation can handle instances that represent a real challenge for current techniques. Main advantages of using Constraint Programming paradigm lie in the possibility to adapt parameters such as the maximum search time, or the maximum misalignment allowed. Moreover, using search and propagation algorithms incorporated in Constraint Programming Solvers permits to find solutions for problems unsolvable with other techniques.</p>
      </abstract>
      <kwd-group>
        <kwd>Conformance Checking</kwd>
        <kwd>Constraint Programming</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Nowadays organizations analyze and use the huge amount of data that their
information systems generate. This data represents an important source of
information, since it contains many of the evidences an organization may need to
know in order to reach its (business) goals. Among others perspectives, the focus
on the process dimension is of paramount importance.</p>
      <p>Process mining has evolved in the last decade to act as a meeting point
between data and process science. Techniques in process mining enable the
discovery of evidence-based process models, the conformance analysis and the
enhancement of process models. Conformance analysis, which is the topic considered in
this paper, studies the adequacy of a process model in describing the real
behavior observed as a collection of traces denoting the footprints of the execution of
a process. While there exist several techniques for discovery and enhancement
of process models, the current few techniques available for conformance analysis
are not yet satisfactory.</p>
      <p>
        In this paper we tackle a central problem in conformance analysis: the
computation of an alignment between a process model and an event log. Informally,
an alignment is a two-row matrix where the first row denotes the steps in the
observed trace, while the second row describes the steps performed by the model
in order to fit as much as possible the trace. Alignments are crucial to evaluate
the important metrics in conformance, i.e., fitness and generalization [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and
precision [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>We deviate from the current approaches for alignment computation, which
are based on state-space explorations of models. Instead, we encode the problem
of computing alignments as a Constraint Satisfaction Problem (CSP), and use a
CSP solver to compute alignments. The CSP framework brings many advantages
when compared to the state-of-the-art approaches for conformance analysis: a
portfolio of available search techniques, natural encoding of certain model
constructs, capability of handling large instances, ability to interact with the solver
to obtain valid solutions, etc.</p>
      <p>
        In this paper we consider the computation of alignments for acyclic
process models. In spite of this model restriction, current techniques may still have
problems to handle certain instances, as it was demonstrated in [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. In our
prototype implementation, we show how the approach presented in this paper
may be a solid alternative when current approaches fail at deriving an alignment.
      </p>
      <p>This paper is organized as follows: in Section 2 a brief introduction to
Constraint Programming is provided, since it is the basis of the encoding presented
in the rest of the paper. Then in Section 3 the encoding is shown, together with
further extensions to optimize the computation of alignments. Then in Section 4
some the results on some instances from the literature are reported. Finally,
Section 6 provides the current context for conformance analysis and Section 7
concludes and discusses current research directions.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Constraint Programming</title>
      <p>A CSP represents a reasoning framework consisting of variables, domains and
constraints, where the model is described declaratively. Formally, it is defined as
a tuple X, D, C , where X= {x1, . . ., xn} is a finite set of variables, D = {d(x1),
. . ., d(xn)} is a set of domains of the values of the variables, and C = {C1, . . .,
Cm} is a set of constraints. Each constraint Ci is defined as a relation R on a
subset of variables V = {xi, xj , . . ., xl}, called the constraint scope. The relation
R may be represented as a subset of the Cartesian product d(xi) × d(xj ) × . . .
× d(xl). A constraint Ci = (Vi, Ri) simultaneously specifies the possible values
of the variables in V that satisfy R. Let Vk = {xk1 , . . ., xkl } be a subset of X,
and an l-tuple (xk1 , . . ., xkl ) from d(xk1 ), . . ., d(xkl ) can therefore be called an
instantiation of the variables in Vk. An instantiation is a solution if and only if
it satisfies the constraints C.</p>
      <p>
        In order to solve a CSP, a combination of search and consistency techniques
is commonly used [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ][
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. The consistency techniques remove inconsistent values
from the domains of the variables during or before the search. During the search,
a propagation process is executed which analyses the combination of values of
variables where the constraints are satisfiable. Several local consistency and
optimization techniques have been proposed as ways of improving the efficiency of
search algorithms.
      </p>
      <p>
        When it is not only necessary to ascertain if a solution can be found, and it is
important to find the best solution, a Constraint Optimization Problem (COP)
can be created and solved. A COP is a CSP with an optimization function where
only the tuple of possible values that optimize this function is determined as the
solution of the COP. Constraint Programming has already been used to compare
expected and observed behaviour to diagnose models according observations, and
it has also been applied to business process models [
        <xref ref-type="bibr" rid="ref11 ref5 ref9">9, 11, 5</xref>
        ].
      </p>
      <p>A simple example to illustrate the usage of a CSP can be found to represent
the possible execution order of the activities of a model. Imagine a model where
activity A must be executed first, and activities B or C must be executed after,
but not both. Variables modA, modB, modC can be used to obtain the possible
execution moments. And the constraints should represent that (1) A must be
executed, (2) B or C must be executed (but only one), and (3) if B or C are
executed, this will happen after the execution of A.
modA, modB, modC in the domain {0..n} //{0..model.size()}
modA&gt;0 AND (modB&gt;0 XOR modC &gt;0) AND
if (modB=0) then (modB&gt;modA)
if (modC =0) then (modC &gt;modA)</p>
      <p>With this CSP, some solutions provided by a constraint solver would be:
sol1: modA=1, modB=2, modC =0
sol2: modA=1, modB=0, modC =2
sol3: modA=1, modB=3, modC =0
...</p>
      <p>An example of optimization function can be to minimize(modA + modB +
modC ). In this case only sol1 is obtained.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Alignment Computation with Constraint Programming</title>
      <p>
        In this paper we propose to encode by means of a CSP the constraints that
describe the possible execution order of the transitions in a Petri net (the expected
behaviour), and the order of the transition in the logs (observed behaviour)
following model-based diagnosis paradigm [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. The COP will find the minimum
misalignment between the observed and the expected transitions. The encoding
consists in the creation of two sets of variables that represent, respectively, the
Petri net model (set called Var-Model), and the real observed behaviour
registered in each case of the event log (set called Var-Log). These two sets have
the same number of variables, since they are composed of all activities in the
model, plus all activities appearing in the event log but not in the model. For the
alignment computation, the constraints that represent the model are determined
once, while the constraints that represent the event log depend on each case.
      </p>
      <p>Considering all these activities, these two sets of variables represent the step
order where each activity (transition in the Petri net) can be executed
following the model (Var-Model ) or in accordance to the event log (Var-Log ). If it is
possible to assign the same value to every variable in Var-Model and Var-Log, it
implies that there is a total alignment between the model and the reality. This
way, in order to model both sequences of activities (i.e. modelled and observed
behaviour), each variable is modelled as an integer that is evaluated in
accordance with the position that it takes in the execution order. Then, the positions
assigned to each activity in the modelled (Var-Model ) and expected (Var-Log )
behaviours are compared to determine whether some event within a case in the
event log is misaligned.
3.1</p>
      <p>Modelling the Variables to represent the Petri Net
As mentioned, the expected and observed occurrences of activities should be
modelled within the CSP, so that the modelled and observed sequences of
execution of activities can be compared. Therefore, certain sets of variables should
be part of the CSP, with the following meanings:
– Var-Model: Set of decision variables {moda, modb, . . ., modn} representing
the position that all activities a, b, . . . , n take in the expected execution order,
whose domains are Integers in 0..n, being n the number of transitions plus
the log size -i.e. the worst possible value of alignment-.
– Var-Log: Set of decision variables {loga, logb, . . ., logn}, representing the step
order of the transitions in the observed trace, and whose domains are equal
to the variables in Var-Model.
– Var-Difference: Set of n integer variables {difa, difb, . . ., difn}, one for
each transition, whose domains are {0, 1, 2}, to represent that: there is
alignment between the observed and expected behaviour of the transition
(modx == logx → difx = 0); the transition is in the modelled trace but not
in the real trace or viceversa (modx == 0 XOR logx == 0 → difx = 1);
or the transition is in both traces but in different positions in the execution
order (else → difx = 2). It holds whether there is alignment between the
n-th values of Var-Model and Var-Log.
– Var-Alignment: Integer that represents the sum of all values in Var-Difference,
representing the worst possible value of alignment. This value is used in the
optimization function, since if this value can be set to 0, it means that the
model and the event log are totally aligned.</p>
      <p>In order to facilitate a clear understanding of the created COP, we use the
example in Figure 1 to show the model and solutions obtained.
The COP must include the five necessary parts: definition of variables,
constraints to relate the order of the transitions in the model, constraints to describe
the order of the log, constraints to determine the misalignment for each activity,
and the objective function.</p>
      <p>The modelling of the constraints in the COP is based on the transformation of
the Petri net model into numerical constraints. For this reason, every place (and
hence, the structure of the flow surrounding it) is analysed, and the following
constraints are included into the COP to represent the control flow between the
transitions. To differentiate the constraints that form the created COP, from
the programming structures used to cover the Petri net to obtain the relations
between the transitions, italic letters are used to distinguish constraints.
– Start place (i.e. place with no input arcs): Being ot1 . . . otm the
output transitions (as shown in Figure 2), the following constraint is part of the
COP:
(modot1 =0 + . . . + modotm =0) = 1</p>
      <sec id="sec-3-1">
        <title>For the example:</title>
        <p>(modA=0) = 1
– Intermediate place (i.e. place with some input and output arcs):
Being it1 . . . itn the input transitions, and ot1 . . . otm the output transitions
(as shown in Figure 3), the following constraints are part of the COP:</p>
        <sec id="sec-3-1-1">
          <title>FOR EACH pair iti, otj</title>
          <p>if (modotj =0) then (modotj &gt; moditi )
END FOR
(modit1 =0 + . . . + moditn =0) ≤ 1 AND (modot1 =0 + . . . + modotm =0)
≤ 1
(modit1 =0 + . . . + moditn =0) = (modot1 =0 + . . . + modotm =0)</p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>Meaning that:</title>
        <p>• for each output transition otj, either it is not part of the execution,
or it should be executed after the executed input transition (modotj &gt;
moditi );
• and, if an input transition is executed, one and only one of the output
transitions can be executed. Otherwise, none of them is executed.
Applied to the example:
//A → B//intermediate places
if(modB=0) then (modB&gt;modA)
(modA=0)≤1 AND (modB=0)≤1 AND (modA=0)=(modB=0)
//the modelling of B → D, D → E, E → I, A → C, H → I is
equivalent
//C → (F xor G)
if(modF =0) then (modF &gt;modC )
if(modG=0) then (modG&gt;modC )
(modC =0)≤1 AND (modF =0 + modG=0)≤1
(modC =0)=(modF =0 + modG=0)
//the modelling of I → J xor K is equivalent
//(F xor G) → H
if(modH =0) then (modH &gt;modF )
if(modH =0) then (modH &gt;modG)
(modF =0 + modG=0)≤1 AND (modH =0)≤1
(modF =0 + modG=0)=(modH =0)
//the modelling of J xor K → L is equivalent
– End place (i.e. place with no output arcs): Being it1 . . . itn the input
transitions (as shown in Figure 4), the following constraint is part of the
COP:
(modit1 =0 + . . . + moditn =0) = 1
Applied to the example:
(modL=0)=1
modai =0
– Every transition ai appearing in the case (from the event log) to check, but
not in the model, is included as a variable modai in the set Var-Model, with
the constraint:
3.3</p>
        <p>Modelling the Constraints to represent the Event Log
As it was aforementioned, the variables in the set Var-Log are created to study
the positions in the execution order of both the elements appearing in a certain
case and in the model. Therefore, different sets are created for each case in the
event log, and then a different CSP is created for each case.</p>
        <p>For every case in the event log, composed of activities presented as an
ordered list a1, a2, . . ., aq, the constrains that should be created and included in
the COP are:
loga1 &gt; 0 AND loga2 &gt; loga1 AND . . . AND logaq &gt; logaq−1</p>
        <p>Meaning that, since all events in the log were executed, they should have a
value greater than 0, keeping the execution order recorded in the case.</p>
        <p>Likewise, for each activity ai appearing in the model but not in the log, the
following constraint is included:
logai =0
3.4</p>
        <p>Modelling a COP to find the alignment between model and
event log
The alignment can be described by the distance between the observed and the
expected behaviour. The observed activity executions are represented by the
variables in the set Var-Log while the expected behaviour is modelled by the
set Var-Model. The minimization of the difference between them is the aim of
the alignment. In our solution, it is modelled using the variables in the set
Var-Difference, where each variable difai represents the difference between the
expected and the observed behaviour for activity ai (0, 1 or 2 as explained
before). The sum of all variables in the set Var-Different is stored in the variable
Var-Alignment, which is the value to minimize, objective of the optimization
function.
FOR EVERY activity ai DO:
if(logai ==modai ) then (difai =0)
else if(logai ==0 ∨ modai ==0) then (difai =1)
else (difai =2)
END</p>
        <p>Following the theory of alignment to prohibit that two different activities
can be executed in the same instant of time, the following constraints must be
included:
FOR EACH pair of variables modi and logj in Var-Model DO:</p>
        <p>if (modi=0) then (modi=logj)
END</p>
        <p>difi∈V ar−Difference difi</p>
        <p>Finally, to include the objective function that minimize the summation of
differences, the following constraints are included:
Var-Alignment =
minimize(Var-Alignment)
3.5</p>
        <p>Some Evaluations of the example
Likewise, and depending on the case to check, the rest of the COP is defined.
To illustrate this, three cases in the event log, and their resulting constraints,
are shown as examples in the following:
– A fitting case: {A, C, B, F, D, E, H, I, J, L}
//Activities in the case
logA&gt;0 AND logC &gt;logA AND
logB&gt;logC AND logF &gt;logB AND
logD&gt;logF AND logE&gt;logD AND
logH &gt;logE AND logI &gt;logH AND
logJ &gt;logI AND logL&gt;logJ
//Activities in the model but not in the case
logG=0 AND logK =0
– Unfitting case 1, since there is an activity in the model that should appear
in the case (activity l): {A, C, B, F, D, E, H, I, J}
//Activities in the case
logA&gt;0 AND logC &gt;logA AND
logB&gt;logC AND logF &gt;logB AND
logD&gt;logF AND logE&gt;logD AND
logH &gt;logE AND logI &gt;logH AND
logJ &gt;logI
//Activities in the model but not in the case
logL=0 AND logG=0 AND logK =0
– Unfitting case 2, since there is an activity in the log that does not appear in
a correct trace of the model although it is in the model (order of D and E):
{A, C, B, E, D, F, H, I, J, L}
//Activities in the case
logA&gt;0 AND logC &gt;logA AND
logB&gt;logC AND logF &gt;logB AND
logG&gt;logF AND logD&gt;logG AND
logE&gt;logD AND logH &gt;logE AND
logI &gt;logH AND logJ &gt;logI AND
logL&gt;logJ
//Activities in the model but not in the case
logK =0</p>
        <p>The automatic computation of these three examples obtains the resulting
sets Var-Model, Var-Log, Var-Difference and the value of Var-Aligment shown
in Figure 5.
The addressed problem presents a high computational complexity. However,
thanks to the aforementioned characteristics of Constraint Programming, it can
be improved by reducing the search space. In order to do it, some analyses of
the Petri net graph have been performed to reduce the domain of the variables
and the possible combinations, including more constraints into the problem and
reducing the search:
– Minimum and maximum number of zeros in the set Var-Model :
In order to reduce the search space by avoiding the exploration of non-valid
solutions, the valuation of the variables in Var-Model (regarding the amount
of zeros) is limited. Therefore, and since a zero in a variable of Var-Model
means that the corresponding transition may not be executed, we can deduce
from the model the minimum and maximum number of zeros that can appear
in Var-Model. To ascertain the number of zeros, a COP is created with the
constraints related to the model minimizing or maximize the summation of
zeros to obtain maxNumZeros and minNumZeros respectively. The obtained
values and the following constraints are included in the explained COP.
countNumZeros[Var-Model.size()] in the domain model.size()
int sumCountZeros in the domain</p>
        <p>[model.size()−maxNumZeros..model.size()−minNumZeros]</p>
        <sec id="sec-3-2-1">
          <title>FOR EACH modi in Var-Model</title>
          <p>
            if(modi == 0)
then (countNumZeros[i] = 1)
else (countNumZeros[i] = 0)
END FOR
sumNumZeros = countNumZeros[
            <xref ref-type="bibr" rid="ref1">1</xref>
            ] + . . . + countNumZeros[size]
– Minimum distance between transitions: In order to reduce the domain
of the variables composing Var-Model, we execute the Floyd algorithm to
obtain a Matrix that includes every minimum transition distance. With this
information, the domain of the variables in Var-Model can be reduced, since
the possible value assigned to a modi must take into account the values of
the other variables to reach an correct trace in the model.
          </p>
          <p>FOR EACH modi in Var-Model</p>
          <p>modi in the domain [0..size−floyd[i][closestEndTransition]]</p>
          <p>END FOR
– Maximum value in Var-Log : A reduction in the domain of each variable
composing Var-Log is also carried out following a similar idea. The possible
order when a transition can be executed in the log, can take into account
the events that appear after it.</p>
        </sec>
        <sec id="sec-3-2-2">
          <title>FOR EACH logai in Var-Log</title>
          <p>logai ≤ size − case.size() + i</p>
          <p>END FOR
– Mandatory transition relation: A mandatory matrix is built, where each
position [i][j] of the matrix can take two values {0, 1}, being 0 if every
correct case that includes the transition i must include the transition j, and
1 otherwise. Thus, for every 1 found in a position [i][j], a constraint is created:
FOR EACH pair ai, aj of transitions</p>
          <p>IF (ai is a start transition)</p>
          <p>THEN (modaj &gt; floyd[i][j])</p>
          <p>ELSE (if (modai =0) then ((floyd[i][j]+modai ) ≤ modaj )</p>
          <p>END IF</p>
          <p>END FOR
– Define Goal to Propagate Solutions: Since the CSPs analyse all the
promising possible values of the variables, in order to reduce this analysis we
propose to include in the COP a goal over the Var-Log variables to generate
only the possible values of this array and propagate the solution to the rest
of variables. This enables the search to stop the instantiation in the branches
where no new values of decision variables can be found, thereby bounding the
unnecessary combinations of values for the rest of the variables but ensuring
that there exists a solution inside.
4</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Evaluation</title>
      <p>
        This proposal has been implemented using JsolverT M as COP solver, XES library
and PNML framework3. We used the benchmarks from [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], which are hard
conformance instances, most of them representing a challenge for the
state-ofthe-art alignment technique from [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>The COPs have been tested using the example whose characteristics are
shown in Table 1. All XES for each Petri net in PNML are formed by several
cases, 500 for C−petri and 1200 for the rest. Each case is evaluated in an
independent way, it implies that the files of PNML and XES are load from the
beginning, and the mentioned algorithms to analyse the Petri net graph are
repeated for each case and included in the evaluation times of the table.</p>
      <p>Since some of the examples are very hard, Constraint Programming offers the
possibility to know the best solution found so far in the exploration. With this
capacity we can wait or abort the search keeping a possible solution, although
sometimes it cannot be ensured that this is the best solution. The information
about the tests is:
– Test: Name of the Petri net analysed in the test.
3 The test cases are measured using a Windows 10 machine, with an Intel Core I7
processor, 3.4 GHz and 32.0 GB RAM.
– Num. Trans.: Number of transitions in the Petri net.
– Num. Places: Number of places in the Petri net.
– Width: Minimum distance from a start place to an end place, equal to the
position {startTransition, endTransition} in the Floyd Matrix.
– Min. Num of Trans.: The minimum number of transitions that can appear
in a correct case for the model (model.size()−maxNumZeros).
– Max. Num of Trans.: The maximum number of transitions that can
appear in a correct case for the model (model.size()−minNumZeros).
– time: The summation of the evaluation time for every cases (1200). This
value is included only if we can ensure that the minimum is found in a
bounded time (one minute in our case).
– Minimal found?: Field to indicate if we can ensure that the minimum is
found or we have abort the execution. The possibilities are Yes or Not, to
describe if the best solution in a bounded time is found for every case.
– Best solution in a Bounded Time: When the minimum cannot be
ensured to be found, we need to decide the time that we are going to wait until
stopping the process. We have included some examples of the minimum
misalignment found and the spending time to obtain this solution.</p>
      <p>Analysing Table 1, it is possible to ascertain that the evaluation time is not
totally related to the size of the Petri net, nor with the number of variables.
Actually there exists a dependency between the evaluation time and the size of
the log. This size is not included in the table since they are 1200 different for each
case, but the min. and max. number of transitions determine the bound of the
log size in each case. We can observe that two COPs for the same model, but for
1703.829s All
1564.647s All
22754.087 All
2976.404s All
57390.782s All</p>
      <p>
        None
None
19 in 18.426s
26 in 15.590s
26 in 16.201s
24 in 17.922s
25 in 18.524s
different log (then with the same number of variables), can have very different
evaluation times. Our proposal found solutions for the examples prDm6, prEm6,
prFm6, prGm6, whereas they cannot be found in previous works [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
5
      </p>
    </sec>
    <sec id="sec-5">
      <title>Benefits and Limitations of the proposal</title>
      <p>This proposal presents three main benefits: 1) the solutions found during the
search can be known, then we can abort the process when considering that the
alignment is good enough, or even to bound the waiting time; 2) the capacity
to interact with the model, by allowing the parametrization of values for each
particular case and model; and 3) Constraint solver tools are in constant
development, therefore every improvement in constraint programming research can
be easily included in our implementation. Some example of the variables that
can be parametrized are:
– Limitation of the maximum search time.
– A lower bound on the degree of alignment.
– Maximum or minimum allowed misalignment.
– Types of supported cases, described by means of: 1) those containing a
minimum or maximum number of transitions; 2) those containing a set of
transitions in a mandatory way.</p>
      <p>Among the limitations of the current state of our proposal are that:
– Only Petri nets with one token is considered, and different transitions with
the same name are not allowed.
– It is restricted to acyclic process models.
– Only safe nets are considered and with exactly one input and output place.
– For some cases, we cannot always ensure that the found solution is minimal.
6</p>
    </sec>
    <sec id="sec-6">
      <title>Related Works</title>
      <p>
        The seminal work by [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] represents the first attempt to relate observed and
modelled behaviour. Given an observed trace, it is based on heuristically replaying
it on the process model. Although in practice this approach may be very useful
for large models, for indeterministic models it cannot guarantee the existence
of a solution even though it exists. Evolutions of this replay technique can also
be find in recent work [
        <xref ref-type="bibr" rid="ref6 ref7">6, 7</xref>
        ], which also inherit the aforementioned fundamental
problem of replaying techniques.
      </p>
      <p>
        The work in [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] proposed the notion of alignment for the first time, and
developed a technique to compute optimal alignments for a particular class of
process models. The approach is implemented in ProM, and can be considered
as the state-of-the-art technique for computing alignments. Unfortunately, the
alignment techniques in [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] cannot handle large inputs.
      </p>
      <p>
        Decompositional techniques have been recently presented [
        <xref ref-type="bibr" rid="ref1 ref14">1, 14</xref>
        ] that instead
of computing optimal alignments, they focus on the decisional problem of
deciding whereas a given trace fits or not a process model. The underlying idea is
to split the model into a particular set of transition-bordered fragments which
satisfy certain conditions, and local alignments can be computed for each one of
the fragments, thus providing a upper bound on the cost of an alignment.
      </p>
      <p>
        Finally, the work in [
        <xref ref-type="bibr" rid="ref12 ref13">13, 12</xref>
        ] considers the problem of dealing with partially
ordered event data, a common situation in certain context like healthcare. The
notion of partially ordered alignment is introduced, and a variation of the
techniques presented in [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] is used for its computation.
7
      </p>
    </sec>
    <sec id="sec-7">
      <title>Conclusions and Future work</title>
      <p>The Constraint Programming paradigm has been used in various and complex
scenarios where different combinations and possibilities need to be analysed,
obtaining promising solutions. For this reason, we have considered interesting to
carry out the alignment computation in conformance checking by using
Constraint Programming. The creation and solution of Constraint Optimization
Problems allows to incorporate in the computation of alignments propagation
algorithms incorporated in Constraint Programming Solvers. It has enabled to
find solutions for complex Petri nets and logs that represent a challenge for other
techniques. Obviously there exist computational complex problems, very hard
to optimize also using Constraint Programming. For this reason, and since the
solutions found during the search can be known, the user has the choice to stop
the search when a satisfactory (perhaps not minimal) solution is found in the
exploration.</p>
      <p>In addition, the use a declarative model as Constraint Programming
facilitates the incorporation of parameters in the problems, with no extra
implementation, such as the maximum time of search of solutions, or the maximum and
minimum misalignment allowed.</p>
      <p>For the future, several research directions will be taken. First, extending
the theory to deal with models containing cyclic behaviour is a necessary step.
Second, we plan to explore the correlation between the characteristics of the
model and the log, and the evaluation time. Also we consider very interesting to
combine various cases to find the minimal diagnosis of the model or the log, to
ascertain the activities responsible of a misalignment.</p>
      <p>Acknowledgments. This work has been partially funded by the Spanish Ministry
for Economy and Competitiveness (TIN2015-63502-C3-2-R, TIN2013-46181-C2-1-R)
and the European Regional Development Fund (ERDF/FEDER).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>van der Aalst</surname>
            ,
            <given-names>W.M.P.</given-names>
          </string-name>
          :
          <article-title>Decomposing Petri nets for process mining: A generic approach</article-title>
          .
          <source>Distributed and Parallel Databases</source>
          <volume>31</volume>
          (
          <issue>4</issue>
          ),
          <fpage>471</fpage>
          -
          <lpage>507</lpage>
          (
          <year>2013</year>
          ), http://dx. doi.org/10.1007/s10619-013-7127-5
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Adriansyah</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Aligning observed and modeled behavior</article-title>
          .
          <source>Ph.D. thesis</source>
          , Technische Universiteit Eindhoven (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Adriansyah</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Munoz-Gama</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Carmona</surname>
            , J., van Dongen,
            <given-names>B.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>van der Aalst</surname>
            ,
            <given-names>W.M.P.</given-names>
          </string-name>
          :
          <article-title>Measuring precision of modeled behavior</article-title>
          .
          <source>Inf. Syst. E-Business Management</source>
          <volume>13</volume>
          (
          <issue>1</issue>
          ),
          <fpage>37</fpage>
          -
          <lpage>67</lpage>
          (
          <year>2015</year>
          ), http://dx.doi.org/10.1007/s10257-014-0234-7
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Apt</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Principles of Constraint Programming</article-title>
          . Cambridge University Press, New York, NY, USA (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Borrego</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Eshuis</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , Go´
          <fpage>mez</fpage>
          -Lo´pez, M.T.,
          <string-name>
            <surname>Gasca</surname>
            ,
            <given-names>R.M.:</given-names>
          </string-name>
          <article-title>Diagnosing correctness of semantic workflow models</article-title>
          .
          <source>Data Knowl. Eng</source>
          .
          <volume>87</volume>
          ,
          <fpage>167</fpage>
          -
          <lpage>184</lpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. vanden Broucke,
          <string-name>
            <given-names>S.K.L.M.</given-names>
            ,
            <surname>Munoz-Gama</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Carmona</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Baesens</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Vanthienen</surname>
          </string-name>
          , J.:
          <article-title>Event-based real-time decomposed conformance analysis</article-title>
          .
          <source>In: On the Move to Meaningful Internet Systems: OTM 2014</source>
          Conferences - Confederated
          <source>International Conferences: CoopIS, and ODBASE</source>
          <year>2014</year>
          , Amantea, Italy,
          <source>October 27-31</source>
          ,
          <year>2014</year>
          , Proceedings. pp.
          <fpage>345</fpage>
          -
          <lpage>363</lpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. vanden Broucke,
          <string-name>
            <given-names>S.K.L.M.</given-names>
            ,
            <surname>Weerdt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.D.</given-names>
            ,
            <surname>Vanthienen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Baesens</surname>
          </string-name>
          ,
          <string-name>
            <surname>B.</surname>
          </string-name>
          :
          <article-title>Determining process model precision and generalization with weighted artificial negative events</article-title>
          .
          <source>IEEE Trans. Knowl. Data Eng</source>
          .
          <volume>26</volume>
          (
          <issue>8</issue>
          ),
          <fpage>1877</fpage>
          -
          <lpage>1889</lpage>
          (
          <year>2014</year>
          ), http://dx.doi.org/10. 1109/TKDE.
          <year>2013</year>
          .130
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Dechter</surname>
            ,
            <given-names>R.: Constraint</given-names>
          </string-name>
          <string-name>
            <surname>Processing</surname>
          </string-name>
          (The Morgan Kaufmann Series in Artificial Intelligence). Morgan Kaufmann (May
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9. Go´mez-Lo´pez, M.T.,
          <string-name>
            <surname>Gasca</surname>
            ,
            <given-names>R.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>P</surname>
          </string-name>
          ´erez- A´lvarez,
          <string-name>
            <surname>J.M.:</surname>
          </string-name>
          <article-title>Compliance validation and diagnosis of business data constraints in business processes at runtime</article-title>
          .
          <source>Inf. Syst</source>
          .
          <volume>48</volume>
          ,
          <fpage>26</fpage>
          -
          <lpage>43</lpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10. G´omez-Lo´pez, M.T.,
          <string-name>
            <surname>Gasca</surname>
            ,
            <given-names>R.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rinderle-Ma</surname>
          </string-name>
          , S.:
          <article-title>Explaining the incorrect temporal events during business process monitoring by means of compliance rules and model-based diagnosis</article-title>
          .
          <source>In: 17th IEEE International Enterprise Distributed Object Computing Conference Workshops, EDOC Workshops</source>
          , Vancouver, BC, Canada, September 9-
          <issue>13</issue>
          ,
          <year>2013</year>
          . pp.
          <fpage>163</fpage>
          -
          <lpage>172</lpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. G´omez-Lo´pez, M.T.,
          <string-name>
            <surname>Parody</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gasca</surname>
            ,
            <given-names>R.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rinderle-Ma</surname>
          </string-name>
          , S.:
          <article-title>Prognosing the compliance of declarative business processes using event trace robustness</article-title>
          .
          <source>In: On the Move to Meaningful Internet Systems: OTM 2014</source>
          Conferences - Confederated
          <source>International Conferences: CoopIS, and ODBASE</source>
          <year>2014</year>
          , Amantea, Italy,
          <source>October 27-31</source>
          ,
          <year>2014</year>
          , Proceedings. pp.
          <fpage>327</fpage>
          -
          <lpage>344</lpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Lu</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fahland</surname>
            , D., van der Aalst,
            <given-names>W.M.P.</given-names>
          </string-name>
          :
          <article-title>Conformance checking based on partially ordered event data</article-title>
          .
          <source>In: Business Process Management Workshops - BPM 2014 International Workshops, Eindhoven, The Netherlands, September 7-8</source>
          ,
          <year>2014</year>
          ,
          <string-name>
            <given-names>Revised</given-names>
            <surname>Papers</surname>
          </string-name>
          . pp.
          <fpage>75</fpage>
          -
          <lpage>88</lpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Lu</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mans</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fahland</surname>
            , D., van der Aalst,
            <given-names>W.M.P.</given-names>
          </string-name>
          :
          <article-title>Conformance checking in healthcare based on partially ordered event data</article-title>
          .
          <source>In: Proceedings of the 2014 IEEE Emerging Technology and Factory Automation</source>
          ,
          <string-name>
            <surname>ETFA</surname>
          </string-name>
          <year>2014</year>
          , Barcelona, Spain,
          <source>September 16-19</source>
          ,
          <year>2014</year>
          . pp.
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          (
          <year>2014</year>
          ), http://dx.doi.org/10.1109/ETFA.
          <year>2014</year>
          . 7005060
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Munoz-Gama</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Carmona</surname>
            , J., van der Aalst,
            <given-names>W.M.P.</given-names>
          </string-name>
          :
          <article-title>Single-entry single-exit decomposed conformance checking</article-title>
          .
          <source>Inf. Syst</source>
          .
          <volume>46</volume>
          ,
          <fpage>102</fpage>
          -
          <lpage>122</lpage>
          (
          <year>2014</year>
          ), http://dx.doi. org/10.1016/j.is.
          <year>2014</year>
          .
          <volume>04</volume>
          .003
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Rozinat</surname>
          </string-name>
          , A.,
          <string-name>
            <surname>van der Aalst</surname>
            ,
            <given-names>W.M.P.</given-names>
          </string-name>
          :
          <article-title>Conformance checking of processes based on monitoring real behavior</article-title>
          .
          <source>Information Systems</source>
          <volume>33</volume>
          (
          <issue>1</issue>
          ),
          <fpage>64</fpage>
          -
          <lpage>95</lpage>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>