Algoritmos de Procura em Espaço de Estados PDF

Document Details

Uploaded by Deleted User

Joaquim Filipe

Tags

algoritmos de procura inteligência artificial espaço de estados ciências da computação

Summary

Este documento apresenta uma visão geral sobre algoritmos de procura e espaço de estados, mostrando exemplos práticos. Aborda diferentes tipos de algoritmos na solução de problemas, de forma concisa e prática.

Full Transcript

PROCURA EM ESPAÇO DE ESTADOS Inteligência Artificial Joaquim Filipe 2 RESOLUÇÃO DE PROBLEMAS A inteligência artificial destina-se a construir máquina...

PROCURA EM ESPAÇO DE ESTADOS Inteligência Artificial Joaquim Filipe 2 RESOLUÇÃO DE PROBLEMAS A inteligência artificial destina-se a construir máquinas para ajudar a resolver problemas em que de momento as pessoas são melhores. Daí que um dos tópicos proeminentes seja o estudo e implementação de métodos automáticos de resolução problemas. Inteligência Artificial © Joaquim Filipe 3 ESPAÇO DE ESTADOS Uma forma simples de resolver problemas que não se podem resolver com fórmulas ou algoritmos, consiste em explorar o espaço de possibilidades tentando vários caminhos possíveis até encontrar a solução. Neste caso um problema terá de ser equacionado em termos de: Estados Operadores (de transição de estados) Terá ainda de ser definido O estado final (poderá ser com uma função de teste) Inteligência Artificial © Joaquim Filipe EXEMPLO (PUZZLE DE 15) 4 (Nils Nilsson, Problem Solving Methods in AI, p.5) Inteligência Artificial © Joaquim Filipe 5 REPRESENTAÇÃO Grafo: O Espaço de Estados pode ser representado por um grafo dirigido acíclico. Nó: cada nó do grafo representa um estado do problema, com alguma informação adicional (pointer para o nó que o gerou; etc.) Arco: Cada arco do grafo representa uma transição de estado ao longo do processo de resolução do problema. Inteligência Artificial © Joaquim Filipe EXEMPLO 6 Caixeiro Viajante. Problema clássico: um caixeiro viajante tem de planear uma viagem em que visita n cidades apenas 1 vez e regressa à cidade de origem, minimizando um custo (normalmente a distância percorrida). Representação gráfica: Inteligência Artificial © Joaquim Filipe GRAFO DO PROBLEMA 7 (Nils Nilsson, Problem Solving Methods in AI, p.5) Inteligência Artificial © Joaquim Filipe 8 REPRESENTAÇÃO DE UM ESTADO Um estado no problema do caixeiro viajante pode ser representado como um conjunto de 2 elementos: {C, V} C = Conjunto de cidades a visitar. V = Conjunto das cidades já visitadas. O estado final é um estado em que C=Ø O estado inicial é o estado em que C contém todas as cidades e V = Ø. Inteligência Artificial © Joaquim Filipe 9 SOLUÇÃO A solução é obtida aplicando operadores às descrições dos estados até que surja a descrição do estado final. Inteligência Artificial © Joaquim Filipe 10 ESTRATÉGIAS DE EXPLORAÇÃO DE ÁRVORES Conceitos: Nó inicial Sucessores de um nó: nós que são gerados por aplicação de um dos operadores legais. Expansão de um nó: geração de todos os sucessores Ponteiros para o nó pai: para permitir obter imediatamente a solução a partir do estado final Lista de (nós) abertos: lista com os nós que ainda não foram expandidos Lista de (nós) fechados: lista com os nós que já foram expandidos Inteligência Artificial © Joaquim Filipe 11 MÉTODOS DE PROCURA: EM LARGURA PRIMEIRO (BREADTH-FIRST) 1. Nó inicial => ABERTOS 2. Se ABERTOS vazia falha. 3. Remove o primeiro nó de ABERTOS (n) e coloca-o em FECHADOS 4. Expande o nó n. Colocar os sucessores no fim de ABERTOS, colocando os ponteiros para n. 5. Se algum dos sucessores é um nó objectivo sai, e dá a solução. Caso contrário vai para 2. Inteligência Artificial © Joaquim Filipe 12 FLUXOGRAMA DO BREADTH-FIRST Inteligência Artificial © Joaquim Filipe 13 CARACTERÍSTICAS DO BF Assume-se que o nó inicial não é um nó objectivo. O BF encontra sempre a solução que corresponde ao caminho mais curto. Se não houver solução o método termina com falha se o grafo for finito ou não termina se o grafo for infinito. Inteligência Artificial © Joaquim Filipe 14 MÉTODOS DE PROCURA: CUSTO UNIFORME Se interessar minimizar o custo em vez da distância, e se os custos associados aos arcos forem diferentes de arco para arco, então é necessário usar uma variante do BF designada “método do custo uniforme” que garante a minimização do custo. Inteligência Artificial © Joaquim Filipe 15 ALGORITMO 1. Nó inicial(s) => ABERTOS. Faz g(s)=0. 2. Se ABERTOS vazia falha. 3. Remove o nó de ABERTOS (n) com menor custo (g) e coloca-o em FECHADOS 4. Se n for um nó objectivo termina e dá a solução. 5. Expande o nó n. Colocar os sucessores em ABERTOS, colocando os ponteiros para n e calculando o g de cada um dos sucessores. 6. Vai para 2. Inteligência Artificial © Joaquim Filipe 16 MÉTODOS DE PROCURA: EM PROFUNDIDADE PRIMEIRO (DEPTH-FIRST) Convenciona-se que a profundidade do nó raiz é zero. A profundidade de um nó é 1 + a profundidade do antecessor. É definido um nível de profundidade máximo a partir do qual os nós não são expandidos Inteligência Artificial © Joaquim Filipe 17 ALGORITMO 1. Nó inicial => ABERTOS 2. Se ABERTOS vazia falha. 3. Remove o primeiro nó de ABERTOS (n) e coloca-o em FECHADOS 4. Se a profundidade de n é maior que d vai para 2. 5. Expande o nó n. Colocar os sucessores no início de ABERTOS, colocando os ponteiros para n. 6. Se algum dos sucessores é um nó objectivo sai, e dá a solução. Caso contrário vai para 2. Inteligência Artificial © Joaquim Filipe 18 FLUXOGRAMA Inteligência Artificial © Joaquim Filipe 19 CONTINUAÇÃO DF: quando são gerados sucessores que já estão em ABERTOS ou FECHADOS pode ser necessário recalcular a profundidade dos nós correspondentes. Inteligência Artificial © Joaquim Filipe 20 GRAFOS EM VEZ DE ÁRVORES Os métodos anteriores presumem que o espaço de estados tem uma estrutura do tipo árvore. Se o espaço de estados for um grafo é preciso modificar os algoritmos: Breadth-first: reconhecer se um estado sucessor já está em ABERTOS ou em FECHADOS e nesse caso não colocar o nó correspondente em ABERTOS. Custo uniforme: Se o sucessor (nsuc) está em ABERTOS nsuc não é adicionado se g(nsuc)>g(na) caso contrário nsuc substitui na. Se o sucessor está em FECHADOS ignora-se nsuc. Inteligência Artificial © Joaquim Filipe 21 CONT. Depth-first Se está em abertos um nó com o mesmo estado, isso quer dizer que esse nó tem um custo g menor ou igual ao do nó gerado agora. Abandona o nó gerado. Se está em fechados e tem um custo maior ou igual: Elimina o nó antigo e coloca o nó gerado em abertos e coloca pointers nos sucessores do nó antigo para o nó gerado. Caso contrário: abandona o nó gerado. Inteligência Artificial © Joaquim Filipe 22 EXPLOSÃO COMBINATÓRIA Os métodos BF, Custo uniforme e DF fazem uma procura exaustiva, pelo que se designam por métodos cegos ou não informados. Para muitos problemas esta procura exaustiva torna-se pouco prática, não resolvendo o problema da explosão combinatória. Necessário usar uma alternativa mais inteligente. Inteligência Artificial © Joaquim Filipe 23 MÉTODOS HEURÍSTICOS OU “INFORMADOS” Por vezes é possível usar regras empíricas para acelerar a procura. A ideia central é evitar considerar todas as alternativas, focando a atenção apenas nas que têm mais interesse. Necessário avaliar o “interesse” dos nós: funções de avaliação. Estas regras são específicas do problema em causa e nem sempre resultam. Métodos que usam este tipo de conhecimento: métodos de procura heurísticos. Também designados: métodos de procura informados. Inteligência Artificial © Joaquim Filipe 24 USO DE FUNÇÕES DE AVALIAÇÃO Considera-se que é possível definir uma função de avaliação do interesse dos nós f(n). Por convenção a lista de nós ABERTOS é ordenada por ordem crescente de f(n), em que f(n) é o valor da função de avaliação aplicada ao nó n. Um algoritmo que use a convenção anterior para fazer procura em espaço de estados cuja estrutura seja do tipo grafo acíclico, consiste na sequência de passos indicada no slide seguinte. Inteligência Artificial © Joaquim Filipe 25 ALGORITMO DE PROCURA ORDENADA 1. Nó inicial(s) => ABERTOS. Faz f(s)=0. 2. Se ABERTOS vazia falha. 3. Remove o nó de ABERTOS (n) com menor custo (f) e coloca-o em FECHADOS 4. Expande o nó n. Calcula o f de cada um dos sucessores. 5. Colocar os sucessores que ainda não existem em ABERTOS nem FECHADOS na lista de ABERTOS, por ordem de f colocando os ponteiros para n. 6. Se algum sucessor for um nó objectivo termina e dá a solução. 7. Associa aos sucessores já em ABERTOS ou FECHADOS o menor dos valores de f (existente ou agora calculado). Coloca em ABERTOS os sucessores que estavam em FECHADOS cujos valores de f baixaram. Redirecciona para n os ponteiros de todos os nós cujos valores de f baixaram. 8. Vai para 2. Inteligência Artificial © Joaquim Filipe 26 ALGORTIMO A* O algoritmo anterior não especifica o tipo de função de avaliação. Se esta consistir em f(n)=g(n)+h(n) em que g(n) é o custo do nó n e h(n) é o seu valor heurístico, designa-se essa família de algoritmos por A. Se se modificar o algoritmo de procura ordenada por forma a que o teste de estado objectivo seja feito sobre o nó n que é seleccionado depois de colocar todos os sucessores em ABERTOS, tem-se o algoritmo A*. Inteligência Artificial © Joaquim Filipe 27 ALGORITMO DE PROCURA ÓPTIMO A função de avaliação f’(n)=g(n)+h’(n) dá uma estimativa do custo total do caminho de custo mínimo que passa por n. Nota: O algoritmo de custo uniforme encontra a solução ótima (de menor custo). h’(n)≡0 => o algoritmo A* coincide com o do custo uniforme, e encontra a solução ótima. Pode demonstrar-se que se h’ for um limite inferior de h, o algoritmo A* continua a encontrar a solução ótima. Ver pp. 60 e seguintes Nils Nilsson. Inteligência Artificial © Joaquim Filipe 28 ADMISSIBILIDADE Um algoritmo diz-se admissível se, para qualquer grafo, descobre sempre o caminho ótimo para o objetivo, desde que esse caminho exista. Se h’ é um limite inferior de h então o algoritmo A* é admissível. A admissibilidade implica que: Quando o A* expande um nó n já encontrou um caminho ótimo para n. Quando o A* expande um nó n a função de avaliação f’ não é maior que o custo real f. Inteligência Artificial © Joaquim Filipe 29 INFORMAÇÃO HEURÍSTICA Usar h’(n)≡0 reflete a ausência total de conhecimento acerca do domínio de aplicação pelo que embora o algoritmo seja admissível é pouco prático. Um algoritmo A é mais informado do que um algoritmo B sse hA > hB para todos os estados exceto os objetivo. Exemplo: 8-puzzle com h=W em que W é o número de peças erradas. Este algoritmo é mais informado do que o do custo uniforme (h’=0). Inteligência Artificial © Joaquim Filipe 30 CONSISTÊNCIA Pode demonstrar-se que se a heurística for consistente o A* nunca expande mais nós do que um algoritmo A com informação heurística menor ou igual. Consistente  h’(m) – h’(n) ≤ h(m) – h(n), ou seja: a estimativa do custo do caminho entre dois nós é um limiar inferior (ou igual) do custo real. Esta característica é normalmente verificada desde que a heurística não mude ao longo do processo de procura. Exemplo: h=W é consistente. Inteligência Artificial © Joaquim Filipe 31 EXEMPLO DE APLICAÇÃO Considere-se o seguinte problema do 8-puzzle: 2 1 6 1 2 3 4 8 8 4 7 5 3 7 6 5 Considere-se a função heurística h’=P+3S em que P é o somatório das distâncias de cada peça à sua casa certa assumindo que não há obstáculos, S é o somatório de um score para cada peça em, ao circular em torno da casa central, se soma 2 se a peça não estiver seguida do seu sucessor correcto e 0 caso contrário; soma-se 1 por uma peça errada na casa central. Inteligência Artificial © Joaquim Filipe 32 VERIFICAR O GRAFO SEGUINTE Os valores em bolas pretas representam a função de avaliação f’ = g + h’ Os números fora das bolas representam a ordem de expansão dos nós do grafo A heurística usada é admissível? É garantido que se encontra a solução de menor custo(ótima)? (Nils Nilsson, Problem Solving Methods in AI, p.67) Inteligência Artificial © Joaquim Filipe 33 COMPARAÇÃO COM BF No grafo anterior, o A* gerou um total de 43 nós e a solução tem 18 níveis. Quantos nós geraria o algoritmo breadth-first para encontrar a mesma solução? Pode assumir-se um fator de ramificação média B=2. Com esse valor de B o número de nós em cada nível é Bn. O valor esperado (média) para o número total de nós gerados pelo BF é dado por Tm=(MIN+MAX)/2 em que MIN é o número mínimo de nós gerados e MAX é o número máximo de nós gerados. MIN = 21+ 22+…+ 217+2 MAX = 21+ 22+…+ 218 Tm = [2*(21+ 22+…+ 217)+(2+218 )]/2 O BF apresentaria um grafo com mais de 150,000 nós, em vez dos 43 apresentados no grafo anterior pelo A* com a heurística P+3S. Inteligência Artificial © Joaquim Filipe 34 COMPARAÇÃO DO BF COM O DF Pode interessar também comparar os dois algoritmos não informados, anteriormente estudados (breadth-first e depth-first). Para facilitar os cálculos considera-se que a solução existe no nível L=4 e que se tem um factor de ramificação B=2. 1 … 21 = 2 2 … 22 = 4 3 … 23 = 8 4 … 24 = 16 Inteligência Artificial © Joaquim Filipe 35 BF VS. DF (COM D=L) Aplicando, no caso do BF, o método descrito no slide anterior, obtém-se os seguintes valores: MIN = 2 + 4 + 8 + 2 = 16 MAX= 2 + 4 + 8 + 16 = 30 Tm = (16 + 30)/2 = 23 De forma similar, para o DF, se d=4, tem-se: MIN = 2 + 2 + 2 + 2 = 8 MAX= 2 + 4 + 8 + 16 = 30 Tm = (8 + 30)/2 = 19 Aparentemente o DF é melhor que o BF. Inteligência Artificial © Joaquim Filipe 36 DF (COM D>L) Se agora o nível de profundidade máxima, d, for superior a L, a relação BF-DF altera-se. Considere d=5: MIN = 2 + 2 + 2 + 2 = 8 MAX= 2 + 4 + 8 + 16 + 32 – 2 = 60 Tm = (8 + 60)/2 = 34 Considere d=6: MIN = 2 + 2 + 2 + 2 = 8 MAX= 2 + 4 + 8 + 16 + 32 + 64 – 2 – 4 = 120 Tm = (8 + 120)/2 = 64 Em ambas as situações o DF é pior que o BF. Inteligência Artificial © Joaquim Filipe 37 ALGORITMO DE DIJKSTRA Este algoritmo soluciona o problema do caminho mais curto. PSEUDOCÓDIGO: 1. Atribuir valor zero à estimativa do custo mínimo do nó s (a raiz da árvore) e infinito às estimativas para todos os outros nós do grafo; 2. Em cada passo, encontrar o nó u, que ainda não foi Edsger Dijkstra processado, que possua a menor distância a s. 1956 3. Ver para cada nó v, vizinho de u, se é melhor manter a distância atual de v ou atualizar fazendo o caminho S→u e depois u→v. De notar que o caminho S→u já foi fixado e possivelmente tem conexões no meio. Inteligência Artificial © Joaquim Filipe 38 COMPARAÇÃO COM OUTROS ALGORITMOS DE PROCURA EM ESPAÇO DE ESTADOS Se os arcos tiverem valor unitário, o algoritmo de Dijkstra é igual ao BF. Se os arcos do grafo tiverem pesos arbitrários positivos este algoritmo determina o caminho de custo mínimo. Nesse caso, o algoritmo de Dijkstra é igual ao algoritmo de custo uniforme. O algoritmo de Dijkstra é um caso especial do A* em que a heurística é zero. Inteligência Artificial © Joaquim Filipe 39 MEDIDAS DE DESEMPENHO Há certas medidas que embora não determinem completamente o poder heurístico podem ser úteis para comparar várias técnicas de procura. L Penetrância: P= T em que L é o comprimento do caminho até ao objetivo e T é o número total de nós gerados Factor de ramificação média B + B 2 +... + B L = T ou B ( B L − 1) = T B −1 Inteligência Artificial © Joaquim Filipe 40 RESOLUÇÃO DE EQUAÇÕES DE ORDEM SUPERIOR Método da bissecção Método de Newton-Raphson http://faculty.washington.edu/dbp/SAPACLISP-1.x/basic-math.lisp Inteligência Artificial © Joaquim Filipe ALGORITMOS DE PROCURA EM ESPAÇO DE ESTADOS Procura com Memória Limitada 42 IDA* ITERATIVE DEEPENING A* Os requisitos de memória dos métodos não informados aumentam exponencialmente com a profundidade do estado objectivo no espaço de procura. A utilização de heurísticas não evita este problema, apesar de reduzir o factor de ramificação. IDA* surge em 1985 (Korf) Pode ser objecto de implementação paralela (Powley, Ferguson e Korf 1993) O IDA* garante a descoberta da solução óptima, desde que se use uma heurística admissível. Inteligência Artificial © Joaquim Filipe 43 ALGORITMO IDA* Aplica-se uma série de vezes o método de procura em profundidade, com limiares de profundidade variáveis, mas em que o limite (“cost cutt-off”) é dado em termos do f. Na primeira pesquisa o limiar L é dado por f’(n0) = g(n0) + h’(n0) = h’(n0), em que n0 é o nó inicial. O custo do caminho óptimo pode ser igual ao limiar mas não maior dado que a heurística tem de ser admissível, i.e. h(n0) >= h’(n0) Só se expandem nós com f’(n) 15 15 5 5 10 (10) (10) (20) 10 5 G A B A 20 C 15 10 10 10 5 5 (5) 5 5 D H 10 5 (0) 20 5 5 C E I 10 10 (10) (0) (10) Inteligência Artificial © Joaquim Filipe 69 ALGORITMO RBFS (10) F G 15 => 20 15 5 5 10 (10) (10) (20) 10 5 G A B A 20 C 15 => 25 10 10 10 5 5 (5) 5 5 D H 10 D 15 => 25 5 (0) 20 5 5 C E I 10 10 (10) (0) E 25 (10) Inteligência Artificial © Joaquim Filipe 70 ALGORITMO RBFS (10) F G 20 15 5 5 10 (10) (10) (20) 10 5 G A B A 20 C 25 10 10 10 5 (5) 5 5 D H 10 5 (0) 20 5 C E I 10 10 (10) (0) (10) Inteligência Artificial © Joaquim Filipe 71 ALGORITMO RBFS (10) F G 20 15 5 5 10 (10) (10) (20) 10 5 G A B A 20 C 25 10 5 10 10 10 5 10 (5) 5 5 D H 10 B 35 D 25 H 20 5 (0) 20 5 C E I 10 10 (10) (0) (10) Inteligência Artificial © Joaquim Filipe 72 ALGORITMO RBFS (10) F G 20=>25 15 5 5 10 (10) (10) (20) 10 5 G A B A 20=>25 C 25 10 5 10 10 10 5 10 (5) 5 5 D H 10 B 35 D 25 H 20=>40 5 (0) 20 5 5 20 C E I 10 10 40 (10) (0) I (10) Inteligência Artificial © Joaquim Filipe 73 ALGORITMO RBFS (10) F G 25 15 5 5 10 (10) (10) (20) 10 5 G A B A 25 C 25 10 5 10 10 10 5 10 (5) 5 5 D H 10 B 35 D 25 H 40 5 (0) 20 5 C E I 10 10 (10) (0) (10) Inteligência Artificial © Joaquim Filipe 74 ALGORITMO RBFS (10) F G 25 15 5 5 10 (10) (10) (20) 10 5 G A B A 25=>35 C 25 10 5 10 10 10 5 10 (5) 5 5 D H 10 B 35 D H 40 5 20 25 (0) =>35 5 5 C E I 10 10 (10) (0) E 35 (10) Inteligência Artificial © Joaquim Filipe 75 ALGORITMO RBFS (10) F G 25 15 5 5 10 (10) (10) (20) 10 5 G A B A 35 C 25 10 10 10 5 (5) 5 5 D H 10 5 (0) 20 5 C E I 10 10 (10) (0) (10) Inteligência Artificial © Joaquim Filipe 76 ALGORITMO RBFS (10) F G 25 15 5 5 10 (10) (10) (20) 10 5 G A B A 35 C 25 10 10 10 5 5 (5) 5 5 D H 10 D 15 5 (0) 20 5 Nota: O nó A já está em abertos e 5 tem maior custo. Neste caso é C E I removido o nó antigo e 10 10 (10) (0) conserva-se o de menor custo E 25 (10) 5 10 30 25 A I Inteligência Artificial © Joaquim Filipe 77 ALGORITMO RBFS (10) F G 25 15 5 5 10 (10) (10) (20) 10 5 G A B C 25 10 10 10 5 5 (5) 5 5 D H 10 D 15 5 (0) 20 5 5 C E I 10 10 (10) (0) E 25 (10) 5 10 30 25 A I Pára e dá a solução: G, C, D, E, I Inteligência Artificial © Joaquim Filipe 78 ANÁLISE COMPARATIVA SIMULAÇÃO A* IDA* - Iterative Deepening A* RBFS – Recursive Best First Search SMA* - Simplified Memory-Bound A* Inteligência Artificial © Joaquim Filipe ALGORITMO SMA* (MAX = 8 79 (10) NÓS) F 15 5 (10) (10) (20) 10 5 G A B 10 10 10 5 (5) 5 5 D H 10 5 (0) 20 5 C E I 10 10 (10) (0) (10) Inteligência Artificial © Joaquim Filipe ALGORITMO SMA* (MAX = 8 80 (10) NÓS) F G 10=>15=>25=>20 15 5 5 10 (10) (10) (20) 10 5 G A B A 20 C 15=>25 10 5 10 10 10 5 10 5 (5) 5 5 D H 10 B 35 D H 20 D 15=>25 5 (0) 20 5 5 20 5 C E I 10 10 (10) (0) nó D não é gerado E 25 (10) de novo porque o estado não teria um custo inferior ao do nó de fechados (25) Inteligência Artificial © Joaquim Filipe ALGORITMO SMA* (MAX = 8 81 (10) NÓS) F G 20 15 5 5 10 (10) (10) (20) 10 5 G A B A 20 C 25 10 5 10 10 10 5 10 5 (5) 5 5 D H 10 B 35 H 20 D 25 5 (0) 20 5 5 20 5 C E I 10 10 45 40 (10) (0) B I E 25 (10) Até agora observou-se o comportamento Nó repetido normal do A* mas atingiu-se a nó a eliminar capacidade de memória máxima. Inteligência Artificial © Joaquim Filipe ALGORITMO SMA* (MAX = 8 82 (10) NÓS) F G 25 15 5 5 10 (10) (10) (20) 10 5 G A B A 35 C 25 10 5 10 10 10 5 10 5 (5) 5 5 D H 10 B 35 H 20 D 25 5 (0) 20 5 5 20 5 C E I 10 10 (10) (0) E 25 (10) Valor do nó “esquecido” Inteligência Artificial © Joaquim Filipe ALGORITMO SMA* (MAX = 8 83 (10) NÓS) F G 30 15 5 5 10 Nó repetido (10) (10) (20) 10 5 G A B A 35 C 30 10 5 10 10 10 5 5 (5) 5 5 D H 10 B 35 H 40 D 30 5 (0) 20 5 5 C E I 10 10 (0) E 30 (10) (10) 5 10 30 A Inteligência Artificial © Joaquim Filipe ALGORITMO SMA* (MAX = 8 84 (10) NÓS) F G 30 15 5 5 (10) (10) (20) 10 5 G A B C 30 10 10 10 5 5 (5) 5 5 D H 10 D 30 5 (0) 20 5 5 C E I 10 10 (0) E 30 (10) (10) 5 10 25 30 A I Pára e dá a solução: G, C, D, E, I Inteligência Artificial © Joaquim Filipe 85 EXERCICIO 1: A PONTE Quatro pessoas querem passar de um lado para o outro de uma ponte. Na ponte só conseguem passar duas pessoas de cada vez. É de noite e para passar a ponte é necessário uma tocha. Só existe uma tocha. Cada uma das pessoas demora um tempo diferente a percorrer a ponte: um demora 1 minuto, outro 2 minutos, outro 5 minutos e o último 10 minutos. Apresentar uma descrição para o estado do problema. Apresentar a lista dos operadores uma regra para avaliação de estado final (considere que o tempo mínimo é 19 minutos). Inteligência Artificial © Joaquim Filipe 86 CONT. Resolver no papel o problema indicando o estado inicial, o estado objectivo, os operadores e estados desde o estado inicial até ao estado objectivo. Indicar os 4 primeiros passos do algoritmo A* usando a seguinte função f’(n): f'(n) = g(n) + h’(n), em que: g(n) = Tempo já gasto h’(n) = Estimativa do tempo que se gastará igual à soma dos tempos das pessoas na margem inicial. Esta heurística é admissível? Justifique. Inteligência Artificial © Joaquim Filipe 87 EXERCICIO 2: TORRES DE HANÓI Considere o problema das torres de Hanói em que se pretende passar n discos de tamanhos distintos empilhados de uma posição para outra, existindo uma posição intermédia. Só se pode mover um disco de cada vez e não se pode colocar um disco maior sobre um mais pequeno. Defina o espaço de estados do problema, os operadores e uma função de avaliação de solução. Escreva a árvore de procura usando o algoritmo BF com n=4 a partir da seguinte posição inicial: ((1 3) (2 4) ()) Inteligência Artificial © Joaquim Filipe

Use Quizgecko on...
Browser
Browser