scalation.activity

PetriNetRules

trait PetriNetRules extends AnyRef

This 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.

Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Hide All
  2. Show all
  1. PetriNetRules
  2. AnyRef
  3. Any
Visibility
  1. Public
  2. All

Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  7. def calcFiringDelay(v: Variate, w_t: VectorD, t: VectorI, w_f: VectorD, f: VectorD): Double

    Function to compute the delay in firing a transition.

    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.

    v

    the random variate used to compute base firing time

    w_t

    the weight for the token vector

    t

    the aggregate token vector (summed over all input places)

    w_f

    the weight for the fluid vector

    f

    the aggregate fluid level vector (summed over all input places)

  8. def clone(): AnyRef

    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  9. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  10. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  11. def finalize(): Unit

    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  12. def fluidFlow(f: VectorD, derv: Array[(Double, Double) ⇒ Double], t0: Double, d: Double): VectorD

    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".

    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.

    f

    the fluid vector (amount of fluid per color)

    derv

    the array of derivative functions

    t0

    the current time

    d

    the time delay

  13. def fluidFlow(f: VectorD, b: VectorD, r: VectorD = null, d: Double = 0): VectorD

    Compute the amount of fluid to flow over an arc according to the vector expression: b + r * (f-b) * d.

    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.

    f

    the fluid vector (amount of fluid per color)

    b

    the constant vector for base fluid flow

    r

    the rate vector (amounts of fluids per unit time)

    d

    the time delay

  14. final def getClass(): java.lang.Class[_]

    Definition Classes
    AnyRef → Any
  15. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  16. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  17. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  18. final def notify(): Unit

    Definition Classes
    AnyRef
  19. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  20. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  21. def thresholdD(f: VectorD, b: VectorD): Boolean

    Return whether the vector inequality is true: f >= b.

    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.

    f

    The fluid vector (amount of fluid per color)

    b

    The base constant vector

  22. def thresholdI(t: VectorI, b: VectorI): Boolean

    Return whether the vector inequality is true: t >= b.

    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.

    t

    the token vector (number of tokens per color)

    b

    the base constant vector

  23. def toString(): String

    Definition Classes
    AnyRef → Any
  24. def tokenFlow(t: VectorI, b: VectorI, r: VectorI = null, d: Double = 0): VectorI

    Compute the number of tokens to flow over an arc according to the vector expression: b + r * (t-b) * d.

    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.

    t

    the token vector (number of tokens per color)

    b

    the constant vector for base token flow

    r

    the rate vector (number of tokens per unit time)

    d

    the time delay

  25. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()
  26. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()
  27. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()

Inherited from AnyRef

Inherited from Any