Anda di halaman 1dari 49

INTELIGÊNCIA ARTIFICIAL

ALGORITMOS
ALGORITMOS GENÉTICOS
GENÉTICOS
Introdução
Introdução
Inteligência Artificial

Origem e adaptação dos seres


vivos
• Origem e adaptação dos seres vivos
– Criacionismo (fixismo)
• Vinculada à visão religiosa de mundo
• Seres vivos foram criados por uma
entidade divina
– Que já os fez adaptados ao ambiente
– Seres vivos não alteram suas características
– Transformismo (evolução)
• Organismos evoluem de forma a se
adaptarem ao seu ambiente
Inteligência Artificial

Evolução
• Teorias evolutivas
– Lamarckismo
– Darwinismo
– Neodarwinismo
Inteligência Artificial

Lamark
• Cientista francês, afirmou em seu
livro, Filosofia Zoológica (1809)
– Indivíduos podem se modificar ao
longo do tempo
• Em resposta a necessidades
relacionadas ao seu ambiente
• Coelhos poderiam ter orelhas curtas
para melhor ouvir a aproximação dos
predadores
– Para melhor ouvir a aproximação, precisavam
movimentar constantemente as orelhas
Inteligência Artificial

Lamark
• Princípios fundamentais do Lamarckismo
– Lei do uso e desuso
• Estruturas muito utilizadas teriam tendência a se
desenvolver
• Enquanto as pouco utilizadas teriam tendência a se
atrofiar
– Lei da herança das características adquiridas
• As mudanças no organismo, devido ao uso/desuso,
seriam transmitidas aos seus descendentes
Inteligência Artificial

Lamark
• Princípios fundamentais do
Lamarckismo
– O desenvolvimento da genética esclareceu
os mecanismos de herança biológica
• Características adquiridas durante a vida
(uso/desuso) não são transferidas
– Ex.: Filhos de halterofilistas não nascem mais
fortes que filhos de cientistas
– Seu trabalho não teve o reconhecimento
da comunidade científica da época
Inteligência Artificial

Darwin
• De volta da viagem em torno do mundo,
publica em 1859, o livro “A Origem das
Espécies”
– Propôs a teoria de seleção natural
• Indivíduos são selecionados pelo ambiente
– Luta pela sobrevivência
» Indivíduos mais aptos têm maiores chances de
gerar descendentes
» Indivíduos pouco adaptados seriam extintos
– Existe um ancestral comum a todas as
espécies
• Que evoluíram a partir deste ancestral
Inteligência Artificial

Darwin
• Teoria de seleção natural não foi muito
bem aceita pela comunidade científica
da época
– Modelo de evolução (seleção natural) foi
aceito
– Mas Darwin não explicou como a adaptação
ocorria
• Necessário para entender a seleção natural
– Faltava responder às perguntas:
• Qual a origem da variabilidade e diversidade das
características presentes nas espécies?
• Como tais características eram transmitidas no
decorrer das gerações?
Inteligência Artificial

Mendel
• Johnann Mendel
– Monge em Brno, República Checa
– Recebeu uma pequena área no monastério
para realizar experimentos com ervilhas
• Propôs, em 1865, conceito da
hereditariedade
– Complementava os estudos de Darwin
Inteligência Artificial

Mendel
• Conceito da hereditariedade
– Explicava como as características
de um indivíduo poderiam ser
transmitidas aos seus descendentes
– Aceito (redescoberto) apenas em
1920
– Mendel faleceu em 1884
Inteligência Artificial

Mendel
Inteligência Artificial

Introdução
• Computação Evolutiva
• Técnicas computacionais para
resolução de problemas baseados em:
Genética
Teoria da evolução natural
• Pesquisas tiveram início na década
de 50
• Independentemente a partir de
cerca de 10 grupos em um período
de 15 anos
Inteligência Artificial

Algoritmos Evolutivos
Inteligência Artificial

Outras Abordagem
• Ant Algoritmo – utiliza lo
comportamento de las formigas
para a solucion del problema.
• Programacion Evolucionaria-
enfatiza o desenvolvimento de
modelos do ambiente.
• Programacion Genética – la
representacion de los individuos es
representados como árvores.
Inteligência Artificial

Algoritmo Genético

São métodos de busca de propósito geral inspirados


nos mecanismos da evolução natural (principalmente
nas teorias evolutivas de Darwin)

Principais Estudos:
• Décadas de 50 e 60
• Na década de 70 foram introduzidos
formalmente por Holland e posteriormente por
Goldberg
Tradicionalmente, têm sido aplicados na busca de
soluções em problemas de otimização
Inteligência Artificial

