Você está na página 1de 72

FEOL – FACULDADES DE OLIVEIRA

Prof. Rodrigo Bahia Paiva


Inteligência Artificial

O que é Inteligência Artificial ?


Inteligência Artificial

 Etimologicamente - Inteligência (Origem: Latim)

Inter (entre) e legere (escolher)

Aquilo que permite ao ser humano escolher entre


uma coisa e outra;

Habilidade de realizar, de forma eficiente,


uma determinada tarefa.
Inteligência Artificial
 Artificial (Origem: Latim)

Artificiale

Algo não natural, isto é, produzido pelo homem.


Inteligência Artificial

“Um tipo de inteligência produzida pelo homem


para dotar as máquinas de algum tipo de
habilidade que simula a inteligência do homem.”
Inteligência Artificial
Algumas definições de IA:

 "O ramo da ciência da computação preocupada com


a automação de comportamento inteligente."
[LUGER & STUBBLEFIELD, 93]
 "O estudo da computação que torna possível
perceber, raciocinar e agir." [WINSTON, 92]
 "IA é a parte da ciência da computação voltada para
o desenvolvimento de sistemas de computadores
inteligentes, isto é, sistemas que exibem
características, as quais nós associamos com a
inteligência no comportamento humano – em geral
compreensão da linguagem, aprendizado, raciocínio,
resolução de problemas, etc." [FEIGENBAUM, 81]
Inteligência Artificial
Algumas definições de IA:

 "É o campo de estudo que tenta explicar e emular o


comportamento inteligente em termos de processos
computacionais." [SCHALKOFF, 90]

 "Inteligência artificial é o estudo das idéias que


permitem aos computadores serem inteligentes."
[WINSTON, 84]

 "Inteligência Artificial é o estudo das faculdades


mentais através do uso de modelos computacionais."
[CHARNIAK & McDERMOTT, 85]
Inteligência Artificial
Algumas definições de IA:

 "A arte de criar máquinas que executam funções que


requerem inteligência quando executadas por
pessoas." [KURZWEIL,90]

 "Inteligência artificial é o estudo de como fazer os


computadores realizarem coisas que, no momento,
as pessoas fazem melhor." [RICH, Elaine & KNIGHT,
Kevin, 93]

 "[...] atividade que nós associamos com o pensar


humano, atividades tais como: tomada de decisão,
resolução de problemas, aprendizado[... ]."
[BELLMAN, 78]
Inteligência Artificial
Algumas definições de IA:

 "A inteligência artificial (IA) é simplesmente uma


maneira de fazer o computador pensar
inteligentemente." [LEVINE, 88]

 “Pode ser definida como o ramo da Ciência da


Computação que se ocupa da automação do
comportamento inteligente.” [LUGER, 2004]
Inteligência Artificial
 A Inteligência Artificial busca entender a mente
humana e imitar o seu comportamento [BOOSE, 94],
levantando questões tais como:
 Como ocorre o pensar?
 Como o homem extrai o conhecimento do mundo?
 Como a memória, os sentidos e a linguagem ajudam no
desenvolvimento da inteligência?
 Como surgem as idéias?
 Como a mente processa informações e tira conclusões decidindo
por uma coisa ao invés de outra?

 Essas são algumas perguntas que a IA precisa


responder para simular o raciocínio humano e
implementar aspectos da inteligência.
Inteligência Artificial
 A inteligência humana está aliada a sua
capacidade de interagir com o meio através de
habilidades cognitivas (sentidos) e conotativas
(ação), ou seja,

 se movimentar,
 reconhecer sons (fala) e imagens,
 se expressar, etc.
Inteligência Artificial
 Existe um esforço, principalmente no campo da
robótica, no sentido de implementar “as máquinas
inteligentes”, para propiciar:
 uma maior interação com o meio e
 desenvolver padrões de inteligência envolvidos na
 aquisição do conhecimento,
 reconhecimento,
 aprendizado, etc.
Inteligência Artificial

“É mesmo possível se obter


