Means-ends analysis

Means-Ends Analysis (MEA) is a technique used in Artificial Intelligence for controlling search in problem solving computer programs.

It is also a technique used at least since the 1950s as a creativity tool, most frequently mentioned in engineering books on design methods.

Problem-solving as search
An important aspect of intelligent behavior as studied in AI is goal-based problem solving, a framework in which the solution of a problem can be described by finding a sequence of actions that lead to a desirable goal. A goal-seeking system is supposed to be connected to its outside environment by afferent, or sensory, channels through which it receives information about the environment and efferent, or motor, channels through which it acts on the environment. In addition, the system has some means of storing in a memory (afferent) information about the state of the environment and (efferent) information about actions. Ability to attain goals depends on building up associations, simple or complex, between particular changes in states and particular actions that will bring these changes about. Search is the process of discovery and assembly of sequences of actions that will lead from a given state to a desired state.

How MEA works
The MEA technique is a strategy to control search in problem-solving. Given a current state and a goal state, an action is chosen which will reduce the difference between the two. The action is performed on the current state to produce a new state, and the process is recursively applied to this new state and the goal state.

Note that, in order for MEA to be effective, the goal-seeking system must have a means of associating to any kind of detectable difference those actions that are relevant to reducing that difference. It must also have means for detecting the progress it is making (the changes in the differences between the actual and the desired state), as some attempted sequences of actions may fail and, hence, some alternate sequences may be tried.

When knowledge is available concerning the importance of differences, the most important difference is selected first to further improve the average performance of MEA over other brute-force search strategies. However, even without the ordering of differences according to importance, MEA improves over other search heuristics (again in the average case) by focusing the problem solving on the actual differences between the current state and that of the goal.

Some AI systems using MEA
The MEA technique as a problem-solving strategy was first introduced in 1963 by Allen Newell and Herbert Simon in their computer problem-solving program General Problem Solver (GPS). In that implementation, the correspondence between differences and actions, also called operators, is provided a priori as knowledge in the system. (In GPS this knowledge was in the form of table of connections.)

When the action and side-effects of applying an operator are penetrable, the search may select the relevant operators by inspection of the operators and do without a table of connections. This latter case, of which the canonical example is STRIPS, an automated planning computer program, allows task-independent correlation of differences to the operators which reduce them.

Prodigy, a problem solver developed in a larger learning-assisted automated planning project started at Carnegie Mellon University by Jaime Carbonnell, Steven Minton and Craig Knoblock, is another system that used MEA.