ALGORITMO GENETICO


Nel campo informatico di intelligenza artificiale, un algoritmo genetico (GA) è una ricerca euristica che imita il processo di evoluzione naturale. Questa euristica viene normalmente utilizzato per generare soluzioni utili ai problemi di ottimizzazione e di ricerca. Gli algoritmi genetici appartengono alla classe più ampia di algoritmi evolutivi (EA), che generano soluzioni a problemi di ottimizzazione con tecniche ispirate evoluzione naturale, come l'ereditarietà, mutazione, selezione e crossover.
 Metodologia In un algoritmo genetico, una popolazione di stringhe (chiamato cromosomi o il genotipo del genoma), che codificano le soluzioni candidati (chiamati gli individui, le creature, o fenotipi) per un problema di ottimizzazione, evolve verso soluzioni migliori. Tradizionalmente, le soluzioni sono rappresentati in binario come stringhe di codifiche 0 e 1, ma sono possibili anche altre. L'evoluzione di solito inizia da una popolazione di individui generati in modo casuale ed avviene in generazioni. In ogni generazione, l'idoneità di ogni individuo della popolazione viene valutata, più persone sono stocasticamente selezionati dalla popolazione attuale (in base alla loro fitness), e modificato (ricombinati in modo casuale e forse mutato) per formare una nuova popolazione. La nuova popolazione viene quindi utilizzato per la successiva iterazione dell'algoritmo. Comunemente, l'algoritmo termina quando sia un numero massimo di generazioni è stato prodotto, o un livello di fitness soddisfacente è stato raggiunto per la popolazione. Se l'algoritmo è stato terminato a causa di un numero massimo di generazioni, una soluzione soddisfacente può o non può essere stato raggiunto.
Gli algoritmi genetici trovano applicazione in bioinformatica, filogenesi, la scienza computazionale, ingegneria, economia, chimica, produzione, matematica, fisica e in altri campi.Un algoritmo genetico tipico richiede:genetica una rappresentazione del dominio soluzione,una funzione di fitness per valutare il dominio soluzione.Una rappresentazione standard della soluzione è come una matrice di bit. Matrici di altri tipi e strutture possono essere utilizzate in essenzialmente nello stesso modo. 
La caratteristica principale che rende queste rappresentazioni genetiche conveniente è che i loro componenti sono facilmente allineate a causa della loro dimensione fissa, che facilita le operazioni di crossover semplici. Rappresentazioni lunghezza variabile possono anche essere utilizzati, ma attuazione di crossover è più complessa in questo caso. 
Tree-come le rappresentazioni sono esplorati in programmazione genetica e grafico-forma sono esplorate le rappresentazioni in programmazione evolutiva, un mix di entrambi i cromosomi lineari e alberi viene esplorato nella programmazione genica. 
La funzione di fitness è definita sulla rappresentazione genetica e misura la qualità della soluzione rappresentata. La funzione di fitness è sempre dipendenti dal problema. Ad esempio, nel problema dello zaino si vuole massimizzare il valore totale di oggetti che possono essere messi in una sacca di una certa capacità fissa. Una rappresentazione di una soluzione potrebbe essere una matrice di bit, in cui ogni bit rappresenta un oggetto diverso, e il valore del bit (0 o 1) rappresenta se l'oggetto è in zaino. Non tutti tale rappresentanza è valido, come la dimensione degli oggetti può superare la capacità dello zaino. L'idoneità della soluzione è la somma dei valori di tutti gli oggetti nello zaino se la rappresentazione è valido, altrimenti 0. In alcuni problemi, è difficile o addirittura impossibile definire l'espressione fitness, in questi casi, interattivi algoritmi genetici vengono utilizzati.Una volta che la rappresentazione genetica e la funzione di fitness sono definite, uno GA procede per inizializzare una popolazione di soluzioni (di solito in modo casuale), e quindi migliorare attraverso l'applicazione del ripetitivo, mutazione crossover, inversione e gli operatori di selezione.
InizializzazioneInizialmente molte soluzioni individuali sono (di solito) generato in modo casuale a formare una popolazione iniziale. La dimensione della popolazione dipende dalla natura del problema, ma contiene tipicamente centinaia o migliaia di possibili soluzioni. Tradizionalmente, la popolazione viene generato in modo casuale, consentendo l'intera gamma di soluzioni possibili (lo spazio di ricerca). Di tanto in tanto, le soluzioni possono essere "seminati" in aree in cui le soluzioni ottimali potrebbero essere trovati.[Modifica] SelezioneArticolo principale: Selection (algoritmo genetico) Durante ogni generazione successiva, una parte della popolazione esistente è selezionato per allevare una nuova generazione. Le soluzioni individuali sono selezionati attraverso un processo basato sul fitness, in cui le soluzioni montatore (misurata da una funzione di fitness) sono in genere più probabilità di essere selezionato. Alcuni metodi di selezione votare l'idoneità di ogni soluzione e preferenzialmente scegliere le migliori soluzioni. 
Altri metodi frequenza soltanto un campione casuale della popolazione, il primo processo può essere molto tempo.
RiproduzioneArticoli principali: Crossover (algoritmo genetico) e la mutazione (algoritmo genetico)Il passo successivo consiste nel generare una popolazione di seconda generazione di soluzioni da quelli selezionati attraverso operatori genetici: incrocio (chiamato anche ricombinazione), e / o mutazione. Per ogni nuova soluzione da produrre, una coppia di "padre" soluzioni è selezionato per la riproduzione dal pool precedentemente selezionato. Producendo una soluzione "bambino" con i metodi sopra di crossover e mutazione, una soluzione viene creato un nuovo genere che condivide molte delle caratteristiche dei suoi "genitori". Nuovi genitori sono selezionati per ogni nuovo bambino, e il processo continua fino a quando una nuova popolazione di soluzioni di dimensioni appropriate viene generato. 
Sebbene i metodi di riproduzione che si basano sull'impiego di due genitori sono più "biologia ispirato", alcune ricerche [1] [2] indica che più di due 'genitori' generare cromosomi di qualità superiore. Questi processi in definitiva risultarno in una popolazione di prossima generazione di cromosomi che è diversa dalla generazione iniziale. In generale l'idoneità media sarà aumentata di questa procedura per la popolazione, dal momento che solo i migliori organismi della prima generazione sono selezionati per l'allevamento, insieme a una piccola percentuale di soluzioni meno idonei, per motivi già citati. Sebbene Crossover e mutazione sono conosciuti come i principali operatori genetici, è possibile utilizzare altri operatori quali raggruppamento, la colonizzazione-estinzione, o di migrazione in algoritmi genetici. 
Terminazione
Questo processo viene ripetuto fino generazionale una condizione di terminazione è stato raggiunto. Condizioni comuni di terminazione sono i seguenti:Una soluzione si trova che soddisfa i criteri minimiNumero fisso di generazioni ha raggiuntoBilancio assegnato (tempo di calcolo / denaro) ha raggiuntoLa soluzione fitness più alta classifica è raggiungere o ha raggiunto un plateau in modo tale che iterazioni successive non è più produrre risultati miglioriIspezione manuale Combinazioni di quanto sopraSemplice procedura generazionale algoritmo genetico:
Scegli la popolazione iniziale di individuiValutare l'idoneità di ciascun individuo in quella popolazioneRipetere questa generazione fino al termine (limite di tempo, fitness sufficiente raggiunto, ecc):
Selezionare i best-fit individui per la riproduzioneAllevare nuovi individui attraverso operazioni di crossover e la mutazione per dare vita a progenieValutare l'idoneità individuale di nuovi individuiSostituire almeno-fit popolazione con nuovi individui.
La costruzione ipotesi di blocco
Gli algoritmi genetici sono semplici da implementare, ma il loro comportamento è difficile da capire. In particolare è difficile capire perché questi algoritmi spesso riescono a generare soluzioni di idoneità alta quando applicata a problemi pratici. 
L'ipotesi building block (BBH) consiste di:
Una descrizione di un algoritmo euristico che esegue l'adattamento attraverso l'individuazione e ricombinando "mattoni", vale a dire ordine basso, basso definisci lunghezza schemi con sopra il fitness media.
Una ipotesi che un algoritmo genetico esegue l'adattamento implicitamente ed efficiente attuazione del presente euristica.
Goldberg descrive l'euristica come segue:"Short, di ordine inferiore, e molto adatta schemi vengono campionati, ricombinati [attraversato] e ricampionata a formare stringhe di fitness più elevato. In un certo senso, lavorando con questi schemi particolare [i blocchetti di costruzione], abbiamo ridotto la complessità del nostro problema, invece di costruire ad alte prestazioni stringhe provando tutte le combinazioni possibili e immaginabili, costruiamo le stringhe sempre migliori delle migliori soluzioni parziali di campionamenti passati."Perché schemi altamente attacco di bassa lunghezza di definizione e di ordine inferiore giocano un ruolo importante nell'azione di algoritmi genetici, abbiamo già dato un nome speciale:.
 Blocchi Proprio come un bambino crea fortezze magnifiche attraverso la predisposizione di semplici blocchi di legno, così fa un algoritmo genetico cercano prestazioni quasi ottimali attraverso la giustapposizione di brevi blocchi di ordine inferiore, ad alte prestazioni schemi, o di un edificio ". 