inteligência num
computador, ou uma
entidade inteligente requer a
riqueza das sensações e
experiências que só podem
ser encontradas numa
existência biológica?”
Objetivo

 Desenvolver sistemas para realizar tarefas que, no


momento:
 são melhor realizadas por seres humanos que por
máquinas, ou
 não possuem solução algorítmica viável pela computação
convencional

 Reproduzir o comportamento inteligente.

 Entender entidades inteligentes.

Se o ser humano pode, por que não a máquina? (tese de Church-Turing)


Tese de Church-Turing
Na teoria da computabilidade, a Tese de Church-Turing ou Tese de
Church, assim nomeada em referência a Alonzo Church e Alan Turing, é
uma hipótese sobre a natureza de artefatos mecânicos de cálculo, como
computadores, e sobre que tipo de algoritmos eles podem executar.
Geralmente assume-se que um algoritmo deve satisfazer os seguintes
requisitos:

 O algoritmo consiste de um conjunto finito de instruções simples e


precisas, que são descritas com um número finito de símbolos.
 O algoritmo sempre produz resultado em um número finito de passos.
 O algoritmo pode, a princípio, ser executado por um ser humano com
apenas papel e lápis.
 A execução do algoritmo não requer inteligência do ser humano além do
necessário para entender e executar as instruções.

* A teoria da computação, um subcampo da ciência da computação e matemática, busca determinar quais


problemas podem ser computados em um dado modelo de computação.
Algoritmo de Euclides
Um exemplo de tal método é o Algoritmo de Euclides para a
determinação do máximo divisor comum de dois números
naturais. A noção de algoritmo é intuitivamente clara mas não
é definida formalmente, pois não está claro o que quer dizer
"instruções simples e precisas", e o que significa "inteligência
necessária para executar as instruções".

O Algoritmo de Euclides busca encontrar o máximo divisor


comum entre dois números inteiros diferentes de zero. É um
dos algoritmos mais antigos conhecidos, desde que apareceu
na obra Elementos de Euclides por volta de 300 AC. O
algoritmo não requer fatoração.
Embora seja um algoritmo bastante simples, a sua análise
revela-se um problema bastante complexo. Não se sabe ao
certo qual a complexidade esperada deste algoritmo para
valores muito grandes de n, mas estima-se que seja
aproximadamente 12(ln2)π2)lnn.
Algoritmo de Euclides
Exemplo
Tomemos os números 348 e 156:
dividendo ← 348
divisor ← 156
resto(348/156) = 36 ≠ 0
Como o resto não é zero, substituímos o dividendo e o divisor:
dividendo ← 156
divisor ← 36
resto(156/36) = 12 ≠ 0
Repetimos o passo anterior:
dividendo ← 36
divisor ← 12
resto(36/12) = 0
retornar 12
Portanto, o máximo divisor comum de 348 e 156 é 12.
Tese de Church-Turing
Informalmente a tese enuncia que nossa noção de
algoritmo pode ser formalizada (sob a forma de
funções computáveis) e que computadores podem
executar esses algoritmos. Além disso, qualquer
computador pode, teoricamente, executar qualquer
algoritmo, isto é, o poder computacional teórico de
cada computador é o mesmo e não é possível
construir um artefato de cálculo mais poderoso que
um computador.

A tese pode ser considerada uma lei física, já que


não pode ser matematicamente demonstrada.
O que é IA?

Abordagens

 Centradas em torno de seres humanos


 Ciência empírica, envolvendo hipóteses e confirmação
experimental.

 Centradas em torno da racionalidade


 Envolve uma combinação de Matemática e Engenharia.
O que é IA?

 Agindo de forma humana: a abordagem do teste de


Turing

 Processamento de linguagem natural


 Representação de conhecimento
 Raciocínio automatizado
 Aprendizado de máquina
 Visão Computacional
 Robótica
O que é IA?
 Pensando de forma humana: a estratégia de
modelagem cognitiva

 Ciência cognitiva - reúne modelos computacionais da IA e


técnicas experimentais da psicologia para tentar construir
teorias precisas e verificáveis a respeito dos processos de
funcionamento da mente humana.
O que é IA?

 Pensando racionalmente: a abordagem das “leis do


