Fournit des scripts pour générer des arborescences de processus aléatoires et simuler ces arborescences dans des journaux d'événements.
Des informations détaillées sur le fonctionnement du générateur et du simulateur peuvent être trouvées dans l'article : Jouck, Toon et Benoît Depaire. "PTandLogGenerator : un générateur de données d'événements artificiels." Dans Actes du BPM Demo Track 2016 (BPMD 2016), 1789 : 23-27. Rio de Janeiro : Actes de l'atelier CEUR, 2016. http://ceur-ws.org/Vol-1789/.
En entrée : fichier de paramètres des populations (exemple de fichier de paramètres situé dans le dossier '/data/parameter_files').
Chaque ligne du fichier CSV caractérise une population : mode;min;max;sequence;choice;parallel;loop;or;silent;duplicate;lt_dependency;infrequent;no_models;unfold;max_repeat
si lt_dependency <= 0 : cela doit toujours être 0 (False)
si lt_dependency > 0 : cela peut être 1 ou 0 (Vrai ou Faux)
mode : nombre d'activités visibles le plus fréquent
min : nombre minimum d'activités visibles
max : nombre maximum d'activités visibles
séquence : probabilité d'ajouter un opérateur de séquence à l'arbre
choix : probabilité d'ajouter un opérateur de choix à l'arbre
parallèle : probabilité d'ajouter un opérateur parallèle à l'arbre
boucle : probabilité d'ajouter un opérateur de boucle à l'arbre
ou : probabilité d'ajouter un opérateur ou à l'arbre
silencieux : probabilité d'ajouter une activité silencieuse à un opérateur de choix ou de boucle
duplicate : probabilité de dupliquer une étiquette d'activité
lt_dependency : probabilité d'ajouter une dépendance aléatoire à l'arborescence
peu fréquent : probabilité de faire un choix avec des chemins peu fréquents
no_models : nombre d'arbres à générer à partir de la population du modèle
unfold : s'il faut ou non déplier les boucles afin d'inclure les choix en dessous dans les dépendances : 0=False, 1=True
max_repeat : nombre maximum de répétitions d'une boucle (utilisé uniquement lorsque le dépliage est True)
Résultat : collection d'arborescences de processus dans le dossier 'data/trees' :
format d'arbre de Newick (*.nw)
langage de balisage de l'arborescence des processus (*.ptml)
(facultatif) fichier image (*.png)
Utilisation : appelable depuis la ligne de commande :
$python generate_newick_trees.py [-h] [--t [timeout]] [--g [graphviz]] entrée
Générez des arbres de processus à partir de la population d'entrée.
arguments de position :
input : fichier d'entrée au format csv dans lequel les paramètres de population sont spécifiés, exemple : ../data/parameter_files/example_parameters.csv
arguments facultatifs :
-h, --help : affiche ce message d'aide et quitte
--t abandonner la génération de l'arborescence après un délai d'attente de quelques secondes, par défaut = 10 000
--g indique s'il faut restituer l'image graphviz de l'arbre, par défaut = False
Saisir:
traiter les arbres dans les fichiers d'arborescence Newick
size : le nombre de traces dans le journal des événements
bruit : la probabilité d'insérer du bruit
horodatages : inclure les horodatages (début et fin de chaque activité ?)
Sortie : journal des événements au format XES (par défaut) ou au format de fichier CSV 'case_id', 'act_name'[,'start_time','end_time']
Utilisation : appelable depuis la ligne de commande
plugin d'appel : $python generate_logs.py [-h] [--i [input_folder]] [--t [horodatages]] [--f [format]] bruit de taille
Simulez les journaux d’événements à partir des arborescences de processus.
arguments de position :
size : nombre de traces à simuler
bruit : probabilité d'insérer du bruit dans la trace
arguments facultatifs :
-h, --help : affiche ce message d'aide et quitte
--i [input_folder] : spécifie l'adresse relative au dossier des arbres, par défaut=../data/trees/
--t [timestamps] : indique s'il faut inclure ou non les horodatages, par défaut=False
--f [format] : indique quel format utiliser pour le log : xes ou csv, par défaut=xes
Saisir:
un échantillon d'arborescences de processus (dossier par défaut : ../data/trees/)
un niveau de déterminisme cible
un nombre maximum de nœuds d'entrée (de chaque décision)
un nombre maximum d'intervalles (pour discrétiser une valeur numérique)
un nombre de cas à générer dans chaque log
*Sortie : un échantillon de journaux d'événements avec des attributs de cas
*Utilisation : exécutez le generate_data_trees_and_logs.py et adaptez les paramètres