In artificial intelligence, genetic programming (GP) is an evolutionary algorithm based methodology inspired by biological evolution to find computer programs that perform a user-defined task. It is a specialization of genetic algorithms where each individual is a computer program. Therefore it is a machine learning technique used to optimize a population of computer programs according to a fitness landscape determined by a program's ability to perform a given computational task.

PropertyValue
p:abstract
  • In artificial intelligence, genetic programming (GP) is an evolutionary algorithm based methodology inspired by biological evolution to find computer programs that perform a user-defined task. It is a specialization of genetic algorithms where each individual is a computer program. Therefore it is a machine learning technique used to optimize a population of computer programs according to a fitness landscape determined by a program's ability to perform a given computational task. (en)
  • La programmazione genetica (GP) è una metodologia di programmazione automatizzata ispirata dall'evoluzione biologica per scoprire programmi informatici che svolgano in maniera ottimale un determinato compito. È una particolare tecnica di apprendimento automatico che usa un algoritmo evolutivo per ottimizzare una popolazione di programmi di computer secondo un paesaggio adattativo determinato dall'abilità del programma di arrivare ad un risultato computazionalmente valido . I primi esperimenti con la GP sono stati eseguiti da Stephen F. Smith e Nichael L. Cramer, come descritto nel famoso libro Genetic Programming: On the Programming of Computers by Means of Natural Selection di John Koza . I programmi creati con la GP possono essere scritti in molti linguaggi di programmazione. Nelle prime e tradizionali implementazioni della GP le istruzioni e i dati erano organizzati in strutture ad albero, quindi si preferiva l'uso di linguaggi che avessero queste strutture come tipo di dato primitivo; un esempio importante di linguaggio utilizzato da Koza è il Lisp. Sono state suggerite e implementate con successo anche altre forme di GP, come la più semplice rappresentazione lineare che ben si adatta ai normali linguaggi imperativi . Il software commerciale che implementa la GP Discipulus, ad esempio, usa la programmazione genetica lineare combinata coi linguaggi in codice macchina per ottenere migliori prestazioni. In maniera diversa il MicroGP usa una rappresentazione interna simile alla programmazione genetica lineare per generare programmi che utilizzino pienamente la sintassi di un dato linguaggio assembly. Poiché la programmazione genetica richiede una grande capacità computazione, negli anni 90 fu usata principalmente per risolvere problemi relativamente semplici. Tuttavia, più recentemente, grazie ai recenti sviluppi nella tecnologia GP e alla ben conosciuta legge di Moore, la GP ha cominciato a fornire un certo numero di risultati. Al momento della scrittura di questo articolo, sono stati ottenuti almeno quaranta risultati competitivi con gli esseri umani, in aree come l'informatica quantistica, il design di componenti elettronici, i giochi, gli algoritmi di ordinamento, di ricerca e molte altre aree. Questi risultati includono la replicazione di molte invenzioni fatte dopo l'anno 2000 e la produzione di due invenzioni brevettabili. Lo sviluppo di una teoria per la programmazione genetica fu compito arduo, cosa per cui, negli anni 90, fu considerata una sorta di paria tra le varie tecniche di ricerca. Tuttavia, dopo una serie di risultati positivi nei primi anni dopo il 2000, la teoria della GP ha avuto un formidabile e rapido sviluppo; così rapido che è stato possibile costruire modelli probabilistici esatti della GP e mostrare che la GP è più generale e come tale include gli algoritmi genetici. Le tecniche di programmazione genetica sono state applicate all'hardware evolutivo ed ai programmi per computer. La programmazione meta-genetica è la tecnica utilizzata per fare evolvere un sistema di programmazione genetica utilizzando la stessa programmazione genetica. I critici hanno sostenuto che ciò è in teoria impossibile, ma l'argomento necessita di approfondimento e di ulteriori ricerche. (it)
  • Programação genética é uma técnica automática de programação que propicia a evolução de programas de computadores que resolvem (ou aproximadamente resolvem) problemas. Ela manipula soluções corretas e incorretas, encoraja inconsistências e abordagens contraditórias, não apresenta uma variabilidade dinâmica lógica, é predominantemente probabilística, produz soluções não-parcimoniosas e não apresenta um critério de terminação claramente definido.Na programação genética, os indivíduos da população não são seqüências de bits, mas sim programas de computador armazenados na forma de árvores sintáticas. Tais programas é que são os candidatos à solução do problema proposto. A programação genética não usa o operador mutação e a recombinação se dá pela troca de subárvores entre dois indivíduos candidatos à solução. A implementação de programação genética é conceitualmente imediata quando associada a linguagens de programação que permitem a manipulação de um programa computacional na forma de uma estrutura de dados, inclusive por possibilitar que novos dados do mesmo tipo e recém-criados sejam imediatamente executados como programas computacionais.No entanto, qualquer linguagem computacional capaz de implementar a mesma estrutura de dados pode ser potencialmente empregada.* linguagem original da programação genética: LISP* linguagem mais utilizada nas aplicações recentes: C Como qualquer outro sistema computacional inspirado na natureza, a programação genética tem dois propósitos básicos:# servir de ferramenta para a solução de problemas de engenharia;# servir de modelo científico simplificado para processos naturais.Na prática, qualquer implementação de programação genética vai envolver, ao menos parcialmente, ambos os propósitos básicos mencionados acima.O campo de estudo vem sendo aplicado em diversas áreas do conhecimento, como Engenharia de Software, Circuitos Digitais, Mineração de Dados, Biologia Molecular e outras.Os algoritmos genéticos foram criados por Holland [Holland, 1975]. Ele utilizou o conceito de cromossomos como estrutura básica do indivíduo, representado computacionalmente por cadeias binárias. Em 1992 John Koza usou algoritmos genéticos para desenvolver programas para realizar certas tarefas. Ele chamou seu método de programação genética. Inicialmente, foram usados programas em LISP porque programas nessa linguagem podem ser expressos na forma de árvores, que são objetos utilizados pelos algoritmos genéticos. (pt)
  • 遗传编程,或称基因编程/GP ,是一种从生物演化过程得到灵感的自动化生成和选择计算机程序来完成用户定义的任务的技术。从理论上讲,人类用遗传编程只需要告诉计算机"需要完成什么",而不用告诉它"如何去完成",最终可能实现真正意义上的人工智能:自动化的发明机器。 遗传编程是一种特殊的利用进化算法的机器学习技术, 它开始于一群由随机生成的千百万个计算机程序组成的"人群",然后根据一个程序完成给定的任务的能力来确定某个程序的适合度,应用达尔文的自然选择(适者生存)确定胜出的程序,计算机程序间也模拟两性组合,变异,基因复制,基因删除等代代进化,直到达到预先确定的某个中止条件为止。 遗传编程的首批试验由斯蒂芬.史密斯 (1980)和Nichael .克拉姆 发表。约翰. Koza也写了一本著名的书,《遗传编程:用自然选择让计算机编程》,来介绍遗传编程。 使用遗传编程的计算机程序可以用很多种编程语言来写成。早期(或者说传统)的GP实现中,程序的指令和数据的值使用树状结构的组织方式,所以那些本来就提供树状组织形式的编程语言最适合与GP,例如Koza使用的Lisp语言。其他形式的GP也被提倡和实现,例如相对简单的适合传统编程语言(例如Fortran, BASIC, and C)的线性遗传编程。有商业化的GP软件把线性遗传编程和汇编语言结合来获得更好的性能,也有的实现方法直接生成汇编程序。 遗传编程所需的计算量非常之大(处理大量候选的计算机程序),以至于在90年代的时候它只能用来解决一些简单的问题。近年来,随着遗传编程技术自身的发展和中央处理器计算能力的指数级提升,GP开始产生了一大批显著的结果。例如在2004年左右,GP在多个领域取得近40项成果:量子计算,电子设计,游戏比赛,排序,搜索等等。这些计算机自动生成的程序(算法)中有些与2000年后人工产生的发明十分类似,甚至有两项结果产生了可以申请专利的新发明。 在90年代,人们普遍认为为遗传编程发展一个理论十分困难,GP在各种搜索技术中也处于劣势。2000年后,GP的理论取得重大发展,建立确切的GP概率模型和 马尔可夫链模型已成为可能。遗传编程比遗传算法适用的范围更广(实际上包含了遗传算法) 除了生成计算机程序,遗传编程也被用与产生可发展的硬件。 Juergen Schmidhuber进一步提出了宏遗传编程,一种使用遗传编程来生成一个遗传编程系统的技术。一些评论认为宏遗传编程在理论上不可行,但是需要更多的研究在确认。 (zh)
  • Die Genetische Programmierung (GP) ist wie der Genetische Algorithmus und die Evolutionsstrategie ein heuristisches Optimierungsverfahren und gehört in die Klasse der Evolutionären Algorithmen . GP wird wie andere EA verwendet, um Probleme zu lösen, die auf klassischem Wege nicht oder nur schwer lösbar sind, etwa wegen hoher Komplexität, Nichtlinearität oder zu großem Suchraum. Wie in EA üblich, werden nach dem Vorbild der biologischen Evolution vom Algorithmus initiale Individuen erzeugt, welche eine mögliche Lösung für das bearbeitete Problem darstellen und im folgenden problemspezifisch durch Bewertung, Selektion und Variation verbessert werden. Im Gegensatz zu GA und ES wird ein Individuum als eigenes Programm interpretiert, als Suchraum dient ein Raum ganzer Programme. Einerseits ist dieser Ansatz allgemeiner als bei anderen evolutionären Algorithmen, da weniger Annahmen über die potentielle Lösung vorweg genommen werden, andererseits ist jedoch die Größe des Suchraums in der Regel weit größer. Eine typische Anwendung von GP ist die symbolische Regression. Im Gegensatz zu den klassischen Formen der Regression, wie etwa lineare oder logistische, kann die symbolische Regression für Probleme unbekannter Form eingesetzt werden. So können mittels GP Funktionen für die näherungsweise Lösung von Problemen gefunden werden, für die es keine analytische Lösung gibt, wie z. B. der Bewertung von amerikanischen Put-Optionen. Die zwar nicht erste, aber grundlegende Arbeit zu GP verfasste John Koza. Als Individuen verwendete er Programme in der syntaktisch einfachen Programmiersprache LISP, die in einer Baumstruktur vorliegen. Bei anderen Ansätzen wird auf linearen Programmen oder Graphen operiert. Zuletzt wurden diese Möglichkeiten in der so genannten Linear-Graphen-GP auch kombiniert. (de)
