Passa ai contenuti principali

From Genetic Algorithms to Genetic Programming

{Dagli Algoritmi Genetici alla Programmazione Genetica}


  Like any engineering innovation, genetic programming did not emerge fully formed from the aether. Rather it arose from two promising but not yet realized lines of research in computer science: genetic algorithms and artificial intelligence.
  {Come ogni innovazione ingegneristica, la programmazione genetica non è emersa completamente formata dall'etere. Piuttosto è nato da due linee di ricerca promettenti ma non ancora realizzate in informatica: algoritmi genetici e intelligenza artificiale.}

  The mechanism of genetic algorithms is so fascinating that in the nineties some researchers had the idea of extending the evolutionary principle to the internal code of computer programs, effectively creating a population in which individuals are computer programs dedicated to accomplishing the same task.
  {Il meccanismo degli algoritmi genetici è così affascinante che negli anni novanta alcuni ricercatori ebbero l'idea di estendere il principio evoluzionistico al codice interno dei programmi informatici, creando a tutti gli effetti una popolazione in cui gli individui sono programmi informatici dedicati a compiere lo stesso compito.}

“It occurred to me that perhaps the technique of genetic algorithms could be combined with the basic principles of artificial intelligence to evolve a population of programs.“

"Mi è venuto in mente che forse si potrebbe combinare la tecnica degli algoritmi genetici con i principi  di base dell'intelligenza artificiale per far evolvere una popolazione di programmi."
 
(John Koza, 1998)

  John Koza, to whom the authorship of this new line of research is attributed, has put to use one of the most brilliant intuitions of artificial intelligence. In fact, Koza's thesis advisor at the University of Michigan was John Holland, the man widely considered the father of genetic algorithms.
  Remember that John Holland was a university student from Michigan in the 1950s and that upon coming across a book on genetics called "The Genetical Theory of Natural Selection", written by the British biologist Ronald Fisher in 1930, he had the intuition to apply the principles the evolution of the species, and in particular of natural selection, for the heuristic solution of complex problems. The book, in fact, expounded, in rigorous mathematical terms, the basic mechanism of variation in plants and animals. Holland envisioned a system that through small incremental improvements would generate a good solution in the same way a farmer grows good corn. John Holland's genetic algorithms were in effect the precursors of John Koza's idea, in the same way that Mendelian inheritance was the first step towards understanding Darwinian evolution.
  {John Koza, a cui si attribuisce la paternità di questa nuova linea di ricerca, ha messo a frutto una delle più brillanti intuizioni dell’intelligenza artificiale. Infatti il relatore di tesi di Koza all'Università del Michigan fu proprio John Holland, l'uomo ampiamente considerato il padre degli algoritmi genetici.   
  Si ricordi che John Holland era uno studente universitario di Michigan negli anni 50’ e che imbattendosi in un libro di genetica  intitolato “The Genetical Theory of Natural Selection”, scritto dal biologo inglese Ronald Fisher nel 1930, ebbe l’intuizione di applicare i principi della evoluzione della specie, ed in particolare della selezione naturale, per la risoluzione euristica di problemi complessi. Il libro, infatti, esponeva, in termini matematici rigorosi, le basi meccanismo di variazione nelle piante e negli animali. Holland immaginò un sistema che attraverso piccoli miglioramenti incrementali, avrebbe generato una buona soluzione  nello stesso modo in cui un contadino coltiva un buon mais. Gli algoritmi genetici di John Holland sono stati a tutti gli effetti i precursori dell’idea di John Koza, nello stesso modo in cui l'ereditarietà Mendeliana è stato il primo passo verso la comprensione dell'evoluzione Darwiniana.}

  John Holland practically implemented the idea of genetic algorithms in 1980 together with his student David Goldberg, applying it in particular to pipeline optimization. Goldberg, in fact, before working on his PhD, had studied civil engineering, and was interested in the practical problem of how computers could be used to optimize pipeline capacity.
  {John Holland implementò praticamente l’idea degli algoritmi genetici nel 1980 insieme al suo studente David Goldberg, applicandola in particolare alla ottimizzazione dei gasdotti. Goldberg, infatti, prima di lavorare al suo dottorato di ricerca, aveva studiato ingegneria civile, ed era interessato al problema pratico di come i computer potessero essere usati per ottimizzare la capacità dei gasdotti.}

John Koza's technique that extends the concept of genetic algorithm to the world of programming is known as Genetic Programming (known by the term Genetic Programming in English, and synthetically GP).
Genetic programming, in fact, inspired by the same adaptive principle of biological evolution, searches for computer programs that are able to perform a specific task in an optimal way.
   It should be noted that genetic programming exploits the evolutionary modification of the internal code of programs. So the code and the behavior of the programs are constantly evolving. In practice, GP is a particular machine learning technique. Similarly to what happens for genetic algorithms, it is a heuristic process that does not guarantee a perfect result, but an optimal result that meets certain criteria set by the user.
  {La tecnica di John Koza che estende il concetto di algoritmo genetico al mondo della programmazione è nota col nome di Programmazione Genetica (nota col termine Genetic Programming in lingua inglese, e sinteticamente GP).
La programmazione genetica, infatti, ispirandosi allo stesso principio adattativo dell'evoluzione biologica, ricerca programmi informatici che riescano a svolgere in maniera ottimale un determinato compito.
  Si osservi che la programmazione genetica sfrutta la modifica evolutiva del codice interno dei programmi. Quindi il codice ed il comportamento dei programmi sono in continua evoluzione. In pratica la GP costituisce una particolare tecnica di apprendimento automatico. Analogamente a quanto avviene per gli algoritmi genetici, si tratta di un processo euristico che non garantisce un risultato perfetto, bensì un risultato ottimale che rispetti determinati criteri prefissati dall'utente.}

Hashtag keywords: #GP #geneticProgramming #GA #geneticAlgorithms #Koza #Holland #Goldberg #TateoBlog #TILLL


Extract from: Genetic Programming, that is the extension of the genetic algorithms to the programming world, TILLL-Learning


_____________________________________________________________________________

Tateo’s Interdisciplinary Lifelong Learning Project

T I L L L

LEARNING - SHARING - NETWORKING

Learning, knowledge sharing and communities engagement about:

Artificial Intelligence; Augmented, Virtual and Mixed Reality; Automation; Electronics; Computer Science and Information Technology; Mobile Technologies; Problem Solving; Readings; Social Media; Modeling and Simulation; Artificial Vision; Hard and Soft Work Skills.

by Tateo Giovanni Battista

_____________________________________________________________________________

TILLL~Blog © November 7, 2021

Commenti