Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br

Documentos relacionados
IA: Problemas de Satisfação de Restrições. Prof. Msc. Ricardo Britto DIE-UFPI

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro Parte 2. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.

Problemas de Satisfação de Restrições

Problemas de Satisfação de Restrições

Inteligência Artificial Prof. Marcos Quinet Pólo Universitário de Rio das Ostras PURO Universidade Federal Fluminense UFF

Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução. Prof. Humberto Brandão humberto@dcc.ufmg.br

Satisfação de Restrições. Capítulo 5 (disponível online)

Análise e Complexidade de Algoritmos

Inteligência Artificial. Prof. Tiago A. E. Ferreira Aula 11 Problemas com Satisfação de Vínculos

Projeto e Análise de Algoritmos Projeto de Algoritmos Heurísticas e Algoritmos Aproximados

5COP096 TeoriadaComputação

Solução de problemas por meio de busca (com Python) Luis Martí DEE/PUC-Rio

2 Problema das p-medianas

Resolução de problemas por meio de busca. Capítulo 3 Russell & Norvig Seções 3.1, 3.2 e 3.3

Universidade Federal de Alfenas

7.Conclusão e Trabalhos Futuros

7 - Análise de redes Pesquisa Operacional CAPÍTULO 7 ANÁLISE DE REDES. 4 c. Figura Exemplo de um grafo linear.

Aula 03 - Modelagem em PPLIM

Entendendo como funciona o NAT

Por que o quadrado de terminados em 5 e ta o fa cil? Ex.: 15²=225, 75²=5625,...

Técnicas para Programação Inteira e Aplicações em Problemas de Roteamento de Veículos 14

ISO/IEC 12207: Gerência de Configuração

IA: Busca Competitiva. Ricardo Britto DIE-UFPI

Orientação a Objetos

CTC-17 Inteligência Artificial Problemas de Busca. Prof. Paulo André Castro

2. Representação Numérica

Exercícios Teóricos Resolvidos

MÓDULO 6 INTRODUÇÃO À PROBABILIDADE

Princípio da Casa dos Pombos II

a 1 x a n x n = b,

Notas de aula número 1: Otimização *

Recursos. Um recurso é ou um dispositivo físico (dedicado) do hardware, ou Solicitar o recurso: esperar pelo recurso, até obtê-lo.

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Análise e Projeto de Algoritmos

Pesquisa Operacional Programação em Redes

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Universidade Federal de Alfenas

Projetos. Universidade Federal do Espírito Santo - UFES. Mestrado em Informática 2004/1. O Projeto. 1. Introdução. 2.

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Sistemas Operacionais

Complexidade de Algoritmos

Feature-Driven Development

Utilização do SOLVER do EXCEL

Autómatos Finitos Determinísticos

Hashing. Estruturas de Dados. Motivação

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO PROGRAMA DE EDUCAÇÃO TUTORIAL - MATEMÁTICA PROJETO FUNDAMENTOS DE MATEMÁTICA ELEMENTAR

UM TEOREMA QUE PODE SER USADO NA

6. Programação Inteira

MÉTODOS DE RESOLUÇÃO DE PROBLEMAS EM IA. Busca em espaço de estados. Estados e Operadores. Jogo dos 8. Sumário. Exemplo: jogo dos 8

Respostas dos Exercícios Cap. 2 Russell & Norvig

x0 = 1 x n = 3x n 1 x k x k 1 Quantas são as sequências com n letras, cada uma igual a a, b ou c, de modo que não há duas letras a seguidas?

Inteligência Artificial. Metodologias de Busca

ECO039 Linguagens Formais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Estruturas Discretas INF 1631

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

Dificuldades de Modelos de PNL. Onde está a solução ótima? Outro exemplo: Condição ótima Local vs. Global Quinta-feira, 25 de abril

O Processo de KDD. Data Mining SUMÁRIO - AULA1. O processo de KDD. Interpretação e Avaliação. Seleção e Pré-processamento. Consolidação de dados

Unidade 5: Sistemas de Representação

