PetriNetRules
The PetriNetRules class is used to define firing rules for the PetriNet class. It supports both constant flow and linear flow models of token (integer valued) and fluid (real valued) flow. Typically, in the constant flow model, a base flow vector is used for the threshold (require at least this number of tokens/amount of fluid) and the flow (move this number this number of tokens/amount of fluid over the arc). It is also possible to set the flow below the threshold. In the the linear flow model, a base flow vector can be augmented by additional flow that is a function of the residual left after the base is taken and the time it takes to fire the transition. The total flow may not exceed the the number/amount at the place. Additional flow models are under development.
Attributes
- Graph
-
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
Members list
Value members
Concrete methods
Function to compute the delay in firing a transition. The base time is given by a random variate. This is adjusted by weight vectors multiplying the number of aggregate tokens and the aggregate amount of fluids summed over all input places: delay = v + w_t * t + w_f * f.
Function to compute the delay in firing a transition. The base time is given by a random variate. This is adjusted by weight vectors multiplying the number of aggregate tokens and the aggregate amount of fluids summed over all input places: delay = v + w_t * t + w_f * f.
Value parameters
- f
-
the aggregate fluid level vector (summed over all input places)
- t
-
the aggregate token vector (summed over all input places)
- v
-
the random variate used to compute base firing time
- w_f
-
the weight for the fluid vector
- w_t
-
the weight for the token vector
Attributes
Compute the amount of fluid to flow over an arc according to the vector expression: b + r * (f-b) * d. If r is 0, returns b. Supports linear (w.r.t. time delay) and constant (d == 0) flow models.
Compute the amount of fluid to flow over an arc according to the vector expression: b + r * (f-b) * d. If r is 0, returns b. Supports linear (w.r.t. time delay) and constant (d == 0) flow models.
Value parameters
- b
-
the constant vector for base fluid flow
- d
-
the time delay
- f
-
the fluid vector (amount of fluid per color)
- r
-
the rate vector (amounts of fluids per unit time)
Attributes
Compute the amount of fluid to flow over an arc according to the system of first-order Ordinary Differential Equation 'ODE's: "integral 'derv' from t0 to t". Supports ODE base flow models.
Compute the amount of fluid to flow over an arc according to the system of first-order Ordinary Differential Equation 'ODE's: "integral 'derv' from t0 to t". Supports ODE base flow models.
Value parameters
- d
-
the time delay
- derv
-
the array of derivative functions
- f
-
the fluid vector (amount of fluid per color)
- t0
-
the current time
Attributes
Return whether the vector inequality is true: f >= b. The firing threshold should be checked for every incoming arc. If all return true, the transition should fire.
Return whether the vector inequality is true: f >= b. The firing threshold should be checked for every incoming arc. If all return true, the transition should fire.
Value parameters
- b
-
The base constant vector
- f
-
The fluid vector (amount of fluid per color)
Attributes
Return whether the vector inequality is true: t >= b. The firing threshold should be checked for every incoming arc. If all return true, the transition should fire.
Return whether the vector inequality is true: t >= b. The firing threshold should be checked for every incoming arc. If all return true, the transition should fire.
Value parameters
- b
-
the base constant vector
- t
-
the token vector (number of tokens per color)
Attributes
Compute the number of tokens to flow over an arc according to the vector expression: b + r * (t-b) * d. If d is 0, returns b. Supports linear (w.r.t. time delay) and constant (d == 0) flow models.
Compute the number of tokens to flow over an arc according to the vector expression: b + r * (t-b) * d. If d is 0, returns b. Supports linear (w.r.t. time delay) and constant (d == 0) flow models.
Value parameters
- b
-
the constant vector for base token flow
- d
-
the time delay
- r
-
the rate vector (number of tokens per unit time)
- t
-
the token vector (number of tokens per color)