Predictability [A revision based on more material from the book is pending, see the preview Introduction]
Again speaking casually, something (e.g., an action or action property) is predictable to the extent that it can be known in advance. Describing something as being predictable means only that it is not unpredictable—but says nothing about how predictable it is and how that is measured, which is essential information for reasoning about real-time actions (and systems), especially for dynamic ones.
In particular, the real-time computing community often mistakenly thinks “predictable” and “deterministic” are synonyms. “Deterministic” is a special case of predictability—the maximum predictability end point on the predictability expanse, as shown below.
There are some things that you know to be true
and others that you know to be false;
yet, despite this extensive knowledge that you have,
there are many things whose truth or falsity is not known to you.
We say that you are uncertain about them.
You are uncertain, to varying degrees,
about everything in the future;
much of the past is hidden from you;
and there is a lot of the present
about which you do not have full information.
Uncertainty is everywhere and you cannot escape from it.”
— Dennis Lindley, Understanding Uncertainty
Predictability is a vastly deeper subject and more complex concept than thought and (mis)used by the real-time computing (and some other) communities, as synopsized in Chapter 3. It is also deeper than covered in almost all courses on probability.
Predictability is an expanse, as a first principle. There are multiple different predictability theories, each theory having a metric for measuring predictability, and thus a minimum and a maximum predictability end-point.
The theory everyone is at least intuitively familiar with is the frequentist one [ ]. The core conception of probability in that theory is that the relative frequency of occurrence of an event, observed in a number of repetitions of the experiment, is a measure of the probability of that event. It is a natural interpretation for repeatable experiments, but not for contexts in which such experiments are logically or scientifically impossible.
Another widely used predictability theory—e.g., recently increasingly used in the AI context—is the Bayesian theory, which employs prior beliefs [ ].
There is a variety of other predictability theories [ ]. Predictability theories are chosen for use based on numerous factors, including characteristics of the system and application, and the type and purpose of reasoning being applied to predictability. That topic is in the very deep field of the philosophy of probability and predictability [ ].
The maximum predictability end-point of a predictability theory is always determinism—i.e., the prediction is a certainty, represented in a theory-specific way. Static real-time computing systems make strong presumptions about the application and system so that action (and system) timeliness can be deterministic—i.e., predicted exactly in advance.
Everywhere else on the predictability expanse is the general case of predictability—i.e., degrees of non-determinism. Dynamic real-time actions, systems, and particularly computing systems, are inherently non-deterministic in ways and degrees depending on their dynamic properties (discussed in Chapter 1)—regardless of any given predictability theory. Non-determinism is not intrinsically bad, it can be very useful (as it often is in data communication network routing), especially in dynamic real-time systems.
The minimum predictability end-point depends on the predictability theory and its metric. If the theory is stochastic, intuition usually suggests that the uniform distribution has minimum predictability (all predictions over the distribution interval are equally likely). However, that intuition causes fatal problems with the ordinary theory of probability, and is one factor which led to the development of alternative theories, as described in Chapter 3.
Predictability of timeliness is paramount for real-time actions (and systems). One method to improve an action’s timeliness predictability is to give up some of the action’s timeliness if possible. That method increases the action’s latency so its time frame encompasses as many latency variations due to exigencies as feasible. In the static case, if the increased latency can be increased to extend over all the latency variations and is acceptable as a deadline, both timeliness and predictability of timeliness may then be deterministic (subject to the presumptions made).
The second method can be used conversely or in conjunction with the first method. Suppose that predictability of action timeliness in a dynamic real-time system is modeled stochastically (as it often—perhaps too often—is). Then it may be feasible to perform probability distribution function fitting to find one which provides the most satisfactory predictability for fixed or adjusted latencies of the action. Analogous techniques exist for other predictability theories, as discussed in Chapter 3.
Ideally, required or acceptably preferred action timeliness and predictability of action timeliness would be achieved by analytically based design and implementation. That might be possible with the special case of static real-time actions (and systems) based on suitably strong, and often unrealistic, presumptions. In the general case of dynamic real-time actions (and systems), intrinsic non-determinism makes closed form analytic expressions for exact design and implementation decisions either not be computationally feasible or not be known. Thus, heuristic solutions to feasible and acceptable satisfaction of timeliness and predictability of timeliness are necessary, and in certain cases can be as close to optimal as desired.
Timeliness and predictability of timeliness are independent in principle and usually in practice. Generally, they must be reasoned about methodologically if not formally to engineer trade-offs and compromises with one another in application- and situation- specific manners. For example, timeliness may be very satisfactory but only a specified percentage of the time; or timeliness may be a specified amount less satisfactory but consistently all of the time. Instances of the former are in the precisely defined (in Chapter 2) general case of soft real-time. Instances of the latter, where acceptably satisfactory means all actions with deadlines always meet their deadlines, are in the precisely defined (in Chapter 2) special case of hard real-time.
Because in general, action timeliness and predictability of timeliness are expanses and not binary, a framework is needed to define and communicate about principles for these two foundational (and other subsidiary) properties. That facilitates being able to reason as a scientific and engineering endeavor about them, to acceptably satisfy a dynamic application’s needs.