Osservazioni
Ci sono alcune osservazioni generali sulla generazione di soluzioni specificamente tramite un algoritmo genetico:
La selezione è chiaramente un importante operatore genetica, ma l'opinione è divisa sull'importanza del crossover rispetto mutazione. Alcuni sostengono [chi?] Che crossover è il più importante, mentre la mutazione è solo necessario per garantire che le possibili soluzioni non vengono perse. Altri sostengono [chi?] Che incrocio in una vasta popolazione uniforme serve solo per propagare innovazioni originariamente trovati dalla mutazione, e in modo non uniforme incrocio popolazione è quasi sempre equivalente a una mutazione molto grande (che è probabile che sia catastrofico). Ci sono molti riferimenti a Fogel (2006) che supportano l'importanza della mutazione-based ricerca.Come con tutti i problemi attuali della macchina di apprendimento vale la pena di tuning dei parametri quali la probabilità di mutazione, la probabilità di crossover e le dimensioni della popolazione per trovare le impostazioni ragionevoli per la classe problema si sta lavorando. Un tasso di mutazione molto piccolo può portare alla deriva genetica (che è non-ergodico in natura). Un tasso di ricombinazione che è troppo alto può portare a prematura convergenza dell'algoritmo genetico. Un tasso di mutazione che è troppo alta può causare la perdita di buone soluzioni meno che non vi è la selezione elitaria. Ci sono teorici [citazione necessaria], ma non ancora i limiti pratici superiore ed inferiore di questi parametri che possono aiutare la selezione guida.Spesso, il gas può rapidamente trovare buone soluzioni, anche per spazi di ricerca di grandi dimensioni. Lo stesso vale ovviamente anche per le strategie di evoluzione e programmazione evolutiva.
Critiche
Ci sono diverse critiche di utilizzo di un algoritmo genetico rispetto agli algoritmi di ottimizzazione alternative:
Ripetuta la valutazione della funzione di idoneità per problemi complessi è spesso il segmento più proibitivo e limitazione dei artificiali algoritmi evolutivi. Trovare la soluzione ottimale ai più complessi, problemi dimensionali ad alta multimodali richiede spesso molto costose valutazioni funzione di fitness. In problemi del mondo reale come problemi di ottimizzazione strutturale, una valutazione singola funzione può richiedere diverse ore a diversi giorni di simulazione completa. Metodi di ottimizzazione tipici non può trattare con questi tipi di problema. In questo caso, può essere necessario rinunciare ad una valutazione precisa e utilizzare un palestra approssimata che è computazionalmente efficiente. E 'evidente che amalgama dei modelli approssimativi può essere uno degli approcci più promettenti per l'utilizzo in maniera convincente GA per risolvere i complessi problemi della vita reale.Gli algoritmi genetici non scala bene con la complessità. Cioè, quando il numero di elementi che sono esposti a mutazione è grande vi è spesso un aumento esponenziale dimensioni ricerca dello spazio. Ciò rende estremamente difficile utilizzare la tecnica su problemi come progettare un motore, una casa o piano. Al fine di rendere tali problemi trattabili alla ricerca evolutiva, devono essere suddivisi in più semplice possibile rappresentazione. Quindi noi di solito vedi algoritmi evolutivi codifica disegni per le pale del ventilatore invece di motori, costruendo forme invece di piani di costruzione dettagliati, aerodinamiche invece di disegni aerei interi. Il secondo problema della complessità è il problema di come proteggere le parti che si sono evolute per rappresentare buone soluzioni da un ulteriore mutazione distruttiva, in particolare quando la loro valutazione idoneità impone loro di combinare bene con altre parti. E 'stato suggerito da alcuni [citazione necessaria] nella comunità che un approccio di sviluppo di soluzioni evolute potrebbero superare alcuni dei problemi di protezione, ma questa rimane una questione aperta la ricerca.La soluzione "migliore" è solo rispetto ad altre soluzioni. Come risultato, il criterio di arresto non è chiara in ogni problema.In molti problemi, gas può avere la tendenza a convergere verso ottimi locali o addirittura punti arbitrari piuttosto che l'optimum globale del problema. Ciò significa che non "know how" sacrificare a breve termine per ottenere benessere a lungo termine fitness. La probabilità che ciò si verifichi dipende dalla forma del paesaggio fitness: alcuni problemi può fornire una facile salita verso un ottimo globale, altri può rendere più facile per la funzione per trovare il locale optima. Questo problema può essere alleviato mediante una diversa funzione fitness, aumentando il tasso di mutazione, o utilizzando tecniche di selezione che mantengono una popolazione diversificata di soluzioni, anche se il teorema di No Free Lunch [5] prova [citazione necessaria] che non vi è nessun generale soluzione a questo problema. Una tecnica comune per mantenere la diversità è di imporre una "sanzione di nicchia", in cui, qualsiasi gruppo di individui di somiglianza sufficiente (raggio di nicchia) hanno aggiunto una sanzione, che consentirà di ridurre la rappresentazione di quel gruppo nelle generazioni successive, permettendo altro (meno simile ) gli individui che devono essere mantenute nella popolazione. Questo accorgimento, tuttavia, può non essere efficace, a seconda del paesaggio del problema. Un'altra tecnica possibile sarebbe quella di sostituire semplicemente una parte della popolazione con gli individui generati in modo casuale, quando la maggior parte della popolazione è troppo simili l'uno all'altro. La diversità è importante (algoritmi genetici e programmazione genetica), perché attraversando una popolazione omogenea non produce nuove soluzioni. Nelle strategie di evoluzione e di programmazione evolutiva, la diversità non è essenziale a causa di un maggiore ricorso a mutazione.Operare su insiemi di dati dinamici è difficile, come genomi cominciano a convergere presto verso soluzioni che potrebbero non essere più valido per i dati successivi. Diversi metodi sono stati proposti per ovviare a questo aumentando la diversità genetica e prevenire in qualche modo la convergenza precocemente, aumentando la probabilità di mutazione, quando le gocce di soluzione di qualità (chiamato ipermutazione attivato), o di tanto in tanto l'introduzione di elementi del tutto nuovi, generati in modo casuale nel pool genico (chiamato immigrati casuali). Ancora una volta, le strategie di evoluzione e di programmazione evolutiva può essere implementato con una cosiddetta "strategia virgola" in cui i genitori non vengono mantenute e nuovi genitori sono scelti solo da prole. Questo può essere più efficace sui problemi dinamici.Gas non può efficacemente risolvere i problemi in cui la misura fitness è solo un singolo giusto / sbagliato misura (come problemi di decisione), in quanto non c'è modo di convergere verso la soluzione (nessuna collina a salire). In questi casi, una ricerca casuale può trovare una soluzione veloce come un GA. Tuttavia, se la situazione lo consente il successo / insuccesso di prova deve essere ripetuta dare (forse) risultati diversi, allora il rapporto di successi ai fallimenti fornisce una misura idonea fitness.Per problemi di ottimizzazione specifici problemi e le istanze, algoritmi di ottimizzazione altri possono trovare soluzioni migliori di algoritmi genetici (data la stessa quantità di tempo di calcolo). Algoritmi alternativi e complementari comprendono le strategie di evoluzione, di programmazione evolutiva, simulated annealing, adattamento gaussiana, in salita, e swarm intelligence (ad esempio: ottimizzazione colonia di formiche, l'ottimizzazione sciame di particelle) e metodi basati su programmazione lineare intera. Il problema di cui, eventualmente, i problemi sono adatti per algoritmi genetici (nel senso che questi algoritmi sono migliori di altri) è aperta e controversa.
 Varianti
