de palavras cruzadas

Tamanho: px
Começar a partir da página:

Download "de palavras cruzadas"

Transcrição

1 Heurísticas para geração automática de palavras cruzadas Denis P. Pinheiro 1, Isaac D. Gamarano 1 e Rodrigo G. Ribeiro 1 1 Departamento de Ciência da Computação Universidade Federal de Minas Gerais {denis,rribeiro,isaac}@dcc.ufmg.br Resumo. Este trabalho aborda uma variante do problema de palavras cruzadas chamada Crozzle. São apresentadas heurísticas para resolução deste problema e a respectiva análise dos resultados obtidos. Por fim, conclui-se que a metodologia proposta é capaz de encontrar soluções satisfatórias, porém, sem superar o resultado das soluções humanas, até então, imbatíveis. 1. Introdução O Crozzle é uma competição publicada mensalmente na revista Australian Womens Weekly. A competição é aberta para pessoas residentes na Austrália e Nova Zelândia. Este problema consiste de um quebra-cabeça de palavras cruzadas de enorme complexidade [Forster et al. 1992]. Segundo [Binkley and Kuhn 1997], o Crozzle é um problema NP-Completo que possui uma redução a partir do problema 3-Set Cover. Devido aos desafios apresentados por sua complexidade, várias tentativas automatizadas de resolver o quebra-cabeça foram propostas [Forster et al. 1992] [Harris et al. 1993]. Nenhuma dessas tentativas, porém, foram capazes de alcançar os resultados gerados pelos vencedores humanos das competições da revista. O jogo consiste em se gerar a maior pontuação de palavras cruzadas que preencham um grid de 15 colunas e 10 linhas, inicialmente vazio. Para preencher este grid é utilizado um dicionário de aproximadamente 120 palavras. O objetivo do quebra-cabeça é encontrar a maior pontuação que possa ser construída respeitando-se determinadas regras. A pontuação é baseada no número de palavras usadas e nas letras que fazem intersecção no grid. Nas competições, um prêmio em dinheiro é dado aos competidores que obtiverem a maior pontuação submetida. Um aspecto do Crozzle que o faz interessante para análise, mesmo considerando o fato de o problema ser pouco conhecido fora da Austrália, é que este quebra-cabeça varia de acordo com o dicionário utilizado. Isto implica que embora tanto os jogadores humanos quanto os computadores possam usar as mesmas estratégias, estas podem não garantir um boa solução, uma vez que, o quebra-cabeça é estritamente dependente do dicionário. Por se tratar de um problema NP-Completo, a utilização de heurísticas para sua resolução torna-se uma opção promissora. A principal desvantagem da utilização de heurísticas é a impossibilidade de garantir a otimalidade da solução final gerada [Ziviani 2005]. Entretanto, com o uso de metaheurísticas [Souza 2005], capazes de escapar de ótimos locais, consegue-se melhorar a qualidade da solução final.

2 Neste trabalho, é apresentada uma metodologia para resolver instâncias reais do problema apresentadas em [Forster et al. 1992]. Primeiramente são geradas soluções iniciais a partir de métodos aleatórios e de métodos parcialmente gulosos. Essas soluções são posteriormente refinadas através do método VNS (Variable Neighborhood Search) [Mladenović and Hansen 1997]. Este trabalho está organizado como segue. Na seção 2 descreve-se o problema abordado. A seção 3 apresenta a função de avaliação, a geração de uma solução inicial, as estruturas de vizinhança e a adaptação do método VNS ao problema. A seção 4 apresenta alguns trabalhos relacionados, a seção 5 apresenta os resultados encontrados e a seção 6 conclui o trabalho e aponta trabalhos futuros. 2. Descrição do Problema O Crozzle é um quebra-cabeça de palavras-cruzadas jogado em um grid 10 15, utilizando um dicionário contendo m palavras e respeitando as seguintes regras: 1. Não é necessário utilizar todas as palavras do dicionário; 2. As palavras inseridas não devem ultrapassar os limites do grid; 3. Intersecções entre palavras devem possuir uma letra em comum; 4. Palavras não podem ser adjacentes (a menos que formem novas palavras contidas no dicionário); 5. Palavras inseridas devem conter intersecções; 6. As palavras do dicionário podem ser utilizadas uma única vez em uma mesmo grid. O objetivo do quebra-cabeça é criar uma solução válida com a maior pontuação possível. A pontuação do Crozzle é feita somando-se os valores das intersecções de acordo com a Table 1. Table 1. Pontuação por intersecção. No exemplo da Figure 1, temos um grid com 23 palavras pertencentes ao dicionário mostrado. Cada posição do grid contém uma letra ou um espaço vazio. Se a posição do grid contiver uma letra, essa pode pertencer a uma ou duas palavras (no caso de existir uma intersecção). Esse exemplo da Figure 1 é do ganhador da competição de janeiro de 1990.

3 Figure 1. Exemplo de Crozzle válido 10 x Abordagens para Solução 3.1. Função de Avaliação Para avaliar a qualidade de uma solução s, as heurísticas propostas utilizam a função f apresentada pela fórmula abaixo: f(s) = j I pontos(letra) + palavras inseridas onde, f(s) é a função de avaliação da solução s, I o conjunto de intersecções do grid, pontos(letra) a pontuação de uma intersecção letra I (conforme definido na Table 1) e palavras inseridas o número de palavras inseridas no grid Geração da Solução Inicial Construção Aleatória Para a construção da solução inicial de forma aleatória sorteia-se uma palavra do dicionário, sua orientação (i.e. horizontal ou vertical) e em seguida sua posição no grid. Esse processo é repetido IterMax vezes. A escolha da posição no grid é realizada no máximo ChoiceMax vezes, que representa o limite de tentativas de inserção de uma palavra. IterMax e ChoiceMax são dois parâmetros de entrada. Análise de Complexidade: considerando o pior caso, a complexidade do algoritmo é O(IterM ax ChoiceM ax). Para cada uma das IterMax iterações, é necessário escolher a posição onde a palavra será inserida, em O(ChoiceMax). Construção Parcialmente Gulosa O algoritmo de construção é controlado por um parâmetro α que regula o nível de aleatoriedade e de gulosidade 1 do procedimento. Um valor α = 0 faz gerar soluções gulosas, enquanto α = 1 faz produzir soluções totalmente aleatórias. Esta estratégia é semelhante a construção aleatória, exceto que as palavras inseridas são fornecidas por uma lista ordenada pelos caracteres que possuem maior pontuação. A escolha da palavra é feita através de um sorteio limitado pelo parâmetro α. Da mesma forma, a escolha da posição no grid utiliza uma lista ordenada pela pontuação das possíveis intersecções e é realizada no máximo ChoiceMax vezes. Todo o processo é realizado em um número IterMax de iterações. 1 do inglês greediness

4 Análise de Complexidade: considerando o pior caso, a complexidade do algoritmo é O(max(m log m, IterMax β log β, IterMax ChoiceMax)). Inicialmente é feita a ordenação do dicionário em O(m log m). Em seguida, a cada iteração é feita a ordenação das possíveis intersecções com a palavra selecionada, em O(β log β), onde β representa o número máximo de intersecções. O próximo passo é a escolha da posição onde a palavra será inserida, em O(ChoiceMax) Estruturas de Vizinhança Existem duas variações das estruturas de vizinhança 2 consideradas neste trabalho, primeiro de melhora e melhor vizinho. Na estrutura primeiro de melhora, o primeiro vizinho encontrado melhor do que a solução corrente a substitui. Já na estrutura de melhor vizinho, todas os vizinhos são gerados e, ao final, se houver melhora na solução, a solução corrente será atualizada com o valor do melhor vizinho encontrado. Inserção na Horizontal e na Vertical Essas estruturas de vizinhança percorrem a lista de palavras do dicionário e tentam, para cada palavra, inserir no grid percorrendo todas as posições possíveis verificando se a palavra escolhida pode ser inserida na horizontal ou na vertical. Análise de Complexidade: considerando o pior caso, o algoritmo testa todas as palavras do dicionário em todas as possíveis posições do grid. Isto é realizado a um custo de O(m r c), onde r representa o número de linhas e c o número de colunas do grid. Mover na Horizontal e na Vertical Essas estruturas de vizinhança percorrem a lista de palavras inseridas no grid e, para cada palavra, removem e tentam inserir a mesma palavra no grid percorrendo todas as posições possíveis, verificando se a palavra escolhida pode ser inserida na horizontal ou na vertical. Se não for encontrada nenhuma posição, a palavra removida é recolocada na posição original. Análise de Complexidade: considerando o pior caso, o algoritmo testa todas as γ palavras inseridas em todas as posições do grid. Portanto, a complexidade é O(γ r c). Remoção de uma ou duas palavras seguida da inserção de uma nova palavra Essas estruturas de vizinhança percorrem a lista de palavras inseridas no grid e, para cada palavra, removem uma ou duas palavras e tentam inserir uma nova palavra no grid, percorrendo todas as posições possíveis, verificando se esta pode ser inserida na horizontal ou vertical. Se não for encontrado nenhum vizinho de melhora, a situação anterior é restaurada. Análise de Complexidade: considerando o pior caso, o algoritmo tenta remover uma ou duas palavras do grid e para cada remoção, tenta-se inserir cada uma das palavras presentes no dicionário a uma complexidade de O(γ m r c) Pesquisa em Vizinhança Variável aplicada ao Crozzle Para refinar uma solução gerada pelos métodos descritos anteriormente, foi proposto um método híbrido, VNS-VND, composto pelos métodos de Pesquisa em 2 Seja S o conjunto de possíveis soluções para um problema de otimização e s um elemento qualquer de S. Definese como Vizinhança o conjunto V S que pode ser obtido a partir de s. Cada s V é chamado de vizinho de s[souza 2005].

5 Vizinhança Variável [Mladenović and Hansen 1997] e Descida em Vizinhança Variável [Souza 2005], sendo este último usado como um mecanismo de busca local para o VNS. O pseudocódigo do procedimento VNS adaptado ao Crozzle é apresentado a seguir. VNS(iter max ) 1 Seja s 0 uma solução inicial ; 2 Seja r o número de estruturas diferentes de vizinhança ; 3 s s 0 ; iter 0; 4 while iter < iter max 5 do k 1; 6 while k r 7 do Gere um vizinho s N (k) (s); s V ND(s ); 8 if f(s ) < f(s) 9 then s s ; k 1; iter 0; 10 else k k + 1; iter iter + 1; Esse algoritmo parte de uma solução inicial qualquer, s 0, gerada utilizando os métodos da seção 3.2. Em seguida, a cada iteração seleciona-se um vizinho s dentro da vizinhança N (k) (s) da solução s corrente. Esse vizinho é gerado removendo-se aleatoriamente k palavras do grid e então submetido a um procedimento de busca local, que utiliza as estruturas de vizinhança definidas na seção 3.3. Se a solução ótima local, s, for melhor que a solução s corrente, s se torna a melhor solução corrente. Caso contrário, continua-se a busca a partir da próxima estrutura de vizinhança. O método pára quando um número máximo de iterações, itermax, for atingido. 4. Trabalhos Relacionados Em [Harris 1990] é apresentado um algoritmo para resolução de problemas de palavras cruzadas sem restrições, ou seja, onde somente o tamanho do grid e do dicionário são conhecidos. O algoritmo proposto é baseado em backtracking e na utilização de uma estruturas de dados chamada Dynamic Slot Table. Esta estrutura consiste de uma lista das coordenadas iniciais de cada palavra, sua orientação e localização das letras no grid. Neste trabalho, o autor utilizou dicionários artificiais por não haver um conjunto de testes apropriado para este problema. Uma nova abordagem para solução do Crozzle é proposta em [Harris et al. 1993]. Este trabalho sugere a combinação geométrica de palavras em blocos, chamados Basic Blocks. Esta combinação de palavras corresponde ao formato de uma palavra cruzada na qual nenhuma palavra pode ser retirada sem invalidá-lo. [Harris and Forster 1990] apresenta uma dedução matemática para a estimativa para o número de soluções possíveis em problemas de palavras cruzadas. Finalmente, em [Spring 1993] é apresentado um conjunto de testes para validar algoritmos que visam resolver o problema Crozzle. Estes testes consistem de dois dicionários artificiais formados por palavras contendo apenas os caracteres a e m. Os outros dois testes disponíveis utilizam os dicionários do problema publicado em janeiro de 1992 na revista australiana.

