Você está na página 1de 51

Programao Gentica

Airton Bordin Junior


[airtonbjunior@gmail.com]

Mestrado em Cincia da Computao Inteligncia Computacional


Prof Dr Celso Gonalves Camilo Junior
Universidade Federal de Gois (UFG) - Instituto de Informtica - Maio/2017
Programao

Introduo

Inteligncia Computacional - Airton Bordin Junior


Heursticas e Metaheursticas
Algoritmos evolucionrios
Programao Gentica
Referncias

2
Introduo
Podemos classificar os problemas computacionais em
Tratveis, tambm chamados de polinomiais
Podem ser resolvidos por algoritmos determinsticos.

Inteligncia Computacional - Airton Bordin Junior


Intratveis, ou no polinomiais
Sem algoritmo determinstico para resolver o problema em
tempo hbil.
Polinomiais
Tratveis
Algoritmos determinsticos

No polinomiais
Intratveis Algoritmos no determinsticos
Soluo determinstica invivel 3
Introduo
[CAPPELLE, 2017]

Inteligncia Computacional - Airton Bordin Junior


4
Introduo

Inteligncia Computacional - Airton Bordin Junior


5
Heurstica
Impraticabilidadede encontrar/calcular a melhor
resposta para problemas no polinomiais;

Inteligncia Computacional - Airton Bordin Junior


Desafio:produzir, em tempo reduzido, solues
to prximas quanto possveis da soluo tima.

6
Metaheurstica
Propriedades e Estratgias que guiam o processo de busca;
caractersticas
das Explorao eficiente do espao de busca - solues timas ou

Inteligncia Computacional - Airton Bordin Junior


quase timas;
metaheursticas De simples procedimentos de busca local a complexos processos
[SALIBA, 2010]
de aprendizado;
Aproximados e usualmente no determinsticos;

Podem incorporar mecanismos para evitar ficar presos em reas


confinadas do espao de busca;
No so especficas para um determinado problema;

Podem usar um conhecimento especfico do problema na forma de


heursticas que so controladas por uma estratgia de nvel superior.
7
Algoritmos bio-inspirados
Algoritmos Genticos
Algoritmos Programao Gentica
Evoluo Gramatical
evolucionrios Estratgias Evolucionrias
Programao Evolucionria

Inteligncia Computacional - Airton Bordin Junior


[PAPPA, 2013]
Inteligncia Colnia de Formigas
Algoritmos coletiva Enxame de Partculas
bio-inspirados
MLP Multi-layer Perceptrons
RBF- Radio Basis Function Net
Redes Neurais SOM- Self-Organizing Maps
ARTMap

Sistemas Seleo Negativa


Expanso Clonal
Imunolgicos Redes

8
Algoritmos bio-inspirados
Algoritmos Genticos
Algoritmos Programao Gentica
Evoluo Gramatical
evolucionrios Estratgias Evolucionrias
Programao Evolucionria

Inteligncia Computacional - Airton Bordin Junior


[PAPPA, 2013]
Inteligncia Colnia de Formigas
Algoritmos coletiva Enxame de Partculas
bio-inspirados
MLP Multi-layer Perceptrons
RBF- Radio Basis Function Net
Redes Neurais SOM- Self-Organizing Maps
ARTMap

Sistemas Seleo Negativa


Expanso Clonal
Imunolgicos Redes

9
Algoritmos evolucionrios
Inspirados na teoria de evoluo de Darwin;

Evoluo:
mudana das caractersticas (genticas) de

Inteligncia Computacional - Airton Bordin Junior


uma populao de uma gerao para a prxima
Mutao dos genes;
Recombinao dos genes dos pais.

Algoritmos
evolucionrios

Inteligncia
coletiva
Algoritmos bio-
inspirados
Redes Neurais

Sistemas
Imunolgicos 10
Algoritmos evolucionrios
Evoluo caracterizada basicamente por um
processo constitudo de 3 passos
[VON ZUBEN, 2005]

Inteligncia Computacional - Airton Bordin Junior


1. Reproduo com herana gentica;
2. Introduo de variao aleatria em uma
populao de indivduos;
3. Aplicao da seleo natural para a Algoritmos

produo da prxima gerao. evolucionrios

Inteligncia
coletiva
Algoritmos bio-
inspirados
Redes Neurais

Sistemas
Imunolgicos 11
Algoritmos genticos - Reviso
Principais Trabalham com uma codificao do conjunto de
diferenas com parmetros e no com os prprios parmetros;

Inteligncia Computacional - Airton Bordin Junior


mtodos
tradicionais Trabalham com uma populao e no com um
nico ponto;

Utilizam informaes de custo ou recompensa e


no derivadas ou outro conhecimento auxiliar;

Utilizam regras de transio probabilsticas e no


determinsticas.
12
Algoritmos genticos - Reviso
Paralelo: mantm uma populao de solues que
podem ser avaliadas simultaneamente;
caractersticas

Inteligncia Computacional - Airton Bordin Junior


Global: AGs no usam somente informaes locais, logo
Algumas

