Forum

Nome Utente:
Password:
Riconoscimi automaticamente
 Tutti i Forum
 MolecularLab
 Bioinformatica
 Algoritmi Genetici
 Nuova Discussione  Nuovo Sondaggio Nuovo Sondaggio
 Rispondi Aggiungi ai Preferiti Aggiungi ai Preferiti
Cerca nelle discussioni
I seguenti utenti stanno leggendo questo Forum Qui c'è:

Aggiungi Tag Aggiungi i tag

Quanto è utile/interessante questa discussione:

Autore Discussione  

domi84
Moderatore

Smile3D
Città: Glasgow


1724 Messaggi

Inserito il - 21 settembre 2007 : 13:18:18  Mostra Profilo  Visita l'Homepage di domi84 Invia a domi84 un Messaggio Privato  Rispondi Quotando
Chiedo ancora aiuto...
Non ho molto capito cosa sono questi algoritmi genetici.
Ho capito che servono per diminuire i tempi di calcolo, avendo una buona approssimazione del risultato finale...
...ma non ho capito cosa sono questi geni e cromosomi...
...me lo potete spiegare alla vostra maniera?!?...così capisco!!!

Il mio blog: http://domi84.blogspot.com/
Le foto che ho scattato...

dallolio_gm
Moderatore


Prov.: Bo!
Città: Barcelona/Bologna


2445 Messaggi

Inserito il - 21 settembre 2007 : 15:04:44  Mostra Profilo  Visita l'Homepage di dallolio_gm  Clicca per vedere l'indirizzo MSN di dallolio_gm Invia a dallolio_gm un Messaggio Privato  Rispondi Quotando
Ci provo...

Immagina di dover trovare il punto di minimo di una funzione con molte variabili:

DG = x^2 + y^3 + 4*z^6 - 2*k^2 + 1/9*d^4 - 2*e^3 + 2*f^8


Immagina che questa funzione abbia tante variabile da rendere impossibile l'utilizzo del metodo delle derivate parziali in tempi accettabili.

Per risolvere con gli algoritmi genetici, potresti prendere dei set di valori per le variabili della funzione (x, y, z, k, d, e, f) a caso:

set1 = 1 2 3 3 5 6 7
set2 = 2 3 4 5 6 7 8
set3 = 1 3 4 5 5 5 5
set4 = 2 4 1 5 2 3 1

Ognuno di questi set e' un 'cromosoma', e i valori delle variabili fungono da 'geni'.
Ora, ti calcoli i valori della funzione per ognuno dei precedenti 'set' di valori.
DG(set1) = 2
DG(set2) = 10
DG(set3) = 1
DG(set4) = 8

Dopodiche', prendi solo i due set che ti danno il valore piu' basso, il primo e il terzo:
set1 = 1 2 3 3 5 6 7
set3 = 1 3 4 5 5 5 5

Secondo le regole degli algoritmi genetici, puoi fare due tipi di operazioni:
la prima e' l'incrocio:
set5 = 1 2 3 3 5 5 5
set6 = 1 3 4 5 5 6 7

e la mutazione casuale (es. cambiamo la posizione 1 nel set1 da 1 a 3):
set7 = 3 2 3 3 5 6 7


A questo punto, sei nella seconda generazione della simulazione, e ti calcoli i valori corrispondenti ai set 1, 3, 5, 6 e 7.
Tra questi, scegli i due o tre set che danno punteggio migliore e ritorni a fare i passaggi di mutazione e crossing-over.



E' chiaro che con questa tecnica e' molto difficile beccare il punto di minimo esatto di una funzione... pero', prendendo ogni volta i valori piu' bassi, sperando di non bloccarsi in un punto di minimo locale, e sperando che la funzione sia concava intorno al punto di minimo (che per fortuna, nel caso della energia libera di una proteina, dovrebbe essere vero), dovresti riuscire a trovare un valore vicino al minimo, e in ogni caso, piu' basso della media.



Un altro esempio lo potresti fare con le parole che formano una query su google.

Immagina di voler trovare le parole chiave che ti permettano di trovare al primo colpo questo topic del forum su google.

Potresti partire da un set di cromosomi come questi:
set1 = ['molecularlab', '"algoritmi genetici"', '"pesce spada"', 'bioinformatica']
set2 = ['dalloliogm', 'domi84', "frittate"]
set3 = ['frittate', 'faccine', 'molecularlab', 'cromosomi']