6 5. Resultados Obtidos Apresentam-se, nessa seção, os resultados obtidos aplicando-se o método VND-VNS para resolver o problema Crozzle. O programa foi desenvolvido na linguagem C/C++ utilizando o ambiente Borland C++ Builder, versão 5.0. Foi utilizado um computador ATL- HON XP com 256 MB de memória RAM, rodando no sistema operacional Windows XP. Para validar os métodos, foram utilizadas as instâncias encontradas na literatura [Forster et al. 1992]. Para cada instância foram realizadas 20 execuções, cada qual partindo de uma semente diferente de números aleatórios. Os parâmetros adotados no método VNS-VND foram: r = 5 e iter max = 10. Na Table 2, Melhor Valor é o melhor valor encontrado na literatura e Melhor e Média são, respectivamente, o melhor valor encontrado pelo método considerado e a média em 20 execuções. TM é o tempo médio, em segundos, de processamento. Table 2. Resultados computacionais do VNS-VND. Com base nos resultados obtidos na Table 3, observa-se claramente que a heurística VNS-VND não foi capaz de superar as soluções humanas das instâncias do Crozzle, porém as melhores soluções apresentaram, em média, uma melhora de 138% em relação à média das melhores soluções iniciais (Table 3). Através desse método foi possível obter soluções de qualidade superior, sendo que a melhor solução obtida para a instância out/89, apresentou uma piora de 17% em relação a melhor solução humana encontrada. Table 3. Resultados computacionais para 20 execuções. 6. Conclusão e Trabalhos Futuros Este trabalho apresentou uma abordagem heurística para a resolução do problema de palavras cruzadas, Crozzle. Com base nos resultados obtidos, observa-se que o VNS- VND obteve uma melhora média de 138% na qualidade das soluções iniciais. Porém, a melhor solução encontrada pelo método não superou a melhor solução da literatura, apresentando uma piora de 17%. Como trabalho futuro pretende-se realizar um estudo empírico para determinar os melhores valores dos parâmetros dos algoritmos utilizados e a ordem das estruturas de

7 vizinhança. Além disso, pretende-se implementar este problema utilizando outras metaheurísticas para efeito comparativo. References Binkley, D. W. and Kuhn, B. M. (1997). Crozzle: an np-complete problem. In SAC 97: Proceedings of the 1997 ACM symposium on Applied computing, pages 30 34, New York, NY, USA. ACM Press. Forster, J. J. H., Harris, G. H., and Smith, P. D. (1992). The crozzle - a problem for automation. In SAC 92: Proceedings of the 1992 ACM/SIGAPP Symposium on Applied computing, pages , New York, NY, USA. ACM Press. Harris, G. (1990). Generation of solution sets for unconstrained crossword puzzles. In Proceedings of the 1990 Syngn ium on Applied Computing, pages CA:IEEE Press. Harris, G. and Forster, J. (1990). On the bayesian estimation and computation of the number of solutions to crossword puzzles. In Proceedings of the 1990 Symposium on Applied Computing, pages CA:IEEE Press. Harris, G., Forster, J., and Rankin, R. (1993). Basic blocks in unconstrained crossword puzzles. In SAC 93: Proceedings of the 1993 ACM/SIGAPP symposium on Applied computing, pages , New York, NY, USA. ACM Press. Mladenović, N. and Hansen, P. (1997). Variable neighborhood search. Comps. in Opns. Res., 24: Souza, M. J. F. (2005). Inteligência Computacional para Otimização. Departamento de Computação, Universidade Federal de Ouro Preto. Disponível em: InteligenciaComputacional.ps. Último acesso em: Abril de Spring, J. (1993). Benchmarking automated solution generators for the crozzle. In SAC 93: Proceedings of the 1993 ACM/SIGAPP symposium on Applied computing, pages , New York, NY, USA. ACM Press. Ziviani, N. (2005). Projeto de Algoritmos com Implementações em Pascal e C. Pioneira Thomson Learning.

5 VNS com Filtro e Reconexão por Caminhos

5 VNS com Filtro e Reconexão por Caminhos 5 VNS com Filtro e Reconexão por Caminhos A metaheurística VNS (Variable Neighborhood Search) foi proposta por Mladenović e Hansen [40] e possui como idéia básica a mudança de vizinhanças realizada da

Leia mais

Iterated Local Search. Helena R. Lorenço, Olivier Martinz and THOMAS STUTZLE

Iterated Local Search. Helena R. Lorenço, Olivier Martinz and THOMAS STUTZLE I Iterated Local Search Helena R. Lorenço, Olivier Martinz and THOMAS STUTZLE Idéias Metaheurística deve ser simples, eficiente e mais genérica possível. Problema específico deve ser incorporado à metaheurística.

Leia mais

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves CAP 254 CAP 254 Otimização Combinatória Professor: Dr. L.A.N. Lorena Assunto: Metaheurísticas Antonio Augusto Chaves Conteúdo C01 Simulated Annealing (20/11/07). C02 Busca Tabu (22/11/07). C03 Colônia

Leia mais

Nuno Miguel Duarte Sequeira André VARIABLE NEIGHBOURHOOD SEARCH

Nuno Miguel Duarte Sequeira André VARIABLE NEIGHBOURHOOD SEARCH Nuno Miguel Duarte Sequeira André VARIABLE NEIGHBOURHOOD SEARCH Optimization and decision support techniques PDEEC 2007 Introdução A meta-heurística VNS (Variable Neighbourhood Search) é bastante recente

Leia mais

Busca com informação e exploração. Inteligência Artificial

Busca com informação e exploração. Inteligência Artificial Busca com informação e exploração (Capítulo 4 - Russell) Inteligência Artificial Professor: Rosalvo Ferreira de Oliveira Neto Estrutura Busca pela melhor escolha Busca gulosa pela melhor escolha Busca

Leia mais

Introdução aos Problemas de Roteirização e Programação de Veículos

Introdução aos Problemas de Roteirização e Programação de Veículos Introdução aos Problemas de Roteirização e Programação de Veículos PNV-2450 André Bergsten Mendes HEURÍSTICA DE INSERÇÃO DE SOLOMON (VRPTW) Exercício Para o problema de roteirização com janela de tempo

Leia mais

Otimização Combinatória - Parte 4

Otimização Combinatória - Parte 4 Graduação em Matemática Industrial Otimização Combinatória - Parte 4 Prof. Thiago Alves de Queiroz Departamento de Matemática - CAC/UFG 2/2014 Thiago Queiroz (DM) Parte 4 2/2014 1 / 33 Complexidade Computacional

Leia mais

Técnicas Inteligência Artificial

Técnicas Inteligência Artificial Universidade do Sul de Santa Catarina Ciência da Computação Técnicas Inteligência Artificial Aula 03 Métodos de Busca Parte 1 Prof. Max Pereira Solução de Problemas como Busca Um problema pode ser considerado

Leia mais

Pesquisa Operacional Aplicada à Mineração

Pesquisa Operacional Aplicada à Mineração Pesquisa Operacional Aplicada à Mineração Módulo de Otimização Parte II-b Prof. Marcone J. F. Souza Prof. Túlio A. M. Toffolo marcone.freitas@yahoo.com.br tulio@toffolo.com.br Departamento de Computação

Leia mais

Uma Introdução à Busca Tabu André Gomes

Uma Introdução à Busca Tabu André Gomes Uma Introdução à Busca Tabu André Gomes Departamento de Ciência da Computação, Instituto de Matemática e Estatística, Universidade de São Paulo, SP, Brasil Novembro de 2009 INTRODUÇÃO Método de Busca Local

Leia mais

5COP096 TeoriadaComputação

5COP096 TeoriadaComputação Sylvio 1 Barbon Jr barbon@uel.br 5COP096 TeoriadaComputação Aula 13 Prof. Dr. Sylvio Barbon Junior Sumário - Problemas NP-Completo Algoritmos Não-deterministas; Classes NP-Completo e NP-Dificil; Teorema

Leia mais

METAHEURÍSTICA Encontrar soluções boas ou até mesmo ótima

METAHEURÍSTICA Encontrar soluções boas ou até mesmo ótima METAHEURÍSTICAS METAHEURÍSTICA Encontrar soluções boas ou até mesmo ótima Consiste em aplicar iterativamente uma heurística subordinada (busca local) Tem algum mecanismo para escapar de ótimos locais (vales)

Leia mais

UM ALGORITMO HEURÍSTICO PARA O PROBLEMA DE GERENCIAMENTO DE ESCALA OPERACIONAL DE CONTROLADORES DE TRÁFEGO AÉREO

UM ALGORITMO HEURÍSTICO PARA O PROBLEMA DE GERENCIAMENTO DE ESCALA OPERACIONAL DE CONTROLADORES DE TRÁFEGO AÉREO UM ALGORITMO HEURÍSTICO PARA O PROBLEMA DE GERENCIAMENTO DE ESCALA OPERACIONAL DE CONTROLADORES DE TRÁFEGO AÉREO Bruno Mota Avelar Almeida, Túlio Ângelo Machado Toffolo, Marcone Jamilson Freitas Souza

Leia mais

Trabalho Prático 1. Valor: 1,0 pontos (10% da nota total) Data de Entrega: 02/05/2010

Trabalho Prático 1. Valor: 1,0 pontos (10% da nota total) Data de Entrega: 02/05/2010 Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Biológicas Programa de Pós-Graduação em Ciência da Computação Projeto e Análise de Algoritmos - 1 o semestre de 2010 Professor: David Menotti

Leia mais

NOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016

NOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016 NOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016 Metaheurística: São técnicas de soluções que gerenciam uma interação entre técnicas de busca local e as estratégias de nível superior para criar um processo de

