Perché il crossover fa parte degli algoritmi genetici?


8

Algoritmi genetici è venuto recentemente alla mia attenzione quando ho cercato di correggere / migliorare gli avversari informatici per i giochi di strategia a turni.

Ho implementato un semplice algoritmo genetico che non utilizzava alcun cross-over, ma solo una mutazione casuale. Sembrava funzionare in questo caso, e così ho iniziato a pensare:

Perché il crossover fa parte degli algoritmi genetici? La mutazione non sarebbe sufficiente?

Questo proviene da un dump di dati su un vecchio sito AI. Il richiedente aveva l'UID di 7.

Risposte:


7

La mutazione viene generalmente definita come un operatore globale , ovvero la mutazione iterata è (eventualmente) in grado di raggiungere ogni punto dello spazio vettoriale definito dal genoma. In tal senso, la sola mutazione è certamente "sufficiente".

Per quanto riguarda la motivazione per il crossover - da Essentials of Metaheuristics , p42:

Il crossover era originariamente basato sul presupposto che individui molto in forma spesso condividessero alcuni tratti, chiamati blocchi predefiniti , in comune. Ad esempio, nell'individuo booleano 10110101, forse *** 101 * 1 potrebbe essere un blocco predefinito

(dove * significa "0 o 1")

Quindi l'idea è che il crossover funzioni diffondendo rapidamente i blocchi in tutta la popolazione.

I metodi crossover presumono anche che ci sia un certo grado di legame tra i geni sul cromosoma: cioè, le impostazioni di alcuni geni nei gruppi sono fortemente correlate al miglioramento della forma fisica. Ad esempio, i geni A e B potrebbero contribuire al fitness solo quando entrambi sono impostati su 1: se uno dei due è impostato su 0, il fatto che l'altro sia impostato su 1 non fa nulla.

Si noti inoltre che il crossover non è un operatore globale . Se l'unico operatore è crossover allora (anche da p42):

Alla fine la popolazione converge, e spesso (purtroppo) prematuramente convergono, in copie dello stesso individuo. A questo punto non c'è scampo: quando un individuo attraversa se stesso, non viene generato nulla di nuovo.

Per questo motivo, il crossover viene generalmente utilizzato insieme ad alcuni operatori di mutazioni globali.


5

Il crossover consente di combinare due genitori (rispetto alla mutazione, che utilizza solo un genitore). In alcuni casi, è utile (ad esempio, se si allena un bot FPS, se un genitore è bravo a sparare e un altro genitore è bravo a muoversi, ha senso combinarli). In alcuni altri casi, non lo è.


4

Quando si pensa al crossover è importante pensare al panorama del fitness.

Considera uno scenario ipotetico in cui stiamo applicando un algoritmo genetico per trovare una soluzione che funzioni bene in 2 compiti. Questo potrebbe essere dall'esempio di Franck (spostare e sparare) per un'intelligenza artificiale, o forse potrebbe essere previsto 2 risultati in uno scenario di apprendimento automatico genetico, ma in realtà la maggior parte degli scenari in cui vengono applicati i GA sono sinonimi (anche nel risolvere un singolo compito, potrebbe esserci essere diversi aspetti del compito da affrontare).

Supponiamo di avere un individuo, 1, che si stava comportando ragionevolmente bene in entrambi i compiti, e abbiamo trovato una serie di mutazioni che hanno prodotto 2 nuovi individui, 2 e 3, che si sono comportati meglio dell'individuo 1 nei compiti 1 e 2 rispettivamente. Ora, mentre entrambi sono miglioramenti, idealmente vogliamo trovare una soluzione generalmente buona, quindi vogliamo unire le funzionalità che ci sono state ritenute utili.

Qui entra in gioco il crossover; combinando i genomi degli individui 2 e 3, possiamo trovare un nuovo individuo che produce una miscela delle loro esibizioni. Mentre è possibile che un tale individuo possa essere prodotto da una serie di mutazioni applicate all'individuo 2 o all'individuo 3, il paesaggio potrebbe semplicemente non adattarsi a questo (ad esempio, potrebbero non esserci mutazioni favorevoli in quella direzione).

inserisci qui la descrizione dell'immagine

Hai parzialmente ragione quindi; a volte può accadere che i benefici del crossover possano essere replicati con una serie di mutazioni. A volte questo potrebbe non essere il caso e il crossover può appianare il panorama del fitness della GA, accelerando l'ottimizzazione e aiutando la GA a sfuggire all'optima locale.


Se (come dovrebbe essere il caso) l'operatore di mutazione è globale (cioè in grado di esprimere tutti i punti nello spazio di ricerca) è sempre possibile esprimere i risultati del crossover tramite (alcune sequenze di) mutazioni. Tuttavia (secondo la mia risposta) il contrario non è il caso.
NietzscheanAI,

È vero, volevo solo illustrare il punto sollevato da te e Franck con un esempio :)
Tim Atkinson,

Gli esempi sono sempre buoni - dovrei includerne altri ;-)
NietzscheanAI
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.