Terminologia

Por serem inspirados em princípios biológicos, eles


empregam uma terminologia derivada da genética e
da teria da evolução natural

• Meio Ambiente: problema a ser resolvido;


• Indivíduo ou Fenótipo: solução candidata ao problema;
• População: conjunto de soluções candidatas;
• Cromossomo: estrutura de dados que codifica uma
solução candidata;
• Gene: atributo ou parâmetro codificado no
cromossomo
Inteligência Artificial

Terminologia

Por serem inspirados em princípios biológicos, eles


empregam uma terminologia derivada da genética e
da teria da evolução natural

• Alelo: valores que o gene pode assumir;


• Genótipo: coleção de genes usados na representação
de uma solução candidata;
• Geração: iteração do algoritmo genético;
• Adaptação: o quanto uma solução candidata está
próxima de uma solução desejável para o problema.
Inteligência Artificial

Descrição Geral
Ambiente

População Inicial População Final

• População Inicial: possíveis soluções;


• Operador de Seleção: durante a iteração os mais
adaptados são selecionados (população intermediária);
• Operadores Genéticos: os selecionados são submetidos a
aliterações gerando uma nova geração;
Inteligência Artificial

Descrição Geral
Ambiente

População Inicial População Final

• Operador de Substituição: os indivíduos da nova geração


substituem os indivíduos da população inicial;
• O processo se repete inúmeras vezes de acordo com um
critério de para adotado.
• Medida de Adaptação: função objetivo
Inteligência Artificial

Representação Genética

Os AG´s operam com uma representação das soluções


candidatas
Cromossomos
Cromossomos
Cromossomos:
É uma estrutura de dados, geralmente uma cadeia de bits

Solução Candidatas Cromossomos


Exemplo 0 00000
Problema de 1 00001
determinar o máximo 2 00010
da função f(x) = x2 no 3 00011
intervalo [0,31]
31 11111
Inteligência Artificial

Operador de Seleção

Escolhe os indivíduos mais adaptados. Associa-se a


cada indivíduo uma probabilidade de sobrevivência
proporcional a medida de adaptação (dada pela função
objetivo)

Método da Roleta:
Cada indivíduo está relacionado a um setor da roleta. A
área do setor é proporcional ao valor da função objetivo
Inteligência Artificial

Operador de Seleção
No. Indivíduo Cromossomo f(x)=x2 Probabilidade Acumulado Intervalo
1 13 01101 169 0,144 0,144 [0,000; 0,144]
2 24 11000 576 0,492 0,636 ]0,144; 0,636]
3 8 01000 64 0,055 0,691 ]0,636; 0,691]
4 19 10011 361 0,309 1,000 ]0,691; 1,000]

14,4%

30,9% 1
4

3 22
5,5%
49,2%
Inteligência Artificial

Operadores Genéticos

São aplicados a população intermediária, para formar


uma nova geração. Operadores mais comuns:
• Crossover
• Mutação

Crossover : Deve
Deveter
teralta
alta
Ponto de corte probabilidade
probabilidade( 1)
(1)

Pai # 1 0 1 1 0 1 Crossover Filho # 1 0 1 1 0 0

Pai # 2 1 1 0 0 0 Filho # 2 1 1 0 0 1
Inteligência Artificial

Operadores Genéticos

São aplicados a população intermediária, para formar


uma nova geração. Os operadores mais comuns:
• Crossover
• Mutação

Mutação:

Mutação
0 1 1 0 1 0 0 1 0 1

Deve
Deveter
terbaixa
baixa
probabilidade
probabilidade(<<1)
(<<1)
Inteligência Artificial

Operador de Substituição

Determinará quais indivíduos da população antiga


devem ser substituídos.

O operador pode atuar de diversas


maneiras:
• Substituição completa (uma nova geração substitui
a geração de pais)
• Substituição a medida que os novos vão sendo
criados
Inteligência Artificial

Diagrama
de um
Algoritmo
Genético
Inteligência Artificial

Problema
Achar o ponto máximo da função abaixo dentro do
intervalo:

2,5 Máximos Locais Máximo Global


2
1,5
F(x) 1
0,5
0
- 0,5
-1 x
-1 - 0,5 0 0,5 1 1,5 2
Inteligência Artificial

Dica
Representar o cromossomo por uma cadeia de bits
(por exemplo 22 bits):

s1 = 1000101110110101000111

Para decodificar s1 (base 2), converte-se para base 10:

b10 = (1000101110110101000111)2 = 2288967

b10
Use a equação: x = min + (max-min)
222 - 1

Exemplo: 2288967
x1 = -1,0 + (2,0 + 1,0) = 0,637197
2 -1
22
Inteligência Artificial

