Traviando Warning:Type 11: Variable V is not element of any variable invariant computed for the linear state transformations performed by the actions of this trace.
|
Numerical state variables that constitute the state descriptor often obey certain constraints that are called variable invariants in this context. The particular invariants that Traviando investigates are the existence of a weighted sum such that for all observed states the result of the weighted sum is constant.
For a particular modeling formalism like an ordinary Petri net (a Place-Transition net), this concept is known as a place invariant or P-invariant).
Why are variable invariants expected to exist?
Many simulation models encode at least in parts finite automata and variables keep track in which state an automaton currently resides. State changes are often encoded with simple increment/decrement operations to variables such that the total value over those variables is always constant, e.g., for a dependability model with a component that can be operational or failed and two state variables UP and DOWN of type short, we often see that the sum of values for UP and DOWN is constant and of value 1. Another example are models of closed queueing networks where the number of customers of a particular class is constant.
For what kind of models and variables can Traviando detect variable invariants?
Traviando computes a generating set of variable invariants based on the algorithms known for computing invariants for Petri nets (Place-Transition nets), which is Farkas' algorithm, a variant of the Fourier-Motzkin method. These methods can be applied for all state variables or a subset of state variables that are of type integer and where all actions that make changes to those variables do so in a linear manner of the form v'=v+c where c is a constant integer value that depends on the particular action.
Any variable that is contained in some invariant, i.e., that is covered by an invariant, will have only a finite set of values that it can obtain. If a variable is not covered, as it is the case for the variable V that caused this warning, it can not be guaranteed with the help of an invariant that the variable has a finite domain.
Note: the fact that Traviando failed to compute an invariant that covers V does not necessarily mean that anything is wrong with the definition of V!
Also note that the length of the trace does not play a major role for this type of analysis. If at least each of the action occurs at least once to observe the corresponding state transformations and given that observing it once is sufficient to recognize the state transformation function, then the derivation of the underlying discrete event system model is complete and analyzing a longer trace would not get more information.
Traviando failed to compute an invariant that has a non-zero weight for variable V.