Sie sind auf Seite 1von 28

RESOLUÇÃO DE PROBLEMAS

URI – UNIVERSIDADE REGIONAL INTEGRADA DO


ALTO URUGUAI E DAS MISSÕES
CURSO DE CIÊNCIA DA COMPUTAÇÃO
PROF. CARLA CASTANHO
O QUE É UM PROBLEMA

A IA SERVE PARA RESOLVER PROBLEMAS, IMITANDO, DE CERTA FORMA


A INTELIGÊNCIA DOS SERES-VIVOS.

O DESEJO DE CONSTRUIR MÁQUINAS ‘RESOLVEDORAS’ DE PROBLEMAS


IMPÕE A COMPREENSÃO DA NATUREZA ÍNTIMA DOS MESMOS.

ANTES DE SOLUCIONAR UM PROBLEMA:

QUAIS SÃO OS DADOS?

QUAIS SÃO AS SOLUÇÕES POSSÍVEIS?

O QUE CARACTERIZA UMA SOLUÇÃO SATISFATÓRIA?

DEFINIÇÃO:

UM PROBLEMA É UM OBJETO MATEMÁTICO P={D,R,Q}, CONSISTINDO DE DOIS


CONJUNTOS NÃO VAZIOS, D OS DADOS E R OS RESULTADOS POSSÍVEIS E
DE UMA RELAÇÃO BINÁRIA Q EM D X R, A CONDIÇÃO QUE CARACTERIZA
UMA SOLUÇÃO SATISFATÓRIA, ASSOCIANDO A CADA ELEMENTO DO
CONJUNTO DE DADOS A SOLUÇÃO ÚNICA DESEJADA.
O QUE É UM PROBLEMA

EXEMPLO

DIAGNÓSTICO MÉDICO

DADOS DISPONÍVEIS (EXAMES, ETC.)

CONJUNTO DE DOENÇAS POSSÍVEIS

A CONDIÇÃO QUE CARACTERIZA UMA SOLUÇÃO


SATISFATÓRIA CONSISTE EM ENCONTRAR O PAR (DADOS,
DOENÇA), O DIAGNÓSTICO DESEJADO.

UM PROBLEMA PODE SER REPRESENTADO


MATEMATICAMENTE POR UMA FUNÇÃO. RESOLVER O
PROBLEMA SERÁ ENTÃO ENCONTRAR UM MODO DE
IMPLEMENTAR ESTA FUNÇÃO OU DE APROXIMÁ-LA COM O
CONHECIMENTO QUE SE DISPÕE.
O QUE É UM PROBLEMA

MODOS DE DEFINIR UMA FUNÇÃO

POR ENUMERAÇÃO EXAUSTIVA

FORNECE-SE TODOS OS CONJUNTOS DE PARES, DADO,


RESULTADO.

SÓ SE APLICA NO CASO QUE O CONJUNTO DE DADOS É FINITO.

DECLARATIVAMENTE

DAR PROPRIEDADES QUE DEVEM SER SATISFEITAS PELA


SOLUÇÃO DO PROBLEMA.

DA MESMA FORMA QUE UM CONJUNTO PODE SER DEFINIDO


POR UMA PROPRIEDADE, UMA FUNÇÃO PODE SER DEFINIDA
DA MESMA MANEIRA.
O QUE É UM PROBLEMA

MODOS DE DEFINIR UMA FUNÇÃO

POR UM PROGRAMA

UM PROGRAMA DE COMPUTADOR DEFINE A CORRESPONDÊNCIA ENTRE


DADOS E RESULTADOS, PODENDO SER CONSIDERADO COMO UM MODO
DE DEFINIR UM PROBLEMA.

UM PROBLEMA DEFINIDO POR UM PROGRAMA PODERÁ OU NÃO CHEGAR


À SOLUÇÃO.

POR EXEMPLOS

CONHECE-SE APENAS A DEFINIÇÃO DO PROBLEMA PARA UM


SUBCONJUNTO DOS DADOS POSSÍVEIS E ESTE CONHECIMENTO PODE SER
DE QUALQUER UMA DAS FORMAS ANTERIORES.

DESEJA-SE CONHECER OS ELEMENTOS DO CONJUNTO DE RESPOSTAS


