Tateo’s Interdisciplinary Lifelong Learning Project
LEARNING - BLOG - 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
____________________________________________________________________________
LEARNING
Genetic Algorithms
{Gli Algoritmi Genetici}
Hashtag keywords: #ArtificialIntelligence #AI #heuristics #bioInspired #evolutionary #geneticAlgorithms #GA #TILLL #TateoBlog
Summary. The origins of my passion for genetic algorithms, the basic principles underlying this technique that is inspired by nature and the mechanism that regulates the life and survival of species. Review of my experiments and main applications.
{Le origini della mia passione per gli algoritmi genetici, i principi base che sottendo a questa tecnica che si ispira alla natura ed al meccanismo che regola la vita e la sopravvivenza delle specie. Rassegna delle mie sperimentazioni e delle applicazioni principali}
{Ti trovi qui all'interno del progetto TILLL}
~ o ~
Hashtag keywords: #heuristics #bioInspired #evolutionary #geneticAlgorithms #GA
~ o ~
~ o ~
3. Principle and salient steps of Genetic Algorithms
Introduction. The Genetic Algorithms (briefly GA) are complex and adaptive procedures, aimed at solving research and optimization problems, and conceptually based on the principles that regulate the natural evolution of species.
The idea underlying the GA is therefore to select the best solutions and to combine them again in some way with each other in such a way that they evolve towards an optimum point.
{Introduzione. Gli Algoritmi Genetici (Genetic Algorithms in lingua Inglese, e brevemente GA) sono procedure complesse e adattative, finalizzate alla risoluzione di problemi di ricerca e ottimizzazione, e basate concettualmente sui principi che regolano l'evoluzione naturale delle specie.
L'idea che sta alla base degli AG è quindi quella di selezionare le soluzioni migliori e di combinarle nuovamente in qualche modo fra loro in maniera tale che esse evolvano verso un punto di ottimo}
Principle. In nature, individuals reproduce by mixing their genetic patrimony in this way, that is their chromosomes: the new individuals generated will therefore have a genetic patrimony derived partly from the father and partly from the mother. Natural selection (ie the re-use of good solutions) ensures that only the strongest, "most suitable" individuals, that is, those with the highest fitness (closest to the best), can survive and therefore reproduce; the average fitness of the population will therefore tend to increase with the generations, thus leading the species to evolve over time.
{Principio. In natura gli individui si riproducono mescolando in questo modo i propri patrimoni genetici, cioè i loro cromosomi: i nuovi individui generati avranno pertanto un patrimonio genetico derivato in parte dal padre e in parte dalla madre. La selezione naturale (cioè il riutilizzo di soluzioni buone) fa sì che riescano a sopravvivere e quindi a riprodursi solo gli individui più forti, "più adatti", cioè quelli con la fitness più elevata (più vicini all’ottimo); la fitness media della popolazione tenderà quindi ad aumentare con le generazioni, portando così la specie ad evolversi nel tempo}
Nomenclature. In the language of the AG the function to be maximized is called fitness (F). Suppose that the fitness function depends on n variables: F = f (x1, x2, ..., xn). A set of n values x1, x2, ..., xn belonging to a certain interval is called individual (or solution). A set of individuals forms a population. A solution can be two-way coded in binary code (the idea was originally introduced by J.Holland, the father of the AGs). The specific sequence (string) of 0s and 1s that make up an individual (solution) is called a chromosome. Considering that there is a temporal evolution of the population, we speak of generation to indicate the population at a given instant of time.
{Nomenclatura. Nel linguaggio degli AG la funzione da massimizzare prende il nome di fitness (F). Si supponga che la funzione di fitness dipenda da n variabili:
F = f (x1, x2,..., xn). Un set di n valori x1, x2,..., xn appartenenti ad un certo intervallo viene detta individuo (o soluzione). Un insieme di individui forma una popolazione. Una soluzione può essere codificata biunivocamente in codice binario (l’idea fu introdotta originariamente da J.Holland, il padre degli AG). La specifica sequenza (stringa) di 0 e 1 che costituiscono un individuo (soluzione) è detta cromosoma. Considerando che si è in presenza di una evoluzione temporale della popolazione, si parla generazione per indicare la popolazione in un dato istante di tempo}
Salient steps of the algorithm. A typical Genetic Algorithm essentially consists of the following basic steps:
1. Definition of the initial generation. It consists in the definition (even at random) of a first set of possible solutions to the problem under examination, which constitutes the first generation of the population of individuals.
2. Evaluation of each solution and selection of the best saddles. It consists of evaluating each solution, associating each with a quality (or fitness) indicator so that they can be ordered.
3. Definition of a new generation. It consists in defining a new group of solutions by appropriately modifying the high quality solutions, in order to favor the development at the expense of the worst ones. In practice, through a mechanism inspired by reproduction, new individuals are generated, manipulating the genetic material of the initial population. Individuals compete with each other and those who best adapt to the environment have a better chance of survival and of passing on the genetic heritage to future generations. 4. Conclusion of processing. The population evolves, from generation to generation, increasing the number of the best individuals present in it. If the number of established iterations has been reached or the quality of the best available solution is acceptable, the processing can be terminated, otherwise return to step 2 to define a new group of solutions.
{Passi salienti dell’algoritmo. Un tipico Algoritmo Genetico consta essenzialmente dei seguenti passi fondamentali:
1. Definizione della generazione iniziale. Consiste nella definizione (anche a caso) di un primo insieme di possibili soluzioni al problema in esame, che costituisce la prima generazione della popolazione di individui.
2. Valutazione di ogni soluzione e selezione selle migliori. Consiste nella valutazione di ogni soluzione, associando a ciascuna un indicatore di qualità (o fitness) in modo da poterle ordinare.
3. Definizione di una nuova generazione. Consiste nella definizione di un nuovo gruppo di soluzioni modificando opportunamente le soluzioni con qualità elevata, in modo da favorire lo sviluppo a scapito di quelle peggiori. In pratica, mediante un meccanismo che si ispira alla riproduzione vengono generati nuovi individui, manipolando il materiale genetico della popolazione iniziale. Gli individui competono tra loro e quelli che meglio si adattano all’ambiente hanno maggiori probabilità di sopravvivenza e di trasmettere il patrimonio genetico alle generazioni future.
4. Conclusione dell’elaborazione. La popolazione evolve, di generazione in generazione, incrementando il numero degli individui migliori in essa presenti. Se il numero di iterazioni stabilite è stato raggiunto o la qualità della migliore soluzione disponibile è accettabile si può terminare l’elaborazione, altrimenti si ritorna al passo 2 per definire un nuovo gruppo di soluzioni}
The current trend is to make use of artificial intelligence techniques that aim to evaluate, decide, control and calculate in an imprecise and vague context by emulating and using the ability of human beings to perform the aforementioned activities based on their experience.
The term “Soft Computing” identifies the combination of these techniques, of which the Genetic Algorithms, together with the Fuzzy Logic and Neural Networks, constitute one of the main components.
{La tendenza attuale è quella di fare ricorso a tecniche di intelligenza artificiale che si prefiggono di valutare, decidere, controllare e calcolare in un ambito impreciso e vago emulando e utilizzando la capacità degli esseri umani di eseguire le suddette attività sulla base della loro esperienza.
Col termine “Soft Computing” si identifica la combinazione di queste tecniche, di cui gli Algoritmi Genetici, insieme alla Logica Sfumata ed alle Reti Neurali, costituisce una delle componenti principali}
If you are interested in learning more about this innovative problem solving methodology, then allow me to invite you to read the following article, that deal specifically by this theme.
{ Se ti interessa approfondire questa innovativa metodologia di soluzione dei problemi, allora permettimi di invitarti a leggere il seguente articolo, che tratta specificatamente di questo argomento}
Soft Computing
{ Soft Computing }
(AI.2)
~ o ~
4. Le mie sperimentazioni
Elenco qui di seguito la descrizione di alcune mie sperimentazioni su algoritmi genetici e programmazione genetica:
Gli algoritmi genetici e le turbine a gas. Tanto per cominciare realizzai un sistema per la ottimizzazione delle turbine a gas. L’obiettivo era quello di ottimizzare l’efficienza regolando i parametri dei vari componenti dell’impianto. Ricordo che realizzai anche una interfaccia utente di effetto utilizzando le LabWindows/CVI. L’utente poteva variare alcune specifiche del problema e seguire come il sistema adattava la configurazione dei vari componenti affinché si ottenesse il massimo rendimento con il minimo costo. Il progetto ebbe un impatto positivo sugli esaminatori all'esame di Energetica Applicata, ma non entusiasmò più di tanto. Poi scoprii che il dipartimento di energetica stava sperimentando le tecniche fuzzy come innovazione del controllo, quindi compresi che forse era maldisposta a pensare che potesse esistere un metodo migliore per innovare. Questo mio esperimento costituisce un’applicazione di algoritmo genetico.
Gli algoritmi genetici e le architetture pipeline. Un altro campo in cui mi dilettavo applicando la tecnica degli Algoritmi Genetici fu quella delle architetture di calcolatori. Stavo preparando l’esame di calcolatori elettronici ed in particolare stavo passando in rassegna tutti quei meccanismi che sono utilizzati nel microprocessore per aumentare la sua velocità: pipeline, prefetching ecc. Assegnando un costo ad ognuna di queste varianti, l’obiettivo era quello di trovare il giusto compromesso tra costo e performance del processore. La funzione multi-obiettivo doveva contemporaneamente massimizzare lo speed-up e minimizzare il costo dell’hardware. Questa volta l’impatto del mio lavoro fu maggiore e mi valse anche un bel voto sul “libretto”. Questo mio esperimento costituisce un’applicazione di algoritmo genetico.
Gli algoritmi genetici ed il gioco del Lotto. La dimostrazione di quanto universale fosse questo metodo la ottenni cercando di superare un'impresa impossibile: quella di trovare un algoritmo in grado di prevedere le estrazioni dei numerical del gioco del Lotto. Partii calls ipotesi, ovviamente assurda, che potesse esistere una formula matematica “magica” che elaborando in “un qualche modo” una serie di dati storici del gioco del Lotto, potesse pronosticare i numeri dell'estrazione successiva. Non feci altro che definire una formula generale che poteva considerare a piacere dati da un archivio storico e poteva combinarli tra di loro in diversi modi ricavando un pronostico. Una volta preparato il modello lanciai delle evoluzioni che generarono delle popolazioni di soluzioni. La bontà (fitness) di queste soluzioni altro non era che il profitto economico medio che la formula avrebbe prodotto se fosse stata utilizzata in passato. Scoprii in particolare che esistevano formule che si adattavano diversamente ad ognuna delle ruote del gioco del Lotto: avevo ottenuto quindi esperti specializzati sulla ruota di Bari, piuttosto che su quella di Venezia. Ovviamente il meccanismo funzionava bene come metodo di modellazione di un comportamento storico, ma meno bene come strumento di previsione. Questo mio esperimento costituisce un'applicazione di programmazione genetica.
~ o ~
Trading systems. Applicazione degli Algoritmi Genetici al trading dei titoli finanziari. Un consulente finanziario personale, che vi suggerisce come investire il vostro denaro per ottenerne il massimo profitto. 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 GA to Trading
{Applicazione dei GA al trading dei titoli}
GenJam: sintesi di musica jazz. A differenza della composizione della musica classica, il jazz è basato sulla spontaneità dell’improvvisazione, quindi come processo richiede una maggiore creatività. Esiste una relazione tra musica e matematica. D'altronde tutta la musica attuale è digitalizzata quindi già trasformata in numeri. Per questo motivo ad Al Biles, trombettista e professore al Rochester Institute of Technology, a metà degli anni 90, venne in mente di scrivere GenJam, un programma basato su un algoritmo genetico che è in grado di improvvisare come un jazzista. Il programma, a forza di consigli e suggerimenti imparare ad improvvisare sempre meglio.
~ o ~
6. Sources, References and insight
{Fonti, riferimenti ed approfondimenti}
Listed below are many references to sources I have consulted during the writing of this article and I suggest you use them to go deeper into the topics covered within.
{In seguito ho riportato alcuni riferimenti alle fonti che ho consultato durante la redazione di questo articolo e che ti suggerisco di utilizzare per approfondire gli argomenti che ho trattato al suo interno}
[1] Charles Darwin, Wikipedia
[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] …
{Spiegazione teorica sugli AG in generale, e una loro applicazione al campo dell'analisi finanziaria}
[7] …
{Raccolta di lucidi sull'apprendimento delle macchine tramite AG}
[8] An Overview of Artificial Intelligence
{Introduzione alla Intelligenza Artificiale}
~ o ~
7. More generally
{Più in generale}
In this article we talked about the Genetic Algorithms techniques based on evolutionary algorithms. 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}
~ o ~
8. 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 Facebook page
"Artificial Intelligence by Tateo's Interdisciplinary Lifelong Learning" (>)
and at the Pinterest dashboard
"Artificial Intelligence by Tateo's Interdisciplinary Lifelong Learning" (>)
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:
alla pagina Facebook
"Artificial Intelligence by Tateo's Interdisciplinary Lifelong Learning" (>)
ed alla bacheca Pinterest
"Artificial Intelligence by Tateo's Interdisciplinary Lifelong Learning" (>)
che ho dedicato appositamente per la condivisione delle modifiche più recenti apportate all'area tematica corrispondente di TILLL~Learning (>)}
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-Blog, official blog of TILL project
(>) LinkedIn page dedicated to TILL project
(>) Facebook page dedicated to TILL project
(>) Twitter account dedicated to TILL project
(>) Pinterest account dedicated to TILL project
(>) Instagram account dedicated to TILL project
~ o ~
10. 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 blog. My name is Giovanni Battista Tateo (shortly Bat) and I am the founder and author of a project of Interdisciplinary Lifelong Learning of which the Tateo~Blog (:::) blog is the means of sharing. I was initially an Information Technology expert, and later I became an electronic engineer, specializing in industrial Automation. I'm passionate about Artificial intelligence, Virtual Reality, Simulation, 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 Learning, Social Networking and Knowledge Sharing by means of the web. If you want more details about me, visit the About Me (:::) page.
{Innanzitutto ti ringrazio per aver visitato una delle pagine del mio blog. Mi chiamo Giovanni Battista Tateo (brevemente Bat) e sono il fondatore e l'autore di un progetto Lifelong Learning Interdisciplinare di cui il blog Tateo~Blog (:::) ne è il mezzo di condivisione. 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 Artificiale, Realtà Virtuale, Simulazione, 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 (:::)}
References to 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.
{Riferimenti per contattarmi. In seguito puoi trovare i miei riferimenti personali che puoi utilizzare se vuoi contattarmi personalmente, ed i collegamenti ai miei account social che puoi utilizzare per seguirmi e rimanere in contatto con me tramite le reti di social media}
Eng. Tateo Giovanni Battista
- e-mail: tateogb@libero.it (send e-mail)
- phone / WhatsApp : (+39) 388 8419726
- Skype (link)
- LinkedIn account (link)
- Facebook account (link)
- Twitter account (link)
- Instagram account (link)
- Pinterest account (link)
TILLL~Learning © November 7, 2021
Commenti
Posta un commento