You are on page 1of 6

2014 4th International Conference on Artificial Intelligence with Applications in Engineering and Technology

Verifying Solutions to the Dining Philosophers Problem with Activity-Oriented


Petri Nets

Reggie Davidrajuh
Department of Electrical and Computer Engineering
University of Stavanger
Stavanger, Norway
E-mail: Reggie.Davidrajuh@uis.no

Abstract—Petri Nets is a family of modeling formalisms, The aim of this paper is to test the model compactness
consisting of various types of Petri nets with different and the modeling easiness of AOPN using the classical
interpretations and abstraction levels. General Purpose Petri benchmark known as the dining philosophers problem. Thus,
Net Simulator (GPenSIM) is a new Petri Net simulator that the scope of the paper is limited to testing the modeling
implements many of the Petri Net types. Activity-Oriented capability of AOPN only; literature study reveals that the
Petri Nets (AOPN) is a new approach that facilitates modeling dining philosophers problem is solved using various types of
of some specific problems (e.g. modeling systems that include Petri Nets; interested readers are referred to [12; 13; 14].
large number of resources); AOPN is also implemented in In this paper: firstly, a short introduction to AOPN is
GPenSIM. In this paper, firstly, a short introduction to AOPN
given. Secondly, the solutions to the classical benchmark
is given. Secondly, the modeling capability of AOPN is tested
known as the dining philosophers problem is modeled and
using the classical benchmark known as the Dining
Philosophers Problem. The modeling approach shown in this verified by the AOPN approach.
paper proves that AOPN can be conveniently used for
II. A SHORT INTRODUCTION TO ACTIVITY-ORIENTED
modeling of discrete event systems.
PETRI NETS (AOPN)
Keywords- Dining Philosophers problem; Activity-Oriented Activity-Oriented Petri Nets (AOPN) is a two phase
Petri Net (AOPN); GPenSIM; Petri Nets modeling approach [15; 16]:
Phase-I is for creating the static Petri Net model. In this
I. INTRODUCTION phase, mainly the activities are their precedence are
represented as transitions intertwined with places as
The Petri Nets is a family of modeling formalisms that buffers; the resources are grouped into two groups such as
includes many types of Petri Nets. Some of the well-known focal resources and utility resources, and only the focal
Petri Net types are Ordinary (aka classical or P-T) Petri Net, resources are included in the static Petri Net model and the
Generalized Petri Net, and Stochastic Petri Net, Colored utility resources are pushed into run-time model. Thus, a
Petri Net, Petri Net with priority, Petri Net with inhibitor compact Petri Net model is obtained with only the transitions
arcs, and Timed Petri Net [1; 2; 3; 4]. There are also representing the activities and a fewer places representing the
restrictions of Petri Net (also known as Petri Net subclasses) focal resources.
such as Marked Graphs and Finite State Machines [1; 5]. In Phase-II is for adding the run-time details that cannot be
addition, some special types of Petri nets are that developed coded in the static Petri Net model; e.g. transitions
for solving specific problems conveniently [6; 7]. (activities) requesting, using, and releasing of the utility
Ordinary (aka classical or PT) Petri Nets and Generalized resources are coded in the run-time model.
Petri Nets do not possess enough modeling power to model In order to allow the two phase modeling approach,
Turing machines; this means, Ordinary Petri Nets cannot be (static Petri net model and dynamic run-time environment),
used for modeling some of the discrete event systems [1; 8]. AOPN provides a number of fundamental constructs such as
Thus, extensions (e.g. Petri Nets with priority, Petri Net with non-primitive transitions, pre-processor known as
inhibiting arcs, and enabling functions [9; 10]) are needed to COMMON_PRE, post-processor known as
make the Petri Net capable of modeling Turing machine. COMMON_POST, and resource management:
Literature report the huge size of Petri Net models of Non-primitive transitions: in AOPN approach, all the
discrete event systems as one of the main problems transitions take time to fire and may incur cost when firing.
associated with Petri Nets [11]. This problem is especially Pre-processor known as COMMON_PRE: Every
true when modeling resource scheduling problems: even for enabled transition runs a pre-processor for checking
a resource scheduling problem with few activities competing additional conditions for firing (aka ‘guard conditions’ and
for a few resources, the resulting Petri Net model can be very ‘enabling conditions’ in some literature [17]).
large [11]. AOPN is an approach for obtaining compact post-processor known as COMMON_POST: every
models of discrete event systems where resource sharing and transition that has just fired also run a post-processor known
resource scheduling dominate.

