Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


apostila de inteligencia artificial, Notas de estudo de Automação

inteligencia artificial

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 14/12/2009

luizms.santana1
luizms.santana1 🇧🇷

5

(1)

3 documentos

1 / 51

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
UNIVERSIDADE FEDERAL DE OURO PRETO
INSTITUTO DE CIÊNCIAS EXATAS E BIOLÓGICAS
DEPARTAMENTO DE COMPUTAÇÃO
Apostila
CIC250 - Inteligência Artificial
Álvaro Guarda
Ouro Preto - MG
Janeiro de 2006
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33

Pré-visualização parcial do texto

Baixe apostila de inteligencia artificial e outras Notas de estudo em PDF para Automação, somente na Docsity!

UNIVERSIDADE FEDERAL DE OURO PRETO

INSTITUTO DE CIÊNCIAS EXATAS E BIOLÓGICAS

DEPARTAMENTO DE COMPUTAÇÃO

Apostila

CIC250 - Inteligência Artificial

Álvaro Guarda

Ouro Preto - MG

Janeiro de 2006

Sumário

    1. Introdução......................................................................................................................................................................
    • 1.1. Objetivos do Curso.................................................................................................................................
    • 1.2. Evolução da Inteligência Artificial
    • 1.3. Áreas de Pesquisa da IA.........................................................................................................................
    • 1.4. Referências.............................................................................................................................................
    1. Caracterização ...............................................................................................................................................................
    • 2.1. Discussão e Tentativa de Definição
    • 2.2. Comparação entre IA e Computação Convencional
    • 2.3. Automação de Atividades
    1. Resolução de Problemas................................................................................................................................................
    • 3.1. Espaço de Estados..................................................................................................................................
    • 3.1.1. Representação do Problema em Espaço de Estados
    • 3.1.2. Implementação da Representação do Problema em Espaço de Estados
    • 3.1.3. Métodos de Busca Cegos em Espaço de Estados.............................................................................
    • 3.1.3.1. Busca em Profundidade................................................................................................................
    • 3.1.3.2. Busca em Profundidade Acíclica
    • 3.1.3.3. Busca em Extensão (Largura)
    • 3.2. Resolução de Problemas como Busca por Redução de Problemas......................................................
    • 3.3. Métodos de Busca Heurística...............................................................................................................
      • 3.3.1. Subida da encosta ("Hill-Climbing")
      • 3.3.2. Subida da encosta para a trilha mais íngreme ("Stepest-Hill-Climbing")....................................
      • 3.3.3. Busca pela melhor escolha ("Best-First")
      • 3.3.4. Têmpera Simulada ("Simulated Annealing")...............................................................................
      • 3.3.5. Técnicas Evolutivas
    1. Sistemas Baseados em Conhecimento........................................................................................................................
    • 4.1. Propriedades de Sistemas de Representação do Conhecimento
    • 4.2. Formas de Representação do Conhecimento
    • 4.3. Sistemas de Produção (SP)
    • 4.4. Sistemas Baseados em Regras
    1. Introdução aos Sistemas Especialistas .......................................................................................................................
    • 5.1. Componentes Básicos de um SE..........................................................................................................
    • 5.2. Arquitetura do Motor de Inferência
    • 5.3. Alguns Exemplos de Sistemas Especialistas
    • 5.4. Ferramentas de Desenvolvimento de Sistemas Especialistas
    • 5.5. Aquisição de Conhecimento
    • 5.6. Problemas.............................................................................................................................................
    • 5.7. Conclusões
    1. Engenharia de Conhecimento ....................................................................................................................................
    • 6.1. Metodologias de Desenvolvimento......................................................................................................
    • 6.2. Atividades em um Sistema com IA......................................................................................................
    • 6.3. Etapas na Construção de um pequeno SE

o Aquisição de Conhecimento o Aprendizado Computacional ‰ Redes Neuronais ‰ Sistemas e Linguagens para IA ‰ Arquiteturas Específicas para IA ‰ Processamento de Linguagem Natural ‰ Robótica Inteligente o Síntese de Voz o Percepção o Manipulação o Planejamento

1.4. Referências O conteúdo desta apostila é fortemente baseado na bibliografia básica do programa da disciplina, CIC250 – Inteligência Artificial, [Rich93] e [Bratko90]. Diversas partes do texto também foram baseadas no material de aula do Prof. Elton Silva.

2. Caracterização