População Inicial

Rank Cromossomo xi Função Aptidão Aptidão


i si Objetivo fi Acumulada
f(xi)
1 1101000000011110110111 1,43891 2,35251 2,00000 2,00000

2 1100000110100100011111 1,26925 2,04416 1,93103 3,93103

3 1010111001010110010000 1,04301 2,01797 1,86207 5,79310

4 1001111000011001000101 0,85271 1,84962 1,79310 7,58621

5 1001110110111000011100 0,84829 1,84706 1,72414 9,31035

6 0000110011111010010110 -0,84792 1,84610 1,65517 10,96552

7 0011000000100111010010 -0,43570 1,39248 1,58621 12,55172


...
...

...
...

...

...
30 1111101100000001010111 1,94147 -0,87216 0,00000 30,00000
Inteligência Artificial

Seleção

População Intermediária:
Alocação dos cromossomos pais

Probabilidade de Seleção:

Procedimento Prático:
Gera-se um número r aleatório no intervalo [0,30]
Cromossomo selecionado é o primeiro que possui
aptidão acumulada maior que r
Inteligência Artificial

Seleção

Por exemplo: r = 4,323

Rank Cromossomo xi Função Aptidão Aptidão


i si Objetivo fi Acumulada
f(xi)
1 1101000000011110110111 1,43891 2,35251 2,00000 2,00000

2 1100000110100100011111 1,26925 2,04416 1,93103 3,93103

3 1010111001010110010000 1,04301 2,01797 1,86207 5,79310

...
...

...
...

...

...
O procedimento é repetido até preencher a população
intermediária com N cromossomos
Inteligência Artificial

Crossover
Crossover :
Deve
Deveter
teralta
altaprobabilidade
probabilidade Ponto de corte
(60%
(60% a90%)
a 90%)

Pai # 1 0 1 1 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 0 1 0 1

Pai # 2 0 1 1 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 0 1 0 1

Filho # 1 0 1 1 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 0 1 0 1

Filho # 2 0 1 1 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 0 1 0 1
Inteligência Artificial

Mutação
Mutação:
Deve
Deveter
terbaixa
baixa
probabilidade
probabilidade (0,1%aa5%)
(0,1% 5%)
Antes
Filho # 1 0 1 1 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 0 1 0 1

Filho # 2 0 1 1 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 0 1 0 1

Depois
Filho # 1 0 1 1 1 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1

Filho # 2 0 1 1 1 1 0 1 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1
Inteligência Artificial

Gerando uma Nova População


Índice Pop. Intermediária X 1o. Geração Ponto de
Original Corte
1 1101000000011110110111 1101000000011000011100 12
5 1001110110111000011100 1001110010111110110111 12
7 0011000000100111010010 0011000000100100011011 9
2 1100000110100100011111 1100010110100111010010 9
...

...
...

...
4 0000110011111010010110 0000010000100100110001 3
27 0000010000100100110001 0000110011101010010110 3

...
...

...
...

O procedimento é repetido por um dado número de


gerações...
Inteligência Artificial

Desempenho
3

2,8
Função Objetivo

2,6
AG com elitismo
2,4 AG sem elitismo

2,2

5 10 15 20 25
Geração
Inteligência Artificial

Crossover de n-Pontos
Crossover de 1 ponto:

Pai # 1 0 1 1 0 1 Crossover Filho # 1 0 1 1 0 0

Pai # 2 1 1 0 0 0 Filho # 2 1 1 0 0 1

Crossover de 2 pontos:

Pai # 1 0 1 1 0 1 Crossover Filho # 1 0 1 0 0 1

Pai # 2 1 1 0 0 0 Filho # 2 1 1 1 0 0
Inteligência Artificial

Representação Real

É compreendida mais facilmente pelo ser humano,


além disso requer menos memória

Representação Real x Binária: são muitos os


pesquisadores favoráveis a representação Real
(Michalewicz, 1992)

Na representação real os cromossomos podem ser


descritos como:

mãe = (m1, m2, ..., mL) pai = (p1, p2, ..., pL)

filho = (a1, a2, ..., aL)


Inteligência Artificial

Representação Real
Representação:

mãe = (m1, m2, ..., mL) pai = (p1, p2, ..., pL)
filho = (a1, a2, ..., aL)

Crossover Média: ai = (mi + pi)/2

Crossover Média Geométrica: ai = (mi . pi)

Blend crossover (BLX- ):

número aleatório escolhido numa


distribuição uniforme:
Inteligência Artificial

Representação Real

Maximizar:

Com:

Exemplo Blend crossover (BLX - 0,5):