pensamento”

 Tentativa de codificação do “pensamento correto” – processos


de raciocínios irrefutáveis.
 Seus silogismos forneceram padrões para estruturas de
programas que sempre resultavam em conclusões corretas ao
receberem premissas corretas.
 As leis do pensamento deveriam governar a operação da
mente.
O que é IA?
 Pensando racionalmente: a abordagem de agente
racional

 Agente – é simplesmente algo que age (latim – agere –


fazer).
 Agente racional – age para alcançar o melhor resultado ou,
quando há incerteza, o melhor resultado esperado.
Os fundamentos da IA
Matemática
Filosofia Economia

Lingüística IA
IA Neurociência

Cibernética Psicologia
Engenharia de
Computação
História da IA
 Inteligência
 Estudada há mais de 2000 anos por filósofos

 Raciocínio, memória, aprendizado, visão.

 Inteligência Artificial
 surgiu na década de 50

 estuda a inteligência de maneira teórica e


experimental.
História da IA
 Church e Turing estabelecem limites para aquilo
que pode ser resolvido por computadores,
introduzindo o conceito de computabilidade (1936).

 "Mas podem as máquinas pensar?"


Famosa pergunta feita em 1950 por Alan Turing
(Teste de Turing)
História da IA

 Primeiro trabalho (1943) - McCulloch and Pitts:


implementação dos operadores lógicos através de
uma rede neural.

 Primeiro Evento (1956)


 Newell and Simon – Logic Theorist (resolvedor

de teoremas).
História da IA
 GPS (General Problem Solver, 1960 ) - Newell and
Simon.
 Linguagem LISP (1958) – McCarthy.
 Micromundos (1963) – Minsky (problemas de
domínios limitados).
 O mundo dos blocos (1968).
 Linguagem Prolog (1970) - Edinburgh/Marseilles.

Surge o nome Inteligência Artificial, após um workshop


entre grandes nomes como: John McCarthy, Arthur Samuel
(IBM), Ray Solomonoff e Oliver Selfridge (MIT).
História da IA
 Primeiro experimento feito para tentar realizar o
“Teste de Turing” - Eliza (1966)
 um programa criado pelo pesquisador Joseph Weizenbaum,
do MIT, que simulava uma psicóloga virtual usando trechos
das frases dos usuários para compor as respostas e
estimulava o “paciente” a se aprofundar cada vez mais nos
detalhes dos seus problemas.
 Exemplo de diálogo com a Eliza:
 Eliza: Olá, conte-me o seu problema.
 Usuário: Eu não me relaciono bem com as outras pessoas.
 Eliza: E por que você acha que você não se relaciona bem
com as outras pessoas?
 Usuário: Pois estou sempre sozinho.
 ...
Exemplo de software de Inteligência Artificial para criação de personagens
virtuais (chatter boot) : www.inbot.com.br
História da IA
 1969 - ressurgimento do entusiasmo
 Sistemas especialistas

 1970/1980 - Alguns sistemas famosos:


 SHRLDU (interface em linguagem natural
aplicado ao mundo de blocos)
 MYCIN (diagnóstico médico)
 LUNAR (interface para geólogos interrogarem
sobre as amostras de rochas trazidas pela Appolo
na missão lunar - o primeiro usado por pessoas
que não os projetistas do sistema).
História da IA
 1980 - Projeto japonês: a quinta geração de
computadores (IA, Prolog, PLN) repercussões no
financiamento global para a área de IA.

 1980 - com projetos mais reais, a IA começa a ser


utilizada na indústria, promovendo cortes de
despesas e otimização de tarefas.

 R1 - o primeiro "expert system" de sucesso que iniciou suas


atividades na Digital Equipment - economia de 40 milhões
de dólares por ano.
História da IA

 1997 - Deep Blue vence Kasparov


 algoritmos de busca

 computadores de alta velocidade

 hardware específico para xadrez

 A IA é o elemento fundamental nas mais diversas


ferramentas disponíveis na Internet.
Deep Blue
 Deep Blue (azul profundo) foi um supercomputador e um software criados pela IBM