ADMISSÍVEIS MESMO PARA DADOS QUE NÃO ESTÃO INCLUÍDOS NA
DEFINIÇÃO DA FUNÇÃO.
O QUE É UM PROBLEMA

OS MODOS DE DEFINIR UMA FUNÇÃO LEVAM AO


CONCEITO DE:

COMPUTABILIDADE

DEFINIÇÃO 1: UMA FUNÇÃO É DITA COMPUTÁVEL SE É POSSÍVEL


CALCULAR SEU VALOR PARA TODOS OS ELEMENTOS DE SEU
DOMÍNIO DE DEFINIÇÃO.

EX1.: EQUAÇÕES DIOFANTINAS

AN+BN=CN N>=3 A, B, C INTEIROS

EX2.: PROBLEMA DA PARADA DE UM PROGRAMA

DADO UM PROGRAMA E UM CONJUNTO DE DADOS INFINITO, É


IMPOSSÍVEL TER UM OUTRO PROGRAMA QUE DECIDA SE O PRIMEIRO
PROGRAMA VAI CONSEGUIR PARAR PARA TODOS OS DADOS.
O QUE É UM PROBLEMA

COMPLEXIDADE

DEFINIÇÃO 2: A COMPLEXIDADE DE UM PROBLEMA, COM RELAÇÃO A UM


CONJUNTO BEM DEFINIDO DE RECURSOS, É DEFINIDA COMO AQUELA QUE
CONSIDERA O MODO MAIS PARCIMONIOSO DE USO DE RECURSOS
CONHECIDOS PARA A SOLUÇÃO DO PROBLEMA.

SE A COMPUTABILIDADE DIZ RESPEITO À EXISTÊNCIA DE SOLUÇÃO


PARA UM PROBLEMA, A COMPLEXIDADE SE REFERE A QUANTIDADE DE
RECURSOS NECESSÁRIOS PARA RESOLVÊ-LOS.

UM MESMO PROBLEMA PODE TER COMPLEXIDADE DIFERENTE,


DEPENDENDO DA TÉCNICA QUE SE UTILIZA PARA RESOLVÊ-LO.

DEFINIÇÃO 3: UM PROBLEMA É DITO NP-COMPLETO QUANDO NÃO SE


CONHECE ALGORITMO DE ORDEM POLINOMIAL CAPAZ DE RESOLVÊ-
LO.

EX.: PROBLEMA DO CAIXEIRO-VIAJANTE RESOLVIDO DE MANEIRA


ALGORÍTMICA.
CARACTERÍSTICAS DE PROBLEMAS

NÃO EXISTE UM ÚNICO MÉTODO DE RESOLUÇÃO PARA TODOS OS


PROBLEMAS.

SÃO CONHECIDOS OS PASSOS PARA ACHAR A SOLUÇÃO?

O PROBLEMA É SUFICIENTEMENTE BEM DEFINIDO?

JOGO DO 8

IDENTIFICAÇÃO DE ASSINATURAS

O PROBLEMA É DECOMPONÍVEL?

A SOLUÇÃO PARA O PROBLEMA INICIAL PODE SER OBTIDA PELA


COMPOSIÇÃO DA SOLUÇÃO DE ALGUNS PROBLEMAS MAIS ELEMENTARES.

OS PASSOS PARA AS SOLUÇÕES PODEM SER DESFEITOS?

NA SOLUÇÃO DE UM PROBLEMA RETROCEDER É VOLTAR A TRAJETÓRIA NO


ESPAÇO DE SOLUÇÕES (BACKTRACK). É UM DOS MECANISMOS BÁSICOS
UTILIZADOS PELO PROLOG.
CARACTERÍSTICAS DE
PROBLEMAS
O UNIVERSO É PREDIZÍVEL?

É POSSÍVEL PLANEJAR UMA SEQÜÊNCIA DE PASSOS E O ESTADO RESULTANTE


SERÁ SEMPRE O MESMO.

EXISTEM PROBLEMAS ONDE UM FATOR DE CHANCE ESTÁ ENVOLVIDO (P.EX.: JOGO DE


CARTAS)

UMA BOA SOLUÇÃO É RELATIVA OU ABSOLUTA?