no necessariamente ficam presos em mximos locais;


No totalmente aleatrio: usam informaes da populao atual
para determinar o prximo estado de busca;

No afetados por descontinuidades: no usam informaes de


derivadas nem necessitam informaes de seu entorno;

Funes: Lidam com funes discretas e contnuas.


13
Algoritmos genticos - Reviso

Retorna
soluo Operadores genticos

Inteligncia Computacional - Airton Bordin Junior


Sim

Inicializao
Clculo Critrio
da Seleo Reproduo Mutao
aptido parada?
populao

14
Inicializao da populao - Reviso
Exemplo: representao em bits
Gentipo Fentipo

Inteligncia Computacional - Airton Bordin Junior


00101011 = 43

11101011 = 235
Varivel

00101100 = 44
Gene
Cromossomo

15
Programao Gentica

Inteligncia Computacional - Airton Bordin Junior


16
Programao gentica

Inteligncia Computacional - Airton Bordin Junior


Como computadores podem resolver
problemas sem serem explicitamente
programados para tal?

17
Programao gentica
Comocomputadores podem resolver problemas
sem serem explicitamente programados para tal?

Inteligncia Computacional - Airton Bordin Junior


Evoluo de programas computacionais
Analogias com mecanismos utilizados da evoluo
biolgica natural;
Criao (automatizada) de um programa que
resolve um determinado problema.

18
Programao gentica
Comocomputadores podem resolver problemas
sem serem explicitamente programados para tal?

Inteligncia Computacional - Airton Bordin Junior


Pode ser vista como uma extenso dos Ags
Indivduos so programas;
Espao de busca so todos os possveis
programas.

19
Programao gentica
Programas?
Funes matemticas, por exemplo;

Inteligncia Computacional - Airton Bordin Junior


Representao feita por meio de rvores.

+
Exemplo programa:
5 * x+5

x x
20
Programao gentica
Intimamente ligada ideia de programao
funcional (sequncia de aplicao de funes a

Inteligncia Computacional - Airton Bordin Junior


argumentos)
Independentemente da linguagem, todos os
programas podem ser vistos como uma seqncia
de aplicaes de funes a argumentos;
Compiladores usam esse fato para traduzir um
programa em uma rvore sinttica.

21
Programao gentica
rvore sinttica

Inteligncia Computacional - Airton Bordin Junior


22
Programao gentica
Passos para o correto funcionamento [KOZA, 1992]
1. Determinar conjunto de terminais;

Inteligncia Computacional - Airton Bordin Junior


2. Determinar conjunto de funes;
3. Determinar funo fitness;
4. Determinar parmetros e variveis para
controle da execuo;
5. Determinar critrio de parada.

23
Programao gentica
Criao da populao
Cria uma populao de forma randmica;

Inteligncia Computacional - Airton Bordin Junior


Profundidade mxima definida por parmetro;
Principais mtodos
Full;
Grow;
Ramped half-and-half.

24
Programao gentica
Criao da populao
Mtodo Grow

Inteligncia Computacional - Airton Bordin Junior


Respeita o critrio de profundidade mxima da rvore;
Escolhe aleatriamente entre funes e terminais em
qualquer nvel da rvore, podendo criar estruturas
irregulares.

25
Programao gentica
Criao da populao
Mtodo Full

Inteligncia Computacional - Airton Bordin Junior


rvores com a profundidade mxima;
Escolhe aleatriamente somente funes, at que um n
de profundidade mxima seja atingido, a ento
escolhendo somente terminais.

26
Programao gentica
Criao da populao
Mtodo Ramped half-and-half

Inteligncia Computacional - Airton Bordin Junior


Utiliza o mtodo Grow e Full;
Gera um nmero igual de rvores para cada
profundidade;
50% utilizar o mtodo full e 50% o mtodo Grow.

27
Programao gentica
Criao da populao
Funes e terminais

Inteligncia Computacional - Airton Bordin Junior


Funes: funes aritimticas (+, -, /, *), funes
booleanas, funes matemticas, etc.
Terminais: constantes numricas, dados externos,
variveis.

+
5 *

x x 28
Programao gentica
Criao da populao
Funes e terminais

Inteligncia Computacional - Airton Bordin Junior


Funes: funes aritimticas (+, -, /, *), funes
booleanas, funes matemticas, etc.
Terminais: constantes numricas, dados externos,
variveis.
Funes
+
Terminais
5 *

x x 29
Programao gentica
Operadores genticos
Reproduo;

Inteligncia Computacional - Airton Bordin Junior


Crossover;
Mutao;
Permutao;
Edio;
Encapsulamento;
Destruio.

30
Operadores genticos
Reproduo
Um indivduo com uma bom valor aps funo de avaliao
(fitness) escolhido;

Inteligncia Computacional - Airton Bordin Junior


feita uma cpida idntica do indivduo para a prxima gerao.
Gerao n Gerao n+1

31
Operadores genticos
Crossover
Troca entre partes dos indivduos selecionados;

Inteligncia Computacional - Airton Bordin Junior


