Principles of Darwinian evolution have been exploited to great advantage by carrying them over to evolution inside a computer. A further advance has been that this ‘artificial’ evolution has been applied even for real-life environments for the machines in which the evolution takes place; intelligent or smart robots is the generic term used for such machines (Wadhawan 2007).
As discussed in Part 52, Lamarckian evolution does not have a respectable place in modern biology. The reason is the central dogma of microbiology, according to which information can flow only from DNA to RNA to proteins, and not in the opposite direction. But this restriction is unnecessary when evolution is occurring inside a computer. In fact, so far as artificial evolution is concerned, Lamarckian evolution can be advantageous in certain situations over Darwinian evolution.
Before discussing intelligent robots, let us first get familiar with what has come to be known as the field of computational intelligence (CI).
The underlying approach of a conventional computation is to work through a precise algorithm that works on accurate data. But there are innumerable complex systems that cannot be adequately tackled through such an approach. One should be able to work with partially accurate or insufficient or time-varying data, requiring the use of suitably variable or tenable software. One would like to work with computational systems that are fault-tolerant, and computationally intelligent, making adjustments in the software intelligently and handling imperfect or ‘fuzzy’ data the way we humans do (Nolfi and Floreano 2000; Zomaya 2006). The subject of computational intelligence caters to this requirement.
CI consolidated as a subject in the early 90s. Zadeh (1965, 1975) had introduced the notion of linguistic variables for making reasoning and computing more human-like. By computing with words, rather than numbers, one could deal with approximate reasoning. With increasing emphasis on the use of 'biomimetics' in computational science, Zadeh’s fuzzy-logic approach
was clubbed with 'artificial neural networks' (ANNs), 'genetic algorithms' (GAs), 'evolutionary' or 'genetic programming' (EP or GP), and 'artificial life' (AL) to define the field of CI.
FL, ANNs, GAs, GP, and AL constitute the five hard-core components of the subject of CI, although there are also a number of other peripheral disciplines (Konar 2005; Krishnamurthy and Krishnamurthy 2006 (cf. Zomaya 2006)).
I shall give you a feel for each of these topics, beginning with FL in this post.
Conventional computation is based on precise logic, whereas humans are able to process information that is not always very precise or complete. Humans are able to employ ‘fuzzy logic’ in their thinking and analysis. Fuzzy logic has developed as a mathematical discipline for devising computational strategies that can deal with imprecise knowledge. The imprecise nature of the information available may result from our limited capability to resolve detail, or because the data are partial, noisy, vague, or incomplete.
FL involves inference and intuition, just like the logic used by humans in certain situations. One removes the restriction that propositions can only be either true or false; instead, they are allowed to be true or false to different degrees. For example: if A is (HEAVY 0.8) and B is (HEAVY 0.6), then A is ‘MORE HEAVY’ than B. This is in sharp contrast to classical binary logic, in which A and B may be either members of the same class (both HEAVY, or both NOT-HEAVY), or of different classes.
For dealing with such human-like logic, the important notion of linguistic variables was introduced by Zadeh (1965, 1975). This made it possible to compute with words, rather than numbers, enabling approximate reasoning. Fuzzy-rule-based systems (FRBSs) were introduced for dealing with uncertain and vaguely defined problems. One deals with IF-THEN rules, the antecedents and consequents of which consist of fuzzy-logic statements. Representation of knowledge is enhanced by the use of linguistic variables and their linguistic values, which are defined by context-dependent fuzzy sets. These sets are specified by gradual membership functions.
FL rules are normally of the form:
IF variable IS property THEN action
Here is how a temperature controller using a fan would be programmed:
IF temperature IS very cold THEN stop fan
IF temperature IS cold THEN turn down fan
IF temperature IS normal THEN maintain level
IF temperature IS hot THEN speed up fan
There is no 'ELSE' option because the temperature might be 'cold', 'normal' and 'hot' at the same time to different degrees.
The concept of 'expert systems' is based on an analogy with human experts, and usually has a large FL component. An expert system is a computer programme that holds and processes the information and expertise gained by humans in one or more domains. A fuzzy expert system uses a collection of fuzzy membership functions and rules, instead of Boolean logic. A typical rule for reasoning about available fuzzy data looks like this:
IF x is low and y is high, THEN z = medium
Zadeh also introduced the f.g-generalization. An f-generalization fuzzyfies any theory, technique, method or problem by replacing the corresponding crisp set by a fuzzy set. A g-generalization does the opposite; it granulates a set by partitioning its variables, functions and relations into granules or information clusters. f.g-generalization is a combination of these two. One ungroups an information system into components by some rules, and regroups them into clusters or granules by another set of rules. This can result in new types of information subsystems.