Passa ai contenuti principali

GP (AI.1.3.1.3.2)

Tateo’s Interdisciplinary Lifelong Learning Project
T I L L L
LEARNING - SHARING - NETWORKING
Learning, knowledge sharing and Communities engagement about:
Artificial Intelligence, Extended / Augmented / Virtual / Mixed Reality (XR/AR/VR/MR), Automation, Electronics, Computer Science and Information and Communication Technology, Mobility, Problem Solving & Innovation, Readings, Social Media, Digital Modeling and Simulation, Computer Vision, Work & Soft Skills, Railway.
by Tateo Giovanni Battista
_____________________________
LEARNING
ARTIFICIAL INTELLIGENCE
Complex systems optimization, enumerative techniques, heuristic techniques, bio-inspired techniques, swarm intelligence, ant colony optimization, evolutionary algorithms, genetic algorithms, genetic programming, deep learning, soft computing, fuzzy logic, neural networks, machine learning.
Genetic Programming, that is the extension of the genetic algorithms to the programming world.

La Programmazione Genetica, ossia la estensione degli Algoritmi Genetici al mondo della programmazione.

We are talking about: #ArtificialIntelligence #AI #heuristics #bioInspired #evolutionary #geneticProgramming #Kza #Holland #Goldberg #GP #geneticAlgorithms #GA #TILLL #TateoBlog 

Summary. Extension of the concept of genetic algorithm to programming. Applications of genetic programming to perfume synthesis, computer screensavers, generative design and evolutionary hardware.
Estensione del concetto di algoritmo genetico alla programmazione. Applicazioni della programmazione genetica alla sintesi dei profumi, agli screensaver dei computer, al design generativo ed all’hardware evolutivo.


~ o ~


You are HERE within the TILLL project.

Ti trovi QUI all'interno del progetto TILLL.


                   +--> TILLL-LEARNING
                   |    +--> AI. ARTIFICIAL INTELLIGENCE 
                   |         +--> 1. COMPLEX PROBLEMS 
                   |              +--> 3. HEURISTICS
                   |                   +--> 1. BIO-INSPIRED
                   |                        +--> 3. EVOLUTIONARY
                   |                                +--> 1GA
                   |                                +--> 2. GP
                   +--> TILLL-SHARING
                   |    +--> TILLL-BLOG
HOME --> PROJECT --O
                   |
                   +--> TILLL-NETWORKING
                   |
                   +--> 
TILLL-ABOUT ME



~ o ~


§1. 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.

If you want to deepen the study of Genetic Algorithms, then allow me to recommend reading the following article:
Se vuoi approfondire lo studio degli Algoritmi Genetici, allora permettimi di consigliarti la lettura del seguente articolo:

Genetic Algorithms.
Gli Algoritmi Genetici.
<<< AI.1.3.1.3.1 >>>

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).
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).

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.
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.

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.
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

Resources and insights.
(1) John Koza, Wikipedia
(2) John Koza Has Built an Invention Machine, popular science
(3) Genetic Programming applied to AI Heuristic Optimization, Toward data science


~ o ~ 


§2. Genetic Programming Applications.
Applicazioni della Programmazione Genetica.

Here are some of the most interesting applications of the genetic programming technique.
Elenco di seguito alcune delle applicazioni più interessanti della tecnica della programmazione genetica.

§ Genetic synthesis of computer programs. 
   Sintesi genetica di programmi informatici.
§ Genetic synthesis of perfumes and aromas.
   Sintesi genetica di profumi e aromi.
§ Electric Sheep.
   Pecore elettriche.
§ Generative Design.
   Design generativi.
§ Evolvable Hardware.
   Hardware Evolutivo.


~ o ~


§2.1. Genetic synthesis of computer programs.

Sintesi genetica di programmi informatici.

The technique of genetic programming can be used for the synthesis of an adaptive computer program based on a sequence of instructions characterized by low-level computational primitives, suitably defined by means of a genetic code, so that they can be manipulated by an optimization engine genetic.
La tecnica della programmazione genetica può essere utilizzata per la sintesi di un programma informatico adattivo basato su una sequenza di istruzioni caratterizzate da primitive computazionali di basso livello, opportunamente definite per mezzo di un codice genetico, in modo che possano essere manipolate da un motore di ottimizzazione genetico.

The language that must be used to code the program must necessarily be of a functional type, so that standard genetic operators (Crossover, Mutation, Inversion) can be applied to them.
Il linguaggio che deve essere utilizzato per codificare il programma deve essere necessariamente di tipo funzionale, affinché si possano applicare su di essi gli operatori genetici standard (Crossover, Mutation, Inversion).