978-1-4799-7910-3/14 $31.00 © 2014 IEEE 163


DOI 10.1109/ICAIET.2014.35

Authorized licensed use limited to: Universidad Nacional de Colombia (UNAL). Downloaded on April 24,2021 at 16:54:28 UTC from IEEE Xplore. Restrictions apply.
as COMMON_POST right after firing, to perform post-firing • When a philosopher is about to perform the act of
actions, if any. eating, he must secure the chopsticks (both on the
Resource management support and costing constructs: right and on the left) first; whether to secure the right
AOPN provides resource management support in the one or the left one first, is not defined.
background; also, code for cost analysis will be • After finish eating, the philosopher puts the
automatically run if costing is necessary. chopsticks on the table, and starts the act of thinking.
Interested readers are referred to the following works on • Rice in the bowls is assumed as unlimited (infinite
AOPN [15; 16; 17; 18]. supply); hungry philosophers can eat as much as
they want, as long as they want.
III. THE DINING PHILOSOPHERS PROBLEM The problem is to design an algorithm so that none of the
The dining philosophers problem was originally put philosopher starves due to conflict or deadlock.
forward in 1965 by Dijkstra [20]. In computer science, the
dining philosophers problem is a case study problem often B. Ordinary Petri Net model
used to study concurrency, synchronization, and conflict. Figure-2 shows an Ordinary Petri Net model for the
Literature study shows that the dining philosophers problem dining philosophers problem; this figure shows only the
is already solved many times, using a variety of Petri Net module for philosopher-4; the other modules for the other
extensions [1; 12; 13; 14]. Hence, in this paper, the dining philosophers will be similar. Thus, the complete model
philosophers problem is used as a benchmark to test the consists of copies of this module for the other philosophers
modeling capability and also the easiness of using AOPN as well, and the modules are connected through the places
and its GPenSIM implementation. representing the chopsticks (CS).
A. Description of the problem
Details of the dining philosophers problem (see figure-1):




























 
  Figure 2. Ordinary Petri Net module of Philosopher-4.
 



In the ordinary Petri net model shown in figure-2, it is


not possible not solve the issues such as deadlock (a situation
Figure 1. The dining philosophers problem: with 5 philosophers and 5
chopsticks (CS) placed between them.
in which no progress is possible) and livelock (a situation in
which one or more philosophers are starving).
• Five philosophers sit at around a table, performing Deadlock may appear if all the philosophers become
two acts: thinking and eating. hungry at the same time and secures the chopstick on the
• A bowl of rice placed in front of each philosopher, right first (e.g. philosopher-4 secures the chopstick CS-4 and
together with two chopsticks. As the chopsticks are the philosopher-3 takes the chopstick CS-3). Since the other
placed between the philosophers, they are for chopstick is now occupied, each philosopher has to wait
common use by the adjacent philosophers. However, eternally for the chopstick to the left to become available, see
the rice bowl is for individual use only. figure-3.
However, this problem could be avoided by making a
• Each philosopher acts independently, alternately
simple structural adjustment to the module shown in figure-
performs the acts of thinking and eating.
2: as shown in figure-4, we may forge the transitions
• When a philosopher performs the act of thinking, he
“securing CS-4” and “securing CS-5” in figure-2 together,
does not use the chopsticks, thus they are free to be forcing the philosopher either to pick up the two chopsticks
used by the adjacent philosophers.
together if available or to wait.
• Each chopstick is treated as a critical region: at most
one philosopher can use it at a time.

164

Authorized licensed use limited to: Universidad Nacional de Colombia (UNAL). Downloaded on April 24,2021 at 16:54:28 UTC from IEEE Xplore. Restrictions apply.
Livelock (resource starvation) is still possible, as two
philosophers eat alternatively or at the same time, leaving the 

philosopher in-between to starve. As there is no mechanism 



  
in Ordinary Petri Net to give priority to a starving
philosopher (e.g. by the technique called ‘aging’), Ordinary   




Petri Net cannot be used avoid starvation. 

philosopher-3 got CS-3




philosopher-4 got CS-4   
philosopher-1 got CS-1
philosopher-2 got CS-2   


philosopher-5 got CS-5
philosopher-2 DID NOT get CS-3 
  