PARA DIZERMOS QUE UMA BOA SOLUÇÃO ENCONTRADA É ABSOLUTA, DEVEMOS


ESTAR CERTOS DE QUE SE COMEÇARMOS COM CONDIÇÕES INICIAIS DIFERENTES,
OBTEREMOS A MESMA SOLUÇÃO.

O CONHECIMENTO DISPONÍVEL É CONSISTENTE?

UMA BASE DE CONHECIMENTO É DITA CONSISTENTE SE NÃO EXISTE


INCOMPATIBILIDADE ENTRE AS PEÇAS ELEMENTARES DE CONHECIMENTO DENTRO
DELA.

O ESTADO A É VERDADEIRO.

O ESTADO C É VERDADEIRO.

SE C ENTÃO D. SE D ENTÃO A OU-EXCLUSIVO C.


ESTRATÉGIAS BÁSICAS PARA
RESOLVER PROBLEMAS
DUAS ABORDAGENS

SE A SOLUÇÃO DO PROBLEMA FOR UMA FUNÇÃO, SE FOR


POSSÍVEL IMPLEMENTAR ESTA FUNÇÃO, TEM-SE A SOLUÇÃO DO
PROBLEMA. ESTE FATO LEVA, NA ABORDAGEM SIMBÓLICA À
PROGRAMAÇÃO FUNCIONAL.(ESTÁTICA)

A PESQUISA DA SOLUÇÃO PODE SER VISTA COMO UMA PESQUISA


DENTRO DO ESPAÇO DE POSSÍVEIS SOLUÇÕES (GENERATE AND
TEST). (DINÂMICA)

UTILIZANDO UM MÉTODO PARA APROXIMAR A FUNÇÃO,


SOLUÇÃO DO PROBLEMA.

UTILIZAR UM MÉTODO DE BUSCA EM QUE POR PASSOS


SUCESSIVOS SE APROXIMA DA SOLUÇÃO, USANDO,
ALGUMAS VEZES PASSOS SEM GRANDE JUSTIFICATIVA
TEÓRICA.
ALGUNS PROBLEMAS CLÁSSICOS

MISSIONÁRIOS E CANIBAIS

TORRES DE HANÓI

O PROBLEMA DO CAIXEIRO VIAJANTE

JOGO DE XADREZ

JOGO DO 8
MÉTODOS DE BUSCA

A MODELAGEM MOSTRADA ATÉ AQUI DETERMINA A CONFIGURAÇÃO


DO ESPAÇO DE ESTADOS DO PROBLEMA (REPRESENTAÇÃO DO
CONHECIMENTO), MAS NÃO MOSTRA COMO CHEGAR À SOLUÇÃO.

RESOLUÇÃO DO PROBLEMA COMO UMA BUSCA NO ESPAÇO DE


ESTADOS
A MAIORIA DOS PROBLEMAS INTERESSANTES DE IA NÃO DISPÕE DE
SOLUÇÕES ALGORÍTMICAS.

HISTORICAMENTE, OS PRIMEIROS PROBLEMAS A SEREM ESTUDADOS


FORAM:

PROVA AUTOMÁTICA DE TEOREMAS;

QUEBRA-CABEÇAS; E

JOGOS.

APRESENTAM CARACTERÍSTICAS QUE OS TORNAM BONS CANDIDATOS


PARA A PESQUISA EM IA.
MÉTODOS DE BUSCA

SÃO SOLUCIONÁVEIS POR SERES-HUMANOS E, NESTE


CASO, SUA SOLUÇÃO ESTÁ ASSOCIADA À INTELIGÊNCIA;

FORMAM CLASSES DE COMPLEXIDADE VARIÁVEL


EXISTINDO DESDE INSTÂNCIAS TRIVIAIS (POR EXEMPLO, O
JOGO DA VELHA, NO CASO DOS JOGOS) ATÉ INSTÂNCIAS
EXTREMAMENTE COMPLEXAS (XADREZ).

SÃO PROBLEMAS DE CONHECIMENTO TOTAL, ISTO É, TUDO


QUE É NECESSÁRIO PARA SOLUCIONÁ-LOS É CONHECIDO,
O QUE FACILITA SUA FORMALIZAÇÃO;

