IA Problemas & Heuristicas

Post on 06-Jun-2015

13.507 views 1 download

description

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

Transcript of IA Problemas & Heuristicas

Inteligência Artificial

Problemas e Heurísticas (versão final)

Rafael Rosariorafael.rosario@sociesc.org.br

rafael.rosario@datasul.com.br

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?

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;

ESTADO JARRA 4 LITROS JARRA 3 LITROSINICIAL 0 0PASSO 1 0 3PASSO 2 3 0PASSO 3 3 3PASSO 4 4 2PASS0 5 0 2PASSO 6 2 0META 2 0

Solução – Problema das Jarras

ESTADO JARRA 4 LITROS JARRA 3 LITROSINICIAL 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)(0,0)

(4,0)(4,0) (3,0)(3,0)

(4,3)(4,3) (0,0)(0,0) (1,3)(1,3) (4,3)(4,3) (0,0)(0,0) (3,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)(0,0)

(4,0)(4,0)

(4,3)(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 seg15 71 milhões 87 bilhoes 20 min20 53 milhões 1.2 x 1017 73 anos

25 42 milhões 6.2 x 1023 470 milhões de anos

Vizinho mais próximo1 - Selecione arbitrariamente uma cidade inicial2 - 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

Estado Início: B = 0, C = -1, D = -2, A = -3 Total = -6 pontos;

Estado Meta: A = 0, B = 1, C = 2, D = 3Total = 6 pontos;

Estado “exemplo”: B = 0, D = 0, A = -1, C = -1. Total = -2.

Resposta – Blocos Alfabéticos (II)

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);

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 (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

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 F1 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

Problema do Mapa (III)

SEQ A B C D E F1 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):

SEQ A B C D E F1 AZUL

2 AZUL AZUL

3 AZUL VERM

4 AZUL VERM AZUL

5 AZUL VERM VERM

? ? ? ? ? ? ?

Novo modelo: uso do Backtrack(I)

TENTE COMPLETAR

A TABELA AO LADO

BACKTRACKING...

BACKTRACKING...

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).

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}

? ? ? ? ? ? ?

Forward-Checking (II)

• É 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

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 - 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 {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

FC - a variável implicada em mais restrições

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)

1. Primeiro, identificamos as variáveis envolvidas em conflitos - variáveis cujo valor viola uma restrição;

2. Para cada uma delas, consideramos os outros valores que pode receber e calculamos o número de conflitos que ele causaria;

3. 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

1. Defina o que é heurística. Para que ela serve?

2. Qual a diferença entre os métodos:A. Busca em Amplitude e Busca em Profundidade;B. Subida de Encosta e Subida da Encosta pela Trilha

mais Íngrime;C. 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

1. Resolva os 3 problemas acima (cada problema independente do outro);

2. Certamente existe mais de uma resposta possível para cada problema. Alguma é melhor que a outra? Por que?

3. Qual o método mais recomendável para esse tipo de problema?

Quebra-Cabeça com Subida da Encosta

1. Tente solucionar o quebra-cabeça (figura da esquerda) usando o método de subida de encosta.

2. É possível encontrar uma função heurística usando subida da encosta que funcione? Por que?

3. Qual outro método você recomendaria?

Pegando o Zarco1. Eu quero pagar a minha passagem de ônibus, que custa 90

centavos (faz tempo essa tarifa...). 2. 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.

3. 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.

4. 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)

1. Marcos era um homem2. Marcos nasceu em Pompéia3. Marcos nasceu em 40 d.C.4. Todos os homens são mortais5. Todos os habitantes de Pompéia

morreram quando o vulcão entrou em erupção em 79 d.C.

6. Nenhum mortal vive mais de 150 anos.7. 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).