Concretely, this requirement is further extended into three properties an intelligent system must have:
Few people deny the finite nature of a computer system, but theoretical models (such as Turing Machine) often ignore this restriction, or to take this "finite" to mean "as large as needed". Even in situations where the capacity restriction must be respected, the system often require human intervene, rather than directly handling it. For example, when you write a file into a full disk, it is you, not the computer, that decide how to make space for it.
Of course, no system can be "open" to all forms of information, because what can be recognized as "information" is limited by the system's input devices, among other things. The "openness" in the current discussion is not about the content, not the form, of information that the system can accept. In existing AI systems, usually there are some types of information which can be recognized (by form), but not accepted (by content). For example, most systems cannot accept conflicting information, or tasks that are beyond the current problem-solving capability of the system.
Most of the existing AI systems work in real time, in the sense that it is the system, not the environment, that decide when to accept new information, and how long to process it. If it takes an algorithm 3 seconds to solve a problem, then the user usually gets nothing in 2 seconds, and gets nothing more if wait for 4 additional seconds. After all, the running time of an algorithm is a function of the problem instance, and cannot be changed by other factors that are not explicitly included in the problem specification.
Therefore, in general though every AI system has limited, or bounded, knowledge and resources, they are still sufficient, with respect to the goals the system attempts to achieve. For goals beyond that scope, the system does not even try.
Since none of the above issues is new, there are various approaches addressing a certain aspect of the insufficiency of knowledge and resources. For example, some systems use a "forgetting" mechanism to manage the shortage of memory space; various "non-monotonic" logics have been proposed to let the system work with incomplete knowledge while be open to new evidence; there are "anytime" algorithms that allow the environment, rather than the algorithms themselves, to decide when to stop the incremental improvement of the results.
Even so, few systems has fully assumed the insufficiency of knowledge and resources in its design. Instead, they assume the system's knowledge and resources are insufficient in certain aspects, while still sufficient in the others.
Another objection of taking the knowledge/resources insufficiency as a defining feature of intelligence comes from the position that "intelligence" means "optimization", for which the insufficiency is undesired. A representative opinion can be found in Legg and Hutter (2007), where they give the following working definition of intelligence:
Intelligence measures an agent’s ability to achieve goals in a wide range of environments.When comparing with other working definitions, they say
We consider the addition of resource limitations to the definition of intelligence to be either superfluous, or wrong.My working definition is listed as an example of the "wrong" case. Their argument is:
... if limited resources are not a fundamental restriction, for example a new model of computation was discovered that was vastly more powerful than the current model, then it would be odd to claim that the unbelievably powerful machines that would then result were not intelligent. Normally we do not judge the intelligence of something relative to the resources it uses. For example, if a rat had human level learning and problem solving abilities, we would not think of the rat as being more intelligent than a human due to the fact that its brain was much smaller.There are several problems in this argument:
It is true that every theory, including the one described in this book, is an idealization, in which many details are omitted. However, if a theory has been "idealized" so far away from the original situation as to ignore some of its defining features, it is no longer relevant that much to the situation. At least to me, the resources restriction is such a defining feature of intelligence.
No matter which one better fitting the label "intelligence", "information system with limited resources" and "information system with unlimited resources" have fundamentally different properties, and the former is not necessarily converging to the latter when it gets more and more resources.
In a situation where the system can be assumed as having sufficient knowledge and resources (with respect to the goals of the system), then the "right thing" to do is to follow computer science, as summarized by Marr. Here "sufficient knowledge" means the designer, or the system itself, can specify the goal as a computation, and its achieving process by an algorithm; "sufficient resources" means the algorithm can be implemented in the existing computers, with the available resources supply. In this situation we don't really need a new label "intelligence" to be selectively attached to some computations, algorithms, and implementations, because the label added little value to the work.
This is probably what caused the so-called "AI Effect" (see the topic in AAAI website) --- as soon as an "AI" problem is solved, it is no longer considered as an "AI" problem anymore. Many AI researchers complained that the field has not got the recognition and credit from the outside world because of this bias.
To me this is just fair. Before the problem is solved, no one has sufficient knowledge and resources for it, so its solution needs intelligence. When it is "solved", in the traditional sense it means now the computer system has sufficient knowledge and resources for it, so no "intelligence" is needed, and "computation" is enough. A really intelligent computer system should be able to "solve" a problem without specifying it as a computation, and treating it with an algorithm. Only in this way, we can solve a problem which remains in AI. How to actually do this will be explained in the following chapters.
Even before going into details, we can say that according to the theory introduced in this book, AI is not a subfield of Computer Science (CS). Instead, their theoretical assumptions are fundamentally different. CS assumes sufficient knowledge and resources, and therefore is about instinctive systems; AI assumes insufficient knowledge and resources, and therefore is about intelligent systems. They have different usages and applications, and no one is "better" than the other in general. Of course, there are some overlaps between the two, and they use each other, but still, they are different paradigms, and many previous failures in AI can be explained as being too close to CS in theoretical assumptions.