SUAS SOLUÇÕES TÊM A FORMA DE UMA SEQÜÊNCIA DE


SITUAÇÕES LEGAIS E AS MANEIRAS DE PASSAR DE UMA
SITUAÇÃO PARA OUTRA SÃO EM NÚMERO FINITO E
CONHECIDAS.

DIANTE DA FALTA DE SOLUÇÃO ALGORÍTMICA VIÁVEL, O


ÚNICO MÉTODO VIÁVEL DE SOLUÇÃO POSSÍVEL É A BUSCA.
MÉTODOS DE BUSCA

DE MANEIRA GERAL, UM PROBLEMA DE BUSCA PODE SER


FORMALIZADO ATRAVÉS DA DEFINIÇÃO DOS SEGUINTES
ELEMENTOS:

UM CONJUNTO DE DESCRIÇÕES CHAMADO ESPAÇO DE ESTADOS,


ONDE CADA ELEMENTO DESCREVE UMA SITUAÇÃO POSSÍVEL DO
PROBLEMA.

UM ESTADO INICIAL QUE DESCREVE A SITUAÇÃO INICIAL DO


PROBLEMA.

UM OU MAIS ESTADOS FINAIS, ISTO É, A(S) SITUAÇÃO(ÇÕES) QUE


SE DESEJA ALCANÇAR.

UM CONJUNTO DE OPERADORES, ISTO É, PROCEDIMENTOS QUE,


DADA A DESCRIÇÃO DE UM ESTADO, DETERMINAM TODOS OS
ESTADOS QUE PODEM SER ALCANÇADOS A PARTIR DO ESTADO
DADO.

ESTES ELEMENTOS CONSTITUEM UM SISTEMA DE PRODUÇÃO.


SISTEMAS DE PRODUÇÃO PODEM SER UTILIZADOS PARA
MODELAR QUALQUER PROCEDIMENTO CALCULÁVEL.
MÉTODOS DE BUSCA

EXEMPLO: JOGO DE XADREZ

PARA CONSTRUIR UM PROGRAMA QUE POSSA JOGAR XADREZ, TEREMOS DE ESPECIFICAR


ANTES:

POSIÇÃO INICIAL;

REGRAS QUE DEFINEM MOVIMENTOS LEGAIS;

POSIÇÕES OU CONDIÇÕES DE VITÓRIA;

DEIXAR IMPLÍCITO QUE A META É GANHAR E NÃO APENAS JOGAR.

A POSIÇÃO DA PARTIDA PODE SER DESCRITA COMO UMA MATRIZ 8X8, EM QUE CADA POSIÇÃO
CONTÉM UM SÍMBOLO REPRESENTANDO A PEÇA CORRESPONDENTE EM CADA POSIÇÃO.

A POSIÇÃO INICIAL É REPRESENTADA PELA MATRIZ COM AS PEÇAS NA POSIÇÃO OFICIAL DE


ABERTURA.

A META É ATINGIR QUALQUER POSIÇÃO DE TABULEIRO EM QUE O OPONENTE NÃO TEM UM


MOVIMENTO LEGAL E O REI ESTÁ SOB ATAQUE.

OS MOVIMENTOS LEGAIS FORNECEM O MEIO DE IR DO ESTADO INICIAL PARA UM ESTADO


META.

ESTES MOVIMENTOS PODEM SER FACILMENTE DESCRITOS COMO UM CONJUNTO DE REGRAS


CONSTITUÍDAS DE DUAS PARTES:

• SE POSIÇÃO ATUAL DO TABULEIRO, ENTÃO POSIÇÃO SEGUINTE DO TABULEIRO.


MÉTODOS DE BUSCA

EXEMPLO: JOGO DE XADREZ

TERÍAMOS DE ESCREVER UMA REGRA DISTINTA PARA CADA UMA DAS


APROXIMADAMENTE 10120 POSIÇÕES POSSÍVEIS DO TABULEIRO.

NENHUMA PESSOA CONSEGUE FORNECER UM CONJUNTO COMPLETO DE


TAIS POSIÇÕES;

NENHUM PROGRAMA PODE MANIPULAR TODAS ESTAS REGRAS.