Universidade Federal de Mato Grosso do Sul Faculdade de Computação Disciplina de Verão: Algoritmos e Programação II

Análise da sensibilidade

Estudaremos métodos numéricos para resolução de sistemas lineares com n equações e n incógnitas. Estes podem ser:

Otimização de Funções Não Lineares por Meio do Algoritmo Árvore da Montanha

Arquitetura de Rede de Computadores

CT-234. Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

c. Técnica de Estrutura de Controle Teste do Caminho Básico

FATEC Cruzeiro José da Silva. Ferramenta CRM como estratégia de negócios

COMPUTAÇÃO GRÁFICA. Rasterização e Preenchimento de Regiões. MARCO ANTONIO GARCIA DE CARVALHO Fevereiro de Computação Gráfica

Você pode dizer isso de novo! Compressão de Texto

Árvores Balanceadas. Árvore binária completamente balanceada. Ocorre quando a árvore está cheia ou quase cheia com o nível n-1 completo

RESPOSTA AO QUESTIONAMENTO FORMULADO POR EMPRESA INTERESSADA NO CERTAME.

Eduardo C. Xavier. 24 de fevereiro de 2011

A interpretação gráfica e o ensino de funções

Trabalho de Casa Introdução à Otimização Para ser entregue no início da aula de quinta-feira, 14 de fevereiro de 2002

Sistemas Distribuídos: Princípios e Algoritmos Introdução à Análise de Complexidade de Algoritmos

Manual Operacional SIGA

Roteiro para preparação de proposta de Trabalhos Técnico-Científicos

Figura 1.1: Exemplo de links patrocinados no Google

Construção do Boxplot utilizando o Excel 2007

FUNÇÃO REAL DE UMA VARIÁVEL REAL

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

O PROJETO DE PESQUISA. Prof. Angelo Augusto Frozza, M.Sc.

AV1 - MA (b) Se o comprador preferir efetuar o pagamento à vista, qual deverá ser o valor desse pagamento único? 1 1, , , 980

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

1) Entendendo a eletricidade

Uso de SAS/OR para diminuir o tempo de resposta com um melhor posicionamento de ambulâncias.

DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES. Trabalho de Graduação

Estabilidade. Carlos Alexandre Mello. Carlos Alexandre Mello 1

FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto e Análise de Algoritmos II Lista de Exercícios 2

Gerenciamento de Problemas

Disciplina: Unidade III: Prof.: Período:

Lema do Bombeamento Linguagens Livres de Contexto

Matemática - UEL Compilada em 18 de Março de Prof. Ulysses Sodré Matemática Essencial:

Conceitos de Banco de Dados

ENGENHARIA DA COMPUTAÇÃO BANCO DE DADOS I CONTEÚDO 5 ABORDAGEM RELACIONAL

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

Transcrição:

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br Laboratório de Pesquisa e Desenvolvimento Universidade Federal de Alfenas versão da aula: 0.3

PAA Na última aula... Visão geral de projetos e algoritmos...

Algoritmos de Tentativa e Erro A recursividade pode ser utilizada para resolver problemas cuja solução é tentar todas as alternativas possíveis; A idéia para os algoritmos de tentativa e erro é decompor o processo em um número finito de subtarefas parciais que devem ser exploradas exaustivamente. O processo geral pode ser visto como um processo de pesquisa ou de tentativa que gradualmente constrói e percorre uma árvore de subtarefas;

Algoritmos de Tentativa e Erro Os algoritmos de tentativa e erro não seguem uma regra fixa para computação; Funcionam da seguinte maneira: São efetuados passos em direção à solução final; Caso esses passos tomados não levem à solução final, eles podem ser retirados e apagados do registro. (falha)

Algoritmos de Tentativa e Erro A natureza do problema é que define se uma ramificação da árvore não nos leva a nenhuma solução: Em alguns problemas, o limite primal pode ser utilizado para efetuar tais podas; Caixeiro Viajante; Em outros, a violação de restrições pode inutilizar toda uma ramificação; Coloração de mapas Em outros, a violação de restrições em ramos interiores da árvore não necessariamente condena todos os nós filhos da subárvores. Pickup and Delivery Problem.

