Un algoritmo evolutivo è un metodo di ottimizzazione che migliora ripetutamente un insieme di soluzioni candidate. Valuta le candidate rispetto a un obiettivo, seleziona quelle più efficaci e ne crea variazioni - spesso tramite mutazione o ricombinazione - da testare nei cicli successivi. Il processo si ispira a idee tratte dall'evoluzione biologica, ma è una tecnica computazionale di ricerca, non l'evoluzione biologica in sé.
Nella sicurezza informatica, gli algoritmi evolutivi possono aiutare a esplorare ampi spazi di progettazione, per esempio ottimizzando le regole di rilevamento o testando le configurazioni di sistema. Possono anche essere usati per cercare input che mettano in luce debolezze nel software o nei modelli di apprendimento automatico. I difensori dovrebbero convalidare attentamente i risultati: l'ottimizzazione dipende dal suo obiettivo e dai dati di test, quindi una soluzione che ottiene un buon punteggio in una valutazione circoscritta potrebbe non essere robusta in condizioni reali. Nella progettazione dei circuiti, lo stesso approccio può cercare iterativamente configurazioni che soddisfino obiettivi di prestazione prestabiliti; il suo impiego in un esempio specifico non dovrebbe essere dato per scontato senza prove.


