GENETIC PROGRAMMING AS A MEANS FOR PROGRAMMING COMPUTERS BY NATURAL-SELECTION

GENETIC PROGRAMMING AS A MEANS FOR PROGRAMMING COMPUTERS BY NATURAL-SELECTION
复制标题

DOI:
10.1007/bf00175355
复制
发表时间:
1994-06-01
影响因子:
2.2
通讯作者:
KOZA, JR
KOZA, JR
中科院分区:
数学2区
文献类型:
--
作者:
KOZA, JR

文献摘要

被引文献

相似文献

机器学习、人工智能和符号处理中的许多看似不同的问题都可以被视为需要发现一个计算机程序,该程序可以为特定的输入产生一些期望的输出。从这个角度来看,解决这些问题的过程就相当于在一个可能的计算机程序空间中搜索一个高度适合的单个计算机程序。本文描述的最近开发的遗传编程范例提供了一种搜索可能的计算机程序的空间以寻找高度适合的个体计算机程序来解决(或近似解决)来自不同领域的令人惊讶的各种不同问题的方式。在遗传编程中,计算机程序的群体使用适者生存的达尔文原则和使用适合于遗传交配计算机程序的遗传交叉(有性重组)算子进行遗传繁殖。遗传程序设计是通过机器学习的布尔11-多路复用函数和符号回归的计量经济学交换方程的噪声经验数据的例子来说明的。分层自动函数定义使遗传程序设计能够在运行期间自动和动态地定义潜在有用的函数,就像编写复杂计算机程序的人类程序员创建子程序一样(过程,函数)来执行一组步骤,这些步骤必须在主程序中的多个地方用虚拟变量(形式参数)的不同实例来执行。通过布尔11-奇偶校验函数的机器学习来说明分层自动函数定义。
Many seemingly different problems in machine learning, artificial intelligence, and symbolic processing can be viewed as requiring the discovery of a computer program that produces some desired output for particular inputs. When viewed in this way, the process of solving these problems becomes equivalent to searching a space of possible computer programs for a highly fit individual computer program. The recently developed genetic programming paradigm described herein provides a way to search the space of possible computer programs for a highly fit individual computer program to solve (or approximately solve) a surprising variety of different problems from different fields. In genetic programming, populations of computer programs are genetically bred using the Darwinian principle of survival of the fittest and using a genetic crossover (sexual recombination) operator appropriate for genetically mating computer programs. Genetic programming is illustrated via an example of machine learning of the Boolean 11-multiplexer function and symbolic regression of the econometric exchange equation from noisy empirical data.Hierarchical automatic function definition enables genetic programming to define potentially useful functions automatically and dynamically during a run, much as a human programmer writing a complex computer program creates subroutines (procedures, functions) to perform groups of steps which must be performed with different instantiations of the dummy variables (formal parameters) in more than one place in the main program. Hierarchical automatic function definition is illustrated via the machine learning of the Boolean 11-parity function.