The encoded representation for our programs should have two characteristics:
1. It should comply with the standard genetic operators.
2. it should only produce well-formed programs.
It is foreseeable that many of the programs that will be generated, even if syntactically correct, will not be useful in practice, but the adaptation process will take care of correcting these functional inconsistencies. For the functioning of the genetic mechanism it is only important that the programs are well formed.
La rappresentazione codificata per i nostri programmi dovrebbe avere due caratteristiche:
1. Dovrebbe essere conforme gli operatori genetici standard.
2. dovrebbe produrre solo programmi ben formati.
E' prevedibile che molti dei programmi che saranno generati, anche se sintatticamente corretti, non saranno utili nella pratica, ma ci penserà il processo di adattamento a correggere queste incongruenza funzionali. Per il funzionamento del meccanismo genetico è importante solo che i programmi siano ben formati.

We are talking about: #artificialIntelligence #AI #evolutionaryAlgorithms #geneticProgramming #GP

References to useful sources for further information:
Riferimenti a fonti utili per approfondimenti.

1. A Representation for the Adaptive Generation of Simple Sequential Programs, Nichael Lynn Cramer, Link: https://www.nichaelcramer.com/publications/gp-paper


-----------------------------------------
last update August 19, 2022 


~ o ~


§2.2. Genetic synthesis of perfumes and aromas.

Sintesi genetica di profumi e aromi.


Usando la programmazione genetica, che è una metodologia di programmazione automatizzata ispirata dall'evoluzione biologica, i ricercatori aiutano le aziende degli aromi a capire che cosa piace ai loro clienti. Se vuoi esaminare in dettaglio questa applicazioni degli algoritmi genetici ti invito a proseguire la consultazione del mio diario con la seguente pagina:


Application of Genetic Algorithms (GA) to the synthesis of aromas: the mathematics of taste.

L’applicazione degli algoritmi genetici (GA) alla sintesi degli aromi: la matematica del gusto.

<<< AI.1.3.1.3.2.1 >>>



~ o ~


§2.3. Electric Sheep.

Pecore elettriche.


Open source screensaver. "Do androids dreams of electric sheep" is the title of Philip Dick's book from which the film "Blade runner" is based. Electric Sheep, on the other hand, is an open source screensaver, which when the computer "sleeps" generates images ("dreams") by connecting to the other computers running Electric Sheep. The result is a collective “android dream”. Users can vote for the best animations, which will live longer and reproduce according to genetic algorithms.

Screensaver open source. “Do androids dreams of electric sheep” è il titolo del libro di Philip Dick da cui è tratto il film “Blade runner”. Electric Sheep è invece uno screensaver open source, che quando il computer “dorme” genera immagini (“sogni”) collegandosi agli altri computer su cui gira Electric Sheep. Il risultato è un “android dream” collettivo. Gli utenti possono votare le migliori animazioni, che vivranno più a lungo e si riprodurranno secondo algoritmi genetici. 


If you want to examine in detail the science fiction book that inspired them for this bizarre application of genetic algorithms, I invite you to continue consulting my diary with the following page:

Se vuoi esaminare in dettaglio il libro di fantascienza a cui si sono ispirati per questa bizzarra applicazione degli algoritmi genetici ti invito a proseguire la consultazione del mio diario con la seguente pagina:


Do Androids dream of electric sheep? 

Ma gli androidi sognano pecore elettriche?

<<< LT.4.1 >>>


~ o ~


§2.3. Generative Design.

Progettazione generativa. 


The architecture of tomorrow will be designed and built with increasing use of the digital world. The tools of the twenty-first architect will be computational design, generative algorithms and generative art. In essence, design by generative algorithms is a technology that mimics and applies nature's evolutionary approach to design. If you want to examine this application of genetic algorithms in detail, I invite you to continue consulting my diary with the following page:

L'architettura di domani sarà progettata e costruita avvalendosi sempre più del mondo digitale. Gli strumenti dell'architetto del ventunesimo saranno il computational design, gli algoritmi generativi e l'arte generativa. In sostanza la progettazione per algoritmi generativi è una tecnologia che imita e applica l'approccio evolutivo della natura al design. Se vuoi esaminare in dettaglio questa applicazioni degli algoritmi genetici ti invito a proseguire la consultazione del mio diario con la seguente pagina:


Interactive Design, art and Generative Design.

Progettazione Interattiva, arte e Progettazione Generativa.

<<< EL.1.2 >>>


~ o ~


§2.4. Evolvable Hardware.

Hardware Evolutivo. 