É ÚTIL RECORRER A ESTRATÉGIAS APROPRIADAS PARA REDUZIR O TAMANHO


DO ESPAÇO DE BUSCA SEMPRE QUE ISTO FOR CONVENIENTE E POSSÍVEL.

PARA OBTER ESTE EFEITO, COSTUMA-SE RECORRER AOS MÉTODOS


HEURÍSTICOS, OS QUAIS, PARA ACELERAR A BUSCA DA SOLUÇÃO, VALEM-SE
DE INFORMAÇÕES DISPONÍVEIS QUE PERMITEM EXPLORAR O ESPAÇO DE BUSCA
COM ECONOMIA E EFICIÊNCIA.

RESOLVER PROBLEMAS DIFÍCEIS EXIGE COM FREQÜÊNCIA O


COMPROMETIMENTO DA SISTEMATICIDADE, PASSANDO AO LARGO DA
EXIGÊNCIA DE ENCONTRAR A MELHOR SOLUÇÃO, EMBORA, EM GERAL, BOAS
SOLUÇÕES SEJAM DETECTADAS.

A INTRODUÇÃO DE IDÉIAS HEURÍSTICAS MELHORA A EFICIÊNCIA DE UM


PROCESSO DE BUSCA AO SACRIFICAR IDÉIAS DE PERFEIÇÃO.
MÉTODOS DE BUSCA

COM ESTES ELEMENTOS É POSSÍVEL CONSTRUIR UMA ÁRVORE


DE BUSCA, CUJO NODO RAIZ ESTÁ ASSOCIADO A UM ESTADO
INICIAL E ONDE OS SUCESSORES DE QUALQUER NODO SÃO
ASSOCIADOS AOS ESTADOS OBTIDOS ATRAVÉS DA APLICAÇÃO
DAS REGRAS (ASSOCIADAS OU NÃO ÀS HEURÍSTICAS) SOBRE
A DESCRIÇÃO DO ESTADO ASSOCIADO AO NODO.

(0,0) (0,0)

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

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

ÁRVORES SÃO MAIS SIMPLES PARA BUSCA QUE OS


GRAFOS. PRIMEIRAMENTE PORQUE QUANDO UM NOVO
NODO É GERADO, PODEMOS ESTAR SEGUROS QUE ELE
NUNCA FOI VISITADO ANTES NEM NUNCA SERÁ GERADO
DEPOIS.
MÉTODOS DE BUSCA

ESTRATÉGIAS DE BUSCA

BUSCA ÀS CEGAS (BLIND SEARCH OU UNIFORMED


SEARCH):

UMA ESTRATÉGIA DE BUSCA É DITA “CEGA” SE ELA NÃO


LEVA EM CONTA INFORMAÇÕES ESPECÍFICAS SOBRE O
PROBLEMA A SER RESOLVIDO.

EXISTEM BASICAMENTE DUAS ESTRATÉGIAS CEGAS PARA


A CONSTRUÇÃO E PESQUISA EM UMA ÁRVORE DE BUSCA:
BUSCA EM LARGURA E BUSCA EM PROFUNDIDADE.
MÉTODOS DE BUSCA

BUSCA EM LARGURA (OU AMPLITUDE)

CONSISTE EM CONSTRUIR UMA ÁRVORE DE ESTADOS


A PARTIR DO ESTADO INICIAL, APLICANDO A CADA
MOMENTO, TODAS AS REGRAS POSSÍVEIS AOS
ESTADOS DO NÍVEL MAIS BAIXO, GERANDO TODOS OS
ESTADOS SUCESSORES DE CADA UM DESTES
ESTADOS. ASSIM, CADA NÍVEL DA ÁRVORE É
COMPLETAMENTE CONSTRUÍDO ANTES QUE
QUALQUER NODO DO PRÓXIMO NÍVEL SEJA
ADICIONADO À ÁRVORE.
MÉTODOS DE BUSCA