E' piuttosto strana questa ultima cosa che ho scritto, ma spero che tu abbia capito..

Il mio blog di bioinformatics (inglese): BioinfoBlog
Sono un po' lento a rispondere, posso tardare anche qualche giorno... ma abbiate fede! :-)
Torna all'inizio della Pagina

domi84
Moderatore

Smile3D

Città: Glasgow


1724 Messaggi

Inserito il - 21 settembre 2007 : 15:34:27  Mostra Profilo  Visita l'Homepage di domi84 Invia a domi84 un Messaggio Privato  Rispondi Quotando
E stato invece molto chiarificatore l'ultimo esempio!!!(Avevo letto in qualche altro post che volevi usare questi algoritmi genetici per fare ricerche su google)
Quindi così facendo, l'algoritmo dovrebbe fare uno o più reincroci, finche non ottiene tipo:
setn = ['molecularlab', '"algoritmi genetici"', '"domi84"', 'dalloliogm']
che dovrebbe essere il migliore...
idem ovviamente con ac.nucleici/proteine!
Un'ultima cosa...cosa si intende per fitness?!

Il mio blog: http://domi84.blogspot.com/
Le foto che ho scattato...
Torna all'inizio della Pagina

dallolio_gm
Moderatore


Prov.: Bo!
Città: Barcelona/Bologna


2445 Messaggi

Inserito il - 21 settembre 2007 : 15:42:57  Mostra Profilo  Visita l'Homepage di dallolio_gm  Clicca per vedere l'indirizzo MSN di dallolio_gm Invia a dallolio_gm un Messaggio Privato  Rispondi Quotando
Citazione:
Messaggio inserito da domi84

Quindi così facendo, l'algoritmo dovrebbe fare uno o più reincroci, finche non ottiene tipo:
setn = ['molecularlab', '"algoritmi genetici"', '"domi84"', 'dalloliogm']
che dovrebbe essere il migliore...

Probabile pero' che si fermi ad un insieme vicino al migliore, non necessariamente a quello. Dipende da quante generazioni fai correre nella simulazione.
Sicuramente pero' nel risultato finale non vi saranno termini come 'frittate', questo perche' gli algoritmi genetici sono una tecnica empirica che da una soluzione che si approssima al risultato ideale.

Citazione:
idem ovviamente con ac.nucleici/proteine!
Un'ultima cosa...cosa si intende per fitness?!

E' il punteggio di ogni cromosoma... per esempio, nel caso dell'equazione, e' il valore di DG(setn).
A sua volta l'equazione viene chiamata 'funzione di fitness'.



Vedi se le applet su questa pagina ti possono essere utili:
- http://cs.felk.cvut.cz/~xobitko/ga/

Il mio blog di bioinformatics (inglese): BioinfoBlog
Sono un po' lento a rispondere, posso tardare anche qualche giorno... ma abbiate fede! :-)
Torna all'inizio della Pagina

domi84
Moderatore

Smile3D

Città: Glasgow


1724 Messaggi

Inserito il - 21 settembre 2007 : 17:35:21  Mostra Profilo  Visita l'Homepage di domi84 Invia a domi84 un Messaggio Privato  Rispondi Quotando
GRAZIE!!!Ho capito ora!!!

Il mio blog: http://domi84.blogspot.com/
Le foto che ho scattato...
Torna all'inizio della Pagina

atreliu
Amministratore

2970fired

Prov.: Milano
Città: Milano


2484 Messaggi

Inserito il - 21 settembre 2007 : 17:50:31  Mostra Profilo  Visita l'Homepage di atreliu  Invia a atreliu un messaggio AOL  Invia a atreliu un messaggio ICQ  Clicca per vedere l'indirizzo MSN di atreliu  Invia a atreliu un messaggio Yahoo! Invia a atreliu un Messaggio Privato  Rispondi Quotando
Il geniale dallolio ha colpito ancora

MolecularLab.it - Animazioni, News, didattica & Community su bioinformatica, biologia molecolare ed ingegneria genetica.

BUONE REGOLE DEL FORUM:
- Prima di postare qualunque cosa leggere il Regolamento!
- Hai provato a cercare prima di postare il tuo problema?
Torna all'inizio della Pagina

chick80
Moderatore

DNA

Città: Edinburgh


11491 Messaggi