Heuristic mechanism that supervises the functioning of a hardware mechanism and is able to notice its inadequacy, to identify a new configuration towards which to evolve and to autonomously synthesize a series of modifications to adapt to the operating conditions. If you want to examine in detail this application of genetic algorithms to electronics, I invite you to continue consulting my diary with the following page:
Meccanismo euristico che supervisiona il funzionamento di un meccanismo hardware ed è capace di accorgersi della sua inadeguatezza, di individuare una nuova configurazione verso cui evolvere e di sintetizzare autonomamente una serie di modifiche per adattarsi alle condizioni operative. Se vuoi esaminare in dettaglio questa applicazioni degli algoritmi genetici all'elettronica ti invito a proseguire la consultazione del mio diario con la seguente pagina:


Evolvable hardware.

Hardware evolutivo.

<<< EL.3 >>>


~ o ~

§3. References to useful sources for further information.
Riferimenti a fonti utili per approfondimenti.

Listed below are some references to sources (websites, videos and book) that I have consulted during the writing of this article, and that you could also use to learn more about the topics covered in this article. 
Di seguito sono elencati alcuni riferimenti a fonti (siti web, video e libri) che ho consultato durante la stesura di questo articolo e che potresti utilizzare anche tu per approfondire gli argomenti trattati in questo articolo.

1. Charles Darwin, Wikipedia, Link: http://it.wikipedia.org/wiki/Charles_Darwin

2. J.H.Holland. Algoritmi genetici. Le Scienze, n.289, 1992

3. L.Davis. Handbook of Genetic Algorithms. Van Nostrand Reinhold, 1991

4. J. H. Holland. Adaptation in Natural and Artificial Systems. The University of Michigan Press, 1975

5. M. Mitchell. An Introduction to Genetic Algorithms. MIT Press, 1996. 

6. [IT] Algoritmi genetici. Link: http://web.tiscali.it/vitaartificiale/algoritm.htm

7. [IT] learning: alberi di decisione - algoritmi genetici - Raccolta di lucidi sull'apprendimento delle macchine tramite AGLink: http://www.dia.uniroma3.it/~patrigna/seminari/learning/

8. An Overview of Artificial Intelligence, link: https://aridolan.comIntroduzione alla Intelligenza Artificiale.

9. A Representation for the Adaptive Generation of Simple Sequential Programs, Nichael Lynn Cramer, Una rappresentazione per la generazione adattiva di semplici programmi sequenzialiLink: https://www.nichaelcramer.com/publications/gp-paper


-----------------------------------------
last update August 19, 2022 


~ o ~


§4. More generally about Evolutionary Algorithms.

Più in generale sugli Algoritmi Evolutivi.


  In this article we talked about the Genetic Programing. This technique is only one of the evolutionary heuristics bio-inspired methods used to solve complex problems.

   But if you want to examine the others evolutionary techniques, then allow me to suggest you the reading of the following article which I dedicated to this purpose.

  {In questo articolo abbiamo parlato delle tecniche di Algoritmi Genetici basate su algoritmi evolutivi. Questa tecnica è solo uno dei metodi bio-ispirati dall'euristica evolutiva utilizzati per risolvere problemi complessi.

    Ma se vuoi approfondire le altre tecniche evolutive, allora permettimi di suggerirti la lettura del seguente articolo che ho dedicato a questo scopo.}


Artificial Intelligence based on Evolutionary Algorithms.

Intelligenza Artificiale basata su Algoritmi Evoluzionistici.

<<< AI.1.3.1.3 >>>


~ o ~

§5. Stay up to date.
Rimani aggiornato.

If you are interested in the topics covered in the current article and want to be informed about my most recent updates dealing with them, then I invite you to register on the following Facebook page and Pinterest dashboard which I dedicated specifically for sharing the most recent changes made to the corresponding thematic area of TILLL~Learning (>).
Se sei interessato agli argomenti trattati nell'articolo corrente e vuoi essere informato sui miei aggiornamenti più recenti che trattano di essi, allora ti invito a registrarti sulla seguente pagina Facebook e bacheca Pinterest che ho dedicato appositamente per la condivisione delle modifiche più recenti apportate all'area tematica corrispondente di TILLL~Learning (>).


"Artificial Intelligence by TILLL" on Facebook (link)

"Artificial Intelligence by TILLL" on Pinterest (link)



~ o ~

§6. Let's keep in touch.
Teniamoci in contatto.

