Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Algoritmo genetico numeri primi
Forum - Java - Algoritmo genetico numeri primi

Avatar
paoloricciuti (Ex-Member)
Pro


Messaggi: 137
Iscritto: 27/04/2010

Segnala al moderatore
Postato alle 21:03
Giovedì, 09/06/2011
Salve, per l'esame di ricerca operativa il mio prof mi ha dato la possibilità di creare un algoritmo genetico a mia scelta. Non avendo molte idee avevo pensato di fare un algoritmo genetico per trovare un numero primo (naturalmente più sono le generazioni più il numero sarà alto) e mi sono un po arenato sulla funzione di fitness. Ne ho pensata una ma non mi convince molto. In pratica la mia idea sarebbe. Più il numero è alto e più il numero è prossimo ad un numero primo, più è buono. In pratica sarebbe, (distanza dal più vicino numero primo)*numero, che non sarebbe malissimo (inoltre si potrebbe riportare ad un numero tra 0 e 1 dividendo per Integer.MAX_VALUE) il problema è che per trovare il numero primo più vicino avrei un costo computazionale un po elevato che mi farebbe forse perdere l'effettiva efficacia degli algoritmi genetici. Voi che ne pensate?? Avete idee per migliorare questo AG?

PM Quote
Avatar
paoloricciuti (Ex-Member)
Pro


Messaggi: 137
Iscritto: 27/04/2010

Segnala al moderatore
Postato alle 21:13
Giovedì, 09/06/2011
Ho appena pensato che forse potrei renderlo più operativo facendo una array di tutti i numeri primi da 1 a (numero più alto nella popolazione) col crivello di erastotene!

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 0:02
Venerdì, 10/06/2011

secondo me non è l'esempio migliore su cui applicare gli algoritmi genetici, considera che io ho creato un'AI invicibile a giocare a tetris:

http://www.youtube.com/watch?v=_nklY5lFZAY

non dico di dover fare qualcosa di simile, ma ti do una dritta molto semplice:
data una funzione trovare i suoi massimi/minimi :)

PM Quote
Avatar
paoloricciuti (Ex-Member)
Pro


Messaggi: 137
Iscritto: 27/04/2010

Segnala al moderatore
Postato alle 1:59
Venerdì, 10/06/2011
Testo quotato

Postato originariamente da HeDo:


secondo me non è l'esempio migliore su cui applicare gli algoritmi genetici, considera che io ho creato un'AI invicibile a giocare a tetris:

http://www.youtube.com/watch?v=_nklY5lFZAY

non dico di dover fare qualcosa di simile, ma ti do una dritta molto semplice:
data una funzione trovare i suoi massimi/minimi :)


Eh già ma volevo fare qualcosa di un poco più complicato ed utile rispetto al massimo di una funzione. Purtroppo AI non l'ho ancora studiata, altrimenti sarebbe stata una ottima idea!!

PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 12:51
Venerdì, 10/06/2011
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.


PM Quote