DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais...

33
DSC/CCT/UFCG Inteligência Artificial I Inteligência Artificial I Resolução de Problemas (Parte Resolução de Problemas (Parte VI) VI) Informações Adicionais Informações Adicionais Prof. Prof. a a Joseana Macêdo Fechine Joseana Macêdo Fechine [email protected] [email protected] Carga Horária: 60 horas Universidade Federal de Campina Grande Universidade Federal de Campina Grande Departamento de Sistemas e Computação Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Curso de Bacharelado em Ciência da Computação Computação Figura: Capa do Livro Hamburger, H., Richards, D. Logic and Language Models for Computer Science, Prentice Hall.

Transcript of DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais...

Page 1: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

DSC/CCT/UFCG

Inteligência Artificial IInteligência Artificial I

Resolução de Problemas (Parte Resolução de Problemas (Parte VI) VI)

Informações AdicionaisInformações Adicionais

Prof.Prof.aa Joseana Macêdo Fechine Joseana Macêdo Fechine [email protected]@dsc.ufcg.edu.br

Carga Horária: 60 horas

Universidade Federal de Campina GrandeUniversidade Federal de Campina GrandeDepartamento de Sistemas e Computação Departamento de Sistemas e Computação

Curso de Bacharelado em Ciência da Curso de Bacharelado em Ciência da ComputaçãoComputação

Figu

ra: C

apa

do L

ivro

Ham

burg

er, H

., Ri

char

ds, D

. Log

ic a

nd L

angu

age

Mod

els

for

Com

pute

r Sc

ienc

e, P

rent

ice H

all.

Page 2: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

2

DSC/CCT/UFCG

Em Busca de Soluções

Tópico

Ilustrações – Algoritmos de Busca LocalAlgoritmos

Genéticos

Page 3: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

3

DSC/CCT/UFCG

Algoritmos Genéticos

Page 4: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

4

DSC/CCT/UFCG

Seleção: escolhemos os indivíduos que participarão

do processo reprodutório

Avaliação : Aplicamos a função de

avaliação a cada um dos indivíduos desta geração

Operadores genéticos: Aplicamos os operadores de recombinação e mutação

aos indivíduos escolhidos para “pais”

Satisfizemos o critério de parada ? (por nº de gerações ou por qua-lidade das soluções)

Não

Fim

Sim

Módulo de população :definimos a nova população a partir

da geração existente e dos filhosgerados

Filhos gerados sobrevivem e são copiados

sobre seus pais

Toda a antiga geração de pais

Cortes a serem efetuados :

Filho 1 :

Filho 2 :

Algoritmos Genéticos

Fonte:http://rico_linden.tripod.com/GA/

Page 5: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

5

DSC/CCT/UFCG

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:

1. [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)

2. [Crossover] Produza dois descendentes (filhos) realizando cruzamento com os cromossomos dos pais. O ponto para a realização do cruzamento deve ser aleatório.

3. [Mutação] Com uma certa probabilidade, o descendente sofre mutação em cada posição no cromossomo.

4. [Aceitação] Coloque os descendentes em uma nova população, juntamente com a melhor solução da geração velha.

Algoritmos Genéticos

Page 6: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

6

DSC/CCT/UFCG

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

Algoritmos Genéticos

Page 7: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

7

DSC/CCT/UFCG

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.

Page 8: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

8

DSC/CCT/UFCG

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?

Algoritmos Genéticos

Page 9: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

9

DSC/CCT/UFCG

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) A representação deve ser a mais simples possível;b) Se houver soluções proibidas ao problema, então elas não

devem ter uma representação;c) Se o problema impuser condições de algum tipo, estas devem

estar implícitas na representação.

Algoritmos Genéticos

Page 10: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

10

DSC/CCT/UFCG

Algoritmos GenéticosTerminologia

Linguagem natural GA

cromossomo indivíduo,string, cromossomo, árvore

gene característica

alelo valor

locus posição

genótipo estrutura

fenótipo conjunto de parâmetros

Page 11: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

11

DSC/CCT/UFCG

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.

Algoritmos Genéticos

Page 12: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

12

DSC/CCT/UFCG

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.

Algoritmos Genéticos

Page 13: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

13

DSC/CCT/UFCG

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.

Algoritmos Genéticos

Page 14: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

14

DSC/CCT/UFCG

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.

Algoritmos Genéticos

Page 15: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

15

DSC/CCT/UFCG

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.

Algoritmos Genéticos

Page 16: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

16

DSC/CCT/UFCG

Algoritmos GenéticosSeleçã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.

Page 17: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

17

DSC/CCT/UFCG

Algoritmos GenéticosSeleçã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.

Page 18: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

18

DSC/CCT/UFCG

Seleção de Pais Exemplo:

Indivíduo Avaliação

0001 1

0011 9

0100 16

0110 36

Total 62

Pedaço da roleta (%)

Pedaço da roleta (º)

1.61 5.8

14.51 52.2

25.81 92.9

58.07 209.1

100.00 360.0

Page 19: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

19

DSC/CCT/UFCG

Algoritmos GenéticosSeleção dos Pais

Exemplo (cont.) – Graficamente, temos:

Page 20: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

20

DSC/CCT/UFCG

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ó.

Algoritmos Genéticos

Page 21: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

21

DSC/CCT/UFCG

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.

Algoritmos Genéticos

Page 22: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

22

DSC/CCT/UFCG

Operador de Crossover

Algoritmos Genéticos

gen

Pontos de Corte: 1 2 3 4

Page 23: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

23

DSC/CCT/UFCG

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).

Algoritmos Genéticos

Page 24: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

24

DSC/CCT/UFCG

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

Algoritmos Genéticos

Page 25: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

25

DSC/CCT/UFCG

Algoritmos GenéticosOperador de Crossover

Fonte: http://www.icmc.usp.br/~andre/research/genetic/index.htm

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.

Page 26: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

26

DSC/CCT/UFCG

Algoritmos GenéticosOperador 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.

Page 27: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

27

DSC/CCT/UFCG

Algoritmos GenéticosOperador 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

Fonte: http://www.icmc.usp.br/~andre/research/genetic/index.htm

Outro exemplo:

Page 28: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

28

DSC/CCT/UFCG

Algoritmos Genéticos

Operadores em

Conjunto

(a) (b)

Pai 1

Pai 2

Selecionamos um ponto de corte

Pai 1

Pai 2

Depois dooperador de

crossover

Filho 1

Filho 2

Depois do operador de mutação

Filho 1

Filho 2 Gen alteradopela mutação

(c)(d)

Page 29: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

29

DSC/CCT/UFCG

Algoritmos GenéticosMó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.

Page 30: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

30

DSC/CCT/UFCG

Algoritmos GenéticosMó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.

Page 31: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

31

DSC/CCT/UFCG

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ão2. Problemas de convergência3. Escolha da Técnica de Seleção4. Lacuna entre gerações (generation gap)

Page 32: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

32

DSC/CCT/UFCG

Algoritmos GenéticosAlgoritmo 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.

Page 33: DSC/CCT/UFCG Inteligência Artificial I Resolução de Problemas (Parte VI) Informações Adicionais Prof. a Joseana Macêdo Fechine Prof. a Joseana Macêdo Fechine.

33

DSC/CCT/UFCG

Algoritmos Genéticos

Exemplo de simulação: solução para o Problema do Caixeiro Viajante (PCV) http://lsin.unisantos.br/lvcon/experimento?id=3