philosopher-5 DID NOT get CS-1


 
philosopher-1 DID NOT get CS-2
philosopher-3 DID NOT get CS-4   

philosopher-4 DID NOT get CS-5



philosopher-1 DID NOT get CS-2
philosopher-3 DID NOT get CS-4 

philosopher-2 DID NOT get CS-3


Figure 4. Revised Petri Net module of Philosopher-4.
philosopher-5 DID NOT get CS-1
philosopher-4 DID NOT get CS-5
… Though this method avoids starvation among
… philosophers, introducing the supervisor as a central control
unit results in reduced parallelism: it is no longer possible for
Figure 3. Philosophers in deadlock. more than one philosopher to become hungry, secure the
chopsticks and start eating – all at the same time, as the
C. Solutions to the dining philosophers problem supervisor can look into only one philosopher at a time.
Literature provides many solutions to the problem, The three solutions mentioned above cannot be verified
including the following three [20; 21; 22]: by an Ordinary Petri Net, as there is no facility in Ordinary
Petri Net to prioritize a philosopher when two or more
• Solution-1: Dijkstra’s solution based on the number
compete for the same resource.
ordering of chopsticks.
• Solution-2: the solution based on the number IV. VERIFYING THE SOLUTIONS WITH AOPN
ordering of philosophers.
• Solution-3: the supervisor based solution. In this section, the three solutions to the dining
philosophers problem will be verified by Petri net models
Dijkstra’s solution is the earliest solution to the problem.
Dijkstra proposes a solution for deadlock avoidance by based on AOPN.
assigning a numerical order to the chopsticks and forcing the A. The AOPN model
philosophers to secure the chopstick with higher number first Figures-5 and 6 show the Petri Net models of the dining
and then the one with the lower number (e.g. philosopher-4 philosophers problem, based on AOPN. The model shown in
secures CS-5 first and then CS-4, whereas philosopher-5 also figure-5 is much compact compared with its equivalent
secures CS-5 first and then CS-1) [20]. This enforcement ordinary Petri net model shown in figure-2. This is because,
prevents each philosopher holding one chopstick each and the resources (chopsticks) are considered as utility resources
waiting for the other eternally. Though Dijkstra’s proposal and thus abstracted away from the static Petri Net model,
avoids the deadlock situation, it does not avoid starvation. leaving the model representing only the activities such as
The solution based on the number ordering of “thinking”, “securing chopsticks”, and “eating”.
philosophers is very similar to the Dijkstra’s solution; rather The transitions in the AOPN model are shown as
than numbering the chopsticks, the philosophers are number rectangles and not as thin lines as in figure-2. This is
ordered in this solution [21]. When two philosophers because, AOPN is based on Timed Petri Nets and the
compete for a chopstick, the philosopher with the lower transitions “Thinking” and “Eating” take time as
number will be prioritized. As with Dijkstra’s solution, this philosophers do take time to thinking and eating. The
solution does not answer the starvation problem. transitions in the ordinary Petri net model are untimed thus
The starvation problem can be prevented by introducing shown as thin lines.
a supervisor (or arbitrator) [22]. The supervisor may allow or During run-time (figure-6), when the philosopher-4
prevent a philosopher from grabbing the two chopsticks and becomes hungry (indicated by a token each in the places
eat; the supervisor also counts the number of times a ‘secure CS-4’ and ‘secure CS-5’), the transitions ‘securing
philosopher attempted to grab the chopsticks and the number CS-4’ and ‘securing CS-5’ become enabled.
of times he succeeded and not succeeded. Using this However, for these transitions to start fire, they will
information, when many philosophers become hungry at the request the resources ‘CS-4’ and ‘CS-5’ from the resource
same time, the supervisor may give priority to a staving manager which runs in the background; only if the resources
philosopher.

165

Authorized licensed use limited to: Universidad Nacional de Colombia (UNAL). Downloaded on April 24,2021 at 16:54:28 UTC from IEEE Xplore. Restrictions apply.
are granted then the transitions fire depositing a token each B. Verifying Dijkstra’s solution
in the places ‘CS-4 secured’ and ‘CS-5 secured’. In Dijkstra’s solution, the chopsticks are numbered, and

   when a philosopher requires two chopsticks, the chopstick
 with higher number should be secured first. Equivalently,
when two chopsticks are reserved at the same time, the
 
