Content deleted Content added
m Disambiguating links to AMB (link changed to Fully Buffered DIMM) using DisamAssist. |
Corrected link to right "Amb" |
||
Line 4:
A '''nondeterministic programming''' language is a [[programming language|language]] which can specify, at certain points in the program (called "choice points"), various alternatives for [[Control flow|program flow]]. Unlike an [[Conditional (programming)|if-then statement]], the method of choice between these alternatives is not directly specified by the programmer; the program must decide at [[run time (program lifecycle phase)|run time]] between the alternatives, via some general method applied to all choice points. A programmer specifies a limited number of alternatives, but the program must later choose between them. ("Choose" is, in fact, a typical name for the nondeterministic operator.) A hierarchy of choice points may be formed, with higher-level choices leading to branches that contain lower-level choices within them.
One method of choice is embodied in [[backtracking]] systems (such as [[
Another method of choice is reinforcement learning, embodied in systems such as [[Alisp]].<ref>http://www.cs.berkeley.edu/~russell/papers/aaai02-alisp.pdf</ref> In such systems, rather than backtracking, the system keeps track of some measure of success and learns which choices often lead to success, and in which situations (both internal program state and environmental input may affect the choice). These systems are suitable for applications to [[robotics]] and other domains in which backtracking would involve attempting to undo actions performed in a dynamic environment, which may be difficult or impractical.
|