2.1. Discussão e Tentativa de Definição O termo “Inteligência Artificial” não é de fácil definição e há controvérsias entre vários pesquisadores. Abaixo são apresentadas algumas definições para as palavras que compõem o termo retirado do Dicionário Michaelis e outros. Artificial

  • Produzido por arte ou indústria do homem e não por causas naturais.
  • Que envolve artifício.
  • Contrafeito, fingido, postiço.
  • Feito pelo homem.
  • Imitação.
  • Oposto de natural.
  • Tenta imitar o comportamento humano. Inteligência
  • Faculdade de entender, pensar, raciocinar e interpretar; entendimento, intelecto.
  • Compreensão, conhecimento profundo.
  • Pessoa de grande esfera intelectual.
  • Habilidade em fazer determinada coisa.
  • Faculdade ou capacidade de aprender, compreender.
  • Facilidade de adaptação.
  • Intelectualidade.
  • Destreza mental, perspicácia.
  • Habilidade mental medida pelo QI (capacidade de manipulação simbólica). A inteligência deve ser compreendida não apenas como aptidão para o manejo de símbolos e números, mas sobretudo como habilidade para interagir com o meio ambiente, lidar com situações inesperadas, fazer uso de analogias, metáforas e abstrações. Os grandes gênios da humanidade ajudaram a fixar na cultura ocidental um padrão de "homem inteligente". Entretanto, este padrão apresenta alguns problemas:
  • Albert Einstein : Maltratava a mulher como uma escrava particular, era excessivamente rabugento.
  • (^) Sigmund Freud : Sofria do complexo de Édipo, era obcecado pela mãe.
  • Karl Max : Queria demolir o capitalismo, mas era um gastador inveterado, não sabia administrar as suas finanças e vivia pedindo dinheiro aos amigos.
  • Charles Darwin : Pesquisador compulsivo, tinha síndrome de pânico. Tinha crises de vômito com medo da Teoria da Evolução.

Assim, a inteligência passou a ser vista e discutida sob vários aspectos:

  • Inteligência racional (acadêmica): geralmente associada a aptidões lingüísticas e numéricas.
  • Inteligência intra-pessoal : conhecer-se a si mesmo.
  • Inteligência social : relações humanas, entender os outros.
  • Inteligência corporal : relacionamento com o espaço (ex.: Garrincha, Pelé, Barishnikov).
  • Inteligência emocional : autocontrole, zelo, persistência, capacidade de se motivar, etc. Atualmente há um consenso de que um alto QI não é garantia de sucesso e passou-se a adotar o que chamamos de Inteligência Emocional (IE) juntamente com o QI. A habilidade de lidar com características avaliadas pela IE pode dar a verdadeira medida da inteligência humana: autocontrole, zelo, persistência, capacidade de se motivar, etc. Hoje em dia as empresas estão valorizando muito essas capacidades em seus futuros empregados. Neste contexto surge a questão da necessidade e da possibilidade de se prover capacidades emocionais em máquinas. Desconsiderando esta questão, apesar de parecer que as definições apresentadas são suficientes, a definição de inteligência é superficial, descrevendo apenas qualidades ou apresentando sinônimos. Nem mesmo os pesquisadores em Psicologia Cognitiva sabem como a inteligência funciona, como é formada e o que é necessário para que ela se manifeste.

2.2. Comparação entre IA e Computação Convencional

A Figura 2 apresenta as principais características que diferenciam um sistema de IA e um sistema construído de forma

convencional.

IA Computação Convencional Não algorítmico Algorítmico Processamento Simbólico Processamento Numérico Não Determinista Determinista Fácil Modificação Difícil Modificação Estrutura Estrutura

Figura 2 - IA x Computação Convencional

2.3. Automação de Atividades A Figura 3 mostra uma classificação das atividades que são executadas nas empresas e o tipo de automação que é utilizado em cada caso.

Figura 3 - Perfil das atividades em relação à mão-de-obra

Dados + Programas

Estrutura de Controle

Resultados

Dados

Programas

Resultados

Trabalhos pouco Estruturados

Trabalhos Estruturados

Trabalhos não Estruturados

COMPUTAÇÃO INTELIGENTE

COMPUTAÇÃO CONVENCIONAL

3. Resolução de Problemas

Neste capítulo serão estudadas duas abordagens que permitem resolver a maior parte dos problemas:

  • resolução utilizando Espaço de Estados;
  • resolução por Decomposição de Problemas. A escolha da abordagem depende do problema, como será visto mais adiante.

