1 Inteligência Artificial Aula 3. 2 Subida de Encosta Variação do procedimento gerar-e-testar;...

22
1 Inteligência Artificial Aula 3

Transcript of 1 Inteligência Artificial Aula 3. 2 Subida de Encosta Variação do procedimento gerar-e-testar;...

Page 1: 1 Inteligência Artificial Aula 3. 2 Subida de Encosta Variação do procedimento gerar-e-testar; muito utilizado quando há disponibilidade de uma boa função.

1

Inteligência Artificial

Aula 3

Page 2: 1 Inteligência Artificial Aula 3. 2 Subida de Encosta Variação do procedimento gerar-e-testar; muito utilizado quando há disponibilidade de uma boa função.

2

Subida de Encosta• Variação do procedimento gerar-e-testar;• muito utilizado quando há disponibilidade de uma boa

função heurística para avaliar estados e nenhum outro conhecimento útil está disponível;

• Subida de encosta simples:1.avalie o estado inicial, se ele for um estado- meta, retorne-o e

encerre-o, caso contrário continue com o estado-inicial como o estado corrente;

2.repita a operação (loop) até que uma solução seja encontrada ou até não haver nenhum operador a ser aplicado ao estado corrente:

Page 3: 1 Inteligência Artificial Aula 3. 2 Subida de Encosta Variação do procedimento gerar-e-testar; muito utilizado quando há disponibilidade de uma boa função.

3

– a) escolha um operador que ainda não tenha sido aplicado ao estado corrente e aplique-o para produzir um novo estado;

– b) avalie o novo estado:• se for um estado-meta, então retorne-o e encerre.

• Se não for um estado-meta, mas for melhor que o estado corrente então transforme-o em estado corrente;

• se não for melhor que o estado corrente, então continue no loop.

– Diferença entre este algoritmo e o gerar-e-testar, neste caso o algoritmo possui um função de avaliação como meio de injetar ao processo controle dos conhecimentos específicos a respeito da tarefa (busca heurística);

Page 4: 1 Inteligência Artificial Aula 3. 2 Subida de Encosta Variação do procedimento gerar-e-testar; muito utilizado quando há disponibilidade de uma boa função.

4

– Pergunta-se ao longo da heurística : “Este estado é melhor que o outro?”;

– para o algoritmo funcionar precisamos definir o que significa “melhor”;

• exemplo:quebra-cabeça dos quatro cubos coloridos;• para solucionar o problema necessita-se definir uma função heurística que

descreva o quão perto esta uma determinada situação da solução (estado-meta);

• necessita-se escrever um conjunto de regras que irão transformar uma configuração em outra (conhecimento do problema, espaço de estados);

• gera-se um estado inicial aleatório;• busca-se a solução através da função heurística;• se o estado resultante for melhor , será mantido, senão voltaremos ao estado

anterior e buscaremos uma heurística diferente;

Page 5: 1 Inteligência Artificial Aula 3. 2 Subida de Encosta Variação do procedimento gerar-e-testar; muito utilizado quando há disponibilidade de uma boa função.

5

Subida de Encosta pela trilha mais íngreme

• Considera todos os movimento já feitos a partir do estado corrente selecionando o melhor como próximo estado;

• algoritmo:1. Avalie o estado inicial. Se ele também for um estado

meta, retorne-o e encerre, caso contrário, continue com o estado inicial como estado corrente;

2. Repita o processo até encontrar uma solução ou até que uma iteração completa não produza nenhuma mudança no estado corrente:

Page 6: 1 Inteligência Artificial Aula 3. 2 Subida de Encosta Variação do procedimento gerar-e-testar; muito utilizado quando há disponibilidade de uma boa função.

6

– a) atribua a sucessor um estado;– b) para cada operador que se aplique ao estado corrente faça o

seguinte:• aplique o operador e gere um estado novo;• avalie o novo estado. Se for um estado-meta, retorne-o e encerre. Senão,