especialmente para jogar xadrez com 256 co-processadores, capazes de analisar
aproximadamente 200 milhões de posições por segundo.
 Em fevereiro de 1996, o campeão do mundo de xadrez, Garry Kasparov, natural do Azerbeijão,
atualmente radicado na Rússia, considerado o melhor jogador de todos os tempos, ganhou três
partidas, empatou duas e perdeu uma contra Deep Blue, obtendo a pontuação final de 4 a 2 (o
empate dá 0,5 ponto para cada um dos lados). A única derrota de Kasparov nesse match foi
justamente na primeira partida, a qual passou a ser o primeiro jogo de xadrez em que um
computador venceu um campeão do mundo sob regras normais de tempo. Mesmo
recuperando-se nos jogos seguintes, ao final do match, Kasparov declarou que era o último
humano campeão de xadrez, talvez prevendo o que aconteceria no ano seguinte.
 Em maio de 1997, após uma severa atualização, Deep Blue venceu Kasparov em um novo
confronto de 6 partidas, com 2 vitórias, 3 empates e 1 derrota (pontuação final: 3,5 a 2,5),
tornando-se o primeiro computador a vencer um campeão mundial de xadrez num match com
regras de tempo oficiais.
 A derrota de Kasparov no segundo match é uma das maiores polêmicas do mundo do xadrez.
Naquela ocasião, o grande mestre acusou a IBM de ter trapaceado dizendo que jogadores
humanos intervieram durante a segunda partida. A IBM se defendeu dizendo que os ajustes no
programa e intervenções ocorriam somente entre uma partida e outra. Kasparov pediu os
arquivos (printouts dos log files), porém a IBM se recusou a fornecê-los. Na base de dados do
computador havia mais de 700 mil partidas de Mestres e Grandes Mestres, porém quando
Kasparov pediu à IBM algumas partidas jogadas pelo Deep Blue para que entendesse melhor
seu oponente, o pedido foi negado. Kasparov pediu ainda um novo match, porém a IBM não
teve interesse e aposentou o computador. Há um documentário de 2003 (Game Over:
Kasparov and the Machine) que conclui que esta vitória foi armada para elevar o valor das
ações da companhia.
História da IA
 Atualmente - usada em grande escala, posta a
prova pelos militares americanos na operação Desert
Storm, na guerra do Iraque (Mísseis teleguiados e
sensores de visão noturna)

 Tendências - passagem de sistemas experimentais


para aplicações reais de grande escala
 representação de conhecimento

 reconhecimento da fala

 robótica

 visão

 internet
Exemplos de Aplicação da IA
 Matemática: demonstração de teoremas, resolução simbólica
de equações, geometria, etc.

 Pesquisa operacional: otimização e busca heurística em geral

 Jogos: xadrez, damas, etc.

 Processamento de linguagem natural: tradução automática,


verificadores ortográficos e sintáticos, interface vocal,
reconhecimento da fala, de locutor, etc.

 Sistemas tutores: modelagem do aluno, escolha de


estratégias pedagógicas, etc.

 Percepção: visão, tato, audição, olfato, paladar...

 Robótica (software e hardware): manipulação, navegação,


monitoramento, etc.
Exemplos de Aplicação da IA
 Sistemas especialistas: Atividades que exigem
conhecimento especializado e não formalizado
 Tarefas: diagnóstico, previsão, monitoramento, análise,
planejamento, projeto, etc.
 Áreas: medicina, finanças, engenharia, química, indústria,
arquitetura, arte, computação,...

 Computação:
 engenharia de software (sobretudo na Web)
 programação automática
 interfaces adaptativas
 bancos de dados dedutivos e ativos
 mineração de dados (data mining)
 sistemas distribuídos, etc.
IA - Limitações

Ainda existem muitas limitações nas questões


