ArticleslgStudy

computer science

Unbounded nondeterminism

Unbounded nondeterminism is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Unbounded nondeterminism rather than just read about it. In short: In computer science, unbounded nondeterminism or unbounded indeterminacy refers to a behavior in concurrency (multiple tasks running at once) where a process may face unpredictable delays due to competition for shared resources—such as a printer or memory—or have infinitely many options to choose from at a given point. While these delays or choices can be arbitrarily large, the process is typically guaranteed to com…

Key takeaways

  • Unbounded nondeterminism belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Unbounded nondeterminism to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Unbounded nondeterminism from memory before moving on to harder problems.

Reference excerpt

In computer science, unbounded nondeterminism or unbounded indeterminacy refers to a behavior in concurrency (multiple tasks running at once) where a process may face unpredictable delays due to competition for shared resources—such as a printer or memory—or have infinitely many options to choose from at a given point. While these delays or choices can be arbitrarily large, the process is typically guaranteed to complete eventually under certain conditions (e.g., fairness in resource allocation). This concept, explored in abstract models rather than practical systems, became significant in developing mathematical descriptions of such systems (denotational semantics) and later contributed to research on advanced computing theories (hypercomputation).

Fairness Unbounded nondeterminism is often discussed alongside the concept of fairness. In this context, fairness means that if a system keeps returning to a certain state forever, it must eventually try every possible next step from that state. For example, if a task is waiting to use a shared tool—like a printer—it can’t be delayed forever; fairness ensures it gets its turn, even if the wait is unpredictable and long. This guarantee matters when a system runs indefinitely, preventing any option from being ignored over time. This idea of fairness isn’t like flipping a "fair" coin forever. With a coin, random chance means you’d eventually see both heads and tails, but there’s no rule forcing it—pure luck could delay one outcome for an arbitrarily long time. In unbounded nondeterminism, fairness isn’t about hoping every step happens; it’s a strict requirement that they do, regardless of chance.

Example An example of the role of fair or unbounded nondeterminism in the merging of strings was given by William D. Clinger, in his 1981 thesis. He defined a "fair merge" of two strings to be a third string in which each character of each string must occur eventually. He then considered the set of all fair merges of two strings merge(S, T), assuming it to be a monotone function. Then he argued that merge(⊥,1ω)⊆ merge(0,1ω), where ⊥ is the empty stream. Now merge(⊥,1ω) = {1ω}, so it must be that 1ω is an element of merge(0,1ω), a contradiction. He concluded that:

It appears that a fair merge cannot be written as a nondeterministic data flow program operating on streams.

Implementation Edsger Dijkstra argued that it is impossible to implement systems with unbounded nondeterminism. For this reason, Tony Hoare suggested that "an efficient implementation should try to be reasonably fair."

Nondeterministic automata Unlike systems with unbounded nondeterminism, nondeterministic Turing machines exhibit only bounded nondeterminism. This means their choices—such as which path to take at a decision point—are limited to a fixed number of options at each step, keeping delays predictable and finite. Similarly, sequential programs that use guarded commands (rules that pick one action from a set based on conditions) as their only source of nondeterminism also stay bounded, since the number of possible choices doesn’t grow without limit. In these cases, known as choice nondeterminism, the system’s behavior remains constrained. Mathematician Gordon Plotkin formalized this in his original paper on powerdomains, proving that such nondeterminism has clear limits, unlike the unbounded delays seen in concurrent systems:

Now the set of initial segments of execution sequences of a given nondeterministic program P, starting from a given state, will form a tree. The branching points will correspond to the choice points in the program. Since there are always only finitely many alternatives at each choice point, the branching factor of the tree is always finite. That is, the tree is finitary. Now Kőnig's lemma says that if every branch of a finitary tree is finite, then so is the tree itself. In the present case this means that if every execution sequence of P terminates, then there are only finitely many execution sequences. So if an output set of P is infinite, it must contain [a nonterminating computation].

Indeterminacy versus nondeterministic automata William Clinger provided the following analysis of the above proof:

This proof depends upon the premise that if every node x of a certain infinite branch can be reached by some computation c, then there exists a computation c that visits every node x on the branch. ... Clearly this premise follows not from logic but rather from the interpretation given to choice points. This premise fails for arrival nondeterminism [in the arrival of messages in the Actor model] because of finite delay [in the arrival of messages]. Though each node on an infinite branch must lie on a branch with a limit, the infinite branch need not itself have a limit. Thus the existence of an infinite branch does not necessarily imply a nonterminating computation.

Unbounded nondeterminism and noncomputability Spaan et al. have suggested that unbounded nondeterminism could theoretically solve the halting problem, a famous challenge in computability theory that asks whether a Turing machine will stop or continue forever on a given input—a problem proven unsolvable by standard machines. They propose an algorithm split into two parts:

… excerpt ends here. Continue reading the full article.

Worked examples

Example 1 — a first encounter with Unbounded nondeterminism

Start with the simplest possible case. Write down what Unbounded nondeterminism claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Unbounded nondeterminism before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Unbounded nondeterminism ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Unbounded nondeterminism

In research
Unbounded nondeterminism appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Unbounded nondeterminism in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Unbounded nondeterminism is common in secondary-school and first-year university syllabi. It links to neighbouring topics Actor model (computer science), Concurrency (computer science), Denotational semantics, so understanding it makes those chapters shorter.
In everyday life
Look for Unbounded nondeterminism outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.
Ask Teacher Smith questions about this articleOpens your AI tutor with a question about “Unbounded nondeterminism” →

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Unbounded nondeterminism in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Unbounded nondeterminism means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Unbounded nondeterminism out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Unbounded nondeterminism in simple terms?

In computer science, unbounded nondeterminism or unbounded indeterminacy refers to a behavior in concurrency (multiple tasks running at once) where a process may face unpredictable delays due to competition for shared resources—such as a printer or memory—or have infinitely many options to choose f…

Why does Unbounded nondeterminism matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Unbounded nondeterminism?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Unbounded nondeterminism.

Tags

  • Actor model (computer science)
  • Concurrency (computer science)
  • Denotational semantics
  • Models of computation
  • Process calculi

Keep exploring