Nella lezione precedente, il sistema evolutivo accumulava capacità grazie al ciclo chiuso "generazione — valutazione — selezione — ereditarietà". In questa lezione spingiamo questo principio un livello più a fondo: non si tratta solo di far risolvere problemi agli algoritmi, ma di far migliorare gli algoritmi da altri algoritmi.MetaDE è proprio un'architettura evolutiva annidata di questo tipo: scompone l'evoluzione differenziale (DE) in due livelli, uno interno e uno esterno, rendendo l'"algoritmo che ottimizza algoritmi" un processo di calcolo effettivamente eseguibile.
1. La divisione dei compiti tra i due livelli: chi risolve, chi evolve
MetaDE organizza la DE su due livelli, interno ed esterno, che operano su oggetti completamente diversi:
- DE interna (livello del compito): è orientata al compito di ottimizzazione reale, mantiene una popolazione di soluzioni candidate, esegue ripetutamente mutazione, crossover e selezione, avvicinandosi progressivamente a soluzioni di alta qualità per il compito. Risponde alla domanda "come sta andando la risoluzione di questo problema".
- DE esterna (livello meta): è orientata all'algoritmo stesso; ogni individuo della popolazione non è una soluzione al compito, ma un insieme completo di configurazioni di "strategia di mutazione + parametri", ad esempio quale tipo di mutazione adottare e quali valori assegnare al fattore di scala e alla probabilità di crossover. Risponde alla domanda "questa configurazione dell'algoritmo è efficace".
Il livello esterno, quindi, non ottimizza direttamente le variabili del compito: queste restano sempre in carico al livello interno. Ciò che il livello esterno modifica è soltanto il "manuale operativo" del livello interno.
2. Il ciclo chiuso di interazione: invio delle configurazioni e restituzione delle prestazioni
I due livelli sono accoppiati da un canale bidirezionale che forma un ciclo chiuso: il livello esterno produce prima una configurazione dell'algoritmo e la invia (→) al livello interno; il livello interno esegue il compito secondo tale configurazione e, al termine, restituisce le prestazioni ottenute (→) al livello esterno; su questa base il livello esterno conserva e ricombina le configurazioni migliori, generando la configurazione del ciclo successivo. L'intero processo si può riassumere così: configurazione esterna → risoluzione interna → prestazioni sul compito → aggiornamento esterno, in un ciclo continuo.
Questo ciclo chiuso introduce una proprietà chiave: la strategia di mutazione e i parametri dell'algoritmo interno non vengono più impostati una volta per tutte dall'uomo e mantenuti fissi, ma vengono continuamente riscritti dalla ricerca del livello esterno; l'algoritmo acquisisce così un canale di auto-miglioramento.
3. Il prerequisito per l'esecuzione: parallelismo e compromesso sui costi
La struttura annidata non è priva di costi. Ogni valutazione del livello esterno richiede di eseguire completamente una configurazione sul compito, amplificando notevolmente il costo di valutazione; più grande è la popolazione esterna, maggiore è il costo complessivo. È proprio per questo che MetaDE si basa sul parallelismo delle GPU: più configurazioni interne possono essere valutate simultaneamente, il tempo necessario per una singola iterazione esterna viene ridotto in modo significativo, e la meta-evoluzione annidata diventa ingegneristicamente eseguibile. Al contrario, se le risorse di parallelismo disponibili sono insufficienti, ridurre la scala del livello esterno o abbassare la precisione di valutazione interna è spesso più realistico che ampliare ciecamente la ricerca.
