public class TimedTransition
extends org.processmining.models.graphbased.directed.petrinet.elements.Transition
Contains both logic of immediate and timed transitions.
That way different semantics can be realized. weights: - preselection can be achieved for timed transitions based on the weights - race semantics can be implemented by sampling from the distributions and choosing the transition with less time priority: - priority groups could be used also for timed transitions (non-standard behavior)
Modifier and Type | Field and Description |
---|---|
protected org.apache.commons.math3.distribution.RealDistribution |
distribution
The distribution to sample from when a timer is requested.
|
protected double[] |
distributionParameters
The parameters for the parameterized distribution,
or the observations to generate a non-parametric distribution of.
|
protected StochasticNet.DistributionType |
distributionType
The
StochasticNet.DistributionType which determines the
parametric or non-parametric shape of the distribution |
protected int |
priority
The priority group
|
protected java.lang.String |
trainingData
Contains the data that was used to train the model
(Basically, this is a table with a header to describe the data
and each line represents one entry)
|
protected com.google.common.collect.SortedMultiset<ComparablePair<java.lang.Long,java.util.List<java.lang.Object>>> |
trainingDataCache
a sorted view on all the training data that was used to train this transition.
|
protected double |
weight
The weight of the transition
If multiple immediate transitions are enabled concurrently,
the decision which one to fire is done on a probabilistic basis.
|
Constructor and Description |
---|
TimedTransition(java.lang.String label,
org.processmining.models.graphbased.directed.AbstractDirectedGraph<org.processmining.models.graphbased.directed.petrinet.PetrinetNode,org.processmining.models.graphbased.directed.petrinet.PetrinetEdge<? extends org.processmining.models.graphbased.directed.petrinet.PetrinetNode,? extends org.processmining.models.graphbased.directed.petrinet.PetrinetNode>> net)
By default generate a timed transition with exponential firing rate lambda=1
|
TimedTransition(java.lang.String label,
org.processmining.models.graphbased.directed.AbstractDirectedGraph<org.processmining.models.graphbased.directed.petrinet.PetrinetNode,org.processmining.models.graphbased.directed.petrinet.PetrinetEdge<? extends org.processmining.models.graphbased.directed.petrinet.PetrinetNode,? extends org.processmining.models.graphbased.directed.petrinet.PetrinetNode>> net,
org.processmining.models.graphbased.directed.petrinet.elements.ExpandableSubNet parent,
double weight,
int priority,
StochasticNet.DistributionType type,
double... parameters) |
Modifier and Type | Method and Description |
---|---|
org.apache.commons.math3.distribution.RealDistribution |
fitGaussianKernels() |
org.apache.commons.math3.distribution.RealDistribution |
getDistribution() |
double[] |
getDistributionParameters() |
StochasticNet.DistributionType |
getDistributionType() |
int |
getPriority() |
java.lang.String |
getTrainingData()
Training Data in the form of RELATIVE_DURATION SYSTEM_LOAD TIMESTAMP
|
com.google.common.collect.SortedMultiset<ComparablePair<java.lang.Long,java.util.List<java.lang.Object>>> |
getTrainingDataUpTo(long currentTime) |
double |
getWeight() |
org.apache.commons.math3.distribution.RealDistribution |
initDistribution(double maxValue) |
void |
setDistribution(org.apache.commons.math3.distribution.RealDistribution dist) |
void |
setDistributionParameters(double... parameters) |
void |
setDistributionParameters(java.util.List<java.lang.Double> transitionStats) |
void |
setDistributionType(StochasticNet.DistributionType distType) |
void |
setImmediate(boolean immediate) |
void |
setPriority(int priority) |
void |
setTrainingData(java.lang.String trainingData) |
void |
setWeight(double weight) |
getVisiblePredecessors, getVisibleSuccessors, isInvisible, setInvisible
getGraph, getLocalID, getParent, setLocalID
compareTo
equals, getId, hashCode
getAttributeMap, getLabel, toString
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getAttributeMap
protected int priority
Only enabled markings of the highest priority group can fire in a marking. Usually only 0 (timed transitions) and 1 (immediate transitions) are used here, but one could specify further higher priority groups for even more urgent immediate transitions.
protected double weight
protected org.apache.commons.math3.distribution.RealDistribution distribution
protected StochasticNet.DistributionType distributionType
StochasticNet.DistributionType
which determines the
parametric or non-parametric shape of the distributionprotected double[] distributionParameters
protected java.lang.String trainingData
protected transient com.google.common.collect.SortedMultiset<ComparablePair<java.lang.Long,java.util.List<java.lang.Object>>> trainingDataCache
trainingData
is).public TimedTransition(java.lang.String label, org.processmining.models.graphbased.directed.AbstractDirectedGraph<org.processmining.models.graphbased.directed.petrinet.PetrinetNode,org.processmining.models.graphbased.directed.petrinet.PetrinetEdge<? extends org.processmining.models.graphbased.directed.petrinet.PetrinetNode,? extends org.processmining.models.graphbased.directed.petrinet.PetrinetNode>> net)
label
- net
- public TimedTransition(java.lang.String label, org.processmining.models.graphbased.directed.AbstractDirectedGraph<org.processmining.models.graphbased.directed.petrinet.PetrinetNode,org.processmining.models.graphbased.directed.petrinet.PetrinetEdge<? extends org.processmining.models.graphbased.directed.petrinet.PetrinetNode,? extends org.processmining.models.graphbased.directed.petrinet.PetrinetNode>> net, org.processmining.models.graphbased.directed.petrinet.elements.ExpandableSubNet parent, double weight, int priority, StochasticNet.DistributionType type, double... parameters)
public org.apache.commons.math3.distribution.RealDistribution initDistribution(double maxValue)
public org.apache.commons.math3.distribution.RealDistribution fitGaussianKernels()
public int getPriority()
public double getWeight()
public org.apache.commons.math3.distribution.RealDistribution getDistribution()
public StochasticNet.DistributionType getDistributionType()
public double[] getDistributionParameters()
public void setDistributionParameters(java.util.List<java.lang.Double> transitionStats)
public void setDistributionParameters(double... parameters)
public void setWeight(double weight)
public void setImmediate(boolean immediate)
immediate
- public void setDistribution(org.apache.commons.math3.distribution.RealDistribution dist)
public void setDistributionType(StochasticNet.DistributionType distType)
public void setPriority(int priority)
public java.lang.String getTrainingData()
public void setTrainingData(java.lang.String trainingData)
public com.google.common.collect.SortedMultiset<ComparablePair<java.lang.Long,java.util.List<java.lang.Object>>> getTrainingDataUpTo(long currentTime)