Inserito il - 21 settembre 2007 : 23:01:40  Mostra Profilo  Visita l'Homepage di chick80 Invia a chick80 un Messaggio Privato  Rispondi Quotando
Un bell'esempio di queste cose (mai bello come quello di dallolio però ) lo trovi nei lavori di Kenneth Stanley, ad es.:

Evolving Neural Networks Through Augmenting Topologies

Sei un nuovo arrivato?
Leggi il regolamento del forum e presentati qui

My photo portfolio (now on G+!)
Torna all'inizio della Pagina

domi84
Moderatore

Smile3D

Città: Glasgow


1724 Messaggi

Inserito il - 22 settembre 2007 : 00:51:45  Mostra Profilo  Visita l'Homepage di domi84 Invia a domi84 un Messaggio Privato  Rispondi Quotando
Citazione:
Messaggio inserito da chick80

Un bell'esempio di queste cose (mai bello come quello di dallolio però ) lo trovi nei lavori di Kenneth Stanley, ad es.:


Visto quanto successo dallolio!?!?!
Citazione:

Evolving Neural Networks Through Augmenting Topologies


Non mi si apre niente cliccando sul link...

Il mio blog: http://domi84.blogspot.com/
Le foto che ho scattato...
Torna all'inizio della Pagina

chick80
Moderatore

DNA

Città: Edinburgh


11491 Messaggi

Inserito il - 22 settembre 2007 : 01:24:31  Mostra Profilo  Visita l'Homepage di chick80 Invia a chick80 un Messaggio Privato  Rispondi Quotando
Vero... prova con questo
http://nn.cs.utexas.edu/keyword?stanley:ec02

Sei un nuovo arrivato?
Leggi il regolamento del forum e presentati qui

My photo portfolio (now on G+!)
Torna all'inizio della Pagina

serbring
Utente Junior



486 Messaggi

Inserito il - 12 aprile 2011 : 20:22:22  Mostra Profilo  Visita l'Homepage di serbring Invia a serbring un Messaggio Privato  Rispondi Quotando
Citazione:
Messaggio inserito da dallolio_gm

Ci provo...

Immagina di dover trovare il punto di minimo di una funzione con molte variabili:

DG = x^2 + y^3 + 4*z^6 - 2*k^2 + 1/9*d^4 - 2*e^3 + 2*f^8


Immagina che questa funzione abbia tante variabile da rendere impossibile l'utilizzo del metodo delle derivate parziali in tempi accettabili.

Per risolvere con gli algoritmi genetici, potresti prendere dei set di valori per le variabili della funzione (x, y, z, k, d, e, f) a caso:

set1 = 1 2 3 3 5 6 7
set2 = 2 3 4 5 6 7 8
set3 = 1 3 4 5 5 5 5
set4 = 2 4 1 5 2 3 1

Ognuno di questi set e' un 'cromosoma', e i valori delle variabili fungono da 'geni'.
Ora, ti calcoli i valori della funzione per ognuno dei precedenti 'set' di valori.
DG(set1) = 2
DG(set2) = 10
DG(set3) = 1
DG(set4) = 8

Dopodiche', prendi solo i due set che ti danno il valore piu' basso, il primo e il terzo:
set1 = 1 2 3 3 5 6 7
set3 = 1 3 4 5 5 5 5

Secondo le regole degli algoritmi genetici, puoi fare due tipi di operazioni:
la prima e' l'incrocio:
set5 = 1 2 3 3 5 5 5
set6 = 1 3 4 5 5 6 7

e la mutazione casuale (es. cambiamo la posizione 1 nel set1 da 1 a 3):
set7 = 3 2 3 3 5 6 7


A questo punto, sei nella seconda generazione della simulazione, e ti calcoli i valori corrispondenti ai set 1, 3, 5, 6 e 7.
Tra questi, scegli i due o tre set che danno punteggio migliore e ritorni a fare i passaggi di mutazione e crossing-over.



E' chiaro che con questa tecnica e' molto difficile beccare il punto di minimo esatto di una funzione... pero', prendendo ogni volta i valori piu' bassi, sperando di non bloccarsi in un punto di minimo locale, e sperando che la funzione sia concava intorno al punto di minimo (che per fortuna, nel caso della energia libera di una proteina, dovrebbe essere vero), dovresti riuscire a trovare un valore vicino al minimo, e in ogni caso, piu' basso della media.