mãe = (30,173; 85,342)
pai = (75,989; 10,162)

a1 = 30,173 + 1,262 (75,989 – 30,173) = 87,993


a2 = 85,342 + 1,262 (10,162 – 85,342) = -9,535

filho = (87,993; -9535)


Inteligência Artificial

Representação Real
Mutação Randômica:
Substituição de um gene por um número escolhido
aleatoriamente no intervalo permitido pelo problema

Mutação Creep:
Adiciona ao gene um pequeno número aleatório
obtido de uma distribuição normal

Variação da Mutação Creep:


Multiplica o gene por um número aleatório próximo de
um
Inteligência Artificial

O Problema do Caixeiro Viajante


Um vendedor tem uma lista de cidades que precisa visitar
exatamente uma vez. Há estradas diretas entre cada par de
cidades da lista. Encontre a rota que o vendedor deverá seguir
para que a viagem seja a menor possível, e que comece e termine
em uma mesma cidade (que poderá ser qualquer uma da lista).

Exemplo:
Início São Paulo Rio de Belo Brasília Salvador
Início Janeiro Horizonte
São Paulo 429 586 1015 1954
Rio de Janeiro 429 434 1145 1720
Belo Horizonte 586 434 716 1354
Brasília 1015 1145 716 1529
Salvador 1954 1720 1354 1529
Inteligência Artificial

O Problema do Caixeiro Viajante


Um vendedor tem uma lista de cidades que precisa visitar
exatamente uma vez. Há estradas diretas entre cada par de
cidades da lista. Encontre a rota que o vendedor deverá seguir
para que a viagem seja a menor possível, e que comece e termine
em uma mesma cidade (que poderá ser qualquer uma da lista).

Exemplo: 1954 São Paulo 429

1529 Salvador Rio de Janeiro 434

1145 Brasília Belo Horizonte 716

434 Rio de Janeiro Brasília 1529


586 Belo Horizonte Salvador 1954

São Paulo Total: 5644 Total: 5062 São Paulo


Inteligência Artificial

O Problema do Caixeiro Viajante


Um vendedor tem uma lista de cidades que precisa visitar
exatamente uma vez. Há estradas diretas entre cada par de
cidades da lista. Encontre a rota que o vendedor deverá seguir
para que a viagem seja a menor possível, e que comece e termine
em uma mesma cidade (que poderá ser qualquer uma da lista).

• Problema NP-completo: têm sido resolvidos com algoritmos


heurísticos (por exemplo, algoritmos genéticos)
• Para N cidades o no. de caminhos possíveis é igual a (N-1)!
• O tempo necessário para checar cada caminho é proporcional a N
• Logo o tempo total de busca é N!

Para
Paraapenas
apenas10
10cidades,
cidades,10!
10!==33628
628800
800
Inteligência Artificial

Possível Representação

B
A C

D
G E

Cromossomo: A B C D F E G
Inteligência Artificial

Problema de Roteamento de
Veículos
Uma frota de veículos deve
atender um conjunto de
clientes. Os veículos podem
partir de um ou mais
depósitos e devem regressar
ao depósito de origem ao
final da jornada. Cada veículo
possui uma capacidade fixa.
Cada cliente possui uma
demanda conhecida que
deve ser satisfeita por um
único veículo em apenas uma
viagem. Cada viagem possui
um custo

Cliente Depósito
Inteligência Artificial

Possível Representação

Cada cromossomo é representado por 2 vetores:

• O 1o. vetor representa cada cliente por uma


posição. O valor armazenado em cada posição
indica o depósito que atenderá o cliente.
• O 2o. vetor representa cada depósito por uma
posição. O valor armazenado em cada posição
representa a demanda acumulada pelo depósito.
Inteligência Artificial

Outras Aplicações Com Algoritmos


Genéticos

• Alocação de tarefas em sistemas


multiprocessadores;
• Controle de sistemas dinâmicos;
• Definição de estratégias de jogos;
• Otimização de trajetórias de robôs;
• Projeto de circuitos eletrônicos;
• Simulação de comportamento de preços;
• etc...
Inteligência Artificial

Exercício
Implemente um algoritmo genético para achar o ponto
máximo da função

no intervalo

Apresente o resultado em um gráfico de função objetivo


versus no de gerações. A listagem da programação também
será solicitada
Inteligência Artificial

Boas Referências

GOLDBERG, D.E. Genetic algorithms in search,


optimization, and machine learning. Addison-
Wesley, 1989.
MICHALEWICZ, Z. Genetic algorithms + data structures
= evolution programs. 3rd edition. Springer-Verlag,
1996.