Partes escolhidas de forma aleatria nas duas rvores.
rvore 1 rvore 2

+ /

5 * - +

x x 4 x x 3
32
Operadores genticos
Crossover
Troca entre partes dos indivduos selecionados;

Inteligncia Computacional - Airton Bordin Junior


Partes escolhidas de forma aleatria nas duas rvores.
rvore 1 rvore 2

+ /
Ponto corte
Ponto corte
5 * - +

x x 4 x x 3
33
Operadores genticos
Crossover
Troca entre partes dos indivduos selecionados;

Inteligncia Computacional - Airton Bordin Junior


Partes escolhidas de forma aleatria nas duas rvores.
rvore 1 rvore 2

+ /
Ponto corte
Ponto corte
5 * - +

x x 4 x x 3
34
rvore 1 rvore 2

+ /
Ponto corte Ponto corte

5 * - +

x x 4 x x 3

Inteligncia Computacional - Airton Bordin Junior


rvore 3 rvore 4

+ /

5 - * +

4 x x x x 3
35
Operadores genticos
Mutao
Mudana aleatria em um dos ns da rvore;

Inteligncia Computacional - Airton Bordin Junior


Adiciona diversidade na populao.

- +

4 x x 3
Operadores genticos
Mutao
Mudana aleatria em um dos ns da rvore;

Inteligncia Computacional - Airton Bordin Junior


Adiciona diversidade na populao.

/ Ponto mutao

- +

4 x x 3
Operadores genticos
Mutao
Mudana aleatria em um dos ns da rvore;

Inteligncia Computacional - Airton Bordin Junior


Adiciona diversidade na populao.

- +

4 x x 3
Operadores genticos
Mutao
Mudana aleatria em um dos ns da rvore;

Inteligncia Computacional - Airton Bordin Junior


Adiciona diversidade na populao.

rvore original Aps mutao


Operadores genticos
Permutao
Escolhe um ponto aleatrio e inverte os terminais e/ou funes.

Inteligncia Computacional - Airton Bordin Junior


/

- +

4 x x 3
Operadores genticos
Permutao
Escolhe um ponto aleatrio e inverte os terminais e/ou funes.

Inteligncia Computacional - Airton Bordin Junior


Ponto permutao /

- +

4 x x 3
Operadores genticos
Permutao
Escolhe um ponto aleatrio e inverte os terminais e/ou funes.

Inteligncia Computacional - Airton Bordin Junior


Ponto permutao /

- +

x 4 x 3
Operadores genticos
Permutao
Escolhe um ponto aleatrio e inverte os terminais e/ou funes.

Inteligncia Computacional - Airton Bordin Junior


rvore original Aps permutao
Operadores genticos
Edio
Forma de simplificao e edio de expresses;

Inteligncia Computacional - Airton Bordin Junior


Muito custosa Cosumo considervel de tempo;
Torna a expresso menos vulnervel ao crossover.

-
Expresso:
x +
X+X-X
x x
Operadores genticos
Edio
Forma de simplificao e edio de expresses;

Inteligncia Computacional - Airton Bordin Junior


Muito custosa Cosumo considervel de tempo;
Torna a expresso menos vulnervel ao crossover.
Expresso original Expresso simplificada

-
x + x

x x
Operadores genticos
Encapsulamento
Identifica subrvores potencialmente til;

Inteligncia Computacional - Airton Bordin Junior


D um nome para que possa ser referenciada futuramente.

rvore original

+
2 *

4 x
Operadores genticos
Encapsulamento
Identifica subrvores potencialmente til;

Inteligncia Computacional - Airton Bordin Junior


D um nome para que possa ser referenciada futuramente.

rvore original

+
2 *

4 x
Operadores genticos
Encapsulamento
Identifica subrvores potencialmente til;

Inteligncia Computacional - Airton Bordin Junior


D um nome para que possa ser referenciada futuramente.

rvore original E0

+
*
2 *
4 x
4 x
Operadores genticos
Encapsulamento
Identifica subrvores potencialmente til;

Inteligncia Computacional - Airton Bordin Junior


D um nome para que possa ser referenciada futuramente.

rvore original E0 rvore usando E0

+
* -
2 *
4 x 3 E0
4 x
Operadores genticos
Destruio
Casos complexos, grande parte da populao pode ter um fitness
muito ruim, causando uma perda de diversidade rpida e um

Inteligncia Computacional - Airton Bordin Junior


custo computacional muito grande;
Forma de destuir indivduos medocres nas geraes iniciais;
Parmetros
Quantidade de indivduos mantidos;
Condio em que o operador ser invocado;
Indivduos sobreviventes so escolhidos com base no fitness.
Referncias
ZUBEN, F. V. Representao e Operadores
Evolutivos

ZUBBEN, F. B. Programao Gentica

KOZA, J.R. Genetic Programming: On the

Inteligncia Computacional - Airton Bordin Junior

Programming of Computers by means of Natural


Selection

NETO, A. G. Programao Gentica

CRUZ, A. J. O. Algoritmos Genticos

MEDEIROS, D. Programao Gentica

51