3.1. Espaço de Estados Nesta abordagem a modelagem do problema é elaborada conforme a Figura 4. Partindo-se de um estado inicial deseja-se chegar a um estado final utilizando-se um conjunto de operações de transformação de estados.

Figura 4 Representação do problema.

3.1.1. Representação do Problema em Espaço de Estados Para facilitar a assimilação dos conceitos, a introdução ao assunto será feita através do mundo dos blocos. O mundo dos blocos proposto para estudo possui apenas três blocos (A, B e C) e uma mesa. Os blocos podem estar sobre a mesa ou empilhados. O problema é elaborar um plano para re-arranjar a disposição dos blocos de acordo com o desejado. Assim, um plano é uma seqüência de movimentos de blocos que, partindo de uma situação inicial, leva a uma situação desejada. A Figura 5 apresenta um problema específico, onde estão definidas a situação inicial e a situação desejada. A definição do mundo estabelece uma classe de problema, pois é possível definir para o mesmo mundo novos problemas através da escolha de outras situações inicial e desejada.

Figura 5 Um problema de re-arranjo de blocos (baseado em [Bratko2001]).

Neste problema, a modelagem utilizando a abordagem Espaço de Estados é natural: a situação inicial dos blocos é o estado inicial, a situação desejada é o estado final e a seqüência de movimentos é uma seqüência de operações válidas do conjunto de operações de transformação de estados. O conjunto de operações pode ser formado pelas operações apresentadas na Figura 6.

(1) coloque o bloco A sobre a mesa; (2) coloque o bloco A sobre o bloco B; (3) coloque o bloco A sobre o bloco C; (4) coloque o bloco B sobre a mesa; (5) coloque o bloco B sobre o bloco A; (6) coloque o bloco B sobre o bloco C; (7) coloque o bloco C sobre a mesa; (8) coloque o bloco C sobre o bloco A; (9) coloque o bloco C sobre o bloco B.

Figura 6 Um possível conjunto de operações para o problema da Figura 5.

Uma operação é válida quando ela respeita as restrições impostas na definição do problema. As restrições de movimentos no problema proposto são bastante simples: é permitido mover apenas um bloco de cada vez, não pode haver outros blocos em cima do bloco a ser movimentado nem do bloco sobre o qual se quer colocar um bloco em cima. Por exemplo, para aplicar a operação (2) não poder haver blocos em cima do bloco A nem do bloco B. Desta forma, partindo da situação inicial do problema apresentado na Figura 5, existe apenas um movimento legal: coloque o bloco C sobre a mesa. Na nova situação, após o

Estado Inicial

Estado Final

Operações

seqüência de

B movimentos

A

C

B

A

C

situação inicial situação desejada

(2) se X e Y estão no topo de pilhas coloque o bloco X sobre o bloco Y. Em um outro exemplo, as restrições são implicitamente representadas nas operações, conforme a Figura 8.

Figura 8 Conjunto de operações onde as restrições estão implicitamente representadas.

3.1.2. Implementação da Representação do Problema em Espaço de Estados A implementação da representação depende da linguagem. Em Prolog, no caso do problema da Figura 5, os estado podem ser representados como uma lista de pilhas. Se houver no máximo três pilhas e uma pilha for representada também como uma lista, sendo que o topo é primeiro elemento da lista, então a representação final dos estados é [[, , ... , ], [, , ... , ], [, , ... , ]]. Desta forma, o estado inicial do problema é representado como a lista [[c, a, b], [], []] e o estado final pode ser representado como a lista [[a, b, c], [], []] ou [[], [a, b, c], []] ou [[], [], [a, b, c]]. A cláusula abaixo é uma implementação para se identificar quando se atinge o objetivo. objetivo(Estado) :- member([a, b, c], Estado).

O(s) estado(s) sucessor(es) de um estado qualquer pode(m) ser definido(s) pela cláusula sucessor(, ). Com esta sintaxe, o conjunto de operações da Figura 8 pode ser implementado como apresentado na Figura 9.

sucessor([[a, b, c], [], []], [[b, c], [a], []]). sucessor([[a, b, c], [], []], [[b, c], [], [a]]). sucessor([[],[a, b, c], []], [[a], [b, c], []]). sucessor([[],[a, b, c], []], [[], [b, c], [a]]).

... Figura 9 Uma implementação do conjunto de operações Figura 8.

Entretanto, esta implementação não é muito adequada porque exige escrever todas as configurações possíveis de pilhas. Uma implementação mais econômica é apresentada abaixo: sucessor(Estado, [Pilha1, [Topo1 | Pilha2] | OutrasPilhas]) :- remove([Topo1 | Pilha1], Estado, EstadoAux), remove(Pilha2, EstadoAux, OutrasPilhas).