relacionadas à Inteligência Artificial?
Órgãos/Empresas de IA

 Empresas especializadas em IA:


 http://dmoz.org/Computers/Artificial_Intelligence/Companies/

 Grandes empresas desenvolvendo e utilizando IA:


 IBM, HP, Sun, Microsoft, Unisys, Google, Amazon.com, ...

 Grandes empresas utilizando IA:


 www.businessweek.com/bw50/content/mar2003/a3826072.htm
 Wal-Mart, Abbot Labs, US Bancorp, LucasArts, ...

 Órgãos governamentais utilizando IA:


 US National Security Agency
Pluridisciplinaridade da IA

Inspiração Tarefas
•Filosofia •Classificação
Aplicações
•Matemática • Previsão
Problemas •Jogos
- Lógica • Monitoramento
•Busca heurística • Sistemas
- Proba. e Estat. Especialistas • Diagnóstico e
• Representação Interpretação
- Cálculo do conhecimento • Percepção
e Raciocínio Computacional • Conserto
• Pesquisa automático
Operacional - Visão • Escalonamento
• Economia • Planejamento • Alocação
- Processamento
• Sociologia • Aprendizagem e de Voz • Filtragem
Aquisição de
• Lingüística Conhecimento - Integração de • Descoberta
Sensores
• Psicologia • Sistemas • Design
Multi-Agente • Processamento de
• Biologia Linguagem Natural • Controle
• Reconhecimento
• Automação e de Padrões • Robótica • Simulação
Controle
- Navegação
• Computação
tradicional - Manipulação
Em Busca de Soluções

 Busca Heurística

 Epistemologia (ciência do conhecimento)


existem 3 linhas na teoria do conhecimento:
 empirismo (Locke).
 racionalismo (Kant).
 intercionismo (Piaget, Vigotsky).
Filosoficamente
 Empirismo (Locke): é um movimento que acredita nas experiências como
únicas (ou principais) formadoras das idéias, discordando, portanto, da noção
de idéias inatas. Locke argumentou que a mente seria, originalmente, um
"quadro em branco", sobre o qual é gravado o conhecimento, cuja base é a
sensação. Ou seja, todas as pessoas, ao nascer, o fazem sem saber de
absolutamente nada, sem impressão nenhuma, sem conhecimento algum.
Todo o processo do conhecer, do saber e do agir é aprendido pela experiência,
pela tentativa e erro.
 Racionalismo (Kant): o homem nasceria com certas idéias inatas, as quais
iriam "aflorando" à consciência e constituiriam as verdades acerca do Universo.
A partir dessas idéias, o homem poderia entender os fenômenos particulares
apresentados pelos sentidos. O conhecimento da verdade, portanto,
independeria dos sentidos físicos.
 Intercionismo (Piaget, Vigotsky): a aprendizagem é um processo que começa
no nascimento e acaba na morte. A aprendizagem dá-se através do equilíbrio
entre a assimilação e a acomodação, resultando em adaptação. Segundo este
esquema, o ser humano assimila os dados que obtém do exterior, mas uma vez
que já tem uma estrutura mental que não está "vazia", precisa adaptar esses
dados à estrutura mental já existente.
Busca Heurística
 Heurística - Informação específica do domínio que
pode ser usada para guiar o processo de busca.
 Em muitos casos uma heurística envolve a aplicação
de uma função que avalia um nó particular e prediz
a qualidade dos seus nós sucessores.
 Uma função heurística de avaliação no jogo-da-
velha poderia ser o número de linhas, colunas e
diagonais ainda disponíveis, quanto maior este
número maior a chance de vitória.
Busca Heurística
 Os problemas de IA empregam heurísticas,
basicamente, em duas situações:

1. Um problema pode não ter uma solução exata por


causa das ambigüidades inerentes na sua
formulação ou pela disponibilidade dos dados.
Exemplos: Diagnóstico médico, Sistemas de visão.

2. Um problema pode ter uma solução exata, mas o


custo computacional para encontrá-la pode ser
proibitivo.
Exemplo: Jogo de xadrez.
Busca Heurística
 As heurísticas podem falhar.
 Uma heurística é apenas uma conjectura
informada sobre o próximo passo a ser tomado na
solução de um problema.
 A heurística é baseada na experiência e na
intuição.
 Uma heurística pode levar um algoritmo de busca