transition that reserves the higher numbered chopstick must
be allowed to fire before the transition that reserves the lower
numbered chopstick. The following code snippet implements

 
 this condition for philosopher-4 where the transition t4S5
 
 
(for securing CS-5) is allowed to fire before the transition
t4S4 (for securing CS-4):

 

  %%%% for philosopher-4
 
if strcmp(transition_name, 't4S4'),
 
 

 
   fire = not(is_enabled('t4S5'));
end;

    C. Verifying the solution based on philosopher numbering


The second solution allocates index numbers to the
philosophers and assign priority to them so that higher the
index number, higher the priority will be. For example,

  
philosopher-1 will be assigned with priority value 1, which is
lower than the priority value 2 that will assign to


philosopher-2; philosopher-5 will be assigned the highest
Figure 5. Static Petri Net module of philosopher-4. priority value of 5.
The code snippet shown below assigns priorities to two
transitions for each philosopher; this is because, each
philosopher secures chopsticks via two transitions (e.g.

   philosopher-4 uses transitions t4S4 and t4S5 for requesting
 the chopsticks).
% assign priorities to philosophers
priorset('t1S1',1); % philosopher-1
  priorset('t1S2',1); % philosopher-1
priorset('t2S2',2); % philosopher-2
priorset('t2S3',2); % philosopher-2

 

  priorset('t3S3',3); % philosopher-3

  


   priorset('t3S4',3); % philosopher-3

 
   priorset('t4S4',4); % philosopher-4


 
 priorset('t4S5',4); % philosopher-4
 
  priorset('t5S5',5); % philosopher-5
priorset('t5S1',5); % philosopher-5
 
 

 
  
D. Verifying the solution based on supervisor
   
The supervisor basically interferes when the philosophers
attempt to secure the chopsticks.


  If a philosopher fails to secure the chopsticks
  

  
 successively a number of times (the code snippet shown
below assumes 10 times), then the philosopher is assumed to

  
be starving and hence a very high priority (priority value of 7
in the code) is assigned to the philosopher. Since the starving


philosopher has the highest priority now, he will secure the
Figure 6. Petri Net run-time module of philosopher-4. chopsticks when he competes for it next time. The code
below also shows that when the starving philosopher finally
Due to the tokens, one each in the places ‘CS-4 secured’ eats, his priority must be restored back to his normal priority.
and ‘CS-5 secured’, the transition ‘Eating’ fires. When % Solution-3: Avoiding starvation
‘Eating’ is complete, all the acquired resources (e.g. ‘CS-4’ if not(acquired),
and ‘CS-5’ for philosopher-4) will be released by the attempts(PNr) = attempts(PNr) + 1;
transition ‘Eating’. if eq(attempts(PNr), 10),%
It is easy to code and verify the solutions using priority(PNr) =
GPenSIM. get_priority(tname);

166