remove(Pilha, [Pilha | RestoEstado], RestoEstado).

remove(Pilha, [Paux | RestoEstado], [Paux | Resto]) :- remove(Pilha, RestoEstado, Resto).

3.1.3. Métodos de Busca Cegos em Espaço de Estados A busca de uma solução é feita através da procura de um caminho no espaço de estados que leva do estado inicial para o estado final. Os métodos cegos fazem uma pesquisa sistemática do espaço de estados, porém não utilizam nenhum conhecimento para guiar a busca. Os dois principais métodos cegos são a “busca em profundidade” e a “busca em extensão”.

% $&

 $%&

& $%

$ % (1) Se estado atual é & então o estado atual é alterado para  % $&

$ % (2) Se estado atual é então o estado atual é alterado para &  % (3) Se estado atual é $&então o estado atual é alterado para

 % $&  % (4) Se estado atual é $&então o estado atual é alterado para

...

(30) Se estado atual é então o estado atual é alterado para

 $%&

A ação de percorrer o espaço de estados é feita de acordo com uma estratégia de controle que seleciona um estado e um operador que será aplicado ao estado para gerar os estados subseqüentes. A aplicação dos operadores nos estados iniciais e intermediários é feita até que se chegue a um estado objetivo. Este processo, à medida que vai sendo executado, vai gerando a árvore de busca. Quando se encontra o estado final o processo é interrompido com sucesso. Dependendo do problema, a solução pode ser o próprio estado final ou o caminho entre o estado inicial e o estado final. A Figura 10 apresenta uma parte da árvore de busca para o problema da Figura 5.

Figura 10 Árvore de pesquisa para o problema da Figura 5, utilizando o conj. de operações da Figura 6.

3.1.3.1. Busca em Profundidade A busca em profundidade explora um ramo da árvore de cada vez, ou seja, todos os nodos de um caminho da árvore são examinados antes dos nodos dos outros caminhos. A estrutura de dados associada é uma pilha, pois deve visitar primeiro os nodos mais recentes, aqueles que estão mais distantes da raiz. É necessário armazenar apenas o caminho que está sendo explorado e os caminhos já explorados podem ser descartados. A exploração dos caminhos alternativos pode ser feita através do retrocesso. No algoritmo abaixo não está previsto nenhum mecanismo de retrocesso. Algoritmo:

  1. Se o estado inicial é um estado objetivo, pare e retorne sucesso.
  2. Senão, faça o seguinte até o sucesso (ou insucesso): a) Gere um sucessor "E" do estado inicial. Se não há mais sucessores, assinale insucesso. b) Senão, chame BUSCA EM PROFUNDIDADE com E como estado inicial. c) Se sucesso então é retornado sucesso Senão, continue o passo 2.

Abaixo é apresentada uma implementação em Prolog bastante simples e, portanto fácil de entender. A desvantagem desta implementação é que a mesma permite ciclos, o que pode conduzir a pesquisa a um ramo sem saídas. pesquise(N, [N]) :- objetivo(N).

pesquise(N, [N | Caminho]):- sucessor(N, Naux), pesquise(Naux, Caminho).

% $ &

 & $%

 % $&

& $ %

 $ %&

 $ %&

 $%&

 % $&

 & $%

$ % &

& $ %

 $%&

 $ %&

 $ %&

 $ %&

 $ %&

 $%&

 % $&

(7)

(3) (1) (8)

3.1.3.4. Comparação: Busca em Profundidade x Busca em Extensão Busca em profundidade:

  • Mesmo que haja uma solução, não há garantias de encontra-la, pois pode explorar um caminho infinito que não contém a solução.
  • Por sorte, pode achar uma solução sem examinar muito o espaço de estado.
  • É adequada quando existe solução na maioria dos ramos.
  • Requer menos memória. Busca em Extensão:
  • Se houver solução, garante a obtenção da solução de menor caminho.
  • Não corre o risco de examinar por longo tempo becos sem saída.
  • Não é muito adequada quando o fator de ramificação é muito alto, pois exige armazenar muitos caminhos alternativos.
  • Consome muita memória.

3.1.3.5. Outros Exemplos de Problemas e de Modelagem utilizando Espaço de Estados Exemplo 1: Torre de Hanói A representação gráfica do problema da Torre de Hanói é apresentada na Figura 11.

Figura 11 Torre de Hanói.

