Evolutionary Petri Net
*Evolutionary Petri Nets* (EPN) is a convenient tool for the automatic
inference, optimization, and reverse engineering of Petri Nets (PNs). The
library exploits the evolutionary computation methodology described in .
WARNING: this is a preliminary alpha release.
EPN can be used as follows:
from epn.hpn import *
from epn.evolpn import *
from epn.basic import *
POPULATION = 10
E = EvolutionaryPetriNet()
for p in range(POPULATION):
p = ResizablePetriNet("H"+str(p))
E.setFitnessFunction( ... )
EPN can produce output figures of the PNs by using the dot/graphviz library.
For this reason, EPN relies on the external library pydot. The current state
of the whole EPN can be outputted with the following command:
EPNs does not directly handle PNs, but it exploits an extended class named
*Resizable Petri Net* (RPN). A population of RPNs undergoes an evolutionary
process, in which the best individuals are iteratively modified and improved
by means of crossover and mutation operators. The evolutive pressure is driven
by a user-defined fitness function.
The programmer is given the freedom of choosing
* the population size;
* one of the selection mechanism (roulette wheel, ranking, tournament);
* the maximum number of iterations;
* the pre- and post-order of transitions (see  for further information).
Thanks also to
EPNs have been developed by a joint effort of M.S. Nobile and G. Mauri
(University of Milan-Bicocca, Italy), D. Besozzi (University of Milan, Italy)
and P. Cazzaniga (University of Bergamo, Italy).
 Nobile, Besozzi, Cazzaniga and Mauri, "The Foundations of Evolutionary
Petri Nets", Proceedings of the 4th International Workshop on Biological
Processes & Petri Nets (BioPPN 2013), a satellite event of PETRI NETS 2013
(G. Balbo and M. Heiner, eds.), CEUR Workshop Proceedings Vol. 988, 60-74, 2013
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.