compare-o a sucessor, se for melhor, então atribua-o a sucessor, caso contrário deixe o sucessor como está.

– Exemplo:• cubos coloridos neste método, precisamos considerar todas as alterações do

estado inicial e escolher a melhor;• neste problema isto é difícil pois temos muitos movimentos possíveis

(explosão combinatória);• sempre há perdas e ganhos entre o tempo exigido para escolher um

movimento e o número de movimentos necessários para chegar a uma solução;

Page 7: 1 Inteligência Artificial Aula 3. 2 Subida de Encosta Variação do procedimento gerar-e-testar; muito utilizado quando há disponibilidade de uma boa função.

7

– Os métodos vistos até então podem não encontrar uma solução, qualquer um dos algoritmos pode terminar, não porque o estado-meta foi encontrado, mas porque chegou-se a um estado que não há nenhum estado melhor que ele, isto ocorre quando um programa tiver alcançado o máximo local, um platô ou uma cordilheira;

• máximo local: estado melhor que todos os seus vizinhos, mas não melhor que estados mais distantes;

• platô:área dentro do espaço de busca onde o grupo de estados vizinhos tem o mesmo valor, não sendo possível determinar a melhor direção através de comparações locais;

Page 8: 1 Inteligência Artificial Aula 3. 2 Subida de Encosta Variação do procedimento gerar-e-testar; muito utilizado quando há disponibilidade de uma boa função.

8

• cume:um tipo de máximo local. Área do espaço de busca mais alta que seus vizinhos que não permite atravessar a cordilheira num único movimento;

– modos para lidar com estes problemas:• volte a um nó anterior e siga uma heurística diferente (máximos

locais);• de um salto grande em alguma direção para tentar chegar a uma

nova seção do espaço de busca (platôs);• aplique duas ou mais regras, move-se em várias direções ao

mesmo tempo (cordilheiras);

– apesar de todos estas estratégias a subida de encosta não é muito eficiente

Page 9: 1 Inteligência Artificial Aula 3. 2 Subida de Encosta Variação do procedimento gerar-e-testar; muito utilizado quando há disponibilidade de uma boa função.

9

Têmpera Simulada• Variação da subida de encosta;• no início do processo podem ser feitos movimentos

descendentes (morro abaixo) explorando suficientemente o espaço do problema, para que a solução final não fique presa a um máximo local, platô ou cordilheira;

• utilizada em processos físicos de recozimento, onde substâncias físicas como os metais são fundidas ( altos níveis de energia) e depois gradualmente resfriados até alcançar um estado sólido;

Page 10: 1 Inteligência Artificial Aula 3. 2 Subida de Encosta Variação do procedimento gerar-e-testar; muito utilizado quando há disponibilidade de uma boa função.

10

• Objetivo: produzir um estado final com um mínimo de energia (estado-meta);

• função-objetivo (função heurística) é o nível de energia;

• a velocidade com que o sistema é resfriado é chamado de cronograma de têmpera;

• algoritmo:1. Avalie o estado inicial. Se for também um estado-

meta, então retorne-o e encerre. Caso contrário, continue com o estado inicial como estdo corrente;

2. Inicialize melhor-até-o´momento como igual ao estado corrente;

Page 11: 1 Inteligência Artificial Aula 3. 2 Subida de Encosta Variação do procedimento gerar-e-testar; muito utilizado quando há disponibilidade de uma boa função.

11

3. Inicialize T de acordo com o cronograma de têmpera;

4. Repita o processo até ser encontrada uma solução ou até não haver mais nenhum operador que possa ser aplicado no estado corrente:

– a) selecione um operador que ainda não tenha sido aplicado ao estado corrente e aplique-o para produzir um estado novo;

– b) avalie o estado novo. CalculeE = valor do estado corrente - valor do estado novo

(mudança de energia)– se o estado novo for um estado meta, retorne-o e encerre;

