"Suggerisci 5 metodi per risolvere un problema di ottimizzazione."
1. Algoritmo Greedy: Un algoritmo greedy è una strategia algoritmica in cui la soluzione ottimale viene scelta ad ogni passo per massimizzare una funzione obiettivo.

2. Discesa del gradiente: La discesa del gradiente è un algoritmo iterativo che cerca di trovare un minimo seguendo la discesa più ripida da un punto dato.

3. Ricottura simulata: La ricottura simulata è un algoritmo metaeuristico per trovare un ottimo globale approssimato per una data funzione obiettivo.

4. Algoritmo genetico: Un algoritmo genetico utilizza concetti evolutivi come la mutazione, la selezione e l'incrocio per campionare soluzioni nella ricerca di un ottimo globale.

5. Branch and Bound: Branch and bound è una tecnica algoritmica che consiste nella divisione del problema in sottoproblemi e nel limitare lo spazio delle soluzioni per garantire una soluzione ottimale.