Inteligência Artificial - Busca com informação
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Inteligência Artificial - Busca com informação

on

  • 916 views

 

Statistics

Views

Total Views
916
Views on SlideShare
916
Embed Views
0

Actions

Likes
0
Downloads
32
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft Word

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Inteligência Artificial - Busca com informação Document Transcript

  • 1. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO SUL DE MINAS – CAMPUS MUZAMBINHO Curso Superior de Ciência da Computação PEDRO HENRIQUE DE OLIVEIRA MACHADO SAYMON CRISTIAN ALVES OLIVEIRA REGINALDO FARIA DA SILVA RESOLUÇÃO DE PROBLEMAS POR MEIO DE BUSCA COM INFORMAÇÃO Muzambinho 2013
  • 2. 2 Sumário 1 Resolução de Problemas por meio de busca ...................................................................... 3 2 Busca com Informação ....................................................................................................... 3 3 Heurística............................................................................................................................ 3 4 Busca A* ............................................................................................................................. 4 5 Busca Gulosa ..................................................................................................................... 6 6 Minimax .............................................................................................................................. 6 7 Anexo I ..............................................................................................................................10 7.1 Exemplo de aplicação de Heurística com A* segundo NICÁCIO 2012 ........................10 7.1.1 8 O problema do Metrô de Paris .............................................................................10 Bibliografia .........................................................................................................................13
  • 3. 3 1 Resolução de Problemas por meio de busca É construir um espaço de estados para encontrar uma sequência de ações cuja aplicação resolve um problema.(RIZZI, 2013) Segundo LIMA, o processo de tentar encontrar uma sequencia de ações que leva de um estado até um estado objetivo é chamado de busca. 2 Busca com Informação A Busca com Informação utiliza a definição do problema bem como o conhecimento específico do problema (informações do problema) para efetuar as buscas, este método, não procura a melhor solução é sim uma boa ou apenas alguma solução. Portanto a Busca com Informação utiliza o conhecimento específico para as tomadas de decisão, ou seja, a escolha do próximo nó a ser expandido, isso não garante encontrar uma solução nem ao menos uma solução ótima mais na maioria das vezes consegue acelerar o processo. Ex: perder uma chave e se recordar da ultima vez que utilizou ela para começar a procurar. 3 Heurística Problemas intratáveis ou difíceis de se obter uma solução ótima são casos da aplicação de algoritmos de heurística. Pode-se dizer que é um algoritmo que pode produzir um bom resultado, ou até mesmo obter a solução ótima, mas pode também não produzir solução alguma ou uma solução que está distante da solução ótima, assim ele gerasoluções aproximadas dentro de um limite, afim de mostrar qualidade nos resultados.
  • 4. 4 Trabalhamos com algoritmos de heurística quando se diz respeito ao consumo de tempo e não ter uma grande quantidade de recursos para encontrar soluções de boa qualidade. Definimos alguns casos e exemplos de heurística para melhor entendimento: ● Problema da subida da encosta ou Hill Climbing:é uma estratégia que foi baseada na Busca em Profundidade, que liga a ideia de atingir o objetivo com o menor custo ou menor número de regras. A ideia é, empregando uma ordenação total ou parcial do conjunto de estados, é possível dizer se um estado sucessor leva para mais perto ou para mais longe da solução. Assim o algoritmo de busca pode preferir explorar em primeiro lugar os estados que levam para mais perto da solução. ● Há duas variações do método: a Subida de Encosta SIMPLES e a Subida de Encosta PELA TRILHA MAIS ÍNGREME. ● Subida de encosta simples: vai examinando os sucessores do estado atual e segue para o primeiro estado que for maior que o atual. ● Subida de encosta pela trilha mais íngreme: Examina todos os sucessores do estado atual e escolhe entre estes sucessores qual é o que está mais próximo da solução. ● Caixeiro Viajante: ● Problema das cores do mapa: Se assemelha com o “tentativa e erro”. 4 Busca A* É a forma mais conhecida de busca pela melhor escolha, avalia os nós combinando g(n), o custo para alcançar cada nó , e h(n), o custo para ir do nó até o objetivo: f(n) = g(n) + h(n). (RUSSEL, 2004)
  • 5. 5 Sendo assim g(n) trata-se do caminho a ser percorrido do nó inicial até o nó n sendo este o nó atual e h(n) refere-se ao caminho a ser percorrido do nó n até o nó objetivo, desta forma f(n) caracteriza pela soma do caminho a ser percorrido para se chegar ao nó n com o caminho a ser percorrido do nó n até chegar o objetivo da busca onde é estimada a solução de custo maís baixo passando por n. O algoritmo de Busca A* visa experimentar primeiro o nó com menor valor de g(n) + h(n), esta estratégia poderá resultar em um algoritmo ótimo e completo, desde que a função heurística h(n) satisfaça certas condições, a busca A* será ao mesmo tempo completa e ótima. Segundo RUSSEL(2004), A* será ótima se for usada com BUSCA-EM-ÁRVORE e se h(n) for uma heurística admissível, isto é, desde que h(n) nunca superestime o custo para alcançar o objetivo. Heurística admissíveis são otimistas por natureza , pois imaginam que o custo da resolução do problema seja menor do que ele é na realidade. Tendo em vista que g(n) nunca irá superestimar o custo verdadeiro de uma solução passando por n. Se h(n) for sempre uma subestimativa da distância de um nó a um nó objetivo, então o algoritmo A* será ótimo: é garantido encontrar o caminho mais curto até um estado objetivo. A* é descrito como sendo otimamente eficiente, no sentido de que, para encontrar o caminho até o nó objetivo, ele expandirá o mínimo de caminhos possível. Mais uma vez, essa propriedade depende de h(n) ser sempre um subestimativa. (COPPIN, 2012) A* será completo apenas se: ● a árvore a ser percorrida tiver um fator finito de ramificação; ● não contiver um caminho de custo finito com um número de nós infinitos; ● se o grafo a ser percorrido for localmente finito, ou seja, deve possuir um fator finito de ramificações; ● e todo arco entre dois nós do grafo tiver um custo diferente de zero.
  • 6. 6 5 Busca Gulosa A busca gulosa pela melhor escolha tenta expandir o nó mais próximo à meta, na suposição de que isso provavelmente levará a uma solução rápida segundo Russel, 2004, ou seja, o algoritmo se dirige ao nó cuja medida reta até o destino proposto seja o menor entre todos os nós isso supostamente levaria o algoritmo a um caminho mais próximo. Busca gulosa é uma variação do algoritmo A*, na qual g(nó) é zerada, de tal modo que apenas h(nó) é utilizada para avaliar caminhos apropriados. Deste modo, o algoritmo sempre seleciona o caminho que tenha o menor valor heurístico ou distância estimada (ou custo) até o objetivo.(COPPIN, 2012) No entanto a distância reta entre um nó a outro pode não ser a distância exata a ser percorrida o que faz com que a solução encontrada pelo algoritmo de Busca Gulosa não seja uma solução ótima uma vez que a distância a ser percorrida possa ser maior que a distância das retas. 6 Minimax É um método usado na Teoria da Decisão, Teoria dos Jogos, Estatística e Filosofia para minimizar a perda máxima possível.(CALADO, 2008/2009) O minimax é um recurso para minimizar a perda máximapossível. Sendo considerado como a maximização do ganho mínimo. Avaliando a árvore de jogos, pode-se assumir que o computador esteja tentando maximizar alguma pontuação que o oponente esteja tentando minimizar. O Algoritmo Minimax é usado para identificar os bons movimentos. Tendo a disponibilidade de uma adequada função estática de avaliação que seja capaz de fornecer uma pontuação geral para uma dada posição. Assim ao aplicar o Minimax o avaliador estático será utilizado apenas nas folhas e os valores das folhas serão
  • 7. 7 filtrados, subindo a árvore, para pegar o melhor caminho que o computador possa atingir. O algoritmo minimax calcula a decisão minimax a partir do estado corrente. Ela utiliza uma computação recursiva simples dos valores minimax de cada estado sucessor, implementando diretamente as equações da definição. A recursão percorre todo o caminho descendente até as folhas da árvore, e depois os valores minimax são propagados de volta pela árvore, à medida que a recursão retorna. O algoritmo minimax executa uma exploração completa em profundidade da árvore de jogo. Se a profundidade máxima da árvore é m e existem b movimentos válidos em cada ponto, a complexidade de tempo do m m algoritmo minimax é O(b ). A complexidade de espaço é O(b )para um m algoritmo que gera todos os sucessores de um vez ou O(b )para um algoritmo que gera um sucesso de cada vez.(RUSSEL, 2004) O Algoritmo Minimax um procedimento recursivo direto, que usa por base dois procedimentos auxiliares, específicos do jogo, o gerador de movimento e a avaliação estática. O procedimento minimax precisa de três parâmetros para ser iniciada. - Posição do Tabuleiro. - Atual profundidade da busca. - Jogador que realizara a jogada. Sendo assim uma função recursiva, a profundidade atual é a mais comumente utilizada para o encerramento. É possível utilizar diversos modos: limitar o procedimento através do número de nós gerado, através do tempo estipulado, ou até que a busca ache um movimento que não seja ruim não precisa ser o melhor movimento. Como em qualquer partida, existe o fator do tempo do relógio, que varia muito conforme a ocasião. Assim foi feito o mecanismo de cotas de tempo para que o tempo seja processado e administrado do melhor modo como se fosse um humano. Podendo estipular o tempo do jogo e assim feito uma estimativa do tempo de cada jogada. Durante a execução, quando a cota de tempo é ultrapassada, a estrutura é retornada e o movimento com a melhor contagem até então é realizado.
  • 8. 8 O procedimento minimax traz como resultado a estrutura que contém o valor do caminho escolhido e o caminho em si, com o primeiro elemento, que representa o melhor movimento a partir da posição atual. Se estiver dentro da cota de tempo, uma camada da arvore é gerada, chamando a função de geração de movimento e atribuindo como nós sucessores a lista que for retornada. Casa não haja sucessores, então não há mais movimento a fazer. Retorna a estrutura. Se a lista de sucessores não estiver vazia, então cada elemento é examinado através da função de avaliação estática, que retornara o valor de cada nó, sendo guardado o registro do melhor elemento. Como o Procedimento Minimax, tem um caminho que é explorado até o onde o tempo permitir, muito caminhos podem surgir sem necessidade. Através de algoritmos de busca fazendo algumas alterações no algoritmo Minimax para que isso não ocorra. Alguns dos algoritmos de busca: ● Cortes Alfa-Beta- Técnica de manutenção de dois valores limites para os nós, modificando, dessa forma, a estratégia de ramificar e limitar utilizada no Minimax ● Busca de Quiescência- Consiste em uma busca adicional, que tenta solucionar o problema de respostas incertas que podem ser dadas pela função de avaliação caso se pare de aprofundar em uma árvore não estável. ● Busca de Consistência- Consiste em uma busca de quiescência que generaliza a busca de captura, frequentemente usada em programas de xadrez. Expande nós que não são consistentes. ● Busca Secundária- Aumentando a precisão do procedimento Minimax através da conferência dupla em determinada parte da árvore. ● Movimentos Livrescos- A utilização de movimentos livrescos nas sequências iniciais e finais em alguns jogos, combinada com a utilização do procedimento Minimax, fornece um exemplo de como o conhecimento e a busca podem ser combinados num único programa e produzir resultados mais eficazes do que quando aplicados isoladamente.
  • 9. 9 ● Busca Racional- Fundada na teoria da decisão, a ideia é analisar matematicamente as decisões tomadas por um algoritmo de busca para que sejam tomadas da melhor maneira possível.
  • 10. 10 7 Anexo I 7.1 Exemplo de aplicação de Heurística com A* segundo NICÁCIO 2012 7.1.1 O problema do Metrô de Paris “Suponha que queremos construir um sistema para auxiliar um usuário do metrô de Paris a saber o trajeto mais rápido entre a estação onde ele se encontra e a estação de destino. O usuário tem um painel com o mapa, podendo selecionar a sua estação de destino. O sistema então acende as luzes sobre o mapa mostrando o melhor trajeto a seguir (em termos de quais estações ele vai atravessar., e quais as conexões mais rápidas a fazer – se for o caso). Considere que: • A distância em linha reta entre duas estações quaisquer é dada em uma tabela. Para facilitar a vida, considere apenas 4 linhas do metrô. • A Velocidade média de um trem é de 30km/h; • Tempo gasto para trocar de linha dentro de mesma estação (fazer baldeação) é de 4 minutos.”(NICÁCIO, 2012)
  • 11. 11 Fonte: http://www.acso.uneb.br/marcosimoes/Disciplinas/UNEB/TEI3/Arquivos/MetroParis.pdf “No problema do metrô de Paris, adotamos como representação do Estado o seguinte conjunto de informações: • O número da estação de metrô • A linha a qual esta estação pertente • informação sobre baldeação – informações sobre as linhas de metrô que passam pela estação, quando esta estação dá acesso a mais de uma linha de metrô.
  • 12. 12 A informação sobre baldeação é importante porque informa ao agente de busca quando é possível trocar de linha de metrô, assim como também ajuda na formação da função heurística, visto que a realização de baldeação de linha pode ser mais custoso em um determinado ponto do caminho, mas nada impede que o caminho de menor custo seja justamente o caminho que utilize baldeações. Alguns exemplos da representação de um estado seriam: • E = (1, azul, null) – representando a estação UM que pertence à linha azul e não possui opção de baldeação. • E = (4, azul, azul-verde) – representando a estação QUATRO, que pertence à linha Azul e possui baldeação com a linha verde. • E = (4, verde, azul-verde) – representando a estação QUATRO, que pertence à linha Verde e possui baldeação com a linha azul. Observe que cada estação que possui opção de baldeação pode ser representada de duas formas diferentes, dependendo do caminho percorrido pelo agente. Pela ótica do agente de busca, se ele está percorrendo a linha azul em busca da estação 8 (linha verde ou amarela) e alcança a estação 4, naturalmente ele entenderá que essa estação pertence à linha que ele vem percorrendo (linha azul). Uma vez estando na estação 4-azul, o agente pode modificar seu trajeto para a estação 4-verde. Toda vez que o agente realizar uma ação onde ele não muda de estação, mas muda de linha, dizemos que o agente realizou uma ação de baldeação. Ações do agente Neste contexto, o agente pode realizar as seguintes ações: • Ir(estacao) • Baldear(Estação) Resultado da busca Utilizamos o algoritmo A* (A Estrela) para a busca do estado alvo. Para demonstração, escolhemos a estação 1 como estado inicial e a estação 14 como estado final. Como o algoritmo A* exige a utilização de funções heurísticas, precisávamos representar, em alguma estrutura de dados, as informações fornecidas pela lista através da tabela de distâncias e do mapa do metrô. No programa, portanto, todas essas informações necessárias estão à disposição em uma classe chamada ModeloMetro.java, utilizando o padrão de projeto singleton.”(NICÁCIO, 2012))
  • 13. 13 8 Bibliografia CALADO CARLOS, Luís, et al .Algoritmo MiniMax. Disponível em:<http://paginas.fe.up.pt/~eol/IA/IA0809/APONTAMENTOS/Alunos_MiniMax.pdf> 2008/2009. Acesso em: 04/09/2013. COPPPIN, Ben; Inteligência Artificial. Editora: LTC - Livros Técnicos e Científicos Editora LTDA 2012. 628p. NICÁCIO, Jalves Mendonça; MIRANDA, SunnyKelma Oliveira; PINTO, Fernando Antonio Dantas Gomes, Disponível em: <http://jalvesnicacio.wordpress.com/2012/03/25/algoritmo-a-a-star-e-busca-emlargura/> Publicado em : 25 março 2012 . Acesso em: 17/09/2013 LIMA, Edirlei Soares de. Inteligência Artificial – Resolução de Problemas por Meio de Busca. Disponível em: <http://edirlei.3dgb.com.br/aulas/ia_2012_2/IA_Aula_03_Busca_2012.pdf> Acesso em: 31/08/2013. RIZZI, Claudia Brandelero, Inteligência Artificial – Busca com informação e exploração. Disponível em: <http://www.inf.unioeste.br/~claudia/aula2203_heu1.pdf> 25/03/2013, Acesso em : 31/08/2013. RUSSELL, Stuart ; NORVIG, Peter. Inteligência Artificial. 12ª Tirgagem. Elsevier 2004. 1021 p. Editora: