| • Science | • People | • Locations | • Timeline |
It has been argued that case-based reasoning is not only a powerful method for computer reasoning , but also a pervasive behavior in everyday human problem solving. Or, more radically, that all reasoning is based on past cases experienced or accepted by the being actively exercising choice -- prototype theory -- most deeply explored in human cognitive science.
Case-based reasoning has been formalized for purposes of computer reasoning as a four-step process:1
At first glance, CBR may seem similar to the rule-induction algorithms of machine learning.2 Like a rule-induction algorithm , CBR starts with a set of cases or training examples; it forms generalizations of these examples, albeit implicit ones, by identifying commonalities between a retrieved case and the target problem. For instance, when Fred mapped his procedure for plain pancakes to blueberry pancakes, he decided to use the same basic batter and frying method, thus implicitly generalizing the set of situations under which the batter and frying method can be used. The key difference, however, between the implicit generalization in CBR and the generalization in rule induction lies in when the generalization is made. A rule-induction algorithm draws its generalizations from a set of training examples before the target problem is even known; that is, it performs eager generalization. For instance, if a rule-induction algorithm were given recipes for plain pancakes, Dutch apple pancakes, and banana pancakes as its training examples, it would have to derive, at training time, a set of general rules for making all types of pancakes. It would not be until testing time that it would be given, say, the task of cooking blueberry pancakes. The difficulty for the rule-induction algorithm is in anticipating the different directions in which it should attempt to generalize its training examples. This is in contrast to CBR, which delays (implicit) generalization of its cases until testing time -- a strategy of lazy generalization. In the pancake example, CBR has already been given the target problem of cooking blueberry pancakes; thus it can generalize its cases exactly as needed to cover this situation. CBR therefore tends to be a good approach for rich, complex domains in which there are myriad ways to generalize a case.
CBR traces its roots to the work of Roger SchankRoger Schank is president and CEO of Socratic Arts, and a leading visionary in artificial intelligence. Career Schank was formerly professor of computer science and psychology at Yale University and director of the Yale Artificial Intelligence Project. and his students at Yale University in the early 1980s. Schank's model of dynamic memory3 was the basis for the earliest CBR systems: Janet Kolodner's CYRUS4 and Michael Lebowitz's IPP.5 Other schools of CBR and closely allied fields emerged in the 1980s, investigating such topics as CBR in legal reasoning, memory-based reasoning (a way of reasoning from examples on massively parallel machines), and combinations of CBR with other reasoning methods. In the 1990s, interest in CBR grew in the international community, as evidenced by the establishment of an International Conference on Case-Based Reasoning in 1995, as well as European, German, British, Italian, and other CBR workshops. CBR technology has produced a number of successful deployed systems, the earliest being Lockheed's CLAVIER,6 a system for laying out composite parts to be baked in an industrial convection oven. CBR has been used extensively in help-desk applications such as the Compaq SMART system.7 As of this writing, a number of CBR decision support tools are commercially available, including k-Commerce from eGain (formerly Inference Corporation) and Kaidara Advisor from Kaidara (formerly AcknoSoft).
See also: decision treeTrees (structure) In decision theory (for example risk management), a decision tree is a graph of decisions and their possible consequences, (including resource costs and risks) used to create a plan to reach a goal. Decision trees are constructed in orde, genetic algorithmA genetic algorithm GA is an algorithm used to find approximate solutions to difficult-to-solve problems through application of the principles of evolutionary biology to computer science. Genetic algorithms use biologically-derived techniques such as inhe, pattern matchingPattern matching is a feature in functional programming languages such as Haskell and ML. With certain data types implemented in these programming languages, such as a list, the construction of these types form a very definite structure. For example a lis