gli algoritmi genetici si basano sul calcolo della fitness, che è una funzione "euristica" della bontà di una soluzione, e gli consente di far sopravvivere tale cromosoma nelle generazioni successive.
Per come sono fatti i numeri primi, una discreta euristica potrebbe essere il numero di divisori. Tuttavia basta un crossing over o una banale mutazione puntiforme per trasformare un numero primo in un numero con una quantità enorme di divisori.
Le trasformazioni sarebbero totalmente random e questo in sostanza vuol dire che il problema non converge.
Gli algoritmi genetici non funzionano su questo tipo di problemi.
Puoi invece cercare di risolvere il classico problema dello zaino, o il problema della dieta, dove le euristiche tendono a far convergere il problema verso una soluzione che magari non è quella globalmente ottimale, ma tramite alcune tecniche puoi esplorare più minimi locali e poi selezionare il migliore (selezione elitaria + introduzione di cromosomi random ad ogni generazione).
Il problema dello zaino in sostanza ti chiede di trovare una combinazione di oggetti (dal numero finito e dal peso prefissato) in modo tale da riempire al massimo un certo zaino che può contenere un peso minore o uguale ad un determinato valore.
Il problema della dieta ti chiede di trovare una combinazione di alimenti con proprietà nutritive predeterminate, in modo tale da far rientrare ciascun parametro (calorie, carboidrati, grassi, ecc...) all'interno di range prestabiliti.
|