L'ottimizzazione è l'atto di migliorare un metodo o un progetto. Nella programmazione, l'ottimizzazione di solito assume la forma di aumentare la velocità di un algoritmo o ridurre le risorse necessarie. Un altro significato di ottimizzazione sono gli algoritmi di ottimizzazione numerica utilizzati nell'apprendimento automatico.