Authorized licensed use limited to: Universidad Nacional de Colombia (UNAL). Downloaded on April 24,2021 at 16:54:28 UTC from IEEE Xplore. Restrictions apply.
priorset(tname, 7); % any high value % declarte the initial tokens
end; dyn.m0 = {'p1RTT',1, 'p2RTT',1, ...
else % reset attempts and priority 'p3RTT',1, 'p4RTT',1, 'p5RTT',1};
if eq(attempts(PNr), 10),
% reassign original priority % declarte the set of resources
priorset(tname, priority(PNr)); dyn.re = {'CS-1',1,inf, 'CS-2',1,inf,...
end; 'CS-3',1,inf, 'CS-4',1,inf, ...
attempts(PNr) = 0; % reset attempts 'CS-5',1,inf};
end; % create the run-time Petri net
pni = initialdynamics(png, dyn);
E. GPenSIM code for Simulations
This section tries to show how simple and compact the % run the simulation
sim = gpensim(pni);
GPenSIM code for simulation is. Using GPenSIM, a Petri
net model of a discrete event system usually consists of four The main parts of the pre-processor file COMMON_PRE
files: is already shown piece-by-piece in the subsection IV-C; due
1. Petri Net Definition File (PDF): this is the code to space limitation, the complete code is not shown in this
implementation of the static Petri Net. paper, but available in the webpage given in the reference as
2. Main Simulation File (MSF): In this file, the initial [23]. The post-processor file COMMON_POST is given
dynamics (e.g. initial tokens in places, firing times of below; in this file, the chopsticks that are reserved by the two
transitions, available systems resources) are transitions (e.g. ‘t4S4’ and ‘t4S5’) are released after eating
declared. (e.g. after ‘t4Eating’).
3. COMMON_PRE: In this file, the conditions for the
enabled transitions to start firing (‘guard conditions’) % COMMON_POST file for coding
are coded (e.g. reservation of resources needed to % the post firing actions.
function [] = COMMON_POST(transition)
start firing by any transitions). tname = transition.name;
4. COMMON_POST: the post-firing actions of the if ismember(tname, {'t1Eating', ...
transition are coded here. 't2Eating','t3Eating', ...
As discussed in the previous sections, the AOPN model 't4Eating','t5Eating'}),
for the dining philosophers problem consists of 5 similar PNr = str2double(tname(2)); % phil nr.
modules, one for each philosopher; figure-5 shows the CS1 = PNr;
module for philosopher-4. The PDF file for philosopher-4 is CS2 = mod(PNr,5) + 1;
trans1_name = ...
given below: ['t',int2str(PNr),'S',int2str(CS1)];
% PDF for philosopher-4 trans2_name = ...
function [png] = p4_pdf() ['t',int2str(PNr),'S',int2str(CS2)];
png.PN_name = 'PDF for philosopher-4'; release(trans1_name);
png.set_of_Places = {'p4RTT', 'p4S5', ... release(trans2_name);
'p4S4', 'p4S5d', 'p4S4d'}; end;
png.set_of_Transitions = {'t4Thinking', ...
't4S5', 't4S4', 't4Eating'}; F. Simulation results
png.set_of_Arcs= {'p4RTT','t4Thinking',1,...
't4Thinking','p4S5',1, ... Simulation results verify that:
't4Thinking','p4S4',1,... • Dijkstra’s solution and the solution based on
'p4S5','t4S5',1, 't4S5','p4S5d',1, ... philosopher numbering avoids the deadlock
'p4S4','t4S4',1, 't4S4','p4S4d',1, ... situation, and
'p4S5d','t4Eating',1, ...
'p4S4d','t4Eating',1, ... • In addition to deadlock avoidance, the solution based
't4Eating','p4RTT',1}; on supervisor avoids starvation.

The main simulation file is give below, in which the Sample simulation run is shown below:
initial dynamics are declared first. Then, the initial Petri net Warning: Firing times of
runt-time is created by joining the static Petri Net model with transitions are NOT given ...
the initial dynamics. Finally, the simulation runs are done.
% The main siluation file (MSF)
*** Using the supervisor method:
global global_info;
global_info.attempts = zeros(1,5); P-5 got CS-5
global_info.priority = zeros(1,5); P-4 DID NOT get CS-5
P-3 got CS-4
% declarte set of PDFs for the modules P-2 got CS-3
png = pnstruct({'p1_pdf', 'p2_pdf', ... P-5 got CS-1
'p3_pdf', 'p4_pdf', 'p5_pdf'}); P-3 DID NOT get CS-3
P-1 got CS-2
P-4 DID NOT get CS-5

167

Authorized licensed use limited to: Universidad Nacional de Colombia (UNAL). Downloaded on April 24,2021 at 16:54:28 UTC from IEEE Xplore. Restrictions apply.
P-3 DID NOT get CS-3 [9] G. Ciardo, “Toward a Definition of Modeling Power for Stochastic
P-2 DID NOT get CS-2 Petri Net Models,” International Workshop on Petri Nets and
P-1 DID NOT get CS-1 Performance Models, pp. 54-62, 1987.
P-4 got CS-5 [10] M. A. Marsan, G. Chiola, “On Petri nets with deterministic and
P-3 DID NOT get CS-3 exponentially distributed firing times,” Lecture Notes in Computer
Science, Vol. 266, pp 132-145, 1987.
P-2 DID NOT get CS-2
P-1 got CS-1 [11] A. Mehrez, M. Muzumdar, W. Acar, and G. Weinroth, “A Petri Net
Model View of Decision Making: an Operational Management

Analysis,” Omega, Int. J. Mgmt Sci. Vol. 23, No. 1, pp. 63-78, 1995.

