Branching refers to routines, or programs, that have points at which an intelligent robot controller must select among alternatives.
Consider a robot on an assembly line that makes cars. The robot’s job is to insert hubcaps in the two right-side wheels. (An identical robot does the same job on the left side.) Suppose that 20 percent of the cars are fitted with gold-colored (G) hubcaps; the rest are fitted with silver-colored (S) ones. The robot should insert hubcaps in the following sequence: SS SS SS SS GG SS SS SS SS GG SS SS…, and so on. Every fifth pair of hubcaps is gold.
Each time a hubcap pair is to be inserted, the computer must make a choice. Thus, the routine is at a branch point for every hubcap pair. Every fifth time the choice must be made, the robot controller chooses gold hubcaps. Otherwise, it chooses silver ones. This sequence is programmed into the controller. The logical process proceeds something like the flowchart in the accompanying figure.
Suppose a glitch occurs, in which the robot controller or hardware omits or overlooks a single hubcap. This will throw off the robot’s perception of the sequence of cars, so it thinks a new car has arrived with each set of rear wheels. Shortly, the front wheel of a car will get a silver hubcap and the rear wheel of the same car will get a gold one. The next car will get a gold hubcap on the front wheel and a silver one on the rear wheel. The repercussions will be repeated down the line over and over, messing up two out of every five cars, or 40 percent of the automobiles coming off the assembly line.
See also EXPERT SYSTEM.