Inteligência Artificial - Busca com informação

16
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

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

Page 1: Inteligência Artificial - Busca com informação

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO SUL DE MINAS – CAMPUS

MUZAMBINHOCurso Superior de Ciência da Computação

PEDRO HENRIQUE DE OLIVEIRA MACHADOSAYMON CRISTIAN ALVES OLIVEIRA

REGINALDO FARIA DA SILVA

RESOLUÇÃO DE PROBLEMAS POR MEIO DE BUSCA COM INFORMAÇÃO

Muzambinho

Page 2: Inteligência Artificial - Busca com informação

2

2013

Sumário1 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 O problema do Metrô de Paris...............................................................................10

8 Bibliografia............................................................................................................................13

Page 3: Inteligência Artificial - Busca com informação

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 gera soluções aproximadas dentro de um limite, afim de mostrar

qualidade nos resultados.

Page 4: Inteligência Artificial - Busca com informação

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)

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ó

Page 5: Inteligência Artificial - Busca com informação

5

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.

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,

Page 6: Inteligência Artificial - Busca com informação

6

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áxima possí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

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

Page 7: Inteligência Artificial - Busca com informação

7

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

algoritmo minimax é O(bm). A complexidade de espaço é O(bm) para um

algoritmo que gera todos os sucessores de um vez ou O(bm) 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.

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

Page 8: Inteligência Artificial - Busca com informação

8

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.

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

Page 9: Inteligência Artificial - Busca com informação

9

7 Anexo I

7.1 Exemplo de aplicação de Heurística com A* segundo NICÁCIO 2012

Page 10: Inteligência Artificial - Busca com informação

10

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)

Page 11: Inteligência Artificial - Busca com informação

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

Page 12: Inteligência Artificial - Busca com informação

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

Page 13: Inteligência Artificial - Busca com informação

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, Sunny Kelma Oliveira; PINTO, Fernando

Antonio Dantas Gomes, Disponível em:

<http://jalvesnicacio.wordpress.com/2012/03/25/algoritmo-a-a-star-e-busca-em-

largura/> 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. Editora:

Elsevier 2004. 1021 p.