[12] M. A. Holliday, M. K. Vernon, “A Generalized Timed Petri Net
Model for Performance Analysis”, Software Engineering, IEEE
V. CONCLUSION Transactions on, 12: 1297 – 1310, December 1987.
In this paper, a new approach known as Activity- [13] A. A. Lazar, T. G. Robertazzi, “Markovian Petri Net protocols with
Oriented Petri Nets (AOPN) is used to verify the solution product form solution”, Performance Evaluation, 12(1):67–77,
proposed for the classical dining philosophers problem. A January 1991.
new Petri Net simulator known as GPenSIM was used for [14] S. M. Shatz, T. U. Shengru, T. Murata, T. S. Duri, "An application of
Petri net reduction for Ada tasking deadlock analysis", Parallel and
creating the simulation code. Distributed Systems, IEEE Transactions on, 12:1307 - 1322,
The modeling and simulations given in this paper shows December 1996.
that AOPN approach can be conveniently used for modeling [15] R. Davidrajuh, “Activity-Oriented Petri Net for Scheduling of
of discrete event systems, especially when resources are Resources,” Proc. IEEE International Conference on Systems, Man,
involved. and Cybernetics (IEEE SMC 2012), October 14-17, 2012, Seoul,
The complete GPenSIM program codes for the Petri Net Korea.
models are not shown in this paper due to space limitation, [16] R. Davidrajuh, “Modeling Resource Management Problems with
Activity-Oriented Petri Nets.” Computer Modeling and Simulation
but fully available at the webpage indicated in the reference (EMS), 2012 Sixth UKSim/AMSS European Symposium on. IEEE,
as [23]. 2012.
[17] R. Davidrajuh, “Activity Based Costing with Petri Nets.” Computer
REFERENCES Modeling and Simulation (EMS), 2012 Sixth UKSim/AMSS
[1] J. L. Peterson, Petri Net Theory and the Modeling of Systems. NJ, European Symposium on. IEEE, 2012.
USA: Prentice-Hall, 1981. [18] R. Davidrajuh, “Realizing Simple Petri Net Models for Complex and
[2] W. Reisig, Understanding Petri Nets: Modeling Techniques, Analysis Large Scheduling Problems: An Approach Based Activity-Oriented
Methods, Case Studies, Springer, 2013. Petri Nets.” Computer Modelling and Simulation (UKSim), 2013
[3] L. Popova-Zeugmann, Time and Petri Nets, Springer, 2013. UKSim 15th International Conference on. IEEE, 2013.
[4] B. Berard, F. Cassez, S. Haddad, D. Lime, and O. H. Roux, “The [19] X. D. Koutsoukos, K. X. He, M. D. Lemmon, and A.J. Antsaklis,
expressive power of time Petri nets,” Theor. Comput. Sci., vol. 474, “Timed Petri nets in hybrid systems: Stability and supervisory
pp. 1–20, February 2013. control.” Discrete Event Dynamic Systems 8(2): 137-173, 1998.
[5] R. David, and H. Alla, “Discrete, Continuous and Hybrid Petri Nets,” [20] E. W. Dijkstra, “Hierarchical ordering of sequential processes”. Acta
IEEE Control Systems, Vol. 28, Issue. 3, pp. 81-84, June 2008. Informatica, 1(2): 115–138, 1971.
[6] L. H. Landweber, and E. L. Robertson, “Properties of conflict-free [21] J. Díaz, I. Ramos, “Formalization of Programming Concepts”,
and persistent Petri nets.” Journal of the ACM, 25(3): 352-364, 1978. International Colloquium, Peniscola, Spain, April 19–25, 1981.
[7] M. Nielsen, G. Plotkin, and G. Winskel, “Petri nets, event structures [22] C. A. R. Hoare, Communicating Sequential Processes, NJ, USA:
and domains, part I.” Theoretical Computer Science, 13(1): 85-108, Prentice Hall, 1985.
1981. [23] R. Davidrajuh, “GPenSIM code for the dining philosophers problem”.
[8] R. Davidrajuh, “Revisiting Petri Net modeling of Cigarette Smokers' Available: http://www.davidrajuh.net/gpensim/2014- ICAIET-DPP.
Problem,” Proc. IEEE European Modelling Symposium (EMS2013),
November 20–22, 2013, Manchester, UK.

168

Authorized licensed use limited to: Universidad Nacional de Colombia (UNAL). Downloaded on April 24,2021 at 16:54:28 UTC from IEEE Xplore. Restrictions apply.

You might also like