p:hasPhotoCollection
rdf:type
rdfs:comment
  • In artificial intelligence, genetic programming (GP) is an evolutionary algorithm based methodology inspired by biological evolution to find computer programs that perform a user-defined task. It is a specialization of genetic algorithms where each individual is a computer program. Therefore it is a machine learning technique used to optimize a population of computer programs according to a fitness landscape determined by a program's ability to perform a given computational task. (en)
  • La programmazione genetica (GP) è una metodologia di programmazione automatizzata ispirata dall'evoluzione biologica per scoprire programmi informatici che svolgano in maniera (quasi) ottimale un determinato compito. (it)
  • Programação genética é uma técnica automática de programação que propicia a evolução de programas de computadores que resolvem (ou aproximadamente resolvem) problemas. (pt)
  • 遗� 编程,或称基� 编程/GP ,是一种从生物演化过程得到灵感的自动化生成和选择计算机程序来完成用户定义的任务的技术。从理论上讲,人类用遗� 编程只需要告诉计算机"需要完成什么",而不用告诉它"如何去完成",最终可能实现真正意义上的人工智能:自动化的发明机器。 遗� 编程是一种特殊的利用进化算法的机器学� 技术, 它开始于一群由随机生成的千百万个计算机程序组成的"人群",然后� �据一个程序完成给定的任务的能力来确定某个程序的适合度,应用达尔文的自然选择(适者生存)确定胜出的程序,计算机程序间也模拟两性组合,变异,基� 复制,基� � 除等代代进化,直到达到预先确定的某个中止条件为止。 遗� 编程的首批试验由斯蒂芬.史密斯 (1980)和Nichael .克拉姆 发表。约翰. Koza也写了一本著名的书,《遗� 编程:用自然选择让计算机编程》,来介绍遗� 编程。 使用遗� 编程的计算机程序可以用很多种编程语言来写成。早期(或者说� 统)的GP实现中,程序的指令和数据的值使用� �状结构的组织方式,所以那些本来就提供� �状组织形式的编程语言最适合与GP,例如Koza使用的Lisp语言。其他形式的GP也被提倡和实现,例如相对简单的适合� 统编程语言(例如Fortran, BASIC, and C)的线性遗� 编程。有商业化的GP软件把线性遗� 编程和汇编语言结合来获得更好的性能,也有的实现方法直接生成汇编程序。 遗� 编程所需的计算量非常之大(处理大量候选的计算机程序),以至于在90年代的时候它只能用来解决一些简单的问题。近年来,随着遗� 编程技术自身的发展和中央处理器计算能力的指数级提升,GP开始产生了一大批显著的结果。例如在2004年左右,GP在多个领域取得近40项成果:量子计算,电子设计,游戏比赛,排序,搜索等等。这些计算机自动生成的程序(算法)中有些与2000年后人工产生的发明十分类似,甚至有两项结果产生了可以申请专利的新发明。 在90年代,人们普遍认为为遗� 编程发展一个理论十分困难,GP在各种搜索技术中也处于劣势。2000年后,GP的理论取得重大发展,建立确切的GP概率模型和 马尔可夫链模型已成为可能。遗� 编程比遗� 算法适用的范围更广(实际上包含了遗� 算法) 除了生成计算机程序,遗� 编程也被用与产生可发展的硬件。 Juergen Schmidhuber进一步提出了宏遗� 编程,一种使用遗� 编程来生成一个遗� 编程系统的技术。一些评论认为宏遗� 编程在理论上不可行,但是需要更多的� �究在确认。 (zh)
  • Die Genetische Programmierung (GP) ist wie der Genetische Algorithmus und die Evolutionsstrategie ein heuristisches Optimierungsverfahren und gehört in die Klasse der Evolutionären Algorithmen (EA). (de)
rdfs:label
  • Genetic programming (en)
  • Programmation génétique (fr)
  • 遺伝的プログラミング (ja)
  • Programowanie genetyczne (pl)
  • Programación genética (es)
  • Programmazione genetica (it)
  • Programação genética (pt)
  • 遗传编程 (zh)
  • Genetische Programmierung (de)
owl:sameAs
skos:subject
foaf:page
is p:redirect of
is owl:sameAs of