I hope you enjoyed this article, belonging to the Learning (>) section of the Tateo's Interdisciplinary Lifelong Learning (TILLL) project (>), and that the notes and observations I gathered within it meets your interests. If you want stay tuned with the TILLL project evolution, then I invite you to follow the next upgrades that are published on the TILLL's Blog and on the social media pages dedicated to the TILLL community.
Spero che questo articolo, appartenente alla sezione Learning (>) del progetto Tateo's Interdisciplinary Lifelong Learning (TILLL) (>), ti sia piaciuto e che le note e le osservazioni che ho raccolto al suo interno soddisfino i tuoi interessi.  Se vuoi rimanere aggiornato sull'evoluzione del progetto TILLL, allora ti invito a seguire i prossimi aggiornamenti che vengono pubblicati sul Blog di TILLL e sulle pagine social dedicate alla community TILLL.


  (>Tateo-Blogofficial blog of TILLL project

  (>LinkedIn page dedicated to TILLL project

  (>Facebook page dedicated to TILLL project

  (>Twitter account dedicated to TILLL project

  (>Pinterest account dedicated to TILLL project

  (>Instagram account dedicated to TILLL project



~ o ~ 


§7. Something about me, the founder and author of Tateo~Blog Project.

Qualcosa su di me, il fondatore e sull'autore del progetto Tateo~Blog.


First of all, thank you for visiting one of the pages of my project for Interdisciplinary Continuous Learning (TILLL which stands for Tateo's Interdisciplinary LifeLong Learning), of which I am the founder and author.

My name is Giovanni Battista Tateo (shortly Bat).

Innanzitutto ti ringrazio per aver visitato una delle pagine del mio progetto per l'Apprendimento Continuo Interdisciplinare (TILLL che sta per Tateo's Interdisciplinary LifeLong Learning), di cui io sono lil fondatore e l'autore.

Mi chiamo Giovanni Battista Tateo (brevemente Bat).


The Tateo~Blog (link) is an integral part of the project constitutes the means of sharing all updates. 

I was initially an Information Technology expert, and later I became an electronic engineer, specializing in industrial Automation. I'm passionate about Artificial intelligenceVirtual RealitySimulation, and I'm an expert in Artificial Vision applied to industrial Automation. Currently, and starting four years ago, I am employed as a Proposal Engineer at Mer Mec S.p.A. (:::) company. Previously, starting in 2004, I was employed, always at the same company, as a Designer of Artificial Vision Systems and Image Processing Algorithms, applied in particular to Railway Diagnostics. I am a supporter and promoter of Lifelong LearningSocial Networking and Knowledge Sharing by means of the web. If you want more details about me, visit the About Me (:::) page.

Il blog Tateo~Blog (link) è parte integrante del progetto costituisce il mezzo di condivisione di tutti gli aggiornamenti. 

Sono stato in principio un esperto di Informatica, e in seguito sono diventato un Ingegnere Elettronico, specializzato in Automazione Industriale. Sono un appassionato di Intelligenza ArtificialeRealtà VirtualeSimulazione, e sono un esperto di Visione Artificiale applicata all'Automazione Industriale. Attualmente, ed a partire dall'anno 2016, sono impiegato come Proposal Engineer presso la società Mer Mec S.p.A. (:::). Precedentemente, a partire dal 2004, sono stato impiegato, sempre presso la stessa società, come Progettista di Sistemi di Visione Artificiale e di Algoritmi di Elaborazione delle Immagini, applicati in particolare alla Diagnostica Ferroviaria. Sono un sostenitore e promotore dell'apprendimento permanente, dei social network e della condivisione delle conoscenze tramite il web. Se vuoi ulteriori dettagli su di me, visita la pagine About Me (:::).


  Contact me. Following you can find my personal references that you can use if you want to contact me directly, and the links to my social accounts that you can use to follow me or to keep in touch with me by means of social media networks.

  ContattamiPer chi scrive non c’è soddisfazione maggiore di quella che si prova sapendo di essere stato letto e di aver ispirato e fornito esperienze e pratiche utili. Per cui, chiunque contattarmi utilizzando uno dei riferimenti seguenti. Sarò felice di poterti leggere e di confrontarmi con te, di poter leggere le tue critiche, i tuoi suggerimenti, le tue riflessioni e, spreto anche i tuoi complimenti.


Giovanni Battista Tateo (aka Bat)

    - e-mail: tateogb@libero.it (send e-mail)

    - phone / WhatsApp : (+39) 388 8419726

    - LinkedIn account (link)

    - Facebook account (link)

    - Twitter account (link)

    - Instagram account (link)

    - Pinterest account (link)

    - Skype (link)


-----------------------------------------

Originally published November 7, 2021.

Updated August 19, 2022.

into the Learning section of

TILLL

the Lifelong and Interdisciplinary Learning project of Giovanni Battista Tateo


Commenti