Intelig - PowerPoint PPT Presentation

About This Presentation
Title:

Intelig

Description:

Title: Intelig ncia Artificial I Author: Joseana Mac do Fechine Last modified by: USE Created Date: 7/2/2005 4:46:30 PM Document presentation format – PowerPoint PPT presentation

Number of Views:58
Avg rating:3.0/5.0
Slides: 34
Provided by: Josea90
Category:

less

Transcript and Presenter's Notes

Title: Intelig


1
Universidade Federal de Campina
Grande Departamento de Sistemas e Computação
Curso de Bacharelado em Ciência da Computação
  • Inteligência Artificial I
  • Resolução de Problemas (Parte VI)
  • Informações Adicionais
  • Prof.a Joseana Macêdo Fechine
  • joseana_at_dsc.ufcg.edu.br
  • Carga Horária 60 horas

Figura Capa do Livro Hamburger, H., Richards, D.
Logic and Language Models for Computer Science,
Prentice Hall.
2
Em Busca de Soluções
  • Tópico
  • Ilustrações Algoritmos de Busca Local
  • Algoritmos Genéticos

3
Algoritmos Genéticos
4
Algoritmos Genéticos
Fontehttp//rico_linden.tripod.com/GA/
5
Algoritmos Genéticos
  • Esboço do Algoritmo Genético
  • Início Geração aleatória de uma população de n
    cromossomos.
  • Adaptação Verificar a função objetivo f(x) de
    cada cromossomo x.
  • População Cria-se uma nova população pela
    repetição a seguir
  • Seleção Selecione um par de cromossomos da
    população de acordo com a adaptação de cada um
    (os mais bem adaptados tem maior chance de serem
    escolhidos)
  • Crossover Produza dois descendentes (filhos)
    realizando cruzamento com os cromossomos dos
    pais. O ponto para a realização do cruzamento
    deve ser aleatório.
  • Mutação Com uma certa probabilidade, o
    descendente sofre mutação em cada posição no
    cromossomo.
  • Aceitação Coloque os descendentes em uma nova
    população, juntamente com a melhor solução da
    geração velha.

6
Algoritmos Genéticos
  • Esboço do Algoritmo Genético
  • Troca Substitua a população velha pela nova.
  • Teste Se a condição de finalização é
    satisfeita, pare, e retorne a melhor solução da
    população atua.
  • Adaptação
  • Laço Volte ao passo 1

7
Algoritmos Genéticos
  • Assim como na natureza, a informação deve ser
    codificada nos cromossomos (ou genomas)
  • A reprodução, que no caso dos GA, é equivalente à
    reprodução sexuada, se encarregará de fazer com
    que a população evolua.
  • A mutação cria diversidade, mudando
    aleatoriamente gens dentro de indivíduos.
  • A reprodução e a mutação são aplicadas em
    indivíduos selecionados dentro da população.

8
Algoritmos Genéticos
  • Questões importantes
  • Como criar cromossomos e qual tipo de codificação
    usar?
  • É a primeira pergunta que deve ser feita ao
    resolver um problema com AG.
  • A codificação dependerá fortemente do problema.
  • Como escolher os pais para a realização do
    crossover?
  • A geração de uma população a partir de duas
    soluções pode causar a perda da melhor solução. O
    que fazer?

9
Algoritmos Genéticos
  • Representação Cromossomial
  • Cada pedaço indivisível desta representação
    gene.
  • A representação cromossomial é completamente
    arbitrária.
  • É interessante apenas que algumas regras gerais
    sejam seguidas
  • A representação deve ser a mais simples possível
  • Se houver soluções proibidas ao problema, então
    elas não devem ter uma representação
  • Se o problema impuser condições de algum tipo,
    estas devem estar implícitas na representação.

10
Algoritmos Genéticos
  • Terminologia

11
Algoritmos Genéticos
  • Codificação binária
  • É a mais comum devido a sua simplicidade
  • Cada cromossomo é uma string de bits 0 ou 1
  • Crom A 1 0 1 1 0 0 1 0 1 1
  • Crom B 1 1 1 1 1 1 0 0 0 0
  • Exemplo de uso problema da mochila
  • O problema É dada uma lista de coisas com preços
    e tamanhos. É fornecido o valor da capacidade da
    mochila. Escolha as coisas de forma a maximizar o
    valor daquilo que cabe dentro da mochila, sem
    ultrapassar sua capacidade.
  • Codificação Cada bit é usado para dizer se a
    coisa correspondente está ou não na mochila.

