User:Doug-jensen/sandbox

The use of "deterministic" and "predictability" -- which may be correct or at least consistent with common usage in the field of deterministic functions (I currently don't know for certain) -- is not consistent with the definitions of those terms in other fields. Because the Deterministic Algorithms article is in the Computer Science category, I am limiting my comments to that context (i.e., excluding the black holes of philosophy and physics) to keep my comments focused and relevant (particularly to real-time computer systems).

Contrary to common misunderstanding (particularly in the real-time computing community), "predictable" and "deterministic" are not the same.

"Predictability" is a continuum having a specified metric; "deterministic" is the maximum predictability end-point on that continuum, for all metrics. Informally, something (e.g., an event, a property, etc.) being deterministic means that it is or can be tractably known in advance, given a specified set of static conditions that specify the scope within which determinism holds. For example, one might assert that a set of activity (e.g., computational task) deadlines will be met, presuming that certain relevant parameters are statically known, such as the times activities will request access to sequentially shared resources, activity execution durations, activity resource dependencies, etc. -- but (say) excluding faults, errors, and failures.

Everywhere else on that continuum is non-deterministic to some degree according to the predictability metric.

The other end-point on the predictability continuum is more complex to define here because it has to be expressed in terms of the predictability continuum's metric. For example, if the metric is based on conventional probability theory, the least predictable end-point could be defined as the coefficient of variation distribution, which is arbitrarily unpredictable; of course for that metric, the maximum predictability end-point is the deterministic distribution. Entropy is another of many (less) popular predictability continuum metrics.

In reality, there are a great many computer system activities with properties that cannot be deterministic because the pre-requisite assumptions about the execution environment, system, and task properties being static are not (cannot be) feasible. These systems are intrinsically dynamic in many respects such as those mentioned above. Nonetheless, performance or even correctness of the systems depends on being able to reason about the behavior of the activities with respect to the criteria for satisfaction or optimality of performance or correctness.

Widely-used approaches for reasoning about properties of non-deterministic activities and systems include queuing theory and probability theory (theories).

Doug-jensen (talk) 17:24, 9 March 2012 (UTC)