LISTADENÓS(0) (0,0

LISTADENÓS(1) (4,0 (0,3

LISTADENÓS(2) (4,3 (0,0 (1,3 (4,3 (0,0 (3,0

(0,3 (4,0 (4,0 (0,3 (4,3 (0,3 (1,0 (4,0 (0,3 (4,0 (0,3 (4,0 (3,3)(0,0) (0,3)
MÉTODOS DE BUSCA

BUSCA EM LARGURA SEM REPETIÇÃO DE ESTADOS


LISTADENÓS(0) (0,0)

LISTADENÓS(1) (4,0) (0,3)

(4,3) (1,3) (3,0) LISTADENÓS(3)

(1,0) (3,3)

(0,1) (4,2)
MÉTODOS DE BUSCA

BUSCA EM PROFUNDIDADE

PROCURAR EXPLORAR COMPLETAMENTE CADA


RAMO DA ÁRVORE ANTES DE TENTAR O RAMO
VIZINHO.
MÉTODOS DE BUSCA
(0,0)

(4,0)

(4,3)

(0,3)

(3,0)

(3,3)

(4,2)

(0,2)
MÉTODOS DE BUSCA

BUSCA EM PROFUNDIDADE

O QUE ACONTECE QUANDO NENHUMA REGRA PODE


SER APLICADA, OU A ÁRVORE ATINGE UMA
PROFUNDIDADE MUITO GRANDE SEM QUE SE TENHA
ENCONTRADO UMA SOLUÇÃO?

• NESTE CASO, OCORRE O PROCESSO QUE SE


CHAMA BACKTRACKING, OU SEJA, O ALGORITMO
VOLTA ATRÁS E TENTA OUTRO CAMINHO.
MÉTODOS DE BUSCA

BACKTR.
4 3

BACKTR.

5
MÉTODOS DE BUSCA

A PRINCIPAL VANTAGEM DO ALGORITMO DE BUSCA EM


LARGURA É QUE ESTE ENCONTRA O MENOR CAMINHO
DO NODO INICIAL ATÉ O NODO FINAL MAIS PRÓXIMO.

O ALGORITMO DE BUSCA EM PROFUNDIDADE NÃO


ENCONTRA NECESSARIAMENTE A SOLUÇÃO MAIS
PRÓXIMA, MAS PODE SER MAIS EFICIENTE SE O
PROBLEMA POSSUI UM GRADE NÚMERO DE SOLUÇÕES
OU SE A MAIORIA DOS CAMINHOS PODE LEVAR A UMA
SOLUÇÃO.
MÉTODOS DE BUSCA

BUSCA POR APROFUNDAMENTO ITERATIVO

TESTE DE TODOS OS POSSÍVEIS LIMITES COM BUSCA


POR PROFUNDIDADE LIMITADA.

EM GERAL É O MELHOR MÉTODO QUANDO O ESPAÇO


DE BUSCA É GRANDE E A PROFUNDIDADE É
DESCONHECIDA.
MÉTODOS DE BUSCA

BUSCA BIDIRECIONAL
A IDÉIA DESTE MÉTODO DE BUSCA É PROCURAR
SIMULTANEAMENTE “PARA A FRENTE” A PARTIR DO ESTADO
INICIAL E “PARA TRÁS” A PARTIR DO ESTADO FINAL, E PARAR
QUANDO AS DUAS BUSCAS SE ENCONTRAREM NO MEIO.

NEM SEMPRE ISTO É POSSÍVEL, PARA ALGUNS PROBLEMAS OS


OPERADORES NÃO SÃO REVERSÍVEIS, ISTO É, NÃO EXISTE A
FUNÇÃO PREDECESSORA E PORTANTO NÃO É POSSÍVEL FAZER A
BUSCA “PARA TRÁS”.

ANÁLISE DE COMPLEXIDADE

COMPARANDO COM A BUSCA EM LARGURA, O TEMPO E O ESPAÇO PARA


A BUSCA É PROPORCIONAL A 2BD/2, ONDE D É O NÍVEL ONDE ESTÁ A
SOLUÇÃO E B É O FATOR DE RAMIFICAÇÃO DA ÁRVORE.

EXEMPLO: PARA B=10 E D=6, NA BUSCA EM LARGURA SERIAM


GERADOS 1.111.111 NÓS, ENQUANTO QUE NA BUSCA BIDIRECIONAL
SERIAM GERADOS 2.222 NÓS.

Das könnte Ihnen auch gefallen