ALGORISMES GENÈTICS

 
 
 
 
 
Josep Lluís de la Rosa i Esteva
Departament d’Electrònica, Informàtica i Automàtica
peplluis@eia.udg.es

 

Introducció als GA.

Definició i ús dels GA.

Els algorismes genètics emulen el comportament de la naturalesa per poder resoldre aquells problemes prou complexes que els algorismes tradicionals no poden sol.lucionar o no troben solucions prou acurades.

Principi dels GA.

Els algorismes genètics intenten imitar la teoria de l'evolució de Darwin, on cal que una població conservi tot allò que sigui favorable per la seva supervivència i descarti tot el que li presenti debilitat d'adaptació. L'algorisme genètic farà que el conjunt de solucions s'adapti el millor possible i evolucioni després de diferents generacions cap a la solució.

D'on prové el nom de GA ?

Els algorismes genètics deuen el seu nom a les seves propietats bàsiques : selecció, creuament, herència i mutació.

Propietats més importants d'un GA.

La selecció és indispensable per escollir els individus de la població més capacitats. El creuament aportarà variabilitat als inividus de la nova generació. L'herència és necessària per transmetre les millores de les generacions pares a filles. La mutació permet en gran mesura el poder evolucionar cap a la solució desitjada quan la població es caracteritza per una manca d'aptituds, proporcionant-la de diversitat.

Funcionament bàsic d'un GA.

El funcionament bàsic d'un algorisme genètic és el d'evolucionar, a partir d'una població inicial d'individus, cap a una altra població d'individus amb unes característiques desitjades.
 

Els algorismes genètics s’usen per sol.lucionar problemes complexes (com els problemes NP-complert), per aprenentatge i altres problemes simples. També han sigut usats pel tractament d’imatges i de música.

Un avantatge dels algorismes genètics és el seu paral.lelisme. Els algorismes genètics treballen en un espai de cerca amb molta individualitat, fent d’aquest mètode sigui poc propens a caure en extrems locals comparant-lo amb altres mètodes.

També són fàcils d’implementar. Una vegada creat un GA, només cal implmentar un nou cromosoma (només un objecte) per sol.lucionar un altre problema. Amb la mateixa codificació només cal canviar la funció de fitness i la seva crida. D’altra banda, la tria de la codificació dels cromosomes i la implmentació de la funció d’adaptació poden ser dificultoses.

La desavantatge principals dels GA és el seu temps de computació, fent-lo normalment més lent que els demés mètodes, encara que amb els ordinadors d’avui dia no resulta un gran problema.

Cal esmentar finalment una petita llista de problemes sol.lucionats per algorismes genètics :

    Els Cromosomes

    En aquest cas els cromosomes codifiquen possibles jugades. Cada possible jugada es codifica amb un codi de jugada i una posició. El codi de jugada és un enter codificat amb dos bits. La posició de la jugada esta formada per dos números reals que equivalen a la coordenada x i la coordenada y respectivament. Per tant cada cromosoma conté la següent informació:

  Amb els dos primers bits es poden codificar quatre jugades de les quals només se n’utilitzen tres. Aquestes són:
Codificació
Jugada
00
RES
01
ANAR
10
XUTAR
11
-
Es pot observar que s’utilitzen 8 bits per codificar cada coordenada de la jugada i en el camp aquestes coordenades s’expressen com a doubles (64 bits). Aparentment hi ha una pèrdua molt gran de resolució. Però això no és del tot cert ja que en la implementació de la classe cromosoma es realitza el següent càlcul per obtenir el número real codificat en el cromosoma:

calcBits és una funció que retorna un long equivalent al número binari que expressen els nbits bits que codifiquen cada component. A aquest número se li resta la meitat del número més gran expressable amb nbits ja que pot ser positiu o negatiu. Llavors num d’escala a 1.37 ja que aquesta és la meitat de la mida del camp. Per tant, els cromosomes codifiquen posicions reals entre –1.37 i 1.37, que son les dimensions del camp. Si per exemple es codifica una coordenada amb 8 bits la ressolucio que s’obté és de 0,01, suficient si pensem que el radi del jugador és de 0,06.

Per tant cada cromosoma es codifica en 18 bits (2+8+8) el que suposa un arbre d’exploració de 218 possiblitats (262.144). Si no es realitzés aquest escalat de coordenades caldria representar els números reals amb més bits per no perdre precisió. Si s’utilitzés un long (32bits) cada cromosoma es codificaria en 66bits el que equival a 7,378697629484e+19 possibilitats i si s’utilitzés un double (64bits) l’arbre d’exploració tindria 1,361129467684e+39 possibilitats. Tot i que els algorismes genètics són capaços d’explorar arbres molt grans, aquests no son gaire adequats per l’aplicació del jugador de javasoccer degut al temps de convergència. Per tant un arbre d’exploració relativament petit permetrà als jugadors emprar menys temps en convergència de l’algorisme cap a la solució, és a dir, cap a la millor jugada.
 

Download this document