《人工智能(智能系统指南,第二版)》读书笔记——8、第七章

来源:互联网 发布:爱剪辑软件下载 编辑:程序博客网 时间:2024/06/05 12:44

1. introduction to knowledge-based intelligent systems(summary / questions for review / references)

2. rule-based expert systems

3. uncertainty management in rule-based expert systems

4. fuzzy expert systems

5. frame-based expert systems

6. artificial neural networks

7. evolutionary computation

8. hybrid intelligent systems

9. knowledge engineering and data mining


7. evolutionary computation

The evolutionary approach to artificial intelligence is based on the computational models of natural seletion and genetics known as evolutionary computation. Evolutinary computation combines genetic algorithms, evolution strategies and genetic programming.

All methods of evolutinary computation work as follows: create a population of individuals, evaluate their fitness, generate a new population by applying genetic operators, and repeat this process a number of times.

Genetic algorithms were invented by John Holland in the early 1970s. Holland's genetic algotithm is a sequence of procedural steps for moving from one generation of artificial "chromosomes"(染色体) to another. It uses "natural" selection and genetics-inspired techniques known as crossover and mutation. Each chromosome consists of a number of "genes", and each gene is represented by 0 or 1.

Genetic algorithms use fitness values of individual chromosomes to carry out reproduction. As reproduction takes place, the crossover operator changes the gene value in some randomly chosen location of the chromosome. After a number of succesive reproductions, the less fit chromosomes become extinct, while those best fit gradually come to dominate the population.

One of the most commonly used chromosome selection techniques is the roulette wheel selection(轮盘选择). And the mutation operator flips(翻转,0<->1) a randomly selected gene in a chromosome. We need a mutation operatoin because it provides a guarantee that the search algorithm is not trapped on a local optimum and such improves the population fitness, but it more often decreases it.

Solving a problem using genetic algorithms involves defining constraints and optimum criteria(最优标准), encoding the problem solutions as chromosomes, defining a fitness function to evaluate a chromosome's performance, and creating appropriate crossover and mutation operators, and run the GA and tune its parameters. And the genetic algorithm does not need knowledge of the problem domain.

Genetic algorithms are a very powerful tool. However, coding the problem as a bit string may change the nature of the problem being investigated. There is always a danger that coded representation represents a problem that is different from the one we want to solve.

Evolution strategies is an alternative to the engineer's intuition(直觉). ESs are used in technical optimisation problems when no analytical objective function is available, and on conventional optimisation method exists - only the engineer's intuition.


An ES is a purely numerical optimisation procedure that is similar to a focused Monte Carlo search. Unlike GAs, ESs use only a mutation operator. In addition, the representation of a problem in a coded form is not required.

Genetic programming applies the same evolutionary approach as genetic algorithms. However, GP is no longer breeding bit strings that represent coded solutions but complete computer programs that solve a problem at hand.

Solving a problem using genetic programming involves determining the set of arguments, selecting the set of functions, defining a fitness function to evaluate the performance of created computer programs, and choosing the method for designating(指定) a result of the rum.


Since GP manipulates programs by applying genetic operators, a programming language should permit a computer program to be manipulated as data and the newly created data to be executed as a program. For these reasons, LISP was chosen as the main language for genetic programming.

0 0
原创粉丝点击