a) Estados Sintaxe: (Menor, Média, Maior) Menor = Número do poste onde está a argola menor. Média = Número do poste onde está a argola média. Maior = Número do poste onde está a argola maior. Assim os estado inicial e final podem ser representados como: Estado inicial : (1,1,1). Estado final : (3,3,3).

b) Operações Sintaxe: move (poste de origem, poste de destino) move (1,2) move (1,3) move (2,1) move (2,3) move (3,1) move (3,2)

Nesse caso devemos sempre observar as restrições do problema e a validade das operações. A Figura 12 apresenta a árvore de pesquisa deste problema.

Figura 12 Árvore de pesquisa para o problema da Torre de Hanói.

move(1,2) move(1,3)

move(1,3)^ move(2,3)

move(1,2) move(3,2)

Estado Inicial Estado Final

Exemplo 2: Jogo dos 8 A Figura 13 mostra a representação gráfica para o problema do jogo dos 8.

Figura 13 Representação do problema para o jogo dos 8. É possível modelar as operações de diversas maneiras, mas a forma mais eficiente consiste em aplicar operações na casa vazia, o que possibilita que sejam necessárias apenas quatro operações: (1) Mover a casa vazia para cima. (2) Mover a casa vazia para baixo. (3) Mover a casa vazia para esquerda. (4) Mover a casa vazia para direita.

Figura 14 Árvore de pesquisa para o jogo dos 8.

Exemplo 3: Jogar Xadrez

  1. Especificar a posição inicial do tabuleiro Matriz 8x8, onde cada posição contendo um símbolo que representa a peça apropriada (ou indicação de casa vazia) na posição oficial de abertura do jogo.
  2. Definir as operações que representam movimentos legais As operações também podem ser definidas como um conjunto de regras de produção da forma : LADO.ESQ → LADO.DIR onde LADO.ESQ : Padrão a ser comparado antes de uma jogada. LADO.DIR : Descreve a mudança a ser feita. Exemplo: Regra "move peão branco" peãobranco em posição (j, i) ∧ posição (j, i+1) está vazia ∧ posição (j, i+2) está vazia → move peãobranco de posição (j, i) para posição (j, i+2).
  3. Definir posições que representam vitória Qualquer posição do tabuleiro na qual o oponente não tenha um movimento legal, e seu rei esteja sendo atacado.

Estado Inicial Estado Objetivo

(1)

(1) (^) (3) (1)

(4)

(1)

(3)

(4)

Operações

A Figura 16 apresenta uma árvore E/OU e como é a feita a busca em profundidade de uma solução. Os nodos são numerados por ordem de visita, sendo que os nodos marcados com T são problemas terminais e os nodos marcados com P são problemas primitivos. A Figura 17 apresenta como é feita a busca em extensão.

Figura 16 Exemplo de busca em profundidade em uma árvore E/OU. A solução é o conjunto de problemas primitivos {P2, P5}.

Figura 17 Exemplo de busca em extensão em uma árvore E/OU. A solução é o conjunto de problemas primitivos {P1, P3}.

3.3. Métodos de Busca Heurística Os métodos de busca vistos anteriormente fazem uma pesquisa sistemática do espaço de estados ou do espaço de problemas, porém não são adequados para muitos problemas reais devido à explosão combinatória. Os métodos heurísticos(1)^ utilizam alguma forma de conhecimento para orientar a busca e evitar a explosão combinatória. Entretanto, a eficiência depende fortemente em como o conhecimento é explorado. O conhecimento a ser utilizado pode ser inserido manualmente, ou através de aprendizado automático. (1) Heurística vem da palavra grega “heuriskein” que significa descobir.

Tipos de heurística no processo de busca a) Heurística genérica:

T^912

T

T

3 8 P 1

P 3

P 5

T^5

P 4 T

T P^6

P 2

P 1

P 3

P 4 P 5 P^6

P 2

Diferentes aspectos gerais do problema são considerados e avaliados de modo que o valor resultante da função heurística seja uma boa estimativa de quão efetivo pode ser o estado para alcançar a solução. Os métodos que utilizam apenas heurísticas genéricas, úteis a muitos tipos de problemas, são denominados métodos fracos e não são capazes de evitar a explosão combinatória. Freqüentemente, esta medida consiste em uma estimativa da distância da solução. Por exemplo, no Jogo dos 8 a heurística pode ser o número de peças que estão fora do lugar. b) Heurística específica: Apresenta as convicções dos especialistas em uma determinada área. A maioria das regras dos Sistemas Especialistas pertence a essa classe. É extremamente eficiente se bem utilizada.

