Le reti neurali artificiali sono reti complesse che emulano il modo in cui i neuroni razionali umani elaborano i dati. Sono state ampiamente utilizzate nella previsione, clustering, classificazione e associazione. Gli algoritmi di addestramento che determinano i pesi della rete sono quasi il fattore più importante che influenza le prestazioni della rete neurale. Ultimamente sono stati impiegati diversi algoritmi meta-euristici ed evolutivi per ottimizzare i pesi delle reti neurali e ottenere prestazioni più elevate.Per risolvere problemi computazionali complessi sono stati sviluppati molti algoritmi di ottimizzazione meta-euristici. Una meta-heuristica è una procedura di livello superiore progettata per scoprire, creare o selezionare un'euristica che può fornire una soluzione sufficientemente buona ad un problema di ottimizzazione, specialmente con informazioni incomplete o imperfette o capacità di calcolo limitata. La meta-heuristica può fare ipotesi limitate sul problema di ottimizzazione da risolvere, e quindi può essere utilizzabile per una varietà di problemi. Molte meta-heuristiche implementano qualche forma di ottimizzazione stocastica in modo che la soluzione trovata dipenda dall'insieme di variabili casuali generate.