• Nenhum resultado encontrado

Os algoritmos gen´eticos (GA) s˜ao uma fam´ılia de m´etodos computacionais inspirados pela selec¸c˜ao natural das esp´ecies e pela gen´etica, da qual herdaram, ali´as, muita da linguagem e nomenclatura. O conceito de algoritmo gen´etico aparece em 1975 com os estudos de John Holland e colaboradores [42–44]. Estes algoritmos s˜ao muitas vezes referidos no contexto mais amplo (e mais controverso) da denominada inteligˆencia artificial [44]. Refira-se, no entanto, que n˜ao existe uma defini¸c˜ao rigorosa de GA aceite universalmente na comunidade cientifica que permita distinguir os GAs de outros m´etodos da chamada ´area da “computa¸c˜ao evolucion´aria”. Uma defini¸c˜ao geral para GA poder´a ser, segundo Michalewicz [43]:

..., a GA performs a multi-directional search by maintaining a pop- ulation of potential solutions and encourages information formation and exchange between these directions. The population undergoes a simu- lated evolution: at each generation the relatively “good” solutions repro- duce, while the relatively “bad” solutions die. To distinguish different solutions we use an objective (evaluation) function which plays the role of an environment.

1O m´etodo DFT s´o n˜ao ´e considerado um m´etodo ab initio devido `as aproxima¸oes, de natureza

Segundo esta defini¸c˜ao o objectivo dos GAs ´e a procura da solu¸c˜ao de um problema atrav´es de uma pesquisa multi-direccional. ´E esta caracter´ıstica que distingue e for- talece os GAs quando comparados com outros algoritmos de optimiza¸c˜ao. Nesses, o processo de optimiza¸c˜ao ´e executado para uma variedade de pontos iniciais na espe- ran¸ca de alcan¸car a melhor solu¸c˜ao. Isto ´e assim porque para cada um desses pontos iniciais o algoritmo segue uma linha ´unica de optimiza¸c˜ao at´e que se atinja o crit´erio de finaliza¸c˜ao. Os GAs, quando bem formulados e parametrizados, tˆem a capaci- dade de “saltar” solu¸c˜oes locais e procurar a solu¸c˜ao ´optima. Estes algoritmos foram utilizados com sucesso nas mais variadas ´areas, tais como: roteamento, calendariza- ¸c˜ao, controlo adaptativo, jogos de computador, modela¸c˜ao cognitiva, problemas de transportes e distribui¸c˜ao, bases de dados, etc.

Os passos gerais da prepara¸c˜ao e execu¸c˜ao de um GA s˜ao:

1. Codifica¸c˜ao da informa¸c˜ao referente a cada individuo em “genes” sob a forma num´erica.

2. Defini¸c˜ao da uma fun¸c˜ao objectivo. Esta define a forma de classifica¸c˜ao (“ap- tid˜ao”) dos “genes”.

3. Cria¸c˜ao da popula¸c˜ao inicial, com N elementos, trav´es da gera¸c˜ao aleat´oria de “genes”.

4. Avalia¸c˜ao de cada um dos genes e ordena¸c˜ao pela sua classifica¸c˜ao.

5. Reprodu¸c˜ao cruzada dos genes mais aptos (a percentagem de genes utilizados ´

e um parˆametro do GA).

6. Muta¸c˜ao de alguns genes (a percentagem de genes a mutar ´e um parˆametro do GA).

7. Selec¸c˜ao da nova gera¸c˜ao.

8. Iterar a partir do passo no 4 at´e que se atinja o crit´erio de convergˆencia ou que se atinja um dado n´umero de itera¸c˜oes.

Existem v´arios m´etodos padr˜ao para a realiza¸c˜ao da reprodu¸c˜ao e muta¸c˜ao e selec¸c˜ao [45]. Por vezes, os GAs podem apresentar alguma tendˆencia para ficar presos em “solu¸c˜oes” locais. Nesse caso pode ser necess´ario alterar os crit´erios de selec¸c˜ao dos “genes” e tentar novos processos de cruzamento. O processo de muta¸c˜ao e a percentagem de genes a mutar tˆem tamb´em muita influˆencia no desempenho do GA.

Uma baixa percentagem de muta¸c˜oes leva a um maior apuramento dos indiv´ıduos da popula¸c˜ao mas favorece a estabiliza¸c˜ao em “solu¸c˜oes locais”. Pelo contr´ario uma alta percentagem de muta¸c˜ao leva a uma maior variabilidade dos indiv´ıduos em detrimento da qualidade dos mesmos. A escolha da melhor taxa de muta¸c˜ao ´e um processo emp´ırico de tentativa e erro. Verifica-se, no entanto, que valores de percentagem de muta¸c˜ao baixos (at´e 5%) produzem, em geral, melhores resultados. Existem v´arios processos padr˜ao de selec¸c˜ao de novas gera¸c˜oes. Estes distinguem-se principalmente no uso ou n˜ao de elitismo. Numa selec¸c˜ao com elitismo garante-se que o melhor indiv´ıduo (ou uma certa quantidade destes) de uma dada gera¸c˜ao, passa sempre para a nova gera¸c˜ao. Desta forma garante-se preserva¸c˜ao da informa¸c˜ao e do sucesso j´a alcan¸cado nas gera¸c˜oes anteriores. O elitismo pode, no entanto, levar `a estagna¸c˜ao do algoritmo dificultando a procura da t˜ao ambicionada “solu¸c˜ao global”. Nos trabalhos apresentados foram utilizados GAs na optimiza¸c˜ao de uma fun¸c˜ao anal´ıtica para a descri¸c˜ao de uma superf´ıcie de energia potencial (PES) obtida por c´alculos DFT. Nestes algoritmos cada indiv´ıduo (representado por um gene) consiste num conjunto de parˆametros da fun¸c˜ao a optimizar. A fun¸c˜ao objectivo calcula o desvio quadr´atico m´edio do gene (para a fun¸c˜ao de ajuste em utiliza¸c˜ao) em rela¸c˜ao aos valores de energia, obtidos por DFT para as configura¸c˜oes moleculares consideradas. O valor desta grandeza vai servir para medir a aptid˜ao do referido gene para reprodu¸c˜ao e para a passagem `a pr´oxima gera¸c˜ao.

O software utilizado neste processo foi produzido no ˆambito do trabalho desta tese com recurso a uma livraria de GAs, GAlib, escrita em C++ por Mathew Wall [45]. Foram testados v´arios GAs com diferentes esquemas de selec¸c˜ao, reprodu¸c˜ao e muta¸c˜ao. A escolha dos algoritmos a utilizar foi baseada em crit´erios de estabilidade e consistˆencia da convergˆencia dos resultados.

2.6

Programa¸c˜ao orientada por objectos em simu-