a uma solução subótima ou, inclusive, levá-lo a
não conseguir encontrar uma solução.

George Polya define heurística como “o estudo dos métodos e das regras de descoberta e
invenção” (Polya, 1945) – relacionada com o termo grego original, o verbo eurisco (“Eu
descubro”). Quando Arquimedes emergiu de seu famoso banho segurando a coroa de ouro, ele
gritou “Eureka!” (“Eu descobri!”).
Busca Heurística
Estratégias de Busca Heurística
 Usam conhecimento específico do problema na
busca da solução.
 Mais eficientes do que a busca não informada.

 Algoritmo geral: Busca pela Melhor Escolha - BME


(Best-first search)
 Seleciona para expansão o nó que tiver o menor custo
estimado até a meta (objetivo), segundo uma função de
avaliação f(n).
 Tipicamente f(n) usa uma função heurística h(n) = custo
estimado do caminho mais econômico do nó n até um nó
objetivo (Restrição inicial: se n é um nó objetivo, h(n)=0).
Busca Heurística
 Uma forma de uso da informação heurística sobre
um problema consiste em computar estimativas
numéricas para os nós no espaço de estados;

 Uma estimativa indica o quanto um nó é promissor


com relação ao alcance de um nó-objetivo;

 A idéia é continuar a busca sempre a partir do nó


mais promissor no conjunto de candidatos;

 O programa de busca do melhor caminho (escolha)


é baseado neste princípio.
Busca Heurística
 Busca do melhor caminho - pode ser derivada de
um refinamento da busca em largura.

 Busca em largura - sempre escolhe para expansão


os menores caminhos-candidatos (isto é, os nós
extremos menos profundos da busca).

 Busca do melhor caminho - refina este princípio