Il più semplice algoritmo rappresenta ogni cromosoma come una stringa di bit. Tipicamente, i parametri numerici possono essere rappresentati da numeri interi, sebbene sia possibile utilizzare rappresentazioni in virgola mobile. La rappresentazione in virgola mobile è naturale per le strategie di evoluzione e programmazione evolutiva. La nozione di algoritmi genetici a valori reali è stato offerto, ma è in realtà un termine improprio, perché in realtà non rappresenta la teoria blocco di edificio che è stato proposto da John Henry Holland nel 1970. Questa teoria non è però senza supporto, sulla base di risultati teorici e sperimentali (vedi sotto). L'algoritmo di base esegue di crossover e la mutazione a livello di bit. Altre varianti trattare il cromosoma come una lista di numeri che sono gli indici in una tabella di istruzioni, i nodi in una lista collegata, hash, oggetti o qualsiasi altra struttura di dati che si possa immaginare. Crossover e mutazione vengono eseguite in modo da rispettare i confini elementi di dati. Per la maggior parte dei tipi di dati, gli operatori specifici di variazione possono essere progettati. Diversi tipi di dati cromosomiche sembrano funzionare meglio o peggio per i diversi domini di problematiche specifiche.Quando il bit-string rappresentazioni di numeri interi vengono utilizzati, codifica Gray è spesso impiegato. In questo modo, piccole variazioni del numero intero può essere facilmente effettuato mediante mutazioni o crossover. Ciò è stato trovato per aiutare a prevenire la prematura convergenza cosiddette pareti Hamming, in cui le mutazioni simultanee troppi (o eventi di crossover) deve avvenire per cambiare il cromosoma di una soluzione migliore.Altri approcci comportano l'uso di array di valori reali numeri invece di stringhe di bit per rappresentare i cromosomi. Teoricamente, il più piccolo l'alfabeto, migliore è la performance, ma, paradossalmente, buoni risultati sono stati ottenuti da utilizzare a valori reali cromosomi.Una variante molto successo (leggera) del processo generale di costruzione di una nuova popolazione è permettere alcuni degli organismi migliori della generazione corrente di portare alla prossima, inalterato. Questa strategia è nota come la selezione elitaria.Implementazioni parallele di algoritmi genetici sono di due tipi. Algoritmi paralleli a grana grossa genetici assumono una popolazione su ciascuno dei nodi informatici e migrazione degli individui tra i nodi. Algoritmi paralleli a grana fine genetiche assumono un individuo su ogni nodo del processore che agisce con le persone vicine per la selezione e la riproduzione. Altre varianti, come gli algoritmi genetici per problemi di ottimizzazione on-line, di introdurre il tempo-dipendenza o disturbi nella funzione fitness.Gli algoritmi genetici con parametri adattivi (Adaptive algoritmi genetici, AGAS) è una variante significativa e promettente di algoritmi genetici. Le probabilità di crossover (PC) e mutazione (pm) notevolmente determinare il grado di accuratezza della soluzione e la velocità di convergenza degli algoritmi genetici che possono ottenere. Invece di utilizzare valori fissi di pc e pm, AGAS utilizzare le informazioni popolazione in ogni generazione e regolare adattativamente l'pc ore e per mantenere la diversità popolazione nonché per sostenere la capacità di convergenza. In AGA (algoritmo adattivo genetica), [6] l'adeguamento dei pc e pm dipende dai valori di fitness delle soluzioni. In CagA (clustering basato su algoritmo adattivo genetica) [7], attraverso l'utilizzo di analisi di clustering per giudicare gli stati di ottimizzazione della popolazione, l'adeguamento del pc e pm dipende da questi stati di ottimizzazione.Esso può essere molto efficace per combinare GA con altri metodi di ottimizzazione. GA tende ad essere abbastanza bravo a trovare soluzioni globali generalmente buone, ma piuttosto inefficiente a trovare le mutazioni ultimi anni per trovare il migliore in assoluto. Altre tecniche (come la semplice hill climbing) sono abbastanza efficienti nel trovare ottimale assoluta in una regione limitata. Alternando GA e hill climbing può migliorare l'efficienza del GA, mentre superare la mancanza di solidità di hill climbing. Ciò significa che le regole di variazione genetica può avere un significato diverso nel caso naturale. Per esempio - a condizione che i passi sono memorizzati in ordine consecutivo - crossing-over può sommare una serie di passi da DNA materno aggiungendo un certo numero di passi dal DNA paterno e così via. Questo è come aggiungere vettori che più probabilmente può seguire una cresta nel paesaggio fenotipica. Pertanto, l'efficienza del processo può essere aumentata molti ordini di grandezza. Inoltre, l'operatore di inversione ha la possibilità di effettuare operazioni in ordine progressivo o in qualsiasi altro ordine adatto a favore della sopravvivenza o di efficienza. (Si veda ad esempio [8] esempio in viaggio o commesso problema, in particolare l'uso di un operatore ricombinazione bordo.)Una variazione, in cui è evoluta la popolazione nel suo complesso piuttosto che ai suoi singoli membri, è noto come ricombinazione genica piscina.[Edit] Linkage-learningUn certo numero di varianti sono stati sviluppati per tentare di migliorare le prestazioni del gas sui problemi con un elevato grado di epistasi fitness, cioè dove l'idoneità di una soluzione costituita da interagire sottoinsiemi delle sue variabili. Tali algoritmi lo scopo di imparare (prima di sfruttamento) queste interazioni benefiche fenotipici. Come tali, esse sono in linea con l'ipotesi di blocco predefinito in modo adattivo ridurre ricombinazione dirompente. Gli esempi più evidenti di questo approccio comprendono la SMG, [9] GEMGA [10] e LLGA. [11][
 Problema domini
Problemi che sembrano essere particolarmente appropriata per la soluzione da algoritmi genetici sono degli orari e la programmazione problemi, e molti pacchetti software di pianificazione sono a base di gas [citazione necessaria]. GA sono stati anche applicati all'ingegneria. Gli algoritmi genetici sono spesso usato come un approccio per risolvere i problemi di ottimizzazione globale.Come regola generale di pollice algoritmi genetici potrebbero essere utili in ambiti problematici che hanno un paesaggio complesso fitness e di miscelazione, cioè mutazione in combinazione con il crossover, è stato progettato per spostare la popolazione dal ottimi locali che un algoritmo di collina tradizionale scalata potrebbe rimanere bloccato dentro Osservare che gli operatori di crossover di uso comune non è possibile modificare qualsiasi popolazione uniforme. Mutazione da sola può fornire ergodicità del processo complessivo algoritmo genetico (visto come una catena Markov).Esempi di problemi risolti da algoritmi genetici includono: specchi progettati per incanalare la luce solare per un collettore solare, antenne stato progettato per captare segnali radio nello spazio, e metodi a piedi per le figure di computer. Molte delle loro soluzioni sono state molto efficaci, a differenza di tutto ciò che un ingegnere umano avrebbe prodotto, e imperscrutabile di come sono arrivati ​​a quella soluzione.[Modifica]Le simulazioni al computer dell'evoluzione iniziata già nel 1954 con il lavoro di Nils Aall Barricelli, che stava usando il computer presso l'Institute for Advanced Study di Princeton, New Jersey. [12] [13] Il suo 1954 pubblicazione non è stato ampiamente notato. A partire dal 1957, [14], il quantitativo genetista australiano Alex Fraser ha pubblicato una serie di articoli sulla simulazione della selezione artificiale degli organismi con più loci che controllano una caratteristica misurabile. Da questi inizi, simulazione al computer dell'evoluzione dai biologi è diventato più comune nei primi anni 1960, ed i metodi sono stati descritti nei libri di Fraser e Burnell (1970) [15] e Crosby (1973) [16]. Fraser simulazioni incluse tutte le elementi essenziali dei moderni algoritmi genetici. Inoltre, Hans-Joachim Bremermann pubblicato una serie di articoli nel 1960, che ha inoltre adottato una popolazione di soluzione ai problemi di ottimizzazione, in fase di ricombinazione, mutazione e selezione. Bremermann ricerca comprendeva anche gli elementi dei moderni algoritmi genetici. [17] Altri pionieri degni di nota i primi includono Richard Friedberg, George Friedman e Michael Conrad. Molti dei primi articoli sono ristampato da Fogel (1998). [18]Anche se Barricelli, nel lavoro ha riportato nel 1963, aveva simulato l'evoluzione della capacità di giocare un gioco semplice, [19] l'evoluzione artificiale è diventato un metodo di ottimizzazione ampiamente riconosciuto come risultato del lavoro di Ingo Rechenberg e Hans-Paul Schwefel nel 1960 e primi anni 1970 - Rechenberg gruppo è stato in grado di risolvere i problemi dell'ingegneria complessi attraverso strategie evolutive [20] [21] [22] [23] Un altro approccio è stata la tecnica di programmazione evolutiva di Lawrence J. Fogel, che è stata proposta per la generazione di intelligenza artificiale.. Programmazione evolutiva originariamente utilizzato macchine a stati finiti per prevedere gli ambienti, e utilizzato la variazione e la selezione per ottimizzare le logiche predittive. Gli algoritmi genetici, in particolare, è diventato popolare grazie al lavoro di John Holland nei primi anni 1970, e in particolare il suo adattamento libro in sistemi naturali e artificiali (1975). Il suo lavoro nasce con studi di automi cellulari, condotta da Olanda e suoi studenti presso l'Università del Michigan. Holland ha introdotto un quadro formalizzato per predire la qualità della prossima generazione, noto come Teorema Schema Holland. La ricerca in GA è rimasto in larga misura teorica fino alla metà degli anni 1980, quando la Prima Conferenza Internazionale su algoritmi genetici si è tenuta a Pittsburgh, Pennsylvania.Come interesse accademico è cresciuto, il drammatico aumento nel desktop potenza di calcolo ha permesso per l'applicazione pratica della nuova tecnica. Nel tardo 1980, General Electric ha iniziato a vendere il primo prodotto al mondo algoritmo genetico, un mainframe-based toolkit progettato per processi industriali. Nel 1989, Axcelis, Inc. rilasciato Evolver, il primo prodotto al mondo GA commerciale per i computer desktop. Il New York Times tecnologia scrittore John Markoff ha scritto [24] circa Evolver nel 1990.[Edit] tecniche correlateVedi anche: Elenco delle domande di algoritmi genetici[Edit] Parent campiGli algoritmi genetici sono un sottocampo di:Algoritmi evolutiviComputazione evolutivaMetaeuristicheOttimizzazione stocasticaOttimizzazione[Edit] campi correlati[Modifica] Gli algoritmi evolutiviQuesta sezione deve citazioni supplementari per la verifica. Si prega di contribuire a migliorare questa voce aggiungendo citazioni da fonti attendibili. Senza fonte materiale può essere contestato e rimosso. (Maggio 2011)Algoritmi evolutivi è un sotto-campo di computazione evolutiva.Strategie di Evolution (ES, vedere Rechenberg, 1994) gli individui si evolvono attraverso mutazione e ricombinazione intermedia o discreta. ES algoritmi sono progettati in particolare per risolvere i problemi del reale valore di dominio. Essi utilizzano auto-adattamento per regolare i parametri di controllo della ricerca. De-randomizzazione di auto-adattamento ha portato alla contemporanea strategia di Matrix Evolution Covarianza Adaptation (CMA-ES).Programmazione evolutiva (EP) coinvolge le popolazioni di soluzioni con in primo luogo la mutazione e la selezione e rappresentazioni arbitrarie. Usano auto-adattamento per regolare i parametri, e può comprendere le operazioni di variazione di altri come ad esempio combinando le informazioni da parte dei genitori multipli.Espressione di programmazione Gene (GEP) utilizza anche una popolazione di programmi per computer. Questi programmi informatici complessi sono codificati in semplici cromosomi lineari di lunghezza fissa, che vengono poi espressi come alberi di espressione. Albero dell'espressione o programmi informatici evolvere perché i cromosomi subiscono mutazione e ricombinazione in modo simile al canonica GA. Ma grazie alla particolare organizzazione dei cromosomi GEP, le modificazioni genetiche sempre come risultato per i programmi informatici validi. [25]Programmazione genetica (GP) è una tecnica correlata popolare da John Koza in cui sono ottimizzati programmi per computer, piuttosto che parametri della funzione. Programmazione genetica spesso utilizza strutture interne basati su alberi di dati per rappresentare i programmi informatici per l'adattamento al posto delle strutture tipiche lista di algoritmi genetici.Raggruppamento algoritmo genetico (GGA) è una evoluzione del GA in cui si sposta l'attenzione dal singoli elementi, come in Classical Gas, a gruppi, o un sottoinsieme di elementi. [26] L'idea dietro questa evoluzione GA proposto da Emanuel Falkenauer è che la risoluzione di alcuni problemi complessi, di clustering aka o problemi di partizionamento dove una serie di articoli devono essere suddivisi in gruppi disgiunti di elementi in modo ottimale, possono meglio essere raggiunto facendo caratteristiche dei gruppi di elementi equivalenti ai geni. Questo tipo di problemi includono bin imballaggio, bilanciamento delle linee, il raggruppamento rispetto ad una misura di distanza, pile uguali, ecc, sulla quale il gas classico si è dimostrato scarso rendimento. Facendo geni equivalenti ai gruppi implica cromosomi che sono in generale di lunghezza variabile, e speciali operatori genetici che manipolano interi gruppi di articoli. Per bin imballaggio in particolare, un GGA ibridato con il criterio della posizione dominante di Martello e Toth, è probabilmente la tecnica migliore fino ad oggi.Interactive algoritmi evolutivi sono algoritmi evolutivi che utilizzano valutazione umana. Di solito sono applicati ai domini in cui è difficile progettare una funzione di calcolo fitness, per esempio, in continua evoluzione immagini, musica, disegni artistici e forme per adattarsi preferenze estetiche degli utenti.[Edit] Swarm intelligenceSwarm intelligence è un sotto-campo di computazione evolutiva.Ottimizzazione colonia di formiche (ACO) usa molte formiche (o agenti) per attraversare lo spazio delle soluzioni e trovare aree localmente produttive. Mentre di solito inferiore a algoritmi genetici e altre forme di ricerca locale, è in grado di produrre risultati in problemi dove non prospettiva globale o up-to-date può essere ottenuta, e quindi gli altri metodi non possono essere applicati. [Citazione necessaria]Particle Swarm Optimization (PSO) è un metodo computazionale per il multi-parametro di ottimizzazione che utilizza anche l'approccio basato sulla popolazione. Una popolazione (sciame) di soluzioni candidate (particelle) si sposta nello spazio di ricerca, e il movimento delle particelle è influenzata sia dal loro posizione più noto e Swarm globale migliore posizione nota. Come algoritmi genetici, il metodo OSP dipende la condivisione delle informazioni tra i membri della popolazione. In alcuni problemi del PSO è spesso computazionalmente più efficiente del gas, specialmente in problemi non vincolati con variabili continue. [27]Gocce d'acqua intelligenti o l'algoritmo IWD [28] è una natura di ispirazione algoritmo di ottimizzazione ispirato da gocce d'acqua naturali che cambiano il loro ambiente per trovare il percorso ottimale o in prossimità ottimale per la loro destinazione. La memoria è il letto del fiume e ciò che viene modificato dalle gocce d'acqua è la quantità di suolo sul letto del fiume.[Modifica] Altri algoritmi di calcolo evolutivoComputazione evolutiva è un sotto-campo dei metodi metaeuristica.
Harmony ricerca (HS) è un algoritmo che imita i comportamenti dei musicisti nel processo di improvvisazione.Algoritmo di memetica (MA), chiamato anche algoritmo genetico ibrido tra gli altri, è un metodo relativamente nuovo evolutivo in cui viene applicato di ricerca locale durante il ciclo evolutivo. L'idea di algoritmi memetici proviene da memi, che a differenza dei geni, possono adattarsi. In alcune aree problematiche si sono mostrati per essere più efficiente rispetto ai tradizionali algoritmi evolutivi.Algoritmi batteriologici (BA) ispirato dall'ecologia evolutiva e, più in particolare, l'adattamento batteriologica. Ecologia evolutiva è lo studio di organismi viventi nel contesto del loro ambiente, con l'obiettivo di scoprire come si adattano. Il suo concetto di base è che in un ambiente eterogeneo, non riesci a trovare un individuo che si adatta tutto l'ambiente. Quindi, è necessario ragionare a livello di popolazione. Si ritiene inoltre BA potrebbe essere applicato con successo a problemi complessi di posizionamento (antenne per telefoni cellulari, pianificazione urbana, e così via) o il data mining. [29]Algoritmo culturale (CA) consiste della componente popolazione quasi identica a quella dell'algoritmo genetico e, inoltre, un componente conoscenza chiamato spazio credenza.Adattamento gaussiano (adattamento normale o naturale, NA abbreviato per evitare confusione con GA) è destinato alla massimizzazione del rendimento di produzione di sistemi di elaborazione dei segnali. Può anche essere utilizzato per l'ottimizzazione ordinaria parametrica. Si basa su un teorema certo valido per tutte le regioni di accettabilità e di tutte le distribuzioni gaussiane. L'efficienza di NA si basa sulla teoria dell'informazione e una certa teorema di efficienza. La sua efficienza è definita come informazione diviso per il lavoro necessario per ottenere le informazioni. [30] Dato che massimizza NA significa palestra piuttosto che il benessere dell'individuo, il paesaggio viene levigata in modo che i valli tra i picchi potrebbero scomparire. Quindi ha una certa "ambizione" per evitare picchi locali nel panorama fitness. NA è anche bravo a salire creste affilate da un adattamento della matrice momento, perché NA può consentire di massimizzare il disordine (informazioni media) della gaussiana contemporaneamente mantenendo l'idoneità media costante.[Modifica] Altri metodi metaeuristicaMetodi metaeuristica rientrano ampiamente all'interno dei metodi di ottimizzazione stocastica.Simulated annealing (SA) è una tecnica relativa ottimizzazione globale che attraversa lo spazio di ricerca testando mutazioni casuali su una soluzione individuale. Una mutazione che aumenta la fitness è sempre accettato. Una mutazione che riduce fitness è accettata probabilisticamente basato sulla differenza di fitness e un parametro temperatura decrescente. Nel gergo SA, si parla di cercare il più basso di energia, evitando l'idoneità massima. SA può essere utilizzato anche all'interno di un algoritmo standard GA iniziando con un tasso relativamente elevato di mutazione e decrescenti nel tempo lungo un piano determinato.Tabu search (TS) è simile a ricottura in simulato che sia attraversare lo spazio soluzione testando mutazioni di una soluzione individuale. Mentre simulated annealing genera una sola soluzione mutata, ricerca tabu genera molte soluzioni mutati e di passare alla soluzione con il minor energia di quelli generati. Per prevenire bicicletta e favorire una maggiore movimento attraverso lo spazio soluzione, una lista tabu viene mantenuta di soluzioni parziali o complete. E 'vietato passare a una soluzione che contiene elementi della lista tabu, che viene aggiornato come soluzione attraversa lo spazio delle soluzioni.Ottimizzazione estremale (EO) A differenza di Gas, che funzionano con una popolazione di soluzioni candidate, EO si evolve una soluzione unica e rende le modifiche locali ai peggiori componenti. Ciò richiede che una rappresentazione adatta essere selezionata che permette di singoli componenti della soluzione da assegnare una misura di qualità ("fitness"). Il principio di base dietro questo algoritmo è quello di miglioramento emergente attraverso la rimozione selettiva di bassa qualità dei componenti e la loro sostituzione con un componente selezionato casualmente. Questo è decisamente in contrasto con un GA che seleziona buone soluzioni nel tentativo di rendere migliori soluzioni.[Modifica] Altri metodi di ottimizzazione stocasticaIl cross-entropia (CE) metodo genera soluzioni candidati attraverso una distribuzione di probabilità con parametri. I parametri sono aggiornati mediante cross-entropia minimizzazione, in modo da generare migliori campioni nella successiva iterazione.Reattiva ricerca di ottimizzazione (RSO) si auspica l'integrazione delle sub-simbolico tecniche di machine learning in ricerca euristica per la risoluzione di complessi problemi di ottimizzazione. I suggerimenti parola reattivi ad una pronta risposta agli eventi durante la ricerca attraverso un circuito interno feedback online per l'auto-tuning dei parametri critici. Metodologie di interesse per la ricerca includono Reactive machine learning e statistica, in particolare l'apprendimento per rinforzo, apprendimento attivo o di una query, le reti neurali, e la meta-euristiche.[Modifica]Elenco delle domande di algoritmi genetici
Propagazione di schemaDarwinismo universale Riferimenti^ Eiben, A. E. et al (1994). "Gli algoritmi genetici con multi-parent ricombinazione". PPSN III: Atti del Convegno internazionale sulla computazione evolutiva. La Terza Conferenza sul Problem Solving Parallel dalla Natura: 78-87. ISBN 3-540-58484-6.^ Ting, Chuan-Kang (2005). "In media il tempo di convergenza degli algoritmi genetici multi-madri senza selezione". Advances in Artificial Life: 403-412. ISBN 978-3-540-28848-0.^ Akbari, Ziarati (2010). "Un algoritmo evolutivo per l'ottimizzazione multilivello funzioni numeriche" IJIEC 2 (2011): 419-430 [1]^ Goldberg, David E. (1989). Algoritmi genetici in Optimization Search and Machine Learning. Addison Wesley. p. 41. ISBN 0-201-15767-5.^ Wolpert, D.H., Macready, W.G., 1995. Non ci sono teoremi Pranzo libero per l'ottimizzazione. Santa Fe Institute, SFI-TR-05-010, Santa Fe.^ Srinivas. M e Patnaik. L "probabilità adattivi di crossover e mutazione algoritmi genetici", IEEE Transactions on System, Man and Cybernetics, Vol.24, no.4, pp.656-667, 1994.^ ZHANG. J, Chung. H e Lo. W. L, "Clustering-Based Adaptive crossover e la mutazione probabilità di Algoritmi Genetici", IEEE Transactions on Evolutionary Computation Vol.11, n.3, pp 326-335, 2007.^ Evolution-in-a-poche parole^ D.E. Goldberg, B. Korb, e K. Deb. Messy "Algoritmi genetici: Motivazione, analisi e primi risultati". Sistemi Complessi, 5 (3) :493-530, ottobre 1989.^ L'espressione genica: L'anello mancante nella computazione evolutiva^ G. Harik. Imparare collegamento di risolvere efficacemente i problemi di difficoltà delimitata mediante algoritmi genetici. Tesi di dottorato, Dipartimento di Computer Science, University of Michigan, Ann Arbour, 1997^ Barricelli, Nils Aall (1954). "Applicability numerici di Processi di Evoluzione". Methodos: 45-68.^ Barricelli, Nils Aall (1957). "I processi di evoluzione Symbiogenetic realizzato con metodi artificiali". Methodos: 143-182.^ Fraser, Alex (1957). "Simulazione di sistemi automatici genetiche computer digitali. I. Introduzione". Aust. J. Biol. Sci. 10: 484-491.^ Fraser, Alex, Donald Burnell (1970). I modelli al computer nella genetica. New York: McGraw-Hill. ISBN 0-07-021904-4.^ Crosby, Jack L. (1973). Simulazione al computer in Genetica. London: John Wiley & Sons. ISBN 0-471-18880-8.^ 02.27.96 - UC Berkeley Hans Bremermann, professore emerito e pioniere nel campo della biologia matematica, è morto a 69^ Fogel, David B. (editor) (1998). Evolutionary Computation: i reperti fossili. New York: IEEE Press. ISBN 0-7803-3481-7.^ Barricelli, Nils Aall (1963). "Il test numerica delle teorie dell'evoluzione. Parte II. Test preliminari di prestazioni, symbiogenesis e la vita terrestre". Acta Biotheoretica (16): 99-126.^ Rechenberg, Ingo (1973). Evolutionsstrategie. Stoccarda: Holzmann-Froboog. ISBN 3-7728-0373-3.^ Schwefel, Hans-Paul (1974). Numerische Optimierung von Computer-Modellen (tesi di dottorato).^ Schwefel, Hans-Paul (1977). Numerische Optimierung von computor-Modellen mittels der Evolutionsstrategie: mit einer vergleichenden Einführung in die Hill-Climbing-und Zufallsstrategie. Basilea, Stoccarda: Birkhäuser. ISBN 3-7643-0876-1.^ Schwefel, Hans-Paul (1981). Ottimizzazione numerica di modelli di computer (traduzione del 1977 Numerische Optimierung von computor-Modellen mittels der Evolutionsstrategie Chichester, New York:. Wiley ISBN 0-471-09988-0..^ Markoff, John (1990/08/29). "Qual è la migliore risposta? E 'Survival of the Fittest". New York Times. Richiamato 2009/08/09.^ Ferreira, C. "Gene Expression Programming: un nuovo algoritmo adattivo per Soluzione dei problemi". Sistemi Complessi, vol. 13, numero 2: 87-129 ..^ Falkenauer, Emanuel (1997). Algoritmi genetici e problemi di raggruppamento. Chichester, Inghilterra: John Wiley & Sons Ltd. ISBN 978-0-471-97150-4.^ Rania Hassan, Babak Cohanim, Olivier de Weck, Gerhard Vente r (2005) Un confronto di ottimizzazione sciame di particelle e l'algoritmo genetico^ Hamed Shah-Hosseini, L'acqua scende algoritmo intelligente: algoritmo di ottimizzazione di natura di ispirazione swarm-based, International Journal of Bio-Inspired Computation (IJBIC), vol. 1, no. ½, 2009, [2] [link morto]^ Baudry, Benoit, Franck Fleurey, Jean-Marc Jezequel e Yves Le Traon (marzo / aprile 2005). "Automatico Cassa di ottimizzazione del test: un algoritmo batteriologica" (PDF). IEEE Software (IEEE Computer Society) 22 (2): 76-82. DOI: 10.1109/MS.2005.30. Richiamato 2009/08/09.^ Kjellström, G. (dicembre 1991). "Sulla efficienza di adattamento gaussiano". Journal of Optimization Theory and Applications 71 (3): 589-597. DOI: 10.1007/BF00941405.[Modifica] BibliografiaQuesto articolo include un elenco di riferimenti, ma le sue fonti rimangono poco chiari perché non ha sufficienti citazioni in linea. Si prega di contribuire a migliorare questo articolo attraverso l'introduzione di citazioni più precise. (Giugno 2010)Banzhaf, Wolfgang, Nordin, Pietro, Keller, Robert, Francone, Frank (1998) Genetic Programming - Introduzione, Morgan Kaufmann, San Francisco, CA.Bies, Robert R; Muldoon, Matteo F; Pollock, Bruce G; Manuck, Steven, Smith, Gwenn e Vendita, Mark E (2006). "A Genetic Algorithm-Based Learning Approach Hybrid Macchina per la selezione del modello". Journal of Farmacocinetica e farmacodinamica (Paesi Bassi: Springer): 196-221.Cha, Sung-Hyuk, Tappert, Charles C (2009). "Un algoritmo genetico per la costruzione di Compact Binary Decision Trees". Research Journal of Pattern Recognition 4 (1): 1-13.Fraser, Alex S. (1957). "Simulazione dei sistemi genetici da automatici computer digitali. I. Introduzione". Journal australiano di Scienze Biologiche 10: 484-491.Goldberg, David E (1989), Algoritmi Genetici in ricerca, ottimizzazione e Machine Learning, Kluwer Academic Publishers, Boston, MA.Goldberg, David E (2002), The Design of Innovation: Lezioni da e per i competenti Algoritmi Genetici, Addison-Wesley, Reading, MA.Fogel, David B (2006), Evolutionary Computation: Verso una nuova filosofia di una macchina intelligente, IEEE Press, Piscataway, NJ. Terza EdizioneHolland, John H (1975), adattamento nei sistemi naturali e artificiali, University of Michigan Press, Ann ArborKoza, John (1992), Programmazione Genetica: la programmazione di computer per mezzo della selezione naturale, MIT Press. ISBN 0-262-11170-5Michalewicz, Zbigniew (1999), Algoritmi Genetici + Strutture Dati = Programmi Evolution, Springer-Verlag.Mitchell, Melanie, (1996), Introduzione agli algoritmi genetici, MIT Press, Cambridge, MA.Poli, R., Langdon, W. B., McPhee, N. F. (2008). Una guida del campo alla programmazione genetica. Lulu.com, disponibile gratuitamente da internet. ISBN 978-1-4092-0073-4.Rechenberg, Ingo (1994): Evolutionsstrategie '94, Stoccarda: Fromman-Holzboog.Schmitt, Lothar M; Nehaniv, Chrystopher L; Fujii, Robert H (1998), l'analisi lineare degli algoritmi genetici, Theoretical Computer Science 208: 111-148Schmitt, Lothar M (2001), teoria degli algoritmi genetici, Theoretical Computer Science 259: 1-61Schmitt, Lothar M (2004), teoria degli algoritmi genetici II: modelli per operatori genetici sulla stringa tensore rappresentazione delle popolazioni e della convergenza globale ottimali per la funzione di fitness in scala arbitraria, Theoretical Computer Science 310: 181-231Schwefel, Hans-Paul (1974): Numerische Optimierung von Computer-Modellen (tesi di dottorato). Ristampato da Birkhäuser (1977).Vose, Michael D (1999), il semplice algoritmo genetico: Fondazioni e Teoria, MIT Press, Cambridge, MA.Whitley, D. (1994). Un tutorial algoritmo genetico. Statistica e Informatica 4, 65-85.Hingston, Philip F., Barone, Luigi C.; Michalewicz, Zbigniew (2008) Design by Evolution: progressi nella progettazione evolutiva: 297Eiben, Agoston E., Smith, James E. (2003) Introduzione alla computazione evolutiva[Modifica] Collegamenti esterniIn questo articolo l'uso di link esterni non può seguire Wikipedia politiche o linee guida. Si prega di migliorare questo articolo di rimozione di collegamenti esterni eccessivi o inappropriati, e la conversione di link utili, se del caso in riferimenti nota. (Gennaio 2010)[Edit] RisorseDigitalBiology.NET motore di ricerca verticale per GA / GP risorseGenetic Algorithms Index Il sito Genetic Programming Notebook fornisce un puntatore strutturato risorsa per le pagine web nel campo degli algoritmi genetici[Modifica] TutorialsAlgoritmi genetici programmi informatici che "evolvono" in modi che ricordano la selezione naturale in grado di risolvere problemi complessi anche i loro creatori non capiscono fino in fondo Un'ottima introduzione alla GA da John Holland e con una applicazione per il Dilemma del PrigionieroUn dimostratore interattivo online GA di praticare o imparare un GA funziona. Imparare passo dopo passo o guardare la convergenza globale in batch, cambiare le dimensioni della popolazione, tasso di crossover, tasso di mutazione e il meccanismo di selezione e vincoli aggiuntivi.Un Tutorial Genetic Algorithm di Darrell Whitley Dipartimento di Informatica Colorado State University un ottimo tutorial con un sacco di teoria"Essentials of metaeuristiche", 2009 (225 p). Testo libero aperta da Sean Luca.Algoritmi di ottimizzazione globali - Teoria e applicazioni"Demistificazione Genetic Algorithms" Tutorial su come algoritmi genetici funzionano, con esempi.[Modifica] EsempiIntroduzione agli algoritmi genetici interattivi con applet Java. Per sperimentare in linea GA.Attraversare le applicazioni di esempio per disciplina gas con riferimenti.Un applet interattiva con i veicoli in continua evoluzione.


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


L'algoritmo genetico è un algoritmo di ottimizzazione e appartiene ad una particolare classe di algoritmi utilizzati in diversi campi, tra cui l'intelligenza artificiale. È un metodo euristico di ricerca ed ottimizzazione, ispirato al principio della selezione naturale di Charles Darwin che regola l'evoluzione biologica. Il nome deriva dal fatto che i suoi primi pionieri si ispirarono alla natura e alla genetica, branca della biologia. Gli algoritmi genetici sono applicabili alla risoluzione di un'ampia varietà di problemi d'ottimizzazione non indicati per gli algoritmi classici, compresi quelli in cui la funzione obiettivo è discontinua, non derivabile,stocastica, o fortemente non lineare.
Principi di funzionamento
Un tipico algoritmo genetico parte da un certo numero di possibili soluzioni (individui) chiamate popolazione e provvede a farle evolvere nel corso dell'esecuzione: a ciascuna iterazione, esso opera una selezione di individui della popolazione corrente, impiegandoli per generare nuovi elementi della popolazione stessa, che andranno a sostituire un pari numero d'individui già presenti, e a costituire in tal modo una nuova popolazione per l'iterazione (o generazione) seguente. Tale successione di generazioni evolve verso una soluzione ottimale (locale o globale) del problema assegnato.
La loro evoluzione viene ottenuta attraverso una parziale ricombinazione delle soluzioni, ogni individuo trasmette parte del suo patrimonio genetico ai propri discendenti, e l'introduzione di mutazioni casuali nella popolazione di partenza, sporadicamente quindi nascono individui con caratteristiche non comprese tra quelle presenti nel corredo genetico della specie originaria. La mutazione serve, in genere, per inserire un po' di caos tra le soluzioni ed evitare che si cada in un minimo locale.
Finita la fase di evoluzione la popolazione delle soluzioni viene analizzata e vengono tenute solo le soluzioni che meglio risolvono il problema: gli individui con le qualità più adatte all'ambiente in cui si trovano hanno quindi maggiori possibilità di sopravvivere e riprodursi. Queste soluzioni subiranno una nuova fase di evoluzione e così via.
Alla fine ci si aspetta di trovare una popolazione di soluzioni che riescano a risolvere adeguatamente il problema posto. Non vi è modo di decidere a priori se l'algoritmo sarà effettivamente in grado di trovare una soluzione accettabile. Di norma gli algoritmi genetici vengono utilizzati per problemi di ottimizzazione per i quali non si conoscono algoritmi di complessità lineare o polinomiale.
Un caso particolare di applicazione di algoritmi genetici è Acovea, un software studiato per trovare il profilo migliore delle opzioni di ottimizzazione del compilatore gcc: un problema di elevata complessità.
Dettaglio del funzionamento
La soluzione del problema viene codificata in una struttura, di solito una stringa, detta "gene".
Inizialmente viene creato un certo numero di geni in maniera casuale e si definisce una funzione che restituisca la "bontà" di un gene come soluzione del problema, detta funzione di fitness.
L'algoritmo consiste nell'applicazione di operazioni, che tendono a modificare la popolazione dei geni, nel tentativo di migliorarli in modo da ottenere una soluzione sempre migliore.
L'evoluzione procede quindi in passi, per ognuno di questi viene per prima cosa eseguito un ordinamento sui cromosomi sulla base del risultato della funzione di fitness. Vengono poi eseguite le operazioni su un numero di cromosomi stabilito dai parametri dell'algoritmo, che in generale determinano quanti di questi cromosomi devono subire crossover e mutazioni, e in quale misura.
L'algoritmo evolve quindi attraverso i seguenti punti:
generazione, in maniera casuale, di una popolazione iniziale;creazione di una sequenza di nuove popolazioni, o generazioni. In ciascuna iterazione, gli individui della popolazione corrente sono usati per creare la generazione successiva, e a questo scopo si compiono degli ulteriori passi:
ciascun membro della popolazione corrente è valutato calcolandone il rispettivo valore di fitness (idoneità); si determina un opportuno ordinamento di tali individui sulla base dei valori di fitness; gli individui più promettenti sono selezionati come genitori; a partire da tali individui si genera un pari numero di individui della generazione successiva, e ciò può avvenire secondo due modalità distinte, vale a dire effettuando cambiamenti casuali su un singolo genitore (mutazione) oppure combinando opportunamente le caratteristiche di una coppia di genitori (incrocio); gli individui così generati insieme ai genitori (la progenie) vengono selezionati,in base al loro valore nella funzione di fitness, per formare la generazione successiva; infine, l'algoritmo s'interrompe quando uno dei criteri d'arresto è soddisfatto.
Crossover
In base a un coefficiente stabilito inizialmente, alcune parti dei geni risultati migliori vengono scambiate, nell'ipotesi che questo possa migliorare il risultato della funzione di fitness nel successivo "passo evolutivo".
Single point crossing over
Single point crossover Ci son. varie tecniche di crossing over. Una delle più semplice è la "single point crossing over" che consiste nel prendere due individui e tagliare le loro stringhe di codifica in un punto a caso. Si creano così due teste e due code. A questo punto si scambiano le teste e le code, ottenendo due nuovi geni. Il crossing over non è applicato sempre, ma con una probabilità . Nel caso in cui non viene applicato i figli sono semplicemente le copie dei genitori. 
Sperimentalmente si può vedere che il miglioramento diventa apprezzabile solo dopo un certo numero di passi. Questo a meno di casi fortunati, ovviamente.
Mutazione
La mutazione consiste nella modifica casuale di alcune parti dei geni con valore di fitness più basso, in base a coefficienti definiti inizialmente. Queste modifiche puntano a migliorare il valore della funzione per il gene in questione.
In realtà non è corretto pensare di mutare solo i cromosomi con fitness più bassa; al fine di garantire una maggiore capacità esplorativa dell'algoritmo (e non finire in "buche" di ottimo locale) sono ritenute utili anche le mutazioni di cromosomi con valore di fitness alto. In definitiva le mutazioni servono soprattutto a esplorare lo spazio di ricerca, e non hanno quindi scopo migliorativo, anche perché vengono effettuate in modo probabilistico e non deterministico e quindi ogni cromosoma potrebbe essere mutato in modo diverso.
Algoritmo genetico multiobiettivo 
Nel caso in cui si abbia più di un obiettivo da ottimizzare, è possibile utilizzare un algoritmo genetico multiobiettivo. 
Sostanzialmente l'algoritmo funziona come quando va a perseguire un singolo algoritmo, quindi parte sempre da un certo numero di possibili soluzioni (la popolazione) e cerca di individuare, mediante diverse iterazioni, un certo numero di soluzioni ottimali, che si andranno a trovare su un fronte di Pareto. La diversità sta nel fatto che ora esistono due o più funzioni fitness da valutare.
Basi teoriche e storia 
La traduzione e l'estensione dei principi esposti, validi per i sistemi biologici e per i sistemi artificiali, si deve storicamente a John Henry Holland. Dopo un non breve periodo di tempo, in cui il rilievo di tale lavoro non fu pienamente riconosciuto, l'impiego degli algoritmi genetici si è andato consolidando in ambito informatico, ingegneristico, finanziario ed ovviamente nel campo delle scienze sociali e naturali. 
Un teorema, dovuto a Holland, assicura che, sotto determinate ipotesi, gli individui con alti valori di fitness tendono a crescere esponenzialmente nella popolazione attraverso il meccanismo dell'incrocio, assicurando così la convergenza dell'algoritmo genetico verso una soluzione ottimale. Nel suo teorema sugli schemi (schema theorem), detto anche "teorema fondamentale degli algoritmi genetici", egli dimostra che uno schema (ossia una particolare combinazione di geni che occupano posizioni precise all'interno di un cromosoma) prolifera più rapidamente se, oltre ad avere un alto valore di fitness, contiene un piccolo numero di geni specifici non lontani l'uno dall'altro. Ciò, infatti, riduce la probabilità di distruggere lo schema durante la fase di riproduzione. 
Brevi successioni di geni, che assumono particolari valori, definiscono i cosiddetti blocchi costitutivi (building blocks): favorendo l'incrocio dei cromosomi meglio adattati, in cui si riscontra statisticamente la presenza di peculiari blocchi costitutivi, l'algoritmo aumenta la probabilità che blocchi costituenti opportuni, provenienti da cromosomi diversi, si ritrovino in uno stesso cromosoma. Assumendo che l'associazione di siffatti blocchi sia dunque vantaggiosa, dovrà anche ritenersi probabile la comparsa di un cromosoma (soluzione) eccellente per il problema in esame, in un tempo ragionevole.
La dimostrazione del teorema degli schemi è basata sull'ipotesi di codifica binaria, ma Wright (1991) l'ha estesa al caso di codifica con numeri reali; lo stesso Wright ha mostrato che una codifica reale è da preferirsi nel caso di problemi continui d'ottimizzazione. Herrera e Lozano (1998) hanno poi presentato un'ampia rassegna di operatori genetici applicabili a cromosomi codificati mediante numeri reali, compresi vari tipi di operatori di crossover (incrocio).
Pertanto, il campo dei numeri reali costituisce ormai un'appropriata e consolidata forma di rappresentazione per gli algoritmi genetici in domini continui. Tuttavia, a causa di complessi fenomeni di interazione non lineare (epistaticità) tra gruppi di valori di una stringa rappresentante un individuo, non si può affermare con certezza che la combinazione di blocchi costitutivi caratterizzati da prestazioni elevate sia sempre destinata a produrre individui ancora migliori. In altri termini, non sempre l'operazione genetica di crossover produce risultati accettabili, e anzi a volte accade che, a partire da due genitori estremamente promettenti, si ottenga un discendente decisamente meno valido.
Programmazione evolutiva 
In questi casi, la cosiddetta programmazione evolutiva, sviluppata principalmente da David B. Fogel, anch'essa ispirata all'evoluzione naturale ma non alla genetica, può essere impiegata con successo nelle applicazioni. Tale metodologia differisce dagli algoritmi genetici in quanto non utilizza l'operazione genetica di crossover, che invece per essi risulta imprescindibile.
Programmazione genetica 
La programmazione genetica, elaborata fondamentalmente ad opera di John R. Koza, è invece un metodo per la generazione automatica di programmi, a partire da una descrizione ad alto livello del task da svolgere, e basato sul principio darwiniano della selezione naturale allo scopo di sviluppare una popolazione di programmi migliorativi nell'arco delle successive generazioni. Essa si avvale di operazioni capaci di alterare l'architettura di detti programmi e di prendere decisioni sull'uso delle subroutine, dei loop, della ricorsione e della memoria.
Da ciò si nota che la programmazione genetica costituisce in sostanza un'estensione degli algoritmi genetici al caso di popolazioni costituite da programmi di dimensione variabile; la programmazione genetica sostituisce in altri termini alla stringa di lunghezza costante, codificata in vario modo, un programma con struttura ad albero, il cui corpo (radice, nodi intermedi) è costituito da funzioni aritmetiche o logiche, mentre i nodi terminali rappresentano variabili o costanti numeriche. Pertanto la popolazione risulta ora composta da un numero opportuno di programmi, i quali mediante le operazioni genetiche di riproduzione (non è prevista alcuna mutazione) producono, in un certo numero di generazioni, il programma che risolve al meglio un problema assegnato, in forma topologica parametrizzata.
Neuroevoluzione 
Infine, si denota col termine neuroevoluzione l'uso degli algoritmi genetici, o di altri metodi e tecniche evolutive, nella messa a punto delle reti neurali artificiali, per quanto riguarda sia l'architettura della rete (cioè la sua struttura intesa come numero di nodi e numero di connessioni tra i nodi stessi), sia i parametri relativi (ossia i pesi delle connessioni tra i nodi). Un metodo neuroevolutivo degno di nota è quello proposto recentemente da K. Stanley, denominato NEAT (NeuroEvolution of Augmenting Topologies), e basato su un processo di graduale incremento della complessità strutturale delle reti che si propongono di risolvere un problema assegnato (tipicamente un problema di reinforcement learning). A partire da reti estremamente semplici, in quanto completamente prive di neuroni intermedi, la procedura in questione sembra avere maggiori possibilità di determinare soluzioni efficaci e robuste rispetto a metodi analoghi, che però partono da topologie predeterminate o comunque casuali. I tre princìpi fondamentali su cui si basa il NEAT sono i seguenti:
il primo principio è l'omologia: il NEAT codifica ciascun nodo e ciascuna connessione della rete attraverso un gene. Ogni volta che una mutazione strutturale sfocia nella creazione di un nuovo gene, quel gene riceve un contrassegno numerico che lo rende permanentemente rintracciabile. Tale marcatura storica è utilizzata in seguito per verificare la conciliabilità di geni omologhi durante l'operazione dicrossover, e per definire un operatore di compatibilità;
il secondo principio è la protezione dell'innovazione. L'operatore di compatibilità definito in precedenza è adoperato per dividere la popolazione, composta da reti neurali, in specie differenti, allo scopo di proteggere le soluzioni innovative da un'eliminazione prematura, e di prevenire l'incrocio di materiale genetico incompatibile. Tali innovazioni strutturali presentano una significativa possibilità di raggiungere il loro pieno potenziale, in quanto protette dal resto della popolazione attraverso la suddivisione in specie, cioè la creazione di nicchie o spazi riservati;
da ultimo, il principio secondo cui la ricerca di una soluzione dovrebbe avvenire nel più piccolo spazio possibile (inteso come numero di dimensioni), da espandere poi in maniera graduale. Cominciando il processo evolutivo da una popolazione di elementi a struttura minima, le successive mutazioni topologiche comportano l'aggiunta di nuovi nodi e connessioni alle reti, conducendo pertanto ad una crescita incrementale della popolazione stessa. Dal momento che solo le modifiche strutturali vantaggiose tendono a sopravvivere nel lungo termine, le topologie che vengono raffinate tendono ad essere le minime necessarie alla soluzione del problema assegnato.

D.B. Fogel, Evolutionary computation: toward a new philosophy of machine intelligence, IEEE Press, NewYork, 1995 ISBN 0-7803-5379-X
J.R Koza, Genetic programming: on the programming of computers by means of natural selection, MIT Press, Cambridge, MA, 1992 ISBN 0-262-11170-5
Poli, R., Langdon, W. B., McPhee, N. F. (2008), A Field Guide to Genetic Programming, Lulu.com, disponibile gratuitamente via internet ISBN 978-1-4092-0073-4
Alden H. Wright, Genetic Algorithms for Real Parameter Optimization, 1991 [1]
Collegamenti esterni [modifica]
(EN) Gioco multigiocatore di strategia online basato su Algoritmici Genetici
(EN) Genetic Algorithms in Ruby
(EN) Genetic Algorithms di J. Holland
(EN) Materiale della American Association for Artificial Intelligence
(EN) Acovea
Braccio meccanico ad apprendimento genetico Simulazione fisica di un braccio meccanico e una palla. Utilizzando algoritmi genetici evolve ed impara ad eseguire semplici esercizi (ad esempio tirare la palla più distante possibile).
Gli algoritmi genetici e i rubini Tutorial con implementazione in Ruby di un framework per algoritmi genetici.
Algoritmi genetici Algoritmi genetici: teoria ed esempi in Matlab
(EN) Global Optimization Algorithms - Theory and Application

.TEMI RILEVANTI

---- STUDI (72) ---- RICERCHE (55) ---- SCOPERTE (45) ---- F O X P 2 (39) ANTROPOLOGIA DELLA COMUNICAZIONE (33) ---- evoluzione (20) ---- DNA (13) ---- INFO (13) ---- geografia Umana in adeguamento (13) ---- INFO foxp2 (12) ---- TEORIA EVOLUTIVA - NEWS (12) ---- INFO influenza suina (8) ---- STUDI. ---- mutazioni (8) ---- EVOLUZIONE rapidita della (7) Studi (7) Scoperte (6) ---- Antropologia culturale (5) ---- Biologia (5) ---- MUTAZIONI (5) ---- NUOVE TEORIE (5) ---- PROTEINE (5) ---- RIPRODUZIONE (5) ---- analisi comportamentali (5) ---- genetica (5) Evoluzione (5) ---- Conferme (4) ---- UCCELLI ---- MUTAZIONI (4) ---- antropologia evolutiva (4) ---- empatia. (4) ---- FIORI (3) ---- MIGRAZIONE UMANA (3) ---- Paleontologia (3) ---- Uccelli (3) ---- alimentazione (3) ---- arte e cultura (3) ---- attivarazione dei geni (3) ---- esperimenti (3) ---- legami genetici (3) ---- origini delle varie popolazioni umane (3) ----gene che determina il colore (3) Algoritmi per l'evoluzione (3) F O X P 2 (3) FOXP2 Origine della forma moderna del gene (3) Neandertal (3) Teoria evolutiva (3) analisi comportamentali (3) ---- Alzheimer (2) ---- Charles Darwin (2) ---- Dinosauri (2) ---- FOTO (2) ---- RNA (2) ---- SPAZIO (2) ---- algoritmi per l'evoluzione (2) ---- cooperazione (2) ---- denti (2) ---- evoluzione ----- due milioni di anni (2) ---- evoluzione del sesso (2) ---- paleontologia. ---- geologia (2) ----- due milioni di anni (2) ----Homo floresiensis---- (2) ----MATRIMONI (2) ----Neanderthal (2) ----Psicologia (2) ----studi (2) Analisi (2) Charles Darwin (2) Creazione di una cellula batterica controllata da una sintesi chimica del Genoma (2) Esplorazione (2) L'origine e l'evoluzione del genere Homo (2) Linguistica evolutiva (2) Oskar mRNA (2) Periodi di tempi geologici (2) Periodi evolutiuvi (2) Ricerche (2) archivio (2) cancro (2) geni che controllano i tratti e che influenzano pertanto il processo di speciazione (2) geni ruolo (2) geni tipo di (2) geografia Umana in adeguamento (2) gusto (2) lotta contro il cancro (2) mutazioni in geni attivi (2) organismi: capacita di adattarsi ai cambiamenti ambientali (2) sapore (2) scenari evolutivi e le forze di base. (2) ---- tirannosauri (1) ---- 100.000 di anni fà (1) ---- 4 (1) ---- 47 milioni di anni fa (1) ---- 700000 anni più vicini agli albori della stirpe umana (1) ---- ANALISI (1) ---- ANTICHI LIBRI. (1) ---- Acoelomorpha (1) ---- Altruismo (1) ---- Cervello (1) ---- Dolore. (1) ---- ENERGIA (1) ---- Ecco come i geni di lavoro. (1) ---- GRUPPI ETNICI (1) ---- Megafossili (1) ---- NEURONI (1) ---- Origini Celtiche (1) ---- PROCESSORI QUANTISTICI (1) ---- STUDI ----MATRIMONI (1) ---- Sesso (1) ---- Smalto (1) ---- Tyrannosaurus rex (1) ---- astronomia (1) ---- datazione della terra (1) ---- ereditarieta (1) ---- filosofia (1) ---- infezioni (1) ---- info news genomica (1) ---- linkage disequilibrium (LD) (1) ---- morte di Lévi-Strauss (1) ---- organi rudimentali (1) ---- pericoli (1) ---- pesci (1) ---- prove (1) ---- provincia meridionale cinese di Guangxi (1) ---- rove (1) ---- studio del dolore (1) ----- Funghi Antichi (1) ----- processi decisionali (1) -----Fair play (1) -----L'assunzione di rischi (1) -----lattasi (1) ----3 (1) ----Ardi. (1) ----Coordinamento (1) ----Homo ergaster (1) ----Homo habilis (1) ----Homo heidelbergensis (1) ----Homo rudolfensis (1) ----L'origine e l'evoluzione del genere Homo (1) ----Late Homo (1) ----Medio Homo (1) ----Nbs1 (1) ----Primi Homo (1) ----RNA (1) ----Storia vertrebati (1) ----complesso MRN (1) ----comunicazione nel cervello (1) ----energia oscura (1) ----genoma di un cavallo domestico (1) ----hobbit (1) ----mappatura del genoma (1) ----meccanismo che impedisce a due specie di riprodursi (1) ----motore che sposta i cromosomi (1) ----uomo moderno (1) 0 milioni di anni fa (1) 1 (1) 3 (1) 4 milioni di anni fa (1) Actina (1) Amore (1) Analisi sui Social (1) Anoiapithecus brevirostris (1) Antropologia culturale (1) Azendohsaurus come Bizarre Reptile Early (1) Biodiversita (1) Cannibalismo (1) Charles Darwin e la teoria Alfred Russel Wallace (1) DNA mutazione (1) Dinosauri (1) Elenco dei periodi archeologici (1) GENETICA PROVE (1) GenePRIMP (1) HMP-microbioma umano (1) Homo sapiens origine. (1) INFO foxp2 (1) Intelligenza emotiva (EI) (1) La lingua come un mezzo universale simbolica (1) La mutazione in corso. (1) Linguaggio (1) Linguisti (1) Migrazione umano (1) News (1) Nosmips che vivevano in Africa quasi 37 milioni di anni fa. (1) Qualità di prova per la famiglia-genoma (1) RIicerca (1) Software come GenePRIMP (1) Srna (1) Studio del dolore (1) TRANSIZIONE EVOLUTIVA (1) amare dal punto di vista antropologico evolutivo. (1) analisi 2010. (1) batteri (1) c (1) cellula sintetica (1) cellula staminali nel cervello umano in sviluppo (1) co-evoluzione della vita e ambiente. (1) comportamenti (1) cooperazione; Scienze della Terra; Meteorologia (1) e resistenti contro gli effetti delle mutazioni. (1) energia naturale (1) evoluzione del sesso (1) evoluzione e vegetali (1) evoluzione primati (1) gene procariotico (1) genomi microbici (1) interazioni (1) interazioni preda simili sulla terra e negli oceani (1) la selezione sessuale e un run-via dell'evoluzione del linguaggio (1) milioni di anni fa (1) motocondri (1) nuova era (1) nuovi metodi statistici per l'analisi genetica e analizzare i dati dagli esseri umani e altri organismi. (1) origine della vita (1) passaggio dall'acqua alla terra (1) percezione della vita (1) pesci (1) predisposizioni cognitive e fisiche per la lingua (1) reciprocità (1) sRNAs (1) selezione ha un ruolo importante da svolgere per l'evoluzione e il livello di diversità (1) studio dei collegamenti sulla variazione genetica di empatia individuale (1) telomeri sono "brevi" tratti di DNA specializzati (1)

ORDINE ALFABETICO

---- tirannosauri (1) ---- 100.000 di anni fà (1) ---- 4 (1) ---- 47 milioni di anni fa (1) ---- 700000 anni più vicini agli albori della stirpe umana (1) ---- Acoelomorpha (1) ---- algoritmi per l'evoluzione (2) ---- alimentazione (3) ---- Altruismo (1) ---- Alzheimer (2) ---- ANALISI (1) ---- analisi comportamentali (5) ---- ANTICHI LIBRI. (1) ---- Antropologia culturale (5) ---- antropologia evolutiva (4) ---- arte e cultura (3) ---- astronomia (1) ---- attivarazione dei geni (3) ---- Biologia (5) ---- Cervello (1) ---- Charles Darwin (2) ---- Conferme (4) ---- cooperazione (2) ---- datazione della terra (1) ---- denti (2) ---- Dinosauri (2) ---- DNA (13) ---- Dolore. (1) ---- Ecco come i geni di lavoro. (1) ---- empatia. (4) ---- ENERGIA (1) ---- ereditarieta (1) ---- esperimenti (3) ---- evoluzione (20) ---- evoluzione ----- due milioni di anni (2) ---- evoluzione del sesso (2) ---- EVOLUZIONE rapidita della (7) ---- F O X P 2 (39) ---- filosofia (1) ---- FIORI (3) ---- FOTO (2) ---- genetica (5) ---- geografia Umana in adeguamento (13) ---- GRUPPI ETNICI (1) ---- infezioni (1) ---- INFO (13) ---- INFO foxp2 (12) ---- INFO influenza suina (8) ---- info news genomica (1) ---- legami genetici (3) ---- linkage disequilibrium (LD) (1) ---- Megafossili (1) ---- MIGRAZIONE UMANA (3) ---- morte di Lévi-Strauss (1) ---- MUTAZIONI (5) ---- NEURONI (1) ---- NUOVE TEORIE (5) ---- organi rudimentali (1) ---- Origini Celtiche (1) ---- origini delle varie popolazioni umane (3) ---- Paleontologia (3) ---- paleontologia. ---- geologia (2) ---- pericoli (1) ---- pesci (1) ---- PROCESSORI QUANTISTICI (1) ---- PROTEINE (5) ---- prove (1) ---- provincia meridionale cinese di Guangxi (1) ---- RICERCHE (55) ---- RIPRODUZIONE (5) ---- RNA (2) ---- rove (1) ---- SCOPERTE (45) ---- Sesso (1) ---- Smalto (1) ---- SPAZIO (2) ---- STUDI (72) ---- STUDI ----MATRIMONI (1) ---- STUDI. ---- mutazioni (8) ---- studio del dolore (1) ---- TEORIA EVOLUTIVA - NEWS (12) ---- Tyrannosaurus rex (1) ---- Uccelli (3) ---- UCCELLI ---- MUTAZIONI (4) ----- due milioni di anni (2) ----- Funghi Antichi (1) ----- processi decisionali (1) -----Fair play (1) -----L'assunzione di rischi (1) -----lattasi (1) ----3 (1) ----Ardi. (1) ----complesso MRN (1) ----comunicazione nel cervello (1) ----Coordinamento (1) ----energia oscura (1) ----gene che determina il colore (3) ----genoma di un cavallo domestico (1) ----hobbit (1) ----Homo ergaster (1) ----Homo floresiensis---- (2) ----Homo habilis (1) ----Homo heidelbergensis (1) ----Homo rudolfensis (1) ----L'origine e l'evoluzione del genere Homo (1) ----Late Homo (1) ----mappatura del genoma (1) ----MATRIMONI (2) ----meccanismo che impedisce a due specie di riprodursi (1) ----Medio Homo (1) ----motore che sposta i cromosomi (1) ----Nbs1 (1) ----Neanderthal (2) ----Primi Homo (1) ----Psicologia (2) ----RNA (1) ----Storia vertrebati (1) ----studi (2) ----uomo moderno (1) 0 milioni di anni fa (1) 1 (1) 3 (1) 4 milioni di anni fa (1) Actina (1) Algoritmi per l'evoluzione (3) amare dal punto di vista antropologico evolutivo. (1) Amore (1) Analisi (2) analisi 2010. (1) analisi comportamentali (3) Analisi sui Social (1) Anoiapithecus brevirostris (1) Antropologia culturale (1) ANTROPOLOGIA DELLA COMUNICAZIONE (33) archivio (2) Azendohsaurus come Bizarre Reptile Early (1) batteri (1) Biodiversita (1) c (1) cancro (2) Cannibalismo (1) cellula sintetica (1) cellula staminali nel cervello umano in sviluppo (1) Charles Darwin (2) Charles Darwin e la teoria Alfred Russel Wallace (1) co-evoluzione della vita e ambiente. (1) comportamenti (1) cooperazione; Scienze della Terra; Meteorologia (1) Creazione di una cellula batterica controllata da una sintesi chimica del Genoma (2) Dinosauri (1) DNA mutazione (1) e resistenti contro gli effetti delle mutazioni. (1) Elenco dei periodi archeologici (1) energia naturale (1) Esplorazione (2) Evoluzione (5) evoluzione del sesso (1) evoluzione e vegetali (1) evoluzione primati (1) F O X P 2 (3) FOXP2 Origine della forma moderna del gene (3) gene procariotico (1) GenePRIMP (1) GENETICA PROVE (1) geni che controllano i tratti e che influenzano pertanto il processo di speciazione (2) geni ruolo (2) geni tipo di (2) genomi microbici (1) geografia Umana in adeguamento (2) gusto (2) HMP-microbioma umano (1) Homo sapiens origine. (1) INFO foxp2 (1) Intelligenza emotiva (EI) (1) interazioni (1) interazioni preda simili sulla terra e negli oceani (1) L'origine e l'evoluzione del genere Homo (2) La lingua come un mezzo universale simbolica (1) La mutazione in corso. (1) la selezione sessuale e un run-via dell'evoluzione del linguaggio (1) Linguaggio (1) Linguisti (1) Linguistica evolutiva (2) lotta contro il cancro (2) Migrazione umano (1) milioni di anni fa (1) motocondri (1) mutazioni in geni attivi (2) Neandertal (3) News (1) Nosmips che vivevano in Africa quasi 37 milioni di anni fa. (1) nuova era (1) nuovi metodi statistici per l'analisi genetica e analizzare i dati dagli esseri umani e altri organismi. (1) organismi: capacita di adattarsi ai cambiamenti ambientali (2) origine della vita (1) Oskar mRNA (2) passaggio dall'acqua alla terra (1) percezione della vita (1) Periodi di tempi geologici (2) Periodi evolutiuvi (2) pesci (1) predisposizioni cognitive e fisiche per la lingua (1) Qualità di prova per la famiglia-genoma (1) reciprocità (1) Ricerche (2) RIicerca (1) sapore (2) scenari evolutivi e le forze di base. (2) Scoperte (6) selezione ha un ruolo importante da svolgere per l'evoluzione e il livello di diversità (1) Software come GenePRIMP (1) Srna (1) sRNAs (1) Studi (7) studio dei collegamenti sulla variazione genetica di empatia individuale (1) Studio del dolore (1) telomeri sono "brevi" tratti di DNA specializzati (1) Teoria evolutiva (3) TRANSIZIONE EVOLUTIVA (1)