Algoritmos de Tentativa e Erro Muitas vezes, a pesquisa na árvore de soluções cresce rapidamente, mas em uma grandeza polinomial; Em outras, este crescimento é exponencial; Nestes casos, é recomendado que a pesquisa utilize algoritmos aproximados ou heurísticas para resolver problemas de médio e grande porte; Formulações incorretas podem levar ao crescimento exponencial da árvore; Problema é simples, mas o algoritmo é complexo! Ou pode estar relacionada de fato com a natureza do problema.

Exemplo de Tentativa e Erro Problemas de Satisfação de Restrições (PSR)

Algoritmos de Tentativa e Erro Pesquisadores em IA desenvolveram uma framework para resolução de problemas quaisquer que tenham restrições; A classe se chama: Problemas de Satisfação de Restrições (PSR) Um PSR é definido por: um conjunto de variáveis de decisão {x 1, x 2, x 3,..., x n } um conjunto de restrições {c 1, c 2, c 3,..., c m } um domínio de valores possíveis D i, para cada variável, com i =1,..., n; Este conjunto é não vazio; Ou seja, cada variável pode assumir pelo menos um valor;

Algoritmos de Tentativa e Erro Um estado do problema é definido por uma atribuição de valores a no mínimo uma variável de decisão; Exemplos de estados: x1 = 3, x2 =?, x3 = 6, x4 = 10; x1 =?, x2 =?, x3 =?, x4 = 15; x1 = 3, x2 = 58, x3 = 6, x4 = 10; Uma atribuição que não viola nenhuma restrição é chamada atribuição consistente; Uma solução ao PSR é quando todas as variáveis possuem valores dentro de seus domínios e nenhuma restrição é violada.

Algoritmos de Tentativa e Erro Alguns PSR exigem que a solução maximize ou minimize uma função objetivo; Estes são nomeados de problemas de otimização; Em outros, é necessário apenas que encontremos uma atribuição completa que não viole restrições; Geralmente problemas mais restritos; Tais problemas também podem ser modelados como problemas de otimização; A técnica mais utilizada é a de penalização da f.o. quando restrições são violadas.

Exemplo Coloração de Mapas

Problema de Colorir um Mapa Variáveis: WA, NT, Q, NSW, V, SA, T Domínio: D i = { vermelho, verde, azul } I = 1,, 7 Restrições: Regiões vizinhas devem ter cores diferentes

Grafo de Restrições de um PSR Variável Restrição Obs.: Tasmânia é um subproblema independente; Como identificar que existem problemas independentes?

Grafo de Restrições de um PSR Variável Restrição Obs.: Tasmânia é um subproblema independente; Como identificar que existem problemas independentes? Componentes fortemente conectados... Vocês lembram o algoritmo???

Problema de Colorir um Mapa Soluções: São atribuições que satisfazem todas as restrições Ex.: { WA=vermelho, NT=verde, Q=vermelho, NSW=verde, Victoria=vermelho, SA=azul, T=verde }

Exemplo de Árvore de Busca do problema de coloração de mapas

Variedade de PSRs Variáveis Discretas Domínios Finitos: Ex.: PSRs Booleanos inclusive Satisfabilidade Booleana (SAT)» Problema NP-Completo Domínios Infinitos: Ex.: Que envolvem Inteiros, strings, etc.

Variedade de PSRs Variáveis Contínuas Ex.: Que envolvem reais; Exemplo de problema: Resolve restrições lineares em tempo polinomial por métodos de Programação Linear (simplex, pontos interiores)

Tipos de Restrições Unária Ex.: MG verde Binária Ex.: MG SP Ordem Maior (Três ou mais variáveis) Preferenciais (Problemas de Otimização) Ex.: Vermelho é melhor do que verde, isto é, há uma função de custo nas atribuições (função objetivo).