Leia mais

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves CAP 254 CAP 254 Otimização Combinatória Professor: Dr. L.A.N. Lorena Assunto: Metaheurísticas Antonio Augusto Chaves Conteúdo C Simulated Annealing (2//7). C2 Busca Tabu (22//7). C3 Colônia de Formigas

Leia mais

Teoria da Computação. Complexidade computacional classes de problemas

Teoria da Computação. Complexidade computacional classes de problemas Teoria da Computação Complexidade computacional classes de problemas 1 Universo de problemas Problemas indecidíveis ou não-computáveis Não admitem algoritmos Problemas intratáveis Não admitem algoritmos

Leia mais

Paradigmas de Projetos de Algoritmos

Paradigmas de Projetos de Algoritmos Paradigmas de Projetos de Algoritmos Luciana Assis 9 de junho de 2016 Luciana Assis (UFVJM) 9 de junho de 2016 1 / 36 1 Introdução 2 Força Bruta 3 Abordagem Incremental ou Construtiva 4 Recursão 5 Divisão

Leia mais

4 Algoritmos Primais 4.1

4 Algoritmos Primais 4.1 4 Algoritmos Primais 4.1 Representação da Solução Primal Uma solução primal para o PMNC deve informar o valor da função objetivo, as facilidades abertas e a facilidade aberta que atende cada cliente. Para

Leia mais

Buscas Informadas ou Heurísticas - Parte II

Buscas Informadas ou Heurísticas - Parte II Buscas Informadas ou Heurísticas - Parte II Prof. Cedric Luiz de Carvalho Instituto de Informática - UFG Graduação em Ciência da Computação / 2006 FUNÇÕES HEURÍSTICAS - 1/7 FUNÇÕES HEURÍSTICAS - 2/7 Solução

Leia mais

3. Resolução de problemas por meio de busca

3. Resolução de problemas por meio de busca Inteligência Artificial - IBM1024 3. Resolução de problemas por meio de busca Prof. Renato Tinós Local: Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3. Resolução de problemas por

Leia mais

PCC104 - Projeto e Análise de Algoritmos

PCC104 - Projeto e Análise de Algoritmos PCC104 - Projeto e Análise de Algoritmos Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 1 de novembro de 2018 Marco Antonio

Leia mais

Projeto e Análise de Algoritmos

Projeto e Análise de Algoritmos Projeto e Algoritmos Pontifícia Universidade Católica de Minas Gerais harison@pucpcaldas.br 26 de Maio de 2017 Sumário A complexidade no desempenho de Quando utilizamos uma máquina boa, ela tende a ter

Leia mais

Classes, Herança e Interfaces

Classes, Herança e Interfaces Escola de Artes, Ciências e Humanidades EACH-USP ACH2002 Introdução à Ciência da Computação II Professor: Delano Medeiros Beder revisada pelo professor: Luciano Digiampietri EACH Segundo Semestre de 2011

Leia mais

Um Estudo Empírico de Hiper-Heurísticas

Um Estudo Empírico de Hiper-Heurísticas Flávio Soares Corrêa da Silva (Orientador) Instituto de Matemática e Estatística Universidade de São Paulo Julho de 2007 Definição de Hiper-Heurística Para Que Servem Dois Exemplos Definição Uma hiper-heurística

Leia mais

3 Extensões dos modelos matemáticos

3 Extensões dos modelos matemáticos 3 Extensões dos modelos matemáticos Os modelos matemáticos definidos por (2-1) (2-6) e (2-7) (2-13), propostos por Achuthan e Caccetta e apresentados no Capítulo 2, são reforçados neste trabalho através

Leia mais

Projeto e Análise de Algoritmos NP Completude. Prof. Humberto Brandão

Projeto e Análise de Algoritmos NP Completude. Prof. Humberto Brandão Projeto e Análise de Algoritmos NP Completude Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br Universidade Federal de Alfenas versão da aula: 0.4 Introdução Problemas intratáveis ou difíceis são comuns

Leia mais

Técnicas Inteligência Artificial

Técnicas Inteligência Artificial Universidade do Sul de Santa Catarina Ciência da Computação Técnicas Inteligência Artificial Aula 03 Métodos de Busca Prof. Max Pereira Solução de Problemas como Busca Um problema pode ser considerado

Leia mais

Classificação Externa: Intercalação de Partições Classificadas

Classificação Externa: Intercalação de Partições Classificadas Classificação Externa: Intercalação de Partições Classificadas Vanessa Braganholo Baseado no Material de: Inhaúma Neves Ferraz (IC/UFF) Relembrando: Modelo da Classificação Externa 2 Aula Passada: Etapa

Leia mais

Estratégias de Busca: Métodos Informados. March 9, 2015

Estratégias de Busca: Métodos Informados. March 9, 2015 Estratégias de Busca: Métodos Informados March 9, 2015 Busca de Soluções: Métodos Informados Utilizam conhecimento específico do problema para encontrar a solução algoritmo geral de busca somente permite

Leia mais

Classificação e Pesquisa

Classificação e Pesquisa Classificação e Pesquisa Pesquisa de Dados - Seqüencial - Binária Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com Onde Estamos Ementa Pesquisa de Dados Seqüencial Binária

Leia mais

Aula 1 - Revisão de Modularização

Aula 1 - Revisão de Modularização Computação II Aula 1 - Revisão de Modularização Carla Delgado - João Carlos 1. Na Copa do Mundo da Rússia, o prêmio Chuteira de Ouro é dado ao jogador que possui a melhor média de gols na competição. (a)

Leia mais

Otimização por Colônia de Formigas (Ant Colony Optimization - ACO)

Otimização por Colônia de Formigas (Ant Colony Optimization - ACO) Otimização por Colônia de Formigas (Ant Colony Optimization - ACO) Eros Moreira de Carvalho Gabriel Silva Ramos CI209 - Inteligência Artificial BCC - Bacharelado em Ciência da Computação DInf - Departamento

Leia mais

Implementação e Avaliação do Algoritmo MCTS-UCT para o jogo Chinese Checkers. Jhonny Moreira

Implementação e Avaliação do Algoritmo MCTS-UCT para o jogo Chinese Checkers. Jhonny Moreira Implementação e Avaliação do Algoritmo MCTS-UCT para o jogo Chinese Checkers Jhonny Moreira Introdução Introdução Na área da inteligência artificial (IA), a motivação é conseguir colocar os computadores

Leia mais

Um Estudo Empírico de Métodos Hiper-Heurísticos

Um Estudo Empírico de Métodos Hiper-Heurísticos Um Estudo Empírico de Métodos Hiper-Heurísticos Igor Ribeiro Sucupira (Aluno de Mestrado) Flávio Soares Corrêa da Silva (Orientador) Departamento de Ciência da Computação Instituto de Matemática e Estatística

Leia mais

ESTRUTURA DE DADOS E ALGORITMOS. Árvores Binárias de Busca. Cristina Boeres

ESTRUTURA DE DADOS E ALGORITMOS. Árvores Binárias de Busca. Cristina Boeres ESTRUTURA DE DADOS E ALGORITMOS Árvores Binárias de Busca Cristina Boeres Árvore Binária de Busca 30! construída de tal forma que, para cada nó: nós com chaves menores estão na sub-árvore esquerda nós

Leia mais

Relatório Técnico: Busca Tabu Aplicada ao Problema do Caixeiro Viajante

Relatório Técnico: Busca Tabu Aplicada ao Problema do Caixeiro Viajante Relatório Técnico: Busca Tabu Aplicada ao Problema do Caixeiro Viajante André Britto de Carvalho, Rodolfo Barriveira, Carlos Tavares, Kelly Rodrigues, Frederico Losco Resumo. Este relatório apresenta uma

Leia mais

Algoritmos Combinatórios: Sudoku via Backtracking e o Problema da Cobertura Exata

Algoritmos Combinatórios: Sudoku via Backtracking e o Problema da Cobertura Exata Algoritmos Combinatórios: Sudoku via Backtracking e o Problema da lucia@site.uottawa.ca UFSC, Fevereiro, 2010 Solução Sudoku O jogo/puzzle Sudoku consiste de uma matriz 9 9, dividida em 9 regiões, que

Leia mais

Problemas de otimização

Problemas de otimização Problemas de otimização Problemas de decisão: Existe uma solução satisfazendo certa propriedade? Resultado: sim ou não Problemas de otimização: Entre todas as soluções satisfazendo determinada propriedade,

Leia mais

Experimentos e Resultados

Experimentos e Resultados 6 Experimentos e Resultados Neste capítulo apresentamos os experimentos realizados e os resultados obtidos pelas heurísticas apresentadas. A primeira parte do capítulo aborda os experimentos e resultados

Leia mais

Filas de prioridade. Marcelo K. Albertini. 27 de Novembro de 2014

Filas de prioridade. Marcelo K. Albertini. 27 de Novembro de 2014 Filas de prioridade Marcelo K. Albertini de Novembro de / Filas de prioridade O que é uma fila de prioridade? Estrutura de dados que generaliza a ideia de ordenação. Coleções de elementos: inserir e remover

Leia mais

Técnicas de Inteligência Artificial

Técnicas de Inteligência Artificial Universidade do Sul de Santa Catarina Ciência da Computação Técnicas de Inteligência Artificial Aula 02 Representação do Conhecimento Prof. Max Pereira Para que um computador possa solucionar um problema

Leia mais

Lista de Exercícios 07 Introdução à Ciência de Computação II (SCC0201/501)

Lista de Exercícios 07 Introdução à Ciência de Computação II (SCC0201/501) Lista de Exercícios 07 Introdução à Ciência de Computação II (SCC0201/501) Prof. Moacir P. Ponti Jr. 24 de novembro de 2010 1 Hashing 1. Suponha uma tabela hash de tamanho 10 com endereçamento aberto para

Leia mais

Inteligência Artificial

Inteligência Artificial Inteligência Artificial Fabrício Olivetti de França 07 de Junho de 2018 1 Heurísticas e Meta-Heurísticas 2 Heurística Heurística, derivada do grego encontrar ou descobrir, são técnicas para encontrar a

Leia mais

BCC202 - Estrutura de Dados I

BCC202 - Estrutura de Dados I BCC202 - Estrutura de Dados I Aula 13: Ordenação: MergeSort Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Website: www.decom.ufop.br/reifortes Email: reifortes@iceb.ufop.br

Leia mais

Técnicas de análise de algoritmos

Técnicas de análise de algoritmos CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Técnicas de análise de algoritmos Algoritmos e Estruturas de Dados I Natália Batista https://sites.google.com/site/nataliacefetmg/ nataliabatista@decom.cefetmg.br

Leia mais

Ummétodohíbridoparaescalonar turnosdeenfermeiras

Ummétodohíbridoparaescalonar turnosdeenfermeiras Ummétodohíbridoparaescalonar turnosdeenfermeiras Alexandre Luiz J. H. Albano e Marcio Oshiro Universidade de São Paulo Instituto de Matemática e Estatística Departamento de Ciência da Computação Um método

Leia mais

PCC104 - Projeto e Análise de Algoritmos

PCC104 - Projeto e Análise de Algoritmos PCC104 - Projeto e Análise de Algoritmos Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 5 de dezembro de 2017 Marco Antonio

Leia mais

Primeiro Trabalho de IA/SI: Buscas. Entrega: 03/03/2019 (2 semanas)

Primeiro Trabalho de IA/SI: Buscas. Entrega: 03/03/2019 (2 semanas) Primeiro Trabalho de IA/SI: Buscas Entrega: 03/03/2019 (2 semanas) 18 de Fevereiro de 2019 Este trabalho é para ser submetido via Moodle. Será desenvolvido principalmente durante as aulas práticas, mas

Leia mais

heapsort (int *x, int n) { int i, e, s, f, aux; /*fase de pré-processamento - cria heap inicial*/ for (i=1; i<n; i++) { e = x[i]; s = i; f = (s-1)/2;

heapsort (int *x, int n) { int i, e, s, f, aux; /*fase de pré-processamento - cria heap inicial*/ for (i=1; i<n; i++) { e = x[i]; s = i; f = (s-1)/2; heapsort (int *x, int n) { int i, e, s, f, aux; /*fase de pré-processamento - cria heap inicial*/ for (i=1; i0 && x[f]

Leia mais

Um estudo das heurísticas Simulated Annealing e VNS aplicadas ao problema de programação de tripulações

Um estudo das heurísticas Simulated Annealing e VNS aplicadas ao problema de programação de tripulações Um estudo das heurísticas Simulated Annealing e VNS aplicadas ao problema de programação de tripulações Marcone Jamilson Freitas Souza (UFOP) marcone@iceb.ufop.br Margarida Maria Silva Rodrigues (UFOP)

Leia mais

BCC202 - Estrutura de Dados I

BCC202 - Estrutura de Dados I BCC202 - Estrutura de Dados I Aula 15: Ordenação: ShellSort Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Website: www.decom.ufop.br/reifortes Email: reifortes@iceb.ufop.br

Leia mais

ESTRUTURA DE DADOS FILAS DINÂMICAS

ESTRUTURA DE DADOS FILAS DINÂMICAS ESTRUTURA DE DADOS FILAS DINÂMICAS Prof. Dr. Daniel Caetano 202-2 Objetivos Compreender o conceito de encadeada Usar s dinâmicas para aplicações Conhecer as vantagens e desvantagens das s encadeadas Atividade

Leia mais

Análise empírica de algoritmos de ordenação

Análise empírica de algoritmos de ordenação Análise empírica de algoritmos de ordenação Mario E. Matiusso Jr. (11028407) Bacharelado em Ciências da Computação Universidade Federal do ABC (UFABC) Santo André, SP Brasil mario3001[a]ig.com.br Resumo:

Leia mais

Filas de prioridade. Marcelo K. Albertini. 3 de Dezembro de 2013

Filas de prioridade. Marcelo K. Albertini. 3 de Dezembro de 2013 Filas de prioridade Marcelo K. Albertini de Dezembro de / Filas de prioridade O que é uma fila de prioridade? Estrutura de dados que generaliza a ideia de ordenação. Coleções de elementos: inserir e remover

Leia mais

Teoria da Computação Aula 9 Noções de Complexidade

Teoria da Computação Aula 9 Noções de Complexidade Teoria da Computação Aula 9 Noções de Complexidade Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional Análise de um Algoritmo em particular Qual é o custo de usar um dado algoritmo para resolver um

Leia mais

Resolução Numérica de Equações (Parte II)

Resolução Numérica de Equações (Parte II) Cálculo Numérico Módulo III Resolução Numérica de Equações (Parte II) Prof: Reinaldo Haas Cálculo Numérico Bissecção Métodos Iterativos para a Obtenção de Zeros Reais de Funções Bissecção Newton-Raphson

Leia mais

Estruturas de Dados Tabelas de Espalhamento

Estruturas de Dados Tabelas de Espalhamento Estruturas de Dados Tabelas de Espalhamento Prof. Eduardo Alchieri (introdução) Uma estrutura como, as árvores binárias de busca, que trabalhe na ordem de log n é muito eficiente, mas em algumas situações

Leia mais

Análise e Complexidade de Algoritmos

Análise e Complexidade de Algoritmos Análise e Complexidade de Algoritmos Métodos de busca - seqüêncial - binária Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com Onde Estamos Ementa Revisão: Estrutura de dados;crescimento

Leia mais

Estruturas de dados para listas arrays e listas ligadas

Estruturas de dados para listas arrays e listas ligadas Estruturas de dados para listas arrays e listas ligadas Fernando Lobo Algoritmos e Estrutura de Dados Algumas figuras retiradas do livro Introduction to Algorithms, 3rd Edition. 1 / 29 Listas Uma lista

Leia mais

CEFET/RJ Inteligência Artificial (2017.2) Professor: Eduardo Bezerra Lista de exercícios 03

CEFET/RJ Inteligência Artificial (2017.2) Professor: Eduardo Bezerra Lista de exercícios 03 . CEFET/RJ Inteligência Artificial (2017.2) Professor: Eduardo Bezerra (ebezerra@cefet-rj.br) Lista de exercícios 03 Créditos: essa lista de exercícios contém a tradução dos exercícios disponibilizados

Leia mais

Metaheurísticas. Gustavo Peixoto Silva

Metaheurísticas. Gustavo Peixoto Silva Metaheurísticas Introdução à Otimização Gustavo Peixoto Silva Métodos de Refinamento Métodos de Refinamento = Busca Local Método da Descida/Subida = Min/Max Aplicação ao PCV Aplicação ao Problema da Mochila

Leia mais

DEPARTAMENTO DE COMPUTAÇÃO D E C O M

DEPARTAMENTO DE COMPUTAÇÃO D E C O M DEPARTAMENTO DE COMPUTAÇÃO D E C O M Problema da Programação da Tripulação de um sistema de transporte público via Método de Pesquisa em Vizinhança Variável (VNS) Euler Horta Marinho 99.1.4024 Prof. Dr.

Leia mais

Introdução à Inteligência Artificial MAC MAC 415. Exercício Programa 1 Busca

Introdução à Inteligência Artificial MAC MAC 415. Exercício Programa 1 Busca Introdução à Inteligência Artificial MAC 5739 - MAC 415 006 Exercício Programa 1 Busca Data de Divulgação: 6 de agosto Data de Entrega: 6 de setembro 1 Objetivo Implementar os algoritmos de busca em Inteligência

Leia mais

Lista de Exercícios sobre Listas Implementadas por Encadeamento

Lista de Exercícios sobre Listas Implementadas por Encadeamento Lista de Exercícios sobre Listas Implementadas por Encadeamento 1) Se você tem de escolher entre uma representação por lista encadeada ou uma representação usando posições contíguas de memória para um

Leia mais

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA ÁRVORES E ÁRVORE BINÁRIA DE BUSCA Prof. André Backes Definição 2 Diversas aplicações necessitam que se represente um conjunto de objetos e as suas relações hierárquicas Uma árvore é uma abstração matemática

Leia mais

Teoria da Computação Aula 8 Noções de Complexidade

Teoria da Computação Aula 8 Noções de Complexidade Teoria da Computação Aula 8 Noções de Complexidade Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional Motivação: Por que estudar algoritmos? Perguntas: - Por que estudar algoritmos se os computadores

Leia mais

Algoritmos de ordenação: Inserção e Shellsort

Algoritmos de ordenação: Inserção e Shellsort CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Algoritmos de ordenação: Inserção e Shellsort Algoritmos e Estruturas de Dados I Slides adaptados dos slides do livro texto (Ziviani) e dos slides

Leia mais

GRASP para o Problema do Caixeiro Viajante com Limite de Calado

GRASP para o Problema do Caixeiro Viajante com Limite de Calado GRASP para o Problema do Caixeiro Viajante com Limite de Calado Victor Mouffron Carvalho Machado, Luiz Satoru Ochi Universidade Federal Fluminense Rua Passo da Pátria, 156, São Domingos-Niterói - RJ E-mail:

Leia mais

Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura

Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura Árvores B Prof. Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Fonte: Material da Prof a Ana Eliza Lopes Moura Situação Problema Memória Principal Volátil e limitada Aplicações Grandes

Leia mais

Resolução de Problemas de Busca

Resolução de Problemas de Busca Resolução de Problemas de Busca 1 Ao final desta aula a gente deve Compreender o que é um problema de busca em IA Ser capaz de formulá-lo Conhecer algumas aplicações Entender como buscar a solução do problema

Leia mais

Busca Competitiva. Inteligência Artificial. Até aqui... Jogos vs. busca. Decisões ótimas em jogos 9/22/2010

Busca Competitiva. Inteligência Artificial. Até aqui... Jogos vs. busca. Decisões ótimas em jogos 9/22/2010 Inteligência Artificial Busca Competitiva Aula 5 Profª Bianca Zadrozny http://www.ic.uff.br/~bianca/ia-pos Capítulo 6 Russell & Norvig Seção 6.1 a 6.5 2 Até aqui... Problemas sem interação com outro agente.

Leia mais

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves CAP 254 CAP 254 Otimização Combinatória Professor: Dr. L.A.N. Lorena Assunto: Metaheurísticas Antonio Augusto Chaves Conteúdo C01 Simulated Annealing (20/11/07). C02 Busca Tabu (22/11/07). C03 Colônia

Leia mais

UMA HEURÍSTICA BASEADA EM GRASP PARA O PROBLEMA DO CLIQUE MÁXIMO. Daniel C. Miranda DCC-UFMG

UMA HEURÍSTICA BASEADA EM GRASP PARA O PROBLEMA DO CLIQUE MÁXIMO. Daniel C. Miranda DCC-UFMG UMA HEURÍSTICA BASEADA EM GRASP PARA O PROBLEMA DO CLIQUE MÁXIMO Isabel G. Barbosa DCC-UFMG isabarbo@dcc.ufmg.br Daniel C. Miranda DCC-UFMG danielcm@dcc.ufmg.br Rone Ilídio DCC-UFMG rone@dcc.ufmg.br Abstract

Leia mais

TABELAS DE DISPERSÃO/HASH

TABELAS DE DISPERSÃO/HASH 1/47 TABELAS DE DISPERSÃO/HASH Introdução 2/47 Introdução Motivação - Considerar o problema de pesquisar um determinado valor num vetor: - Se o vetor não está ordenado, a pesquisa requer O(n) de complexidade

Leia mais

Inteligência Artificial Capítulo 4. Planejamento em. Espaço de Estados

Inteligência Artificial Capítulo 4. Planejamento em. Espaço de Estados Planejamento em Inteligência Artificial Capítulo 4 Planejamento em Espaço de Estados José de Jesús Pérez-Alcázar MAC 5788 - IME/USP segundo semestre de 2005 Motivação Quase todos os procedimentos de planejamento

Leia mais

Pesquisa em Memória Secundária. Prof. Jonas Potros

Pesquisa em Memória Secundária. Prof. Jonas Potros Pesquisa em Memória Secundária Prof. Jonas Potros Árvores de Pesquisa São estruturas de dados muito eficientes quando deseja-se trabalhar com tabelas que caibam inteiramente na memória principal do computador.

Leia mais

4 Métodos Existentes. 4.1 Algoritmo Genético

4 Métodos Existentes. 4.1 Algoritmo Genético 61 4 Métodos Existentes A hibridização de diferentes métodos é em geral utilizada para resolver problemas de escalonamento, por fornecer empiricamente maior eficiência na busca de soluções. Ela pode ser

Leia mais

7 a Lista de Exercícios Assunto: Funções e passagem por referência com vetor e matriz (Tópico 7)

7 a Lista de Exercícios Assunto: Funções e passagem por referência com vetor e matriz (Tópico 7) 7 a Lista de Exercícios Assunto: Funções e passagem por referência com vetor e matriz (Tópico 7) Essa lista de exercícios tem como objetivo principal desenvolver algoritmos a partir dos conteúdos abordados

Leia mais

Optimização de um Plano de Marketing Directo para o Sector da Banca Daniel Barata

Optimização de um Plano de Marketing Directo para o Sector da Banca Daniel Barata Optimização de um Plano de Marketing Directo para o Sector da Banca Daniel Barata, Fernando Bação, Victor Lobo Agenda Introdução Justificação do Tema Formulação usada Métodos de Resolução Exacto Guloso

Leia mais

Estruturas de dados e algoritmos fundamentais

Estruturas de dados e algoritmos fundamentais Ministério da Ciência, Tecnologia e Ensino Superior U.C. 21046 Estruturas de dados e algoritmos fundamentais 21 de Junho de 2013 INSTRUÇÕES PARA A RESOLUÇÃO DO EXAME, ACONSELHA-SE QUE LEIA ATENTAMENTE

Leia mais

Teoria e Algoritmos em Grafos

Teoria e Algoritmos em Grafos Teoria e Algoritmos em Grafos 2018.2 Conjunto Independente Conjuntos Independentes são subconjuntos de vértices de um grafo no qual nenhum vértice é adjacente entre si. Conjunto Independente Conjuntos

Leia mais

Ordenação Externa. Ordenação Externa. Ordenação Externa. Ordenação Externa

Ordenação Externa. Ordenação Externa. Ordenação Externa. Ordenação Externa Ordenação Externa Ordenação Externa Estrutura de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação

Leia mais

Lista de Exercícios 04

Lista de Exercícios 04 Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Disciplina: BCC202 - Estruturas de Dados I Professor: Túlio Toffolo (www.decom.ufop.br/toffolo)

Leia mais

Estratégias informadas de Busca. March 3, 2016

Estratégias informadas de Busca. March 3, 2016 Estratégias informadas de Busca March 3, 2016 Busca de Soluções: Métodos Informados ˆ Utilizam conhecimento específico do problema para encontrar a solução ˆ algoritmo geral de busca somente permite introduzir

Leia mais

Exemplo do jogo dos fósforos Terça-feira, 9 de maio. Exemplo para o Problema do Corpo de Bombeiros. Exemplo: Localidade do Corpo de Bombeiros

Exemplo do jogo dos fósforos Terça-feira, 9 de maio. Exemplo para o Problema do Corpo de Bombeiros. Exemplo: Localidade do Corpo de Bombeiros 15.053 Terça-feira, 9 de maio Busca Heurística: métodos para resolver problemas de otimização difíceis Distribuir: Anotações da Aula Veja a introdução ao trabalho Very Large Scale Neighborhood Search (está

Leia mais

Exercícios: Vetores e Matrizes

Exercícios: Vetores e Matrizes Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Vetores e Matrizes 1 Vetores 1. Faça um programa que possua um vetor

Leia mais

Inteligência Artificial

Inteligência Artificial Inteligência Artificial Aula 3 Métodos de Busca para Resolução de Problemas Busca Informada Heurísticas Busca Gulosa Busca A* Busca Local Prática #2 Prof. Ricardo M. Marcacini ricardo.marcacini@ufms.br

Leia mais

UMA HEURÍSTICA DE REDUÇÃO DO ESPAÇO DE BUSCA PARA UMA CLASSE DE PROBLEMAS DE SEQUENCIAMENTO DE TAREFAS EM UMA MÁQUINA Bruno Ferreira Rosa, Marcone Jamilson Freitas Souza, Sérgio Ricardo de Souza Centro

Leia mais

Medida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Medida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Medida do Tempo de Execução de um Programa David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Medida do Tempo de Execução de um Programa O projeto de algoritmos é fortemente influenciado pelo

Leia mais

Notas. Notas. encontrem a solução ótima em tempo polinomial para qualquer instância do problema que estamos trabalhando 2 / 19.

Notas. Notas. encontrem a solução ótima em tempo polinomial para qualquer instância do problema que estamos trabalhando 2 / 19. Projeto e Análise de Algoritmos Algoritmos Aproximados Haroldo Gambini Santos Universidade Federal de Ouro Preto - UFOP 2 de maio de 2013 1 / 19 Situação Ideal Desejamos algoritmos que: encontrem a solução

Leia mais

Abordagens para Problemas Intratáveis

Abordagens para Problemas Intratáveis Abordagens para Problemas Intratáveis Letícia Rodrigues Bueno UFABC Motivação Se você se depara com um problema intratável... Motivação Se você se depara com um problema intratável... I can t find an efficient

Leia mais

BCC204 - Teoria dos Grafos

BCC204 - Teoria dos Grafos BCC204 - Teoria dos Grafos Marco Antonio M. Carvalho (baseado nas notas de aula do prof. Haroldo Gambini Santos) Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal

Leia mais

Tabelas Hash. informação, a partir do conhecimento de sua chave. Hashing é uma maneira de organizar dados que:

Tabelas Hash. informação, a partir do conhecimento de sua chave. Hashing é uma maneira de organizar dados que: Tabelas Hash Tabelas Hash O uso de listas ou árvores para organizar informações é interessante e produz bons resultados. Porem, em nenhuma dessas estruturas se obtém o acesso direto a alguma informação,

Leia mais

ESTRUTURA DE DADOS E ALGORITMOS HEAPS E LISTAS DE PRIORIDADES

ESTRUTURA DE DADOS E ALGORITMOS HEAPS E LISTAS DE PRIORIDADES ESTRUTURA DE DADOS E ALGORITMOS HEAPS E LISTAS DE PRIORIDADES Listas de Prioridades! Em muitas aplicações, dados de uma coleção são acessados por ordem de prioridade! A prioridade associada a um dado pode

Leia mais

CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 01

CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 01 . CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 01 Créditos: alguns itens desta lista são adaptados do material da disciplina CS188 - Artificial Intelligence

Leia mais

Modelo de Algoritmo Genético para o Escalonamento de Tarefas em uma Arquitetura Multiprocessadora

Modelo de Algoritmo Genético para o Escalonamento de Tarefas em uma Arquitetura Multiprocessadora Modelo de Algoritmo Genético para o Escalonamento de Tarefas em uma Arquitetura Multiprocessadora Autor: Adilmar Coelho Dantas 1, Orientador: Márcia Aparecida Fernandes 1 1 Programa de Pós-Graduação em

Leia mais

lnteligência Artificial

lnteligência Artificial lnteligência Artificial Busca Heurística - Informada Estratégias de Busca Heurística Usam conhecimento específico do problema na busca da solução Mais eficientes que busca não informada Busca Informada

Leia mais

2ª. Competição Tecnológica (Outubro/2010)

2ª. Competição Tecnológica (Outubro/2010) 2ª. Competição Tecnológica (Outubro/2010) DESCRIÇÃO A competição compreende duas fases e consiste na implementação de cinco aplicações, três na fase I e duas na fase II. Na fase I, os resultados obtidos

Leia mais