12
Algoritmos Genéticos
  • Codificação por permutação
  • Mais usado em problemas de ordenação
  • Cada cromossomo é uma string de números que
    representa uma posição numa seqüência
  • Crom A 1  5  3  2  6  4  7  9  8
  • Crom B 8  5  6  7  2  3  1  4  9
  • Exemplo de uso problema do caixeiro viajante
  • O problema São dadas cidades e as distâncias
    entre elas. O caixeiro viajante tem que visitar
    todas elas, sem viajar mais do que o necessário.
    A solução do problema consiste em encontrar a
    seqüência de cidades em que as viagens devem ser
    feitas de forma que a distância percorrida seja a
    mínima possível.
  • Codificação os cromossomos descrevem a ordem em
    que o caixeiro irá visitar as cidades.

13
Algoritmos Genéticos
  • Codificação por valor
  • Usado em problemas nos quais valores mais
    complicados são necessários
  • Cada cromossomo é uma seqüência de valores
  • Crom A 1.2324 5.3243 0.4556 2.3293 2.4545
  • Crom B ABDJEIFJDHDIERJFDLDFLFEGT
  • Crom C (back), (back), (right), (forward),
    (left)
  • Exemplo de uso dada uma estrutura, encontrar
    pesos para uma rede neural.
  • O problema É dada uma rede neural com
    arquitetura definida. Encontre os pesos entre os
    neurônios da rede de forma a obter a resposta
    desejada da rede.
  • Codificação Valores reais num cromossomo
    representam pesos em uma rede neural.

14
Algoritmos Genéticos
  • Função de Avaliação
  • É a maneira utilizada pelos AG para determinar a
    qualidade de um indivíduo como solução do
    problema em questão.
  • É uma nota dada ao indivíduo na resolução do
    problema.
  • Será usada para a escolha dos indivíduos pelo
    módulo de seleção de pais, sendo a forma de
    diferenciar entre as boas e as más soluções para
    um problema.
  • Dada a generalidade dos AG, a função de
    avaliação, em muitos casos, é a única ligação
    verdadeira do programa com o problema real.

15
Algoritmos Genéticos
  • Função de Avaliação
  • Também chamada de função de custo (função de
    aptidão).
  • Calcula então um valor numérico que reflete quão
    bons os parâmetros representados no cromossomo
    resolvem o problema.
  • Usa todos os valores armazenados no cromossomo
    (os parâmetros) e retorna um valor numérico, cujo
    significado é uma métrica da qualidade da solução
    obtida usando-se aqueles parâmetros.
  • A função de avaliação deve ser tal que se o
    cromossomo c1 representa uma solução melhor do
    que o cromossomo c2, então a avaliação de c1 deve
    ser maior do que a avaliação de c2.

16
Algoritmos Genéticos
  • Seleção dos Pais
  • O método de seleção de pais deve simular o
    mecanismo de seleção natural
  • Pais mais capazes geram mais filhos
  • Pais menos aptos também podem gerar descendentes.
  • Temos que privilegiar os indivíduos com função de
    avaliação alta, sem desprezar completamente
    aqueles indivíduos com função de avaliação
    extremamente baixa
  • Até indivíduos com péssima avaliação podem ter
    características genéticas que sejam favoráveis à
    criação de um indivíduo ótimo. Estas
    características podem não estar presentes em
    nenhum outro cromossomo.

17
Algoritmos Genéticos
  • Seleção dos Pais
  • Método simples e muito adotado método da roleta
    viciada.
  • Criamos uma roleta (virtual) na qual cada
    cromossomo recebe um pedaço proporcional à sua
    avaliação (a soma dos pedaços não pode superar
    100).
  • Rodamos a roleta.
  • O selecionado será o indivíduo sobre o qual ela
    parar.

18
Seleção de Pais
  • Exemplo

19
Algoritmos Genéticos
  • Seleção dos Pais
  • Exemplo (cont.) Graficamente, temos

20
Algoritmos Genéticos
  • Operadores de Crossover e Mutação
  • Iremos trabalhar agora com a versão mais simples
    dos operadores genéticos.
  • Nesta versão, eles atuam em conjunto, como se
    fossem um só.

21
Algoritmos Genéticos
  • Operador de Crossover
  • Vamos começar com o operador de crossover mais
    simples, chamado de operador de crossover de um
    ponto.
  • Depois de selecionados dois pais pelo módulo de
    seleção de pais, um ponto de corte é selecionado.
  • Um ponto de corte constitui uma posição entre
    dois genes de um cromossomo.
  • Cada indivíduo de n genes contem n-1 pontos de
    corte.

22
Algoritmos Genéticos
  • Operador de Crossover