Função Heurística Nos métodos de busca, o conhecimento sobre o problema é utilizado para compor uma função heurística. Esta função heurística tem a forma f(Estado) e é aplicada aos estados para atribuir notas indicando a proximidade do estado em relação à solução.

3.3.1. Subida da encosta ("Hill-Climbing") A idéia deste método é maximizar a nota fornecida pela função heurística. A busca é feita com a geração de um estado sucessor do estado corrente. Se o estado sucessor tiver uma nota melhor, então ele passa a ser o estado corrente. Algoritmo:

  1. Estado corrente ← estado inicial
  2. Repita até que o estado corrente seja a solução ou não existam operadores a serem aplicados ao estado corrente 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. i) Se for a solução (um estado meta) retorne-o e encerre. ii) Se for melhor que o estado corrente então Estado corrente ← novo estado.

Características:

  • Seleciona o primeiro vizinho que seja melhor.
  • Problema: tende a convergir para uma solução que é um máximo local e não para o máximo global.
  • (^) É irrevogável (sem retrocesso).

Exemplo: Mundo dos Blocos A Figura 18 apresenta o problema no qual será aplicado o método da subida da encosta.

Figura 18 Representação gráfica de um problema do Mundo dos Blocos

Os operadores são: (1) Pegue um bloco e coloque-o sobre a mesa (2) Pegue um bloco e coloque-o sobre outro A função heurística que será utilizada faz o seguinte cálculo: some um ponto para cada bloco em cima do bloco em que ele deva esta e subtraia um ponto para cada bloco que estiver sobre o bloco errado. Com esta heurística os estados inicial e final recebem as notas: f(estado inicial) = 1 e f(estado meta) = 5. A árvore de busca é apresentada na Figura 19.

B

C

D

E

A

B

C

D

E

A

Estado Inicial Estado Meta

  • Seleciona o melhor vizinho, desde que seja melhor que o estado corrente.
  • Problema: tende a convergir para uma solução que é um máximo local e não para o máximo global.
  • É irrevogável (sem retrocesso).

Figura 20 Árvore de busca para o problema da Figura 18 utilizando o método Subida da Encosta com uma função heurística mais adequada.

3.3.3. Busca pela melhor escolha ("Best-First") A heurística é aplicada globalmente, isto é, o caminho a ser seguido é selecionado entre todos os nodos abertos até o momento. O nodo aberto com a melhor nota é escolhido para a expansão.

Exemplo: Achar o Menor Trajeto Definição do Problema: Procurar o menor trajeto, ou uma alternativa aceitável, entre a cidade a e a cidade z.

Mapa:

Representação do Estado: Nome da cidade Representação do Espaço de Estados: O próprio mapa ou um grafo Estado Inicial: a

a

b

e

c

z

d

5

3

2

3

4

1 6

início

fim

2

1

2 k

4

5

B

C

D

E

A

f(e) = -

B

C

D

E

A

f(e) = -

B

C

D

E

A

f(e) = -7 f(e) = -

B

C

D

E A

f(e) = -

B

C

D

E

A

Estado Final: z

Operações: percorrer uma estrada até uma cidade vizinha

Função Heurística (faz parte da modelagem do problema) f(x) = g(x) + h(x) onde g(x) = distância percorrida da cidade a até a cidade x (números em negrito, próximo às cidades) h(x) = distância em linha reta da cidade x até a cidade z (números em negrito, próximo às cidades)

Problema: Achar o Menor Trajeto Exemplos de Aplicação da Função Heurística f(b) = g(b) + h(b) = 1 + 6 = 7 f(c) = g(c) + h(c) = 3 + 2 = 5 f(e) = g(e) + h(e) = 5 + 1 = 6 f(k) = g(k) + h(k) = (5+4) + 5 = 14

...

Árvore de Busca: os números em negrito próximos aos nodos indicam a ordem de expansão

A solução encontrada pode eventualmente não ser o menor trajeto, dependendo do problema, mas pode ser uma solução bastante aceitável.

Exemplo: Achar o Menor Trajeto

Representação em Prolog objetivo: goal(z).

sintaxe das operações : s( , , ) onde é a distância entre as cidades s(a,b,1). s(a,c,3). s(a,e,5). s(b,c,4).

a

b c e

z

d

f=

c k

d

z

z

f=5 f=

f=7 (^) f=

f=

f=

f=

f=8 f=

5

1

3 4 2

6