Computazione evolutiva interattiva
# Computazione evolutiva interattiva

Con il termine computazione evolutiva interattiva ci si riferisce a tutti gli approcci che inglobano una valutazione umana all'interno di un algoritmo di computazione evolutiva. Nella formulazione più semplice possibile, un algoritmo di computazione evolutiva interattiva usa un giudizio soggettivo come propria funzione obiettivo. In una definizione più ampia, esso integra un qualsiasi tipo di interfaccia uomo-macchina all'interno di un algoritmo di computazione evolutiva. In linea generale, si situa l'inizio di tale campo di ricerca agli studi di Richard Dawkins sui cosiddetti biomorfi nel 1986.

## Categorizzazione

È possibile categorizzare gli algoritmi di computazione evolutiva interattiva a seconda del loro algoritmo di computazione evolutiva di partenza. Esistono quindi algoritmi genetici interattivi, strategie evolutive interattive, algoritmi di programmazione genetica interattivi, e così via. Una seconda possibile categorizzazione riguarda invece la modalità in cui la valutazione umana è integrata nell'algoritmo stesso:

* Essa può sostituire completamente la valutazione della funzione obiettivo dell'algoritmo, come nel lavoro già citato di Richard Dawkins. In questo caso, l'utente giudica le soluzioni trovate dall'algoritmo, valutandole esplicitamente con un voto numerico, o implicitamente scegliendo quelle che ritiene migliori.
* Nel contesto di problemi di ottimizzazione multi-obiettivo, l'utente può guidare la ricerca del fronte di pareto esprimendo le sue preferenze sulle soluzioni trovate. In questo caso si parla di ottimizzazione multiobiettivo interattiva.
* Infine, l'utente può agire sugli altri elementi del processo di ricerca, ad esempio sulla creazione di nuovi vincoli, sulla formulazione del problema da risolvere, o sulla combinazione delle soluzioni risultanti.

## Problematiche e linee di ricerca

La problematica maggiore nell'utilizzo di algoritmi di programmazione evolutiva interattiva si presenta quando l'utente rimpiazza la funzione obiettivo, e riguarda l'affaticamento dell'utente stesso, il quale è tenuto ad esprimere un giudizio su una grande quantità di possibili ipotesi. Una seconda problematica è invece data dal fatto che, in molti campi, un utente non è in grado di discernere soluzioni molto simili fra loro. In questo caso, l'algoritmo non ricerca il punto ottimale nello spazio delle possibili soluzioni, ma una più vasta regione tale per cui l'utente non è in grado di distinguere le soluzioni in essa contenute. Hideyuki Takagi descrive così questo problema:

«Per esempio, si supponga di voler trovare il prossimo modello della Toyota Camry o dell'Honda Accord. L'obiettivo non è determinare un singolo punto [...] ma determinare diversi modelli di automobili che posseggano un effetto simile sulla base dei modelli precedenti.»

(Hideyuki Takagi, Interactive Evolutionary Computation: Fusion of the Capabilities of EC Optimization and Human Evaluation)

La maggior parte delle linee di ricerca sulla computazione evolutiva interattiva sono originate da questi problemi: ad esempio, come scegliere una scala di giudizio ottimale, o come predire i giudizi dell'utente stesso.

## Applicazioni

Gli algoritmi di computazione evolutiva interattiva trovano numerose applicazioni in settori dove non è possibile esprimere una funzione obiettivo in forma analitica. Tra questi, possiamo ricordare:

* La creazione di composizioni artistiche nel campo della creatività computazionale (es. GenJam).
* Il miglioramento della qualità percepita in campo audio e video, ad esempio per lo sviluppo di aiuti all'ascolto.
* Information retrieval di immagini e canzoni.
* Processamento di immagini in maniera interattiva.