gen
1
2
Pontos de Corte
3
4
23
Algoritmos Genéticos
  • Operador de Crossover
  • Depois de sorteado o ponto de corte, separa-se os
    pais em duas partes uma à esquerda do ponto de
    corte e outra à direita.
  • É importante notar que não necessariamente estas
    duas partes têm o mesmo tamanho.
  • Primeiro filho composto através da concatenação
    da parte esquerda do primeiro pai com a parte
    direita do segundo pai.
  • Segundo filho composto através da concatenação
    das partes que sobraram (a metade esquerda do
    segundo pai com a metade à direita do primeiro
    pai).

24
Algoritmos Genéticos
  • Operador de Crossover
  • A operação deve ser realizada sobre os
    cromossomos dos pais para a criação de
    descendentes
  • Crom1 11010 00100110110
  • Crom2 11011 11000011110
  • Filho 1 11010 11000011110
  • Filho 2 11011 00100110110

25
Algoritmos Genéticos
  • Operador de Crossover

Outro exemplo
Um exemplo de crossover de um ponto. (a) dois
indivíduos são escolhidos. (b) um ponto (4) de
crossover é escolhido. (c) são recombinadas as
características, gerando dois novos indivíduos.
Fonte http//www.icmc.usp.br/andre/research/gene
tic/index.htm
26
Algoritmos Genéticos
  • Operador de Mutação
  • Depois de compostos os filhos, entra em ação o
    operador de mutação.
  • Este opera da seguinte forma
  • Ele tem associada uma probabilidade extremamente
    baixa (da ordem de 0,5)
  • Sortea-se um número entre 0 e 1.
  • Se ele for menor do que a probabilidade
    pré-determinada então o operador atua sobre o
    gene em questão, alterando-lhe o valor
    aleatoriamente.
  • Repete-se então o processo para todos os gens
    componentes dos dois filhos.

27
Algoritmos Genéticos
  • Operador de Mutação
  • O objetivo da mutação é evitar que as soluções na
    população fiquem apenas num mínimo local
  • Filho1 antes 1101111000011110
  • Filho2 antes 1101100100110110
  • Filho1 depois 1100111000011110
  • Filho2 depois 1101101100110100

Outro exemplo
Fonte http//www.icmc.usp.br/andre/research/gene
tic/index.htm
28
Algoritmos Genéticos
(a)
(b)
Pai 1
Pai 1
Selecionamos um ponto de corte
  • Operadores em Conjunto

Pai 2
Pai 2
Depois do operador de crossover
Filho 1
Filho 1
Depois do operador de mutação
Gen alterado pela mutação
Filho 2
Filho 2
(d)
(c)
29
Algoritmos Genéticos
  • Módulo da População
  • Responsável pelo controle da população.
  • Por simplicidade, população não pode crescer
  • permite que armazenemos a população em um vetor
    de tamanho constante.
  • Pais têm que ser substituídos conforme os filhos
    vão nascendo
  • Pode parecer estranho, visto que estamos
    acostumados a ver a população humana sempre
    crescendo.
  • Entretanto, simula bem ambientes de recursos
    limitados.

30
Algoritmos Genéticos
  • Módulo da População
  • Forma simples de obtenção
  • A cada atuação do operador genético são criados
    dois filhos.
  • Estes vão sendo armazenados em um espaço auxiliar
    até que o número de filhos criado seja igual ao
    tamanho da população.
  • Neste ponto o módulo de população entra em ação.
  • Todos os pais são então descartados e os filhos
    copiados para cima de suas posições de memória,
    indo tornar-se os pais da nova geração.

31
Algoritmos Genéticos
  • Aspectos Práticos
  • A implementação prática de um AG requer atenção
    para várias questões
  • 1. Escolha da Função de Avaliação/Aptidão
  • 2. Problemas de convergência
  • 3. Escolha da Técnica de Seleção
  • 4. Lacuna entre gerações (generation gap)

32
Algoritmos Genéticos
  • Algoritmo Genético Aplicado ao Caixeiro Viajante
  • 1. Uma população inicial é gerada aleatoriamente.
    Cada indivíduo da população é uma rota. Lembrando
    que as cidades não podem ser repetidas.
  • 2. Cada indivíduo é avaliado definindo seu
    fitness (valor de adequação) que é inversamente
    proporcional a distância total da rota.
  • 3. Um número aleatório de indivíduos (pode ser
    predefinido) é selecionado na roleta.
  • 4. Alguns dos indivíduos selecionados passam por
    alterações, através dos operadores genéticos
    (crossover e mutação).
  • 5. Uma nova população é gerada e repete-se os
    passos do 2 ao 5 até que um número pré-definido
    de gerações seja alcançado.

33
Algoritmos Genéticos
  • Exemplo de simulação solução para o Problema do
    Caixeiro Viajante (PCV)
  • http//lsin.unisantos.br/lvcon/experimento?id3
Write a Comment
User Comments (0)
About PowerShow.com