Page 12: 1 Inteligência Artificial Aula 3. 2 Subida de Encosta Variação do procedimento gerar-e-testar; muito utilizado quando há disponibilidade de uma boa função.

12

– se não for um estado meta, mas for melhore que o estado corrente, então torne-o o estado corrente com a probabilidade p´ ( definido aleatoriamente um número entre [0,1] se for menor que p´então o movimento é aceito, senão , não faz nada;

– c) retorne melhor-até-o-momento como resposta;

• até agora utilizamos duas estratégias sistemáticas de controle de busca , busca em profundidade e em amplitude (diversos tipos);

• best-first search: busca pela melhor escolha combinando a busca em amplitude e em profundidade;

Busca pela melhor escolha

Page 13: 1 Inteligência Artificial Aula 3. 2 Subida de Encosta Variação do procedimento gerar-e-testar; muito utilizado quando há disponibilidade de uma boa função.

13

• Grafos ou:Grafos ou:– A busca em profundidade é interessante pois

permite que uma solução seja encontrada sem que todas as ramificações concorrentes tenham de ser expandidas e também porque não fica presa em caminhos sem saída;

– uma maneira de combinar os dois métodos é seguir um único caminha de cada vez, mas mudar de caminho toda vez que algum caminho concorrente parecer mais promissor do que o caminho corrente;

– grafos:

Page 14: 1 Inteligência Artificial Aula 3. 2 Subida de Encosta Variação do procedimento gerar-e-testar; muito utilizado quando há disponibilidade de uma boa função.

14

– Na subida de encosta, um movimento é selecionado e todos os outros rejeitados, e nunca mais voltam a ser reconsiderados;

– na busca pela melhor escolha, um movimento já selecionado fica disponível, caso o valor do estado corrente seja menor que o valor do selecionado;

– para a pesquisa de grafos precisamos usar duas listas de nós:

• abertos: nós que forma gerados e sofreram a aplicação da função heurística, mas que ainda não foram examinados (seus sucessores não foram gerados);

• fechados:nós que já foram examinados, precisamos mantê-los na memória para efetuar a busca no grafo;

Page 15: 1 Inteligência Artificial Aula 3. 2 Subida de Encosta Variação do procedimento gerar-e-testar; muito utilizado quando há disponibilidade de uma boa função.

15

• precisamos de uma função heurística que diga quais são os caminhos mais promissores;

• algoritmo:1. Comece com abertos contendo apenas o estado

inicial;

2. Até ser encontrado um estado-meta ou até não haver mais nenhum nó em abertos, faça o que segue:

a) pegue o melhor nó de abertos;

b) gere seus sucessores;

c) para cada sucessor faça:• se ele ainda não tiver sido gerado antes, avalie-o,

acrescente-o a Abertos e registre seu pai;

Page 16: 1 Inteligência Artificial Aula 3. 2 Subida de Encosta Variação do procedimento gerar-e-testar; muito utilizado quando há disponibilidade de uma boa função.

16

• se ele já tiver sido gerado antes, mude o pai se este novo caminho for melhor que o anterior; Neste caso, atualize o custo de chegar a este nó e a qualquer um dos sucessores que este nó possa ter;

• Algoritmo A*:Algoritmo A*:– o algoritmo que foi anteriormente apresentado é uma

generalização deste algoritmo A* apresentado por HART em 1968, para resolução de busca pela melhor escolha;

• Agendas:Agendas:• nos grafos OU assumimos que seria possível

avaliar vários caminhos para o mesmo nó, ou seja, chagariamos ao estado-meta por diferentes caminhos;

Page 17: 1 Inteligência Artificial Aula 3. 2 Subida de Encosta Variação do procedimento gerar-e-testar; muito utilizado quando há disponibilidade de uma boa função.

17

