public class ETMParamFactory
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static double |
STD_CONFIGURATION_ALPHA
Standard configuration alpha for
ConfigurationFitness |
static double |
STD_CROSSOVER_CHANCE
Standard crossover chance
|
static int |
STD_ELITE_COUNT
Standard elite size for ETM Parameter objects
|
static double |
STD_GENERALIZATION_WEIGHT
Standard weight for the generalization quality dimension
|
static int |
STD_MAXIMUM_NR_GENERATIONS
Standard limit on number of generations
|
static double |
STD_MUTATION_RANDOM_CHANCE
Standard chance of applying random (versus guided) mutation
|
static int |
STD_POPSIZE
Standard population size for ETM Parameter objects
|
static double |
STD_PRECISION_WEIGHT
Standard weight for the precision quality dimension
|
static boolean |
STD_PREVENT_DUPLICATES
Standard setting whether duplicate trees should be prevented
|
static int |
STD_RANDOMTREES_NR
Standard amount of trees that are created at random in each generation
|
static double |
STD_REPLAYFITNESS_MAXF
Standard setting for the maximum allowed fitness value
|
static double |
STD_REPLAYFITNESS_MAXTIME
Standard timeout for aligning a single trace
|
static double |
STD_REPLAYFITNESS_WEIGHT
Standard weight for the replay fitness quality dimension
|
static double |
STD_SIMPLICITY_WEIGHT
Standard weight for the simplicity quality dimension
|
static double |
STD_TARGET_FITNESS
Standard target overall fitness
|
static org.deckfour.xes.classification.XEventClassifier |
STD_XEVENTCLASSIFIER
Standard XEventClass classifier
|
Constructor and Description |
---|
ETMParamFactory() |
Modifier and Type | Method and Description |
---|---|
static void |
addOrReplaceTerminationCondition(ETMParamAbstract params,
TerminationCondition condition)
Add the given termination condition to the provided param object and
makes sure that no other instance of this particular class exists in the
list of termination conditions.
|
static ETMParamPareto |
buildETMParamPareto(org.deckfour.xes.model.XLog eventlog,
org.processmining.framework.plugin.PluginContext context,
int popSize,
int eliteSize,
int nrRandomTrees,
double crossOverChance,
double chanceOfRandomMutation,
boolean preventDuplicates,
int maxGen,
double targetFitness,
double frWeight,
double maxF,
double maxFTime,
double peWeight,
double geWeight,
double sdWeight) |
static ETMParamPareto |
buildETMParamPareto(org.deckfour.xes.model.XLog eventlog,
org.processmining.framework.plugin.PluginContext context,
int popSize,
int eliteSize,
int nrRandomTrees,
double crossOverChance,
double chanceOfRandomMutation,
boolean preventDuplicates,
int maxGen,
double targetFitness,
double frWeight,
double maxF,
double maxFTime,
double peWeight,
double geWeight,
double sdWeight,
NAryTree[] seed,
double simWeight) |
static ETMParam |
buildParam(org.deckfour.xes.model.XLog eventlog,
org.processmining.framework.plugin.PluginContext context,
int popSize,
int eliteSize,
int nrRandomTrees,
double crossOverChance,
double chanceOfRandomMutation,
boolean preventDuplicates,
int maxGen,
double targetFitness,
double frWeight,
double maxF,
double maxFTime,
double peWeight,
double geWeight,
double sdWeight) |
static ETMParam |
buildParam(org.deckfour.xes.model.XLog eventlog,
org.processmining.framework.plugin.PluginContext context,
int popSize,
int eliteSize,
int nrRandomTrees,
double crossOverChance,
double chanceOfRandomMutation,
boolean preventDuplicates,
int maxGen,
double targetFitness,
double frWeight,
double fitnessLimit,
double maxFTime,
double peWeight,
double geWeight,
double sdWeight,
NAryTree[] seed,
double simWeight)
Instantiates a parameter instance while requesting only 'high level'
information and creating the most common termination conditions, fitness
evaluator(s), evolutionary operators and observers.
|
static ETMParam |
buildStandardParam(org.deckfour.xes.model.XLog eventlog)
Constructs a standardized instance of the parameter object using all
public constants defined in this class.
|
static ETMParam |
buildStandardParam(org.deckfour.xes.model.XLog eventlog,
org.processmining.framework.plugin.PluginContext context)
Constructs a standardized instance of the parameter object using all
public constants defined in this class.
|
static ETMParam |
buildStandardParamConfigurable(org.processmining.contexts.uitopia.UIPluginContext context,
org.deckfour.xes.model.XLog[] logs) |
static TerminationCondition |
constructProMCancelTerminationCondition(org.processmining.framework.plugin.PluginContext context) |
static OverallFitness |
createStandardOverallFitness(CentralRegistry centralRegistry)
Creates a standard overall fitness instance, containing evaluators for
the dimensions Fitness, Precision, Generalization and Simplicity, using
default weights (which might or might not be good for your purpose!!!)
|
static java.util.List<TreeFitnessInfo> |
extractConsideredDimensions(ETMParamAbstract params)
Extracts all considered dimensions from the current evaluator of the
provided parameter object
|
static TerminationCondition |
getTerminationCondition(ETMParamAbstract param,
java.lang.Class<? extends TerminationCondition> condition)
Returns an instance of the termination condition, if present in the
provided param object.
|
static void |
removeTerminationConditionIfExists(ETMParamAbstract param,
java.lang.Class<? extends TerminationCondition> clazz) |
public static final int STD_POPSIZE
public static final int STD_ELITE_COUNT
public static final int STD_RANDOMTREES_NR
public static final double STD_CONFIGURATION_ALPHA
ConfigurationFitness
public static final double STD_CROSSOVER_CHANCE
public static final double STD_MUTATION_RANDOM_CHANCE
public static final boolean STD_PREVENT_DUPLICATES
public static final int STD_MAXIMUM_NR_GENERATIONS
public static final double STD_TARGET_FITNESS
public static final double STD_REPLAYFITNESS_WEIGHT
public static final double STD_REPLAYFITNESS_MAXF
public static final double STD_REPLAYFITNESS_MAXTIME
public static final double STD_PRECISION_WEIGHT
public static final double STD_GENERALIZATION_WEIGHT
public static final double STD_SIMPLICITY_WEIGHT
public static final org.deckfour.xes.classification.XEventClassifier STD_XEVENTCLASSIFIER
public static ETMParam buildStandardParam(org.deckfour.xes.model.XLog eventlog)
eventlog
- public static ETMParam buildStandardParam(org.deckfour.xes.model.XLog eventlog, org.processmining.framework.plugin.PluginContext context)
eventlog
- context
- public static ETMParam buildStandardParamConfigurable(org.processmining.contexts.uitopia.UIPluginContext context, org.deckfour.xes.model.XLog[] logs)
public static ETMParam buildParam(org.deckfour.xes.model.XLog eventlog, org.processmining.framework.plugin.PluginContext context, int popSize, int eliteSize, int nrRandomTrees, double crossOverChance, double chanceOfRandomMutation, boolean preventDuplicates, int maxGen, double targetFitness, double frWeight, double maxF, double maxFTime, double peWeight, double geWeight, double sdWeight)
public static ETMParam buildParam(org.deckfour.xes.model.XLog eventlog, org.processmining.framework.plugin.PluginContext context, int popSize, int eliteSize, int nrRandomTrees, double crossOverChance, double chanceOfRandomMutation, boolean preventDuplicates, int maxGen, double targetFitness, double frWeight, double fitnessLimit, double maxFTime, double peWeight, double geWeight, double sdWeight, NAryTree[] seed, double simWeight)
ETMParam#ETMParam(TreeFactory, TreeFitnessAbstract, List, int, int)
(and related constructors) are recommended which give you all the
freedom, and responsibility, to set everything up correctly.
Overall note: fitness values are non-natural meaning 0 is perfect, 1 is
maximum drama.eventlog
- XLog the event log to work oncontext
- PluginContext The ProM plugin context to listen to for
cancellation and output messages to. Is allowed to be NULL and
will then be ignored.popSize
- int the total number of candidates to maintain and evolve in
each generation. RECOMMENDATION: 100 or 200eliteSize
- int The portion of the population to keep unchanged to prevent
fall-backs in fitness. RECOMMENDATION: ~25% of population sizenrRandomTrees
- int Number of worst trees to be replaced by random trees.
Might reduce performance for larger event logs, recommendation
therefore is to keep this value low or even 0. RECOMMENDATION:
0crossOverChance
- double The chance that crossover will be applied to two trees.
The total number of applications of crossover in a generation
will be ((popSize - eliteCount) - 1) * crossOverChance. So far
experiments have showed that crossover is not beneficial for
Process Trees so keep this low (< 0.1) or even 0.
RECOMMENDATION: 0.01chanceOfRandomMutation
- double The chance that for each tree a random mutation,
instead of a guided(=smart) one is applied. SEtting this to 1
means only ranodm mutations are applied, which will in general
mean that more generations are necessary to find a good tree.
It is not recommended to set it to 0 since smart mutations are
not always the best thing to do. RECOMMENDATION: 0.25maxGen
- int the maximum number of generations to run and then stop at.
RECOMMENDATION: 100targetFitness
- double The overall weighted fitness value to stop at, or
below. RECOMMENDATION: 0frWeight
- double The weight of the Fitness Replay metric among all four
fitness metrics. RECOMMENDATION: 10fitnessLimit
- double The maximum replay fitness value allowed. If the
alignment calculation is shown to exceed this value
calculations are stopped. This can be usefull to improve
performance. However, setting this value too strict might
prevent the algorithm from finding trees that will become good
eventually. RECOMMENDATION: 0.75maxFTime
- double. The maximum time in seconds that the alignment is
allowed to take to align a single trace on the process model.
RECOMMENDATION: 10peWeight
- double The weight of the Precision metric among all four
fitness metrics. RECOMMENDATION: 5geWeight
- double The weight of the Generalization metric among all four
fitness metrics. RECOMMENDATION: 1sdWeight
- double The weight of the Simplicity metric among all four
fitness metrics. RECOMMENDATION: 1public static ETMParamPareto buildETMParamPareto(org.deckfour.xes.model.XLog eventlog, org.processmining.framework.plugin.PluginContext context, int popSize, int eliteSize, int nrRandomTrees, double crossOverChance, double chanceOfRandomMutation, boolean preventDuplicates, int maxGen, double targetFitness, double frWeight, double maxF, double maxFTime, double peWeight, double geWeight, double sdWeight)
public static ETMParamPareto buildETMParamPareto(org.deckfour.xes.model.XLog eventlog, org.processmining.framework.plugin.PluginContext context, int popSize, int eliteSize, int nrRandomTrees, double crossOverChance, double chanceOfRandomMutation, boolean preventDuplicates, int maxGen, double targetFitness, double frWeight, double maxF, double maxFTime, double peWeight, double geWeight, double sdWeight, NAryTree[] seed, double simWeight)
public static TerminationCondition getTerminationCondition(ETMParamAbstract param, java.lang.Class<? extends TerminationCondition> condition)
param
- condition
- public static void addOrReplaceTerminationCondition(ETMParamAbstract params, TerminationCondition condition)
param
- condition
- public static void removeTerminationConditionIfExists(ETMParamAbstract param, java.lang.Class<? extends TerminationCondition> clazz)
public static TerminationCondition constructProMCancelTerminationCondition(org.processmining.framework.plugin.PluginContext context)
public static OverallFitness createStandardOverallFitness(CentralRegistry centralRegistry)
centralRegistry
- public static java.util.List<TreeFitnessInfo> extractConsideredDimensions(ETMParamAbstract params)
params
-