The network used in Module 3 was deterministic in the sense that there are no dead
ends. However, if there is a break in the network, it is possible to find routes that lead
to dead ends. Prolog has a way of recovering from dead ends and finding alternative
solutions. Prolog's ability of cope with non-determinism is one of its strengths.
Prolog's non-determinism is made possible by the use of a stack data structure
to store alternative "paths" (or partial solutions). By the use of the stack, Prolog
displays the symptom of backtracking.