– não possuí nenhuma função heurística que distigua a distância entre um dado nó e uma meta (a espera a se chegar ao caminho meta pode ser maior ou menor (árdua de acordo com o caminho);

– agenda é uma lista de tarefas que um sistema pode realizar:• justificativas = lista de razoes pela qual a tarefa

está sendo proposta;• classificação = representa o peso total das

evidências que sugerem que a tarefa será útil;

– algoritmo:

Page 18: 1 Inteligência Artificial Aula 3. 2 Subida de Encosta Variação do procedimento gerar-e-testar; muito utilizado quando há disponibilidade de uma boa função.

18

1. Até chegar o estado-meta ou até a agenda ficar vazia:

a) escolha a tarefa mais promissora da agenda. Note que essa tarefa pode ser representada em qualquer formato desejado (pode ser uma declaração explícita do que deve ser feito a seguir ou simplesmente, uma indicação do próximo a ser expandido;

b) execute a tarefa dedicando a ela a quantidade de recursos determinada por sua importância. Os recursos importantes são o tempo e o espaço. A execução da tarefa gerará tarefas adicionais (nós sucessores):

– veja se ela já existe a agenda. Em caso positivo, veja se esta mesma razão para executá-la já está na lista de justificativas. Em caso positivo, ignore esta evidência atual. Se a justificativa ainda não estiver presente, acrescente à lista. Se a tarefa não estiver na agenda, insira-a;

Page 19: 1 Inteligência Artificial Aula 3. 2 Subida de Encosta Variação do procedimento gerar-e-testar; muito utilizado quando há disponibilidade de uma boa função.

19

– Calcule a classificação da nova tarefa, combinando as evidências de todas as suas justificativas. Nem todas justificativas tem peso igual. Em geral, é util associar a cada justificativa uma medida de sua força. Estas medidas são então combinadas na próxima etapa para produzir uma classificação global da tarefa;

• no método agenda o problema é encontrar a tarefa mais promissora a cada ciclo, para isso mantém-se a agenda organizada por classificação, ou seja,quando uma nova tarefa é criada, insira-a na agenda em local apropriado;

• quando uma tarefa tem suas justificativas alteradas, recalcule sua classificação e mova-a para o local correto da lista;

• este método gasta muito tempo para manter a agenda em ordem;

Page 20: 1 Inteligência Artificial Aula 3. 2 Subida de Encosta Variação do procedimento gerar-e-testar; muito utilizado quando há disponibilidade de uma boa função.

20

Redução de Problemas• Considerando estratégias de busca para o grafo OU

pretende-se encontrar um único caminho para o objetivo;

• utiliza-se outra estratégia, grafo E-OU, que representa a solução de problemas através da decomposição do problema em um conjunto de problemas menores que precisam ser resolvidos também (arco);

• como num arco ou, vários arcos podem surgir de um único nó, indicando uma série de maneiras de chegar ao estado-meta;

Page 21: 1 Inteligência Artificial Aula 3. 2 Subida de Encosta Variação do procedimento gerar-e-testar; muito utilizado quando há disponibilidade de uma boa função.

21

• Algoritmo AO*:– algoritmo de redução de problemas proposto por Martelli e Montari

(1973);

• Satisfação de Restrições:Satisfação de Restrições:– muitos problemas de IA podem ser vistos como problemas de

satisfação de restrições, sendo que o objetivo é descobrir algum estado problema que satisfaça a um determinado conjunto de restrições;

– utilizada em problemas de interpretação da percepção do mundo real;

– propagação para trás;– soluções parcialmente especificadas;

Page 22: 1 Inteligência Artificial Aula 3. 2 Subida de Encosta Variação do procedimento gerar-e-testar; muito utilizado quando há disponibilidade de uma boa função.

22

• Análise meios-fins:Análise meios-fins: – Raciocínio para frente e para trás (mistura):– chega-se ao estado-meta resolvendo-se

primeiramente os problemas mais difíceis , deixando para depois a resolução dos subproblemas (entre linhas da solução-conhecer as heurísticas);