Un altro esempio lo potresti fare con le parole che formano una query su google.

Immagina di voler trovare le parole chiave che ti permettano di trovare al primo colpo questo topic del forum su google.

Potresti partire da un set di cromosomi come questi:
set1 = ['molecularlab', '"algoritmi genetici"', '"pesce spada"', 'bioinformatica']
set2 = ['dalloliogm', 'domi84', "frittate"]
set3 = ['frittate', 'faccine', 'molecularlab', 'cromosomi']


E' piuttosto strana questa ultima cosa che ho scritto, ma spero che tu abbia capito..



Stavo giusto cercando qualcosa sugli algoritmi genetici su google ed ho trovato questo topic. Ottima spiegazione, complimenti davvero...Comunque ho qualche dubbio nel capire perchè nel mio caso non ottengo i risultati sperati, quando riescirò ad avere le idee più chiare, vi formulerò il domandone :)
Torna all'inizio della Pagina

serbring
Utente Junior



486 Messaggi

Inserito il - 13 aprile 2011 : 19:12:02  Mostra Profilo  Visita l'Homepage di serbring Invia a serbring un Messaggio Privato  Rispondi Quotando
Se a qualcuno dovesse interessare, ho trovato questo:

http://kolhoz.tiera.ru/Cs_Computer%20science/CsGn_Genetic,%20neural/Haupt%20R.L.,%20Haupt%20S.E.%20Practical%20Genetic%20Algorithms%20%282ed.,%20Wiley,%202004%29%28ISBN%200471455652%29%28261s%29.pdf
Torna all'inizio della Pagina

dallolio_gm
Moderatore


Prov.: Bo!
Città: Barcelona/Bologna


2445 Messaggi

Inserito il - 14 aprile 2011 : 16:17:19  Mostra Profilo  Visita l'Homepage di dallolio_gm  Clicca per vedere l'indirizzo MSN di dallolio_gm Invia a dallolio_gm un Messaggio Privato  Rispondi Quotando
eheh, adesso che lavoro in un laboratorio di genetica, il mio sogno è quello di implementare l'esperimento delle query di google... ho giá pronto qualcosa, quando sará in uno stato piu' accettabile ve lo presento :-)

Il mio blog di bioinformatics (inglese): BioinfoBlog
Sono un po' lento a rispondere, posso tardare anche qualche giorno... ma abbiate fede! :-)
Torna all'inizio della Pagina

serbring
Utente Junior



486 Messaggi

Inserito il - 19 aprile 2011 : 09:36:28  Mostra Profilo  Visita l'Homepage di serbring Invia a serbring un Messaggio Privato  Rispondi Quotando
Son curioso di vederlo

Venendo al mio problema, sto facendo un fitting con un algoritmo genetico implementato in Matlab. Il problema di fondo è che l'algoritmo è molto lento nel convergere, mentre risulta molto veloce se i bounds sono confinati vicino alla soluzione. Che consiglio mi date per raggiungere più velocemente il punto di ottimo senza variare continuamente i bounds per trovare il valore ottimale per ogni caso? Spero che esista un buon consiglio per questo :)


Grazie
Torna all'inizio della Pagina

serbring
Utente Junior



486 Messaggi

Inserito il - 18 maggio 2011 : 09:01:15  Mostra Profilo  Visita l'Homepage di serbring Invia a serbring un Messaggio Privato  Rispondi Quotando
Citazione:
Messaggio inserito da serbring

Son curioso di vederlo

Venendo al mio problema, sto facendo un fitting con un algoritmo genetico implementato in Matlab. Il problema di fondo è che l'algoritmo è molto lento nel convergere, mentre risulta molto veloce se i bounds sono confinati vicino alla soluzione. Che consiglio mi date per raggiungere più velocemente il punto di ottimo senza variare continuamente i bounds per trovare il valore ottimale per ogni caso? Spero che esista un buon consiglio per questo :)


Grazie



Up!
Torna all'inizio della Pagina
  Discussione  

Quanto è utile/interessante questa discussione:

 Nuova Discussione  Nuovo Sondaggio Nuovo Sondaggio
 Rispondi Aggiungi ai Preferiti Aggiungi ai Preferiti
Cerca nelle discussioni
Vai a:
MolecularLab.it © 2003-18 MolecularLab.it Torna all'inizio della Pagina