IA Problemas & Heuristicas

14.800 visualizações

Publicada em

Apresentação sobre Heurísticas para solução de problemas relacionados a inteligência artificial

Publicada em: Tecnologia

IA Problemas & Heuristicas

  1. 1. I nteligência Artificial Problemas e Heurísticas (versão final) Rafael Rosario [email_address] [email_address]
  2. 2. Problemas de IA (I) <ul><ul><li>Objetivos de IA : simular o comportamento inteligente humano; </li></ul></ul><ul><ul><li>Jogar Xadrez a ponto de vencer um supercampeão humano, é a solução de um problema de IA? </li></ul></ul>
  3. 3. Problemas de IA (II) <ul><ul><li>E jogar um Jogo da Velha, também é a solução de um problema de IA? </li></ul></ul>
  4. 4. Jogo da Velha <ul><ul><li>Vamos desafiar os humanos com dois algoritmos de jogo da velha: </li></ul></ul><ul><ul><li>Gerar e Testar; </li></ul></ul><ul><ul><li>Algoritmo com 3 sub-procedimentos; </li></ul></ul><ul><ul><li>Alguém teria outra lógica melhor que as anteriores? </li></ul></ul>
  5. 5. Problema das Jarras <ul><ul><li>Temos 2 Jarras, com capacidade para 4 e 3 litros ; </li></ul></ul><ul><ul><li>As jarras não possuem marcação parcial de litros; </li></ul></ul><ul><ul><li>Possuímos uma bomba para encher as jarras; </li></ul></ul><ul><li>Como deixar a jarra de 4 litros com exatamente 2 litros ? </li></ul>
  6. 6. Estratégia de Solução de Problemas <ul><li>Estado Inicial : qual o posição inicial do problema? </li></ul><ul><li>Estado Meta : quando considerar o objetivo alcançado? </li></ul><ul><li>Estratégia de controle: </li></ul><ul><li>Causar movimento : encher sempre a jarra de 4 litros não funcionaria; </li></ul><ul><li>Sistemática : aleatoriamente poderíamos </li></ul><ul><li>demorar ou nunca chegar a uma solução; </li></ul>
  7. 7. Solução – Problema das Jarras ESTADO JARRA 4 LITROS JARRA 3 LITROS INICIAL 0 0 PASSO 1 0 3 PASSO 2 3 0 PASSO 3 3 3 PASSO 4 4 2 PASS0 5 0 2 PASSO 6 2 0 META 2 0 ESTADO JARRA 4 LITROS JARRA 3 LITROS INICIAL 0 0 META 2 0
  8. 8. Estratégias de Busca (I) <ul><li>Busca em Amplitude: construa uma árvore com o estado inicial na raiz, e gere todas as ramificações. </li></ul><ul><li>Em cada nó-folha, gere todos os sucessores. </li></ul>(0,0) (4,0) (3,0) (4,3) (0,0) (1,3) (4,3) (0,0) (3,0)
  9. 9. Estratégias de Busca (II) <ul><ul><li>Busca em profundidade: gere um sucessor, se ele for o estado meta – OK. </li></ul></ul><ul><ul><li>Se não for, gere seu sucessor. Se não puder gerar sucessor, retorne ao estado anterior. </li></ul></ul>(0,0) (4,0) (4,3)
  10. 10. Heurística (I) <ul><li>Processo de novos desenvolvimentos teóricos ou descobertas empíricas ; </li></ul><ul><li>Método de aproximação das soluções dos problemas; </li></ul><ul><li>Não segue um percurso claro, mas se baseia na intuição e nas circunstâncias a fim de gerar conhecimento novo. </li></ul>
  11. 11. Heurística (II) <ul><li>Melhora a eficiência de um processo de busca, com possibilidade de sacrificar sua completeza; </li></ul><ul><li>É como um guia turistico: aponta direções geralmente interessantes, mas pode deixar de fora alguns pontos de interesse para alguns indivíduos. </li></ul>
  12. 12. George Pólya - How to solve it <ul><li>Se n ã o puder compreender um problema, monte um esquema (quer que eu desenhe??); </li></ul><ul><li>Se n ã o puder encontrar a solu çã o, tente fazer um mecanismo inverso para tentar chegar à solução; </li></ul><ul><li>Se o problema for abstrato, tente propor o mesmo problema num exemplo concreto; </li></ul><ul><li>Tente abordar primeiro um problema mais geral (o paradoxo do inventor: o propósito mais ambicioso é o que tem mais possibilidade de sucesso). </li></ul>
  13. 13. Problema: Caixeiro Viajante <ul><ul><li>Um caixeiro viajante deseja visitar N cidades e entre cada par de cidades existe uma rota; </li></ul></ul><ul><ul><li>Cada rota possui uma distância (ou o custo necessário) para percorrê-la; </li></ul></ul><ul><ul><li>O caixeiro viajante deseja encontrar um caminho que passe por cada cidade apenas uma vez, e além disso que tenha um custo menor que certo valor. </li></ul></ul>Traveling Salesman Problem - TSP
  14. 14. TSP - Exemplo JOINVILLE FLORIPA BLUMENAU LAGES 180 km 90 km 250 km 230 km 140 km 330 km
  15. 15. TSP - Classificação <ul><ul><li>Caso típico de otimização combinatória, freqüentemente utilizado em computação para demonstrar problemas de difícil resolução; </li></ul></ul><ul><ul><li>Possui NP difícil, e o problema de decisão (dado o problema TSP e um número x, decida se existe uma rota com menor custo que x) é NP-completo. </li></ul></ul><ul><ul><li>NP (Non-Deterministic Polynomial time) : Tempo polinomial não determinístico </li></ul></ul>N Rotas por Segundo ( n - 1 )! Cálculo Total 5 250 milhões 24 Insignificante 10 110 milhões 362 880 0.003 seg 15 71 milhões 87 bilhoes 20 min 20 53 milhões 1.2 x 10 17 73 anos 25 42 milhões 6.2 x 10 23 470 milhões de anos
  16. 16. <ul><li>Vizinho mais próximo </li></ul><ul><li>1 - Selecione arbitrariamente uma cidade inicial </li></ul><ul><li>2 - Selecione a menor rota até qquer cidade . Repita até todas as cidades terem sido visitadas. </li></ul>TSP – Uma Heurística para Solução JOINVILLE FLORIPA BLUMENAU LAGES 180 km 90 km 250 km 230 km 140 km 330 km
  17. 17. Por que as Heurísticas funcionam? <ul><li>Não precisamos sempre de soluções ótimas : uma boa aproximação normalmente é aceita. Há evidência que as pessoas não são otimizadoras; </li></ul><ul><li>Embora as aproximações produzidas possam não ser muito boas, as piores hipóteses raramente surgem no mundo real; </li></ul><ul><li>Tentar entender por que uma heurística funciona (ou não funciona) resulta em uma compreensão mais profunda do problema analisado. </li></ul>
  18. 18. Subida da Encosta (Hill Climbing) <ul><li>Idéia: a partir de um estado inicial, cria-se um novo estado (usando os operadores / ações disponíveis); </li></ul><ul><li>Se alcançar o estado meta – resolvido. Se não for o meta, mas for melhor que o anterior, assume como o estado corrente, e repete a operação; </li></ul><ul><li>É um método local, no sentido de que a cada momento o algoritmo considera somente os estados imediatamente acessíveis a partir do estado atual. </li></ul>
  19. 19. Problema dos Cubos Coloridos (I) <ul><li>Temos 8 cubos coloridos iguais. Cada um dos 6 lados dos cubos é pintado de uma cor diferente; </li></ul><ul><li>Agrupamos os 8 cubos em 2 linhas e duas colunas, como nas figuras abaixo; </li></ul><ul><li>O estado meta é deixar cada lado desse novo agrupamento com apenas uma cor (figura da direita); </li></ul>
  20. 20. Problema dos Cubos Coloridos (II) <ul><li>Usando o método de subida da encosta, e tendo como operação girar um cubo em 90 graus, qual seria o algoritmo para alcançarmos o estado meta? </li></ul><ul><li>Como comparar se um estado gerado é melhor que o estado corrente? </li></ul>
  21. 21. Resposta: Cubos Coloridos <ul><li>Para cada lado com 2 cores iguais, some 2 pontos; 3 cores iguais – 3 pontos, 4 cores – iguais – 4 pontos; </li></ul><ul><li>Estado meta: alcançar 4 pontos x 6 lados = 24 pontos; </li></ul><ul><li>Restrição: se um lado tiver 2 faces de uma cor e 2 de outro, não pode somar 4 (soma somente 2); </li></ul><ul><li>Gire um cubo de cada vez, e verifique se o estado gerado soma mais pontos que o estado corrente. Repita até alcançar 24 pontos. </li></ul>
  22. 22. Subida da Encosta pela Trilha mais Íngreme (I) <ul><li>Variação que considera todos os movimentos possíveis a partir do estado corrente e seleciona o melhor deles para ser o próximo estado; </li></ul><ul><li>Ou seja, examina TODOS os sucessores do estado atual e escolhe entre estes sucessores qual é o que está mais próximo da solução. </li></ul>
  23. 23. Subida da Encosta pela Trilha mais Íngreme (II) <ul><li>Há sempre perdas e ganhos entre o tempo exigido para escolher um movimento (maior na trilha mais íngreme) e o tempo para chegar numa solução (maior na subida de encosta básica); </li></ul><ul><li>No problemas dos cubos coloridos, qual dos dois métodos acharia uma solução mais rapidamente? </li></ul>
  24. 24. Problema - Blocos Alfabéticos (I) <ul><li>Temos blocos com as letras de A, B, C e D, e o objetivo é deixá-los como no estado meta; </li></ul><ul><li>Pode-se mover um bloco por vez, criando quantas colunas auxiliares forem necessárias; </li></ul>Estado Início: Estado Meta:
  25. 25. Problema - Blocos Alfabéticos (II) <ul><li>Sugestão: +1 para cada cubo sobre o cubo certo, </li></ul><ul><li>-1 para cada cubo não posicionado sobre o cubo certo </li></ul>
  26. 26. Resposta – Blocos Alfabéticos(I) <ul><li>A Heurística sugerida anteriormente não é apropriada, pois faria a SDEPTMI* chegar a um ótimo local e não obter a resposta desejada; </li></ul><ul><li>Se usarmos uma heurística mais apropriada ao problema, alcançaremos o estado meta: </li></ul><ul><ul><li>Quando o bloco tem a estrutura de apoio correta, some um ponto para cada bloco da estrutura; Quando o bloco tem a estrutura errada, subtraia um ponto para cada bloco da estrutura; </li></ul></ul><ul><li>*SDEPTMI = Subida da Encosta pela Trilha mais Íngreme </li></ul>
  27. 27. Resposta – Blocos Alfabéticos (II) Estado Início: B = 0, C = -1, D = -2, A = -3 Total = -6 pontos; Estado Meta: A = 0, B = 1, C = 2, D = 3 Total = 6 pontos; Estado “exemplo”: B = 0, D = 0, A = -1, C = -1. Total = -2.
  28. 28. Resposta – Blocos Alfabéticos (III)
  29. 29. Problemas de Heurísticas Locais (I) <ul><li>Nos métodos locais avaliados (Busca em Profundidade, Vizinho mais próximo, Subida da Encosta) há o risco de alçarmos um estado intermediário não satisfatório : </li></ul><ul><ul><li>Máximo local; </li></ul></ul><ul><ul><li>Platô; </li></ul></ul><ul><ul><li>Cordilheira (ou cume); </li></ul></ul>
  30. 30. Problemas de Heurísticas Locais (II) <ul><li>Máximo local : estado melhor que todos os seus vizinhos, mas não melhor que outros estados mais distantes; </li></ul><ul><li>Platô : área plana no espaço de busca em que todos os vizinhos tem o mesmo valor. </li></ul><ul><li>Cordilheira (ou cume): quando o máximo global está fora dos alcance dos movimentos disponíveis. </li></ul>
  31. 31. Têmpera Simulada (I) <ul><li>Variação da Subida da Encosta, que permite movimentos descendentes (global); </li></ul><ul><li>É adequado a problemas nos quais a subida de encosta encontra muitos platôs e máximos locais; </li></ul><ul><li>É inspirado no processo de têmpera do aço. Temperaturas são gradativamente baixadas, até que a estrutura molecular se torne suficientemente uniforme. </li></ul>
  32. 32. Têmpera Simulada (II) <ul><li>Movimentos piores podem ser aceitos. A probabilidade de aceitar isso diminui conforme o processo avança; </li></ul><ul><li>Mantêm além do estado corrente, o melhor estado encontrado até o momento (evita perder o melhor); </li></ul><ul><li>Como explicar a têmpera simulada pela figura deste slide? </li></ul>
  33. 33. Outros Métodos de Busca <ul><li>Existem ainda vários outros métodos de busca, muitos deles utilizando grafos: </li></ul><ul><li>Melhor escolha(best-first): combina as vantagens da busca em profundidade e em amplitude; </li></ul><ul><li>Algoritmo A*: calcula o custo atual (f) somando: </li></ul><ul><ul><li>Caminho percorrido do estado inicial até estado atual – g; </li></ul></ul><ul><ul><li>Estima o custo do estado atual até o estado meta – h. </li></ul></ul>
  34. 34. Satisfação de Restrições <ul><li>Objetivo: descobrir algum estado de problema que satisfaça a um determinado conjunto de restrições; </li></ul><ul><li>Reduz a quantidade de busca, e em alguns casos qualquer solução que respeite as restrições é aceito; </li></ul><ul><li>Exemplos: Criptografia, Projeto com limites de tempo e custos, Alocação de recursos p/ executar tarefas, etc. </li></ul>
  35. 35. Tipo de Restrições <ul><li>Restrições por Equação / Inequação : </li></ul><ul><ul><li>Exemplos: X = 4; X <= Y; Z <> 0; </li></ul></ul><ul><li>Restrições por Procedimentos: </li></ul><ul><li>Exemplo: se X e Y representam pessoas, e queremos que elas sejam de sexos diferentes (em PROLOG): </li></ul><ul><ul><ul><li>sexo_dif(X,Y):- mulher(X), homem(Y). </li></ul></ul></ul><ul><ul><ul><li>sexo_dif(X,Y):- mulher(Y), homem(X). </li></ul></ul></ul>
  36. 36. Problema do Mapa (I) <ul><li>Qualquer mapa pode ser pintado com 4 cores, sem que duas áreas contíguas sejam coloridas com a mesma cor. </li></ul>
  37. 37. Problema do Mapa (II) <ul><li>Para o mapa abaixo, quais são as restrições a serem respeitadas? </li></ul><ul><li>A <> B A <> C A <> E B <> E </li></ul><ul><li>B <> F C <> E C <> F E <> F D <> F </li></ul>
  38. 38. Problema do Mapa (III) Com um domínio de 3 cores e usando um algoritmo Gera-e-Testa, quantos passos serão necessários? SEQ A B C D E F 1 AZUL AZUL AZUL AZUL AZUL AZUL SEQ A B C D E F 1 AZUL AZUL AZUL AZUL AZUL AZUL 2 AZUL AZUL AZUL AZUL AZUL ROXO 3 AZUL AZUL AZUL AZUL AZUL VERM 4 AZUL AZUL AZUL AZUL VERM AZUL 5 AZUL AZUL AZUL AZUL VERM VERM SEQ A B C D E F 1 AZUL AZUL AZUL AZUL AZUL AZUL 2 AZUL AZUL AZUL AZUL AZUL ROXO 3 AZUL AZUL AZUL AZUL AZUL VERM 4 AZUL AZUL AZUL AZUL VERM AZUL 5 AZUL AZUL AZUL AZUL VERM VERM ... ... ... ... ... ... ... 124 AZUL VERM VERM VERM ROXO AZUL
  39. 39. Deficiência do modelo proposto <ul><li>O principal problema é que verificamos as restrições somente quando todas as variáveis são instanciadas; </li></ul><ul><li>Mas na maioria dos casos, podemos detectar conflitos antes mesmo de terminar as instanciações. (ex.: na linha 1 não é preciso continuar depois de ter atribuído a cor azul para A e B, pois já temos uma restrição violada): </li></ul>
  40. 40. Novo modelo: uso do Backtrack(I) TENTE COMPLETAR A TABELA AO LADO  BACKTRACKING... BACKTRACKING... SEQ A B C D E F 1 AZUL 2 AZUL AZUL 3 AZUL VERM 4 AZUL VERM AZUL 5 AZUL VERM VERM ? ? ? ? ? ? ?
  41. 41. Vantagens do Backtrack <ul><li>Apesar do custo para testar as restrições a cada instanciação, isso é compensado pelo fato de obter uma busca muito mais limitada; </li></ul><ul><li>A cada instanciação, não é preciso testar TODAS as restrições. É suficiente testar unicamente as que contêm a variável instanciada. </li></ul>
  42. 42. Forward-Checking (I) <ul><li>Temos com melhorar mais ainda a busca? </li></ul><ul><li>A idéia é de olhar, considerando os valores já atribuídos e as restrições, se é possível reduzir o domínio das outras variáveis não instanciadas; </li></ul><ul><li>Exemplo: assim que a cor azul for escolhida para A, podemos excluir essa cor dos conjuntos de B, C e E (para respeitar A <> B, A <> C e A <> E). </li></ul>
  43. 43. Forward-Checking (II) SEQ A B C D E F 0 {a,v,r} {a,v,r} {a,v,r} {a,v,r} {a,v,r} {a,v,r} 1 a {v,r} {v,r} {a,v,r} {v,r} {a,v,r} 2 a v {v,r} {a,v,r} {r} {a,r} ? ? ? ? ? ? ?
  44. 44. <ul><li>É possível melhorar ainda mais o Forward-Checking? </li></ul><ul><li>Existe uma maneira de determinar a ordem de instanciação das variáveis para otimizar a busca? </li></ul><ul><ul><li>Escolher a variável mais restrita (a que contém o menor domínio – menos cores disponíveis); </li></ul></ul><ul><ul><li>Escolher a variável implicada em mais restrições (que contém mais vizinhos). </li></ul></ul>Forward-Checking Otimizada
  45. 45. FC - Variável mais restrita A B C D E F 0 {a,v,r} {a,v,r} {a,v,r} {a,v,r} {a,v,r} {a,v,r} 1 a {v,r} {v,r} {a,v,r} {v,r} {a,v,r}
  46. 46. FC - Variável mais restrita A B C D E F 0 {a,v,r} {a,v,r} {a,v,r} {a,v,r} {a,v,r} {a,v,r} 1 a {v,r} {v,r} {a,v,r} {v,r} {a,v,r} 2 a v {v,r} {a,v,r} {r} {a,r}
  47. 47. FC - Variável mais restrita A B C D E F 0 {a,v,r} {a,v,r} {a,v,r} {a,v,r} {a,v,r} {a,v,r} 1 a {v,r} {v,r} {a,v,r} {v,r} {a,v,r} 2 a v {v,r} {a,v,r} {r} {a,r} 3 a v {v} {a,v,r} r {a}
  48. 48. FC - Variável mais restrita A B C D E F 0 {a,v,r} {a,v,r} {a,v,r} {a,v,r} {a,v,r} {a,v,r} 1 a {v,r} {v,r} {a,v,r} {v,r} {a,v,r} 2 a v {v,r} {a,v,r} {r} {a,r} 3 a v {v} {a,v,r} r {a} 4 a v v {a,v,r} r {a}
  49. 49. FC - Variável mais restrita A B C D E F 0 {a,v,r} {a,v,r} {a,v,r} {a,v,r} {a,v,r} {a,v,r} 1 a {v,r} {v,r} {a,v,r} {v,r} {a,v,r} 2 a v {v,r} {a,v,r} {r} {a,r} 3 a v {v} {a,v,r} r {a} 4 a v v {a,v,r} r {a} 5 a v v {v,r} r a
  50. 50. FC - Variável mais restrita A B C D E F 0 {a,v,r} {a,v,r} {a,v,r} {a,v,r} {a,v,r} {a,v,r} 1 a {v,r} {v,r} {a,v,r} {v,r} {a,v,r} 2 a v {v,r} {a,v,r} {r} {a,r} 3 a v {v} {a,v,r} r {a} 4 a v v {a,v,r} r {a} 5 a v v {v,r} r a 6 a v v v r a
  51. 51. FC - a variável implicada em mais restrições A B C D E F 0 {a,v,r} {a,v,r} {a,v,r} {a,v,r} {a,v,r} {a,v,r} 1 {v,r} {v,r} {v,r} {a,v,r} a {v,r}
  52. 52. FC - a variável implicada em mais restrições A B C D E F 0 {a,v,r} {a,v,r} {a,v,r} {a,v,r} {a,v,r} {a,v,r} 1 {v,r} {v,r} {v,r} {a,v,r} a {v,r} 2 {v,r} {r} {r} {a,r} a v
  53. 53. FC - a variável implicada em mais restrições A B C D E F 0 {a,v,r} {a,v,r} {a,v,r} {a,v,r} {a,v,r} {a,v,r} 1 {v,r} {v,r} {v,r} {a,v,r} a {v,r} 2 {v,r} {r} {r} {a,r} a v 3 v {r} {r} {a,r} a v
  54. 54. FC - a variável implicada em mais restrições A B C D E F 0 {a,v,r} {a,v,r} {a,v,r} {a,v,r} {a,v,r} {a,v,r} 1 {v,r} {v,r} {v,r} {a,v,r} a {v,r} 2 {v,r} {r} {r} {a,r} a v 3 v {r} {r} {a,r} a v 4 v r {r} {a,r} a v
  55. 55. FC - a variável implicada em mais restrições A B C D E F 0 {a,v,r} {a,v,r} {a,v,r} {a,v,r} {a,v,r} {a,v,r} 1 {v,r} {v,r} {v,r} {a,v,r} a {v,r} 2 {v,r} {r} {r} {a,r} a v 3 v {r} {r} {a,r} a v 4 v r {r} {a,r} a v 5 v r r {a,r} a v
  56. 56. FC - a variável implicada em mais restrições A B C D E F 0 {a,v,r} {a,v,r} {a,v,r} {a,v,r} {a,v,r} {a,v,r} 1 {v,r} {v,r} {v,r} {a,v,r} a {v,r} 2 {v,r} {r} {r} {a,r} a v 3 v {r} {r} {a,r} a v 4 v r {r} {a,r} a v 5 v r r {a,r} a v 6 v r r a a v
  57. 57. Minimizando Conflitos (I) <ul><li>Combinação dos métodos de Subida da Encosta e Satisfação de Restrições: </li></ul><ul><ul><li>Da Subida da Encosta usa a idéia de escolher o melhor estado sucessor ; </li></ul></ul><ul><ul><li>Da Satisfação de Restrições usa o princípio de representar o problema por um conjunto de variáveis e restrições sobre essas variáveis. </li></ul></ul>
  58. 58. Minimizando Conflitos (II) <ul><li>Primeiro, identificamos as variáveis envolvidas em conflitos - variáveis cujo valor viola uma restrição; </li></ul><ul><li>Para cada uma delas, consideramos os outros valores que pode receber e calculamos o número de conflitos que ele causaria; </li></ul><ul><li>Escolhemos a variável e o valor que causam o menor número de conflitos . </li></ul>
  59. 59. Problema das 8 Rainhas (I) <ul><li>O objetivo é colocar 8 rainhas num tabuleiro de xadrez, de forma que uma rainha não ataque a outra; </li></ul><ul><li>Dica: a rainha ataca para cima, para baixo, para os lados e para as diagonais (como na figura abaixo). </li></ul>
  60. 60. Problema das 8 Rainhas (II) <ul><li>Possibilidades: 64 * 63 * 62 * 61 * 60 * 59 * 58 * 57 = apenas 178.462.987.637.760 ; </li></ul><ul><li>Sabendo que cada rainha deverá ficar numa linha diferente, são 8·7·...·2·1 = 40.320 ; </li></ul><ul><li>Existem 92 respostas para o problema; </li></ul>Seis rainhas é fácil.. Quero ver 8!!!
  61. 61. Problema das 8 Rainhas - Dica <ul><li>Tente resolver utilizando sua heurística de Minimização de Conflitos, primeiro para um número menor de rainhas: </li></ul>
  62. 62. Exercícios de Fixação Para serem feitos e entregues na aula de 20/03/2008!!
  63. 63. Responda <ul><li>Defina o que é heurística. Para que ela serve? </li></ul><ul><li>Qual a diferença entre os métodos: </li></ul><ul><ul><li>Busca em Amplitude e Busca em Profundidade; </li></ul></ul><ul><ul><li>Subida de Encosta e Subida da Encosta pela Trilha mais Íngrime; </li></ul></ul><ul><ul><li>Solução por Restrições usando Backtrack e Forward-Checking; </li></ul></ul>
  64. 64. Criptoaritmética (I) <ul><ul><li> FORTY 29786 </li></ul></ul><ul><ul><li>+ TEN + 850 </li></ul></ul><ul><ul><li>+ TEN + 850 </li></ul></ul><ul><ul><li>------- ------ </li></ul></ul><ul><ul><li> SIXTY 31486 </li></ul></ul><ul><ul><li> </li></ul></ul><ul><ul><li>Considere um problema aritmético representado por letras, conforme mostram os exemplos acima. </li></ul></ul><ul><ul><li>Atribua um dígito decimal a cada uma das letras, de forma a obter a resposta correta (como no exemplo acima). </li></ul></ul><ul><ul><li>Se a mesma letra aparecer mais de uma vez, ela deve ser atribuída ao mesmo dígito todas as vezes. </li></ul></ul><ul><ul><li>Duas letras diferentes não podem ser atribuídas ao mesmo dígito. </li></ul></ul>
  65. 65. Criptoaritmética (II) <ul><ul><li>SEND DONALD CROSS </li></ul></ul><ul><ul><li>+MORE +GERALD +ROADS </li></ul></ul><ul><ul><li>----- ------ ------ </li></ul></ul><ul><ul><li>MONEY ROBERT DANGER </li></ul></ul><ul><ul><li>Resolva os 3 problemas acima (cada problema independente do outro); </li></ul></ul><ul><ul><li>Certamente existe mais de uma resposta possível para cada problema. Alguma é melhor que a outra? Por que? </li></ul></ul><ul><ul><li>Qual o método mais recomendável para esse tipo de problema? </li></ul></ul>
  66. 66. Quebra-Cabeça com Subida da Encosta <ul><li>Tente solucionar o quebra-cabeça (figura da esquerda) usando o método de subida de encosta. </li></ul><ul><li>É possível encontrar uma função heurística usando subida da encosta que funcione? Por que? </li></ul><ul><li>Qual outro método você recomendaria? </li></ul>
  67. 67. Pegando o Zarco <ul><li>Eu quero pagar a minha passagem de ônibus, que custa 90 centavos (faz tempo essa tarifa...). </li></ul><ul><li>Para pagá-la, eu quero utilizar ao menos 5 moedas. O cobrador quer que eu lhe dê uma moeda de 25 centavos ou duas de 10 centavos. </li></ul><ul><li>Represente isso como um problema de satisfação de restrições e mostre como as heurísticas de forward-checking, variável mais restrita e/ou variável mais restringente agilizam a resolução. </li></ul><ul><li>Eu tenho 4 moedas de 5 centavos, 3 moedas de 10, 2 de 25 cents e uma moeda de 50 centavos. </li></ul>
  68. 68. Referências <ul><li>http://pt.wikipedia.org/wiki/Deep_Blue </li></ul><ul><li>Inteligência Artificial – Elaine Rich e Kevin Knight – 2ª edição </li></ul><ul><li>http://pt.wikipedia.org/wiki/Problema_do_caixeiro_viajante </li></ul><ul><li>mc102.unicamp.googlepages.com </li></ul><ul><li>br.geocities.com/xadrezvirtual/noticias/ </li></ul><ul><li>http://pt.wikipedia.org/wiki/NP_%28complexidade%29 </li></ul><ul><li>< http://www.dcc.fc.up.pt/~jpp/cia/node54.html > </li></ul><ul><li>http://www.citi.pt/educacao_final/trab_final_inteligencia_artificial/heuristicas.html > </li></ul><ul><li>http://pt.wikipedia.org/wiki/Heur%C3%ADstica </li></ul><ul><li>http://www.tsp.gatech.edu/ </li></ul><ul><li>http://www.professeurs.polymtl.ca/michel.gagnon/Disciplinas/Bac/IA/ResolProb/resproblema.html#NocPrel </li></ul><ul><li>http://paginas.unisul.br/max/aula03_IA.pdf </li></ul><ul><li>http://ampedrosas.vilabol.uol.com.br/index.html </li></ul>
  69. 69. Desafios - Marcos ainda vive? (I) <ul><ul><li>Marcos era um homem </li></ul></ul><ul><ul><li>Marcos nasceu em Pompéia </li></ul></ul><ul><ul><li>Marcos nasceu em 40 d.C. </li></ul></ul><ul><ul><li>Todos os homens são mortais </li></ul></ul><ul><ul><li>Todos os habitantes de Pompéia morreram quando o vulcão entrou em erupção em 79 d.C. </li></ul></ul><ul><ul><li>Nenhum mortal vive mais de 150 anos. </li></ul></ul><ul><ul><li>Estamos em 2008 d.C. </li></ul></ul>
  70. 70. Desafios - Marcos ainda vive? (II) <ul><li>Crie 2 Justificativas, através de axiomas, que provam que Marcos está morto. </li></ul><ul><li>Axioma: Um axioma é uma sentença ou proposição ( que não é provada ou demonstrada) e é considerada como óbvia ou como um consenso inicial necessário para a construção ou aceitação de uma teoria . Por essa razão, é aceito como verdade e serve como ponto inicial para dedução e inferências de outras verdades (dependentes de teoria). </li></ul>

×