Exemplos de PSRs do Mundo Real Problemas de Alocação Ex.: Qual será a sala de PAA no semestre que vem? Problemas de Oferta de Disciplinas Ex.: Que matéria será oferecida? Configurações de Hardware Layout; Agendamento para entregas Um motoboy vai fazer entregas pela cidade: Qual é a ordem para a entrega que minimiza a distância total percorrida?

Relacionado ao Framework do PSR Estado Inicial: Atribuição vazia (raiz da árvore de busca): { }; Função Sucessor: Atribui um valor a uma variável não atribuída, desde que ela não entre em conflito com atribuições já realizadas; Teste de Meta: Atingiu a atribuição completa; Depende da natureza do problema;

Pilha de Execução Toda solução deve ser uma atribuição completa; Portanto, a busca está na profundidade n se existem n variáveis; Não teremos problemas com o crescimento da pilha de execução, se for utilizado uma adaptação da busca em profundidade para resolver os PSRs. A não ser que tenhamos uma quantidade exponencial de variáveis de decisão; Mas neste caso, nosso problema se torna intratável por computadores atuais;

Pilha de Execução Um ponto importante é: O caminho pela qual a solução é alcançada é irrelevante; Vocês poderão perceber isso na implementação do caixeiro viajante: Através da poda inteligente que exige a ocorrência do consumidor x antes do y, por exemplo.

Busca com Retrocesso para PSRs

Busca com Retrocesso par PSRs Algo terrível pode acontecer ao gerar a árvore de busca de PSRs: Suponhamos n variáveis de decisão; E d valores que podem ser atribuídos a cada variável (domínio); O fator de ramificação na raiz é n.d, pois qualquer valor de d pode ser atribuído a qualquer variável uma das n variáveis. No próximo nível, o fator de ramificação é (n-1).d; Assim, geramos uma árvore com n!.d n folhas, embora existam apenas d n atribuições completas possíveis;

Busca com Retrocesso para PSRs A formulação de problema está correta; Mas é ingênua; Por quê?

Busca com Retrocesso para PSRs Por quê? Ignora a propriedade comum a todos os PSRs; A comutatividade; Um problema é comutativo se a ordem de aplicação nas atribuições não possui nenhum efeito sobre o resultado; Com esta consideração, nosso número de atribuições passa a ser d n ; Apesar de representar um número astronômico para alguns problemas, a complexidade foi reduzida bruscamente;

Busca com Retrocesso para PSRs A expressão Busca com Retrocesso é utilizada para indicar uma busca em profundidade que: escolhe valores para uma variável de cada vez e que; efetua um retrocesso quando uma variável não tem valores válidos restantes para serem atribuídos; Quando resolvemos o Caixeiro Viajante com Tentativa e erro, temos informações específicas do domínio;

Busca com Retrocesso para PSRs A proposta do PSRs é em sentido oposto: Resolver qualquer PSRs sem utilizar NENHUMA informação útil do domínio; Está relacionado com aquela história de ferramentas específicas ou gerais;

Busca com Retrocesso para PSRs Métodos de propósito geral podem obter ganhos em velocidade através dos seguintes questionamentos: Que variável deve ser atribuída em seguida, e em que ordem seus valores devem ser experimentados? Quais são as implicações das atribuições atuais para as outras variáveis ainda não atribuídas? Quando um caminho falha a busca pode evitar a repetição da falha em caminhos subseqüentes?

Que variável será atribuída a seguir? A variável mais restringida (unária) Escolha a variável com o menor número de valores legais (Minimum Remaining Values) Vermelho Verde ou Vermelho Verde ou Vermelho

Em que ordem seus valores serão tentados? O valor com menos restrições Escolha o valor que provoque o menor número de restrições possíveis nas variáveis restantes SA = azul SA = { }

Tentativa e Erro Continuação na próxima aula...

Bibliografia RUSSEL, S.; NORVIG, P. (2004). Inteligência Artificial. Tradução da Segunda Edição. Editora Campus. ZIVIANI, N. (2007). Projeto e Algoritmos com implementações em Java e C++. São Paulo. Editora Thomson; Aula sobre PSR do aluno de doutorado Paulemir Campos do CIn-UFPE. http://www.cin.ufpe.br/~in1006/2005/