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

IA Problemas & Heuristicas

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