calculando uma estimativa heurística para cada
candidato e escolhe para expansão o melhor
candidato de acordo com esta estimativa.
Busca Heurística
Greedy best-first search
(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.

 Avalia nós para expandir com base unicamente na


função heurística: f(n) = h(n)

 Exemplo: encontrar a melhor rota (rota mais curta)


de uma cidade a outra, num mapa.
 h(n) = distância em linha reta entre as cidades e a cidade-
meta.
Busca Heurística
Exemplo: Localização de rotas na Romênia, usando a
heurística de distância em linha reta (hDLR)
Objetivo: Bucharest (Bucareste)

176

100

Um mapa rodoviário simplificado de parte da Romênia.


Busca Heurística
Busca pela melhor escolha - Busca Gulosa

Distância em linha
reta para Bucharest:
Exemplo – Passo a Passo ...

Fases de uma busca gulosa pela melhor escolha para Bucareste, usando-se a heurística de
distância em linha reta hDLR. Os nós são identificados por seus valores de h.
Exemplo – Passo a Passo ...

Fases de uma busca gulosa pela melhor escolha para Bucareste, usando-se a heurística de
distância em linha reta hDLR. Os nós são identificados por seus valores de h.
Exemplo – Passo a Passo ...

Fases de uma busca gulosa pela melhor escolha para Bucareste, usando-se a heurística de
distância em linha reta hDLR. Os nós são identificados por seus valores de h.
Exemplo – Passo a Passo ...

Fases de uma busca gulosa pela melhor escolha para Bucareste, usando-se a heurística de
distância em linha reta hDLR. Os nós são identificados por seus valores de h.
Fases de uma busca gulosa pela melhor escolha para Bucareste, usando-se a heurística de
distância em linha reta hDLR. Os nós são identificados por seus valores de h.
Busca Heurística
Não é completa
 pode entrar em ciclos e não encontrar a solução se
não detectar estados repetidos;
 pode se perder em um caminho infinito e nunca
retroceder para tentar outras opções.

Não é ótima
 No exemplo encontrou caminho (Arad, Sibiu,
Fagaras, Bucharest) que é 32km maior que (Arad,
Sibiu, Rimnicu Vilcea, Pitesti, Bucharest)

 Dependendo do problema e da qualidade da


heurística a complexidade pode ter uma redução
substancial.
Busca Heurística
BME mais “famoso”: Busca A*

 Objetivo: Minimizar o custo total estimado da solução.

 Função de avaliação: f(n) = g(n) + h(n)

• g(n) = distância (custo) do nó inicial ao nó n


• h(n) = distância (custo) estimada de n ao nó final
• Assim, f(n) estima o custo da melhor solução que
passa por n.

 A* expande o nó de menor valor de f na fronteira


do espaço de estados.
Busca Heurística

 Quando n é encontrado pelo processo de busca,


tem-se a seguinte situação:

 Um caminho de i para n já deve ter sido encontrado e o seu


custo pode ser calculado como a soma dos custos dos
arcos no caminho, e pode servir como uma estimativa g(n)
do custo mínimo de i para n.

 h(n) é mais problemático porque o espaço entre n e t ainda


não foi explorado, e portanto h(n) é meramente um palpite
baseado no conhecimento geral do algoritmo sobre o
problema particular.

 Não existe um método universal para construção de h, pois


depende do domínio do problema.
Busca Heurística
Exemplo: Localização de rotas na Romênia, usando a
Busca A*
Objetivo: Bucharest (Bucareste)

176

100

Um mapa rodoviário simplificado de parte da Romênia.


Busca Heurística
Busca pela melhor escolha - Algoritmo A*
Distância em linha
reta para Bucharest:

449
75 + 374

239
239 + 178

220 140 + 253


417
118 + 329 393 220 + 193
447
413
317
317 + 98
418
366 415
455
496
336 + 160
Exemplo – Passo a Passo ...
Exemplo – Passo a Passo ...
Exemplo – Passo a Passo ...
Exemplo – Passo a Passo ...
Exemplo – Passo a Passo ...
Exemplo – Passo a Passo
Estágios em uma busca A*
por Bucareste. Os nós estão
rotulados f = g + h. Os
valores de h são distâncias
em linha reta para Bucareste.
Busca Heurística
Desempenho do A*

 A análise do caráter ótimo de A* é direta se for usada


com BUSCA-EM-ÁRVORE: A* será ótima se h(n) for
uma heurística admissível.

 Conseqüência mais importante da consistência


(também chamada monotonicidade) é: A* usando
BUSCA-EM-GRAFO é ótima se h(n) é consistente.
Busca Heurística
Desempenho do A*

 A* é completa e ótima se h(n) for admissível ou


consistente
• h admissível: nunca superestima o custo de atingir
a meta
• h consistente (ou monotônica):
h(n)  c(n,a,n’ )  h(n’ ) , n, n’
– n’ é sucessor de n, gerado pela ação a;
– c(n,a,n’) é o custo de sair de n e atingir n’.
– Se h é consistente, os valores de f(n) ao longo de qualquer
caminho são não-decrescentes.
Busca Heurística
Desempenho do A*

 A* é otimamente eficiente: nenhum outro algoritmo


ótimo garante expandir menos nós que A*.
 Infelizmente há, na maioria das vezes, crescimento
exponencial do número de nós com o comprimento
da solução (complexidade temporal).
 O maior problema é a complexidade espacial: A*
armazena todos os nós gerados!
 Assim, A* não é aplicável em muitos problemas de
grande escala. Usa-se variantes que encontram
soluções subótimas.
Busca Heurística
Com Memória Limitada

 IDA* (Iterative Deepening A*)


 igual ao aprofundamento iterativo, porém seu

limite é dado pela função de avaliação (f) , e não


pela profundidade (d).
 necessita de menos memória do que A*

 SMA* (Simplified Memory-Bounded A*)


 O número de nós guardados em memória é fixado

previamente.
Busca Heurística
 Solução de problemas usando técnicas de busca
heurística:
 dificuldades em definir e usar a função de avaliação
 não consideram conhecimento genérico do mundo (ou
“senso comum”)

 Função de avaliação: compromisso (conflito)


entre
 tempo gasto na seleção de um nó e
 redução do espaço de busca

 Achar o melhor nó a ser expandido a cada passo


pode ser tão difícil quanto o problema da busca
em geral.