Paradigmas de Projetos de Algoritmos

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

Download "Paradigmas de Projetos de Algoritmos"

Transcrição

1 Paradigmas de Projetos de Algoritmos Luciana Assis 9 de junho de 2016 Luciana Assis (UFVJM) 9 de junho de / 36

2 1 Introdução 2 Força Bruta 3 Abordagem Incremental ou Construtiva 4 Recursão 5 Divisão e Conquista 6 Balanceamento 7 Algoritmos Gulosos 8 Tentativa e Erro 9 Algoritmos Aproximados 10 Heurísticas 11 Referências Luciana Assis (UFVJM) 9 de junho de / 36

3 Sumário 1 Introdução 2 Força Bruta 3 Abordagem Incremental ou Construtiva 4 Recursão 5 Divisão e Conquista 6 Balanceamento 7 Algoritmos Gulosos 8 Tentativa e Erro 9 Algoritmos Aproximados 10 Heurísticas 11 Referências Luciana Assis (UFVJM) 9 de junho de / 36

4 Introdução Nos últimos anos, cientistas da computação têm identificado diversas técnicas para o desenvolvimento de algoritmos eficientes para serem aplicados a problemas complexos. Técnicas mais comuns são: Força Bruta Abordagem Incremental ou Construtiva Tentativa e Erro, Backtracking Divisão e Conquista Balanceamento Programação Dinâmica Algoritmos Gulosos Algoritmos Aproximados Heurísticas Luciana Assis (UFVJM) 9 de junho de / 36

5 Introdução Nos últimos anos, cientistas da computação têm identificado diversas técnicas para o desenvolvimento de algoritmos eficientes para serem aplicados a problemas complexos. Técnicas mais comuns são: Força Bruta Abordagem Incremental ou Construtiva Tentativa e Erro, Backtracking Divisão e Conquista Balanceamento Programação Dinâmica Algoritmos Gulosos Algoritmos Aproximados Heurísticas Luciana Assis (UFVJM) 9 de junho de / 36

6 Sumário 1 Introdução 2 Força Bruta 3 Abordagem Incremental ou Construtiva 4 Recursão 5 Divisão e Conquista 6 Balanceamento 7 Algoritmos Gulosos 8 Tentativa e Erro 9 Algoritmos Aproximados 10 Heurísticas 11 Referências Luciana Assis (UFVJM) 9 de junho de / 36

7 Força Bruta Também chamada Busca Exaustiva. Enumera cada alternativa possível, verificando se alternativa fornece uma solução para o problema. Não termina enquanto não encontra solução para o problema ou verificar todas as alternativas possíveis. Luciana Assis (UFVJM) 9 de junho de / 36

8 Exemplo Problema Caixeiro Viajante Consumidores Trajeto Luciana Assis (UFVJM) 9 de junho de / 36

9 Exemplo Problema Caixeiro Viajante Consumidores Trajeto Luciana Assis (UFVJM) 9 de junho de / 36

10 Exemplo Problema Caixeiro Viajante Consumidores Trajeto Luciana Assis (UFVJM) 9 de junho de / 36

11 Exemplo Problema Caixeiro Viajante Consumidores Trajeto Luciana Assis (UFVJM) 9 de junho de / 36

12 Exemplo Conjunto de alternativas Luciana Assis (UFVJM) 9 de junho de / 36

13 Sumário 1 Introdução 2 Força Bruta 3 Abordagem Incremental ou Construtiva 4 Recursão 5 Divisão e Conquista 6 Balanceamento 7 Algoritmos Gulosos 8 Tentativa e Erro 9 Algoritmos Aproximados 10 Heurísticas 11 Referências Luciana Assis (UFVJM) 9 de junho de / 36

14 Abordagem Incremental ou Construtiva Um elemento por vez é inserido na solução. Exemplos: Ordenação por Seleção e Ordenação por Inserção. Estes algoritmos recebem uma sequência de números e retornam uma permutação desta sequência. A cada passo um elemento é colocado na posição ordenada. Luciana Assis (UFVJM) 9 de junho de / 36

15 Sumário 1 Introdução 2 Força Bruta 3 Abordagem Incremental ou Construtiva 4 Recursão 5 Divisão e Conquista 6 Balanceamento 7 Algoritmos Gulosos 8 Tentativa e Erro 9 Algoritmos Aproximados 10 Heurísticas 11 Referências Luciana Assis (UFVJM) 9 de junho de / 36

16 Recursão Um algoritmo recursivo é aquele que chama, direta ou indiretamenta, a si próprio. Reduz o problema a subproblemas menores. Requer um critério de parada. Ao alcançar o ponto de parada (ou caso base), inicia o processo de retorno, resolvendo cada subproblema. Exemplo: Algoritmo para calcular Fatorial. Algoritmo recursivo é útil quando um problema pode ser dividido em subproblemas com esforço de processamento razoável e a soma dos espaços utilizados pelos subproblemas resulta em uma quantidade pequena. Luciana Assis (UFVJM) 9 de junho de / 36

17 Sumário 1 Introdução 2 Força Bruta 3 Abordagem Incremental ou Construtiva 4 Recursão 5 Divisão e Conquista 6 Balanceamento 7 Algoritmos Gulosos 8 Tentativa e Erro 9 Algoritmos Aproximados 10 Heurísticas 11 Referências Luciana Assis (UFVJM) 9 de junho de / 36

18 Divisão e Conquista Divide o problema em subproblemas menores Os subproblemas menores são similares entre si e ao problema geral. Resolve os subproblemas (Conquistar) Combina as soluções obtidas para resolver o problema geral. Exemplo: Mergesort Dividir: Divide a sequencia com n itens a serem ordenados em duas subsequências, sendo cada com n/2 itens; Conquistar: Ordene as duas subsequências recursivamente; Combinação: Intercale as duas subsequencias ordenadas. Luciana Assis (UFVJM) 9 de junho de / 36

19 Sumário 1 Introdução 2 Força Bruta 3 Abordagem Incremental ou Construtiva 4 Recursão 5 Divisão e Conquista 6 Balanceamento 7 Algoritmos Gulosos 8 Tentativa e Erro 9 Algoritmos Aproximados 10 Heurísticas 11 Referências Luciana Assis (UFVJM) 9 de junho de / 36

20 Balanceamento Gerar subproblemas balanceados. Frequente no paradigma Dividir e Conquistar. Exemplo: Dividir e Conquistar; Árvores de Busca; Luciana Assis (UFVJM) 9 de junho de / 36

21 Sumário 1 Introdução 2 Força Bruta 3 Abordagem Incremental ou Construtiva 4 Recursão 5 Divisão e Conquista 6 Balanceamento 7 Algoritmos Gulosos 8 Tentativa e Erro 9 Algoritmos Aproximados 10 Heurísticas 11 Referências Luciana Assis (UFVJM) 9 de junho de / 36

22 Algoritmos Gulosos Bastante utilizado em problemas de otimização. Os algoritmos projetados por este paradigma fazem uma escolha gananciosa a cada passo. Constróem a solução a cada alternativa, sempre escolhendo a próxima que oferece o benefício mais evidente e imediato naquele instante. Nunca reconsidera as escolhas já realizadas. Luciana Assis (UFVJM) 9 de junho de / 36

23 Exemplo: Problema Caixeiro Viajante Algoritmo Vizinho mais Próximo: a partir de um nó qualquer visitar, a cada passo, a cidade mais próxima ainda não atendida Consumidores Trajeto Luciana Assis (UFVJM) 9 de junho de / 36

24 Exemplo: Problema Caixeiro Viajante Algoritmo Vizinho mais Próximo: a partir de um nó qualquer visitar, a cada passo, a cidade mais próxima ainda não atendida Consumidores Trajeto Luciana Assis (UFVJM) 9 de junho de / 36

25 Exemplo: Problema Caixeiro Viajante Algoritmo Vizinho mais Próximo: a partir de um nó qualquer visitar, a cada passo, a cidade mais próxima ainda não atendida Consumidores Trajeto Luciana Assis (UFVJM) 9 de junho de / 36

26 Exemplo: Problema Caixeiro Viajante Algoritmo Vizinho mais Próximo: a partir de um nó qualquer visitar, a cada passo, a cidade mais próxima ainda não atendida Consumidores Trajeto Luciana Assis (UFVJM) 9 de junho de / 36

27 Exemplo: Problema Caixeiro Viajante Algoritmo Vizinho mais Próximo: a partir de um nó qualquer visitar, a cada passo, a cidade mais próxima ainda não atendida Consumidores Trajeto Luciana Assis (UFVJM) 9 de junho de / 36

28 Exemplo: Problema Caixeiro Viajante Algoritmo Vizinho mais Próximo: a partir de um nó qualquer visitar, a cada passo, a cidade mais próxima ainda não atendida Consumidores Trajeto Luciana Assis (UFVJM) 9 de junho de / 36

29 Sumário 1 Introdução 2 Força Bruta 3 Abordagem Incremental ou Construtiva 4 Recursão 5 Divisão e Conquista 6 Balanceamento 7 Algoritmos Gulosos 8 Tentativa e Erro 9 Algoritmos Aproximados 10 Heurísticas 11 Referências Luciana Assis (UFVJM) 9 de junho de / 36

30 Tentativa e Erro Backtracking Melhoria da técnica Força Bruta Consegue descartar grandes conjuntos de soluções inválidas sem a necessidade de examiná-las explicitamente. Uma árvore de busca é examinada gradualmente. Características da árvore de busca Composta por subproblemas decompostos do problema original; Formada pelos possíveis caminhos para a solução do problema durante a execução do algoritmo por backtracking; Fornece meios para procurar exaustivamente a solução; Luciana Assis (UFVJM) 9 de junho de / 36

31 Exemplo Árvore Busca Luciana Assis (UFVJM) 9 de junho de / 36

32 Sumário 1 Introdução 2 Força Bruta 3 Abordagem Incremental ou Construtiva 4 Recursão 5 Divisão e Conquista 6 Balanceamento 7 Algoritmos Gulosos 8 Tentativa e Erro 9 Algoritmos Aproximados 10 Heurísticas 11 Referências Luciana Assis (UFVJM) 9 de junho de / 36

33 Algoritmos Aproximados Problemas que somente possuem algoritmos exponenciais para resolvêlos são considerados difíceis. Problemas considerados intratáveis ou difíceis são muito comuns. Exemplo: problema do caixeiro viajante cuja complexidade é O(n!). Diante de um problema difícil é comum remover a exigência de que o algoritmo tenha sempre que obter a solução ótima. Neste caso procuramos por algoritmos eficientes que não garantem obter a solução ótima, mas uma que seja a mais próxima possivel da solução ótima. Gera soluções aproximadas dentro de um limite para a razão entre a solução ótima e a produzida pelo algoritmo aproximado. Garantia de qualidade. Luciana Assis (UFVJM) 9 de junho de / 36

34 Algoritmos Aproximados Problemas que somente possuem algoritmos exponenciais para resolvêlos são considerados difíceis. Problemas considerados intratáveis ou difíceis são muito comuns. Exemplo: problema do caixeiro viajante cuja complexidade é O(n!). Diante de um problema difícil é comum remover a exigência de que o algoritmo tenha sempre que obter a solução ótima. Neste caso procuramos por algoritmos eficientes que não garantem obter a solução ótima, mas uma que seja a mais próxima possivel da solução ótima. Gera soluções aproximadas dentro de um limite para a razão entre a solução ótima e a produzida pelo algoritmo aproximado. Garantia de qualidade. Luciana Assis (UFVJM) 9 de junho de / 36

35 Sumário 1 Introdução 2 Força Bruta 3 Abordagem Incremental ou Construtiva 4 Recursão 5 Divisão e Conquista 6 Balanceamento 7 Algoritmos Gulosos 8 Tentativa e Erro 9 Algoritmos Aproximados 10 Heurísticas 11 Referências Luciana Assis (UFVJM) 9 de junho de / 36

36 Heurísticas Pode produzir um bom resultado, ou até mesmo obter a solução ótima, mas pode também não produzir solução alguma ou uma solução que está distante da solução ótima Sem garantia de qualidade. Luciana Assis (UFVJM) 9 de junho de / 36

37 Heurísticas Pode produzir um bom resultado, ou até mesmo obter a solução ótima, mas pode também não produzir solução alguma ou uma solução que está distante da solução ótima Sem garantia de qualidade. Luciana Assis (UFVJM) 9 de junho de / 36

38 Exemplo Heurística Vizinho mais Próximo: a partir de um nó qualquer visitar, a cada passo, a cidade mais próxima ainda não atendida Consumidores Trajeto Luciana Assis (UFVJM) 9 de junho de / 36

39 Exemplo Heurística Vizinho mais Próximo: a partir de um nó qualquer visitar, a cada passo, a cidade mais próxima ainda não atendida Consumidores Trajeto Luciana Assis (UFVJM) 9 de junho de / 36

40 Exemplo Heurística Vizinho mais Próximo: a partir de um nó qualquer visitar, a cada passo, a cidade mais próxima ainda não atendida Consumidores Trajeto Luciana Assis (UFVJM) 9 de junho de / 36

41 Exemplo Heurística Vizinho mais Próximo: a partir de um nó qualquer visitar, a cada passo, a cidade mais próxima ainda não atendida Consumidores Trajeto Luciana Assis (UFVJM) 9 de junho de / 36

42 Exemplo Heurística Vizinho mais Próximo: a partir de um nó qualquer visitar, a cada passo, a cidade mais próxima ainda não atendida Consumidores Trajeto Luciana Assis (UFVJM) 9 de junho de / 36

43 Exemplo Heurística Vizinho mais Próximo: a partir de um nó qualquer visitar, a cada passo, a cidade mais próxima ainda não atendida Consumidores Trajeto Luciana Assis (UFVJM) 9 de junho de / 36

44 Exemplo: Problema do Caixeiro Viajante Heurística Vizinho mais Próximo Luciana Assis (UFVJM) 9 de junho de / 36

45 Exemplo: Problema do Caixeiro Viajante Heurística Vizinho mais Próximo Luciana Assis (UFVJM) 9 de junho de / 36

46 Exemplo: Problema do Caixeiro Viajante Heurística Vizinho mais Próximo Luciana Assis (UFVJM) 9 de junho de / 36

47 Exemplo: Problema do Caixeiro Viajante Heurística Vizinho mais Próximo Luciana Assis (UFVJM) 9 de junho de / 36

48 Exemplo: Problema do Caixeiro Viajante Heurística Vizinho mais Próximo Luciana Assis (UFVJM) 9 de junho de / 36

49 Exemplo: Problema do Caixeiro Viajante Heurística Vizinho mais Próximo Luciana Assis (UFVJM) 9 de junho de / 36

50 Sumário 1 Introdução 2 Força Bruta 3 Abordagem Incremental ou Construtiva 4 Recursão 5 Divisão e Conquista 6 Balanceamento 7 Algoritmos Gulosos 8 Tentativa e Erro 9 Algoritmos Aproximados 10 Heurísticas 11 Referências Luciana Assis (UFVJM) 9 de junho de / 36

51 Referências Sanderson L. G. Oliveira. Algoritmos e seus Fundamentos. Editora UFLA, Nivio Ziviane. Projeto de Algoritmos: com implementações em PAS- CAL e C. Editora Thomson, Luciana Assis (UFVJM) 9 de junho de / 36

52 Contato Voltar para tela inicial Luciana Assis (UFVJM) 9 de junho de / 36

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA PARA A COMPUTAÇÃO PROF. DANIEL S. FREITAS UFSC - CTC - INE Prof. Daniel S. Freitas - UFSC/CTC/INE/2007 p.1/27 4 - INTROD. À ANÁLISE COMBINATÓRIA 4.1) Arranjos

Leia mais

Complexidade de Algoritmos. Edson Prestes

Complexidade de Algoritmos. Edson Prestes Edson Prestes Divisão e conquista Divide um problema em subproblemas independentes, resolve-os e combina as soluções obtidas em uma solução para o problema original. Isso resulta em um processo recursivo

Leia mais

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

Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução. Prof. Humberto Brandão humberto@dcc.ufmg.br Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução Prof. Humberto Brandão humberto@dcc.ufmg.br aula disponível no site: http://www.bcc.unifal-mg.edu.br/~humberto/ Universidade Federal de

Leia mais

Paradigmas de Projeto de Algoritmos

Paradigmas de Projeto de Algoritmos Paradigmas de Projeto de Algoritmos Última alteração: 2 de Setembro de 2010 Transparências elaboradas por Charles Ornelas Almeida, Israel Guerra e Nivio Ziviani Projeto de Algoritmos Cap.2 Paradigmas de

Leia mais

Resolução de problemas por meio de busca. Inteligência Artificial

Resolução de problemas por meio de busca. Inteligência Artificial 1 Resolução de problemas por meio de busca (Capítulo 3 - Russell) Inteligência Artificial Professor: Rosalvo Ferreira de Oliveira Neto 2 Estrutura 1. Agente de resolução de problema 2. Tipos de problema

Leia mais

Grafos Hamiltonianos e o Problema do Caixeiro Viajante. Prof. Ademir Constantino Departamento de Informática Universidade Estadual de Maringá

Grafos Hamiltonianos e o Problema do Caixeiro Viajante. Prof. Ademir Constantino Departamento de Informática Universidade Estadual de Maringá Grafos Hamiltonianos e o Problema do Caixeiro Viajante Prof. Ademir Constantino Departamento de Informática Universidade Estadual de Maringá Grafo Hamiltoniano Definição: Um circuito hamiltoniano em um

Leia mais

Problema da Mochila Booleana: Uma Solução Usando Programação Dinâmica. Gabriel Rosa Guilherme Alves

Problema da Mochila Booleana: Uma Solução Usando Programação Dinâmica. Gabriel Rosa Guilherme Alves Problema da Mochila Booleana: Uma Solução Usando Programação Dinâmica Gabriel Rosa Guilherme Alves Agenda O problema, definição e exemplo Construindo uma solução... Expressão recursiva Algoritmo recursivo

Leia mais

Quantidade de memória necessária

Quantidade de memória necessária Tempo de processamento Um algoritmo que realiza uma tarefa em 10 horas é melhor que outro que realiza em 10 dias Quantidade de memória necessária Um algoritmo que usa 1MB de memória RAM é melhor que outro

Leia mais

Aula 10: Tratabilidade

Aula 10: Tratabilidade Teoria da Computação DAINF-UTFPR Aula 10: Tratabilidade Prof. Ricardo Dutra da Silva Na aula anterior discutimos problemas que podem e que não podem ser computados. Nesta aula vamos considerar apenas problemas

Leia mais

6. Pesquisa e Ordenação

6. Pesquisa e Ordenação 6. Pesquisa e Ordenação Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 6. Pesquisa e Ordenação Estruturas de Dados 1 / 30 Pesquisa de Informação A pesquisa eficiente de informação

Leia mais

O mais leve e o mais pesado Algoritmos de Ordenação

O mais leve e o mais pesado Algoritmos de Ordenação Atividade 7 O mais leve e o mais pesado Algoritmos de Ordenação Sumário Os computadores são muitas vezes utilizados para colocar listas em algum tipo de ordem, por exemplo, nomes em ordem alfabética, compromissos

Leia mais

Teoria dos Grafos Aula 18

Teoria dos Grafos Aula 18 Teoria dos Grafos Aula 18 Aula passada Coloração Algoritmo guloso Número cromático Teorema das 4 cores Aula de hoje Clusterização (ou agrupamento) Algoritmo Variação Clusterização Coleção de objetos Agrupar

Leia mais

04 Recursão SCC201/501 - Introdução à Ciência de Computação II

04 Recursão SCC201/501 - Introdução à Ciência de Computação II 04 Recursão SCC201/501 - Introdução à Ciência de Computação II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2010/2 Moacir Ponti Jr. (ICMCUSP) 04Recursão

Leia mais

Divisão e Conquista: Par de Pontos mais Próximo

Divisão e Conquista: Par de Pontos mais Próximo Divisão e Conquista: Par de Pontos mais Próximo Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 18 Divisão e Conquista (cont.) Problema: Dado um conjunto de pontos no plano, obter o par de pontos

Leia mais

Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches CT-234 Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural Carlos Alberto Alonso Sanches CT-234 2) Algoritmos recursivos Indução matemática, recursão, recorrências Indução matemática Uma

Leia mais

Algoritmos e Programação. AULA 21: Recursividade UNIVERSIDADE FEDERAL DE PELOTAS CENTRO DE DESENVOLVIMENTO TECNOLÓGICO CIÊNCIA DA COMPUTAÇÃO

Algoritmos e Programação. AULA 21: Recursividade UNIVERSIDADE FEDERAL DE PELOTAS CENTRO DE DESENVOLVIMENTO TECNOLÓGICO CIÊNCIA DA COMPUTAÇÃO 1 Algoritmos e Programação AULA 21: Recursividade UNIVERSIDADE FEDERAL DE PELOTAS CENTRO DE DESENVOLVIMENTO TECNOLÓGICO CIÊNCIA DA COMPUTAÇÃO 2 Recursividade A recursão é o processo pelo qual passa um

Leia mais

Teoria da Computação. Aula 9 Pesquisa em Memória Secundária 5COP096. Aula 9 Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr

Teoria da Computação. Aula 9 Pesquisa em Memória Secundária 5COP096. Aula 9 Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr 5COP096 Teoria da Computação Aula 9 Prof. Dr. Sylvio Barbon Junior Sylvio Barbon Jr barbon@uel.br 1 Sumário 1) Introdução à Pesquisa em Memória Secundária 2) Modelo de Computação para Memória Secundária

Leia mais

Métodos de Busca. Inteligência Artificial. Algoritmos Genéticos. Algoritmos Evolucionários. Prof. Ms. Luiz Alberto Contato:

Métodos de Busca. Inteligência Artificial. Algoritmos Genéticos. Algoritmos Evolucionários. Prof. Ms. Luiz Alberto Contato: Inteligência Artificial Prof. Ms. Luiz Alberto Contato: lasf.bel@gmail.com Métodos de Busca Busca Cega ou Exaustiva: Não sabe qual o melhor nó da fronteira a ser expandido. Apenas distingue o estado objetivo

Leia mais

Algoritmos Avançados Análise de Complexidade

Algoritmos Avançados Análise de Complexidade CCAE Centro de Ciências Aplicadas e Educação UFPB - Campus IV - Litoral Norte Algoritmos Avançados Análise de Complexidade COMPLEXIDADE DE ALGORITMOS Definição: A Complexidade de um Algoritmo consiste

Leia mais

INSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos. RESOLUÇÃO DO 2 o TESTE

INSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos. RESOLUÇÃO DO 2 o TESTE INSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos Ano Lectivo de 2006/2007 2 o Semestre RESOLUÇÃO DO 2 o TESTE I. (2,0+2,0+2,0 = 6,0 val.) 1) Calcule o valor óptimo da função objectivo e o respectivo

Leia mais

A Cidade Enlameada Árvores Geradoras Mínimas

A Cidade Enlameada Árvores Geradoras Mínimas Atividade 9 A Cidade Enlameada Árvores Geradoras Mínimas Sumário Nossa sociedade é conectada por muitas redes: redes telefônicas, redes de abastecimento, redes de computadores e redes rodoviárias. Para

Leia mais

Fernando Silva DCC-FCUP. Estruturas de Dados

Fernando Silva DCC-FCUP. Estruturas de Dados 3. Recursividade, Bactracking e Dividir-para-Conquistar Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 3. Recursividade, Bactracking e Dividir-para-Conquistar Estruturas de Dados

Leia mais

Tratamento dos Erros de Sintaxe. Adriano Maranhão

Tratamento dos Erros de Sintaxe. Adriano Maranhão Tratamento dos Erros de Sintaxe Adriano Maranhão Introdução Se um compilador tivesse que processar somente programas corretos, seu projeto e sua implementação seriam grandemente simplificados. Mas os programadores

Leia mais

Complexidade de Algoritmos. Edson Prestes

Complexidade de Algoritmos. Edson Prestes Edson Prestes Caminhos de custo mínimo em grafo orientado Este problema consiste em determinar um caminho de custo mínimo a partir de um vértice fonte a cada vértice do grafo. Considere um grafo orientado

Leia mais

Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula

Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula Tópicos Introdução Problema do casamento de cadeias Algoritmo

Leia mais

ESTRUTURAS DE REPETIÇÃO - PARTE 1

ESTRUTURAS DE REPETIÇÃO - PARTE 1 AULA 15 ESTRUTURAS DE REPETIÇÃO - PARTE 1 15.1 O comando enquanto-faca- Considere o problema de escrever um algoritmo para ler um número inteiro positivo, n, e escrever todos os números inteiros de 1 a

Leia mais

Probabilidade. Contagem

Probabilidade. Contagem Probabilidade Contagem Problema da Contagem no Estudo da Probabilidade Conforme definição clássica, podemos determinar uma probabilidade calculando a relação entre o total de eventos de sucesso e o total

Leia mais

ÁRVORE RUBRO- NEGRA. Prof. André Backes. Também conhecida como árvore vermelhopreto

ÁRVORE RUBRO- NEGRA. Prof. André Backes. Também conhecida como árvore vermelhopreto ÁRVORE RUBRO- NEGR Prof. ndré Backes Árvore rubro-negra 2 Também conhecida como árvore vermelhopreto ou red-black Tipo de árvore binária balanceada Originalmente criada por Rudolf Bayer em 1972 Chamadas

Leia mais

Área que visa determinar a complexidade (custo) de um algoritmo, com isso é possível:

Área que visa determinar a complexidade (custo) de um algoritmo, com isso é possível: Área que visa determinar a complexidade (custo) de um algoritmo, com isso é possível: Comparar algoritmos: existem algoritmos que resolvem o mesmo tipo de problema. Determinar se o algoritmo é ótimo :

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

Roteiro Prático Nº 13 Recursividade

Roteiro Prático Nº 13 Recursividade UNIVERSIDADE FEDERAL DE ITAJUBÁ UNIFEI CAMPUS ITABIRA BAC004 TÉCNICAS DE PROGRAMAÇÃO Professores: Claudia, Denílson, Fabiana, Fernando, Juliano, Natália, Raquel, Rodrigo, Sandro e Walter Roteiro Prático

Leia mais

Lista de Exercícios sobre Recursividade

Lista de Exercícios sobre Recursividade Lista de Exercícios sobre Recursividade 1) Dado os algoritmos recursivos abaixo, apresente suas funções de complexidade de tempo. a) void Pesquisa(int n) if (n > 1) Inspecione n*n*n elementos; // custo

Leia mais

Métodos de Ordenação

Métodos de Ordenação Métodos de Ordenação Conceitos básicos sobre ordenação Ordenar corresponde ao processo de rearranjar um conjunto de objetos em uma ordem específica. Objetivo da ordenação: facilitar a recuperação posterior

Leia mais

PESQUISA OPERACIONAL. UNIDADE 1 Introdução à Pesquisa Operacional. Prof. Me. Carlos Guimarães

PESQUISA OPERACIONAL. UNIDADE 1 Introdução à Pesquisa Operacional. Prof. Me. Carlos Guimarães PESQUISA OPERACIONAL UNIDADE 1 Introdução à Pesquisa Operacional Prof. Me. Carlos Guimarães Objetivo Introduzir o tema Pesquisa Operacional por meio da apresentação: Da sua origem; Das sociedades profissionais

Leia mais

Árvores AVL. Estrutura de Dados II Jairo Francisco de Souza

Árvores AVL. Estrutura de Dados II Jairo Francisco de Souza Árvores AVL Estrutura de Dados II Jairo Francisco de Souza Introdução As árvores binárias de pesquisa são projetadas para um acesso rápido à informação. Idealmente a árvore deve ser razoavelmente equilibrada

Leia mais

Palavras-chave: problema do corte de estoque, reaproveitamento das sobras, métodos heurísticos.

Palavras-chave: problema do corte de estoque, reaproveitamento das sobras, métodos heurísticos. INVESTIGANDO O PROBLEMA DO CORTE DE ESTOQUE: COMO REAPROVEITAR AS SOBRAS Maraisa Aparecida Dias Fernandes, maraisa.adf@hotmail.com Thiago Alves de Queiroz, th.al.qz@catalao.ufg.br Resumo: O problema de

Leia mais

Resolução de Problemas. Hugo Barros

Resolução de Problemas. Hugo Barros Resolução de Problemas Hugo Barros Resolução de Problemas Tópicos Conceitos Básicos Espaço de Estados Resolução de Problemas Dedica-se ao estudo e elaboração de algoritmos, capazes de resolver, por exemplo,

Leia mais

de palavras cruzadas

de palavras cruzadas 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

Leia mais

Fundamentos de Algoritmos (5175/31)

Fundamentos de Algoritmos (5175/31) UEM/CTC Departamento de Informática Curso: Ciência da Computação Professor: Flávio Rogério Uber Fundamentos de Algoritmos (5175/31) Material Original: Prof. Yandre Maldonado e Gomes da Costa (UEM/DIN)

Leia mais

Algoritmos I Aula 8 Estrutura de controle: seleção

Algoritmos I Aula 8 Estrutura de controle: seleção Algoritmos I Aula 8 Estrutura de controle: seleção Professor: Max Pereira http://paginas.unisul.br/max.pereira Ciência da Computação Operadores Lógicos Os operadores lógicos retornam verdadeiro (V) ou

Leia mais

Lista de Exercícios Programação Inteira. x 2 0 e inteiros.

Lista de Exercícios Programação Inteira. x 2 0 e inteiros. Lista de Exercícios Programação Inteira ) Resolva os problemas a seguir usando o método B&B a) Max z = 5 x + 2 y s.a x + y 2 x + y 5 x, y 0, x e y inteiros b) Max z = 2 x + y s.a x + 2y 0 x + y 25 x, y

Leia mais

Filtros de Média Movente

Filtros de Média Movente Processamento Digital de Sinais Filtros de Média Movente Prof. Dr. Carlos Alberto Ynoguti Características É o filtro ótimo para a tarefa de remover ruído aleatório de um sinal, e manter uma resposta a

Leia mais

Universidade Federal de Uberlândia. Programa de Mestrado em Ciência da Computação. Solução da Primeira Prova de Data Mining - 25/10/2006

Universidade Federal de Uberlândia. Programa de Mestrado em Ciência da Computação. Solução da Primeira Prova de Data Mining - 25/10/2006 Universidade Federal de Uberlândia Programa de Mestrado em Ciência da Computação Solução da Primeira Prova de Data Mining - 25/10/2006 Questão 1 (Valor = 2,5 pontos) Considere o seguinte banco de dados

Leia mais

Classificação e Pesquisa de Dados. Aula 23 Organização de Arquivos: Arquivos Indexados, Diretos e Arquivos Invertidos

Classificação e Pesquisa de Dados. Aula 23 Organização de Arquivos: Arquivos Indexados, Diretos e Arquivos Invertidos Classificação e Pesquisa de Dados Aula 23 Organização de Arquivos: Arquivos Indexados, Diretos e Arquivos Invertidos UFRGS INF1124 Arquivo indexado - AI Indicação de uso Baixa freqüência de acessos seqüenciais

Leia mais

Programação de Computadores I Dados, Operadores e Expressões PROFESSORA CINTIA CAETANO

Programação de Computadores I Dados, Operadores e Expressões PROFESSORA CINTIA CAETANO Programação de Computadores I Dados, Operadores e Expressões PROFESSORA CINTIA CAETANO Dados em Algoritmos Quando escrevemos nossos programas, trabalhamos com: Dados que nós fornecemos ao programa Dados

Leia mais

Teoria dos Grafos Aula 6

Teoria dos Grafos Aula 6 Teoria dos Grafos Aula 6 Aula passada Busca em grafos Busca em largura (BFS Breadth First Search) Propriedades Aula de hoje BFS implementação Complexidade Busca em profundidade (DFS) Conectividade, componentes

Leia mais

Inteligência Artificial. Conceitos Gerais

Inteligência Artificial. Conceitos Gerais Inteligência Artificial Conceitos Gerais Inteligência Artificial - IA IA é um campo de estudo multidisciplinar e interdisciplinar, que se apóia no conhecimento e evolução de outras áreas do conhecimento.

Leia mais

Estudo e Implementação de Algoritmos de Roteamento sobre Grafos em um Sistema de Informações Geográficas

Estudo e Implementação de Algoritmos de Roteamento sobre Grafos em um Sistema de Informações Geográficas Estudo e Implementação de Algoritmos de Roteamento sobre Grafos em um Sistema de Informações Geográficas RUDINI MENEZES SAMPAIO 1 HORÁCIO HIDEKI YANASSE 2 1 UFLA Universidade Federal de Lavras DCC Departamento

Leia mais

Algoritmos e Estruturas de Dados I

Algoritmos e Estruturas de Dados I Algoritmos e Estruturas de Dados I Prof. Daniel M. Martin (daniel.martin@ufabc.edu.br) Aula 10 (Baseada nos slides do Prof. André Balan) Recursão Recursão Da wikipedia: A recursão é o processo pelo qual

Leia mais

I. Correção de Algoritmos Não-Recursivos

I. Correção de Algoritmos Não-Recursivos I. Correção de Algoritmos Não-Recursivos Nos exercícios a seguir, você deverá demonstrar a correção dos algoritmos por meio dos conceitos vistos nos slides da Aula 03. 1) Prove que o seguinte algoritmo

Leia mais

SOLUÇÕES HEURÍSTICAS PARA O JOGO DE DAMAS

SOLUÇÕES HEURÍSTICAS PARA O JOGO DE DAMAS Universidade Federal do Tocantins SOLUÇÕES HEURÍSTICAS PARA O JOGO DE DAMAS Diogo Rigo de Brito Guimarães Alexandre Tadeu Rossini da Silva Objetivo Implementar soluções heurísticas para o Jogo de Damas

Leia mais

UML. Rodrigo Leite Durães.

UML. Rodrigo Leite Durães. UML Rodrigo Leite Durães. rodrigo_l_d@yahoo.com.br O que é Análise de Software? UML: É o estágio de um sistema que captura os requisitos e o domínio do problema, focalizando no que deve ser feito, não

Leia mais

Análise e Implementação de Algoritmos para o Roteamento de Veículos

Análise e Implementação de Algoritmos para o Roteamento de Veículos Análise e Implementação de Algoritmos para o Roteamento de Veículos Milton Roberto Heinen 1 1 Universidade do Vale do Rio dos Sinos (UNISINOS) Mestrado em Computação Aplicada CEP 93022-000 - São Leopoldo

Leia mais

4. COMBINATÓRIA BÁSICA. Combinatória: ramo da matemática que trata de arranjos de objetos (configurações satisfazendo propriedades específicas).

4. COMBINATÓRIA BÁSICA. Combinatória: ramo da matemática que trata de arranjos de objetos (configurações satisfazendo propriedades específicas). Combinatória básica Introdução INTRODUÇÃO 4. COMBINATÓRIA BÁSICA Introdução Regra da soma e do produto Modelo de amostragem Modelo de distribuição Modelo de equação Identidades combinatórias Coeficientes

Leia mais

Quicksort Letícia Rodrigues Bueno

Quicksort Letícia Rodrigues Bueno Quicksort Letícia Rodrigues Bueno UFABC Quicksort Legenda: pivô; 1 a partição: ; 2 a partição: Quicksort Legenda: pivô; 1 a partição: ; 2 a partição: Quicksort Legenda: pivô; 1 a partição: ; 2 a partição:

Leia mais

Teoria dos Grafos Aula 23

Teoria dos Grafos Aula 23 Teoria dos Grafos Aula 23 Aula passada Apresentação de trabalhos Discussão da prova Subset sum Problema da mochila Aula de hoje Caminho mais curto entre todos os pares Algortimo de Floyd Warshall Programação

Leia mais

Sobre o Professor Dr. Sylvio Barbon Junior

Sobre o Professor Dr. Sylvio Barbon Junior 5COP096 Teoria da Computação Aula 1 Apresentação da Disciplina e Revisão de Conceitos Prof. Dr. Sylvio Barbon Junior 1 Sobre o Professor Dr. Sylvio Barbon Junior 5COP096 Teoria da Computação Formação:

Leia mais

MC102 - Algoritmos e programação de computadores. Aula 16: Busca e Ordenação em vetores

MC102 - Algoritmos e programação de computadores. Aula 16: Busca e Ordenação em vetores MC102 - Algoritmos e programação de computadores Aula 16: Busca e Ordenação em vetores Busca Dada uma coleção de n elementos, pretende-se saber se um determinado elemento valor está presente nessa coleção.

Leia mais

Árvore Binária de Busca Ótima

Árvore Binária de Busca Ótima MAC 5710 - Estruturas de Dados - 2008 Referência bibliográfica Os slides sobre este assunto são parcialmente baseados nas seções sobre árvore binária de busca ótima do capítulo 4 do livro N. Wirth. Algorithms

Leia mais

Algoritmos 2 - Introdução

Algoritmos 2 - Introdução DAINF - Departamento de Informática Algoritmos 2 - Introdução Prof. Alex Kutzke (http://alex.kutzke.com.br/courses) 19 de Agosto de 2015 Slides adaptados do material produzido pelo Prof. Rodrigo Minetto

Leia mais

Python: Recursão. Claudio Esperança

Python: Recursão. Claudio Esperança Python: Recursão Claudio Esperança Recursão É um princípio muito poderoso para construção de algoritmos A solução de um problema é dividido em Casos simples: São aqueles que podem ser resolvidos trivialmente

Leia mais

ESTRUTURA DE DADOS E ALGORITMOS ÁRVORES BALANCEADAS. Cristina Boeres

ESTRUTURA DE DADOS E ALGORITMOS ÁRVORES BALANCEADAS. Cristina Boeres ESTRUTURA DE DADOS E ALGORITMOS ÁRVORES BALANCEADAS Cristina Boeres Árvore Binária - altura máxima Seja a árvore A formada com as seguintes inserções! 1, 2, 3, 4, 5, 6 e 7 1 2 3 4! Pior caso: O(n) 5 6

Leia mais

MÓDULO 3 - PROBLEMAS DE COBERTURAS DE ARCOS E NÓS

MÓDULO 3 - PROBLEMAS DE COBERTURAS DE ARCOS E NÓS MÓULO 3 - PROBLEMAS E COBERTURAS E ARCOS E NÓS 1. CONCEITOS INICIAIS Área contida na Pesquisa Operacional. Pode ser considerada como uma teoria baseada na interligação de pontos e linhas, utilizada principalmente

Leia mais

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem Python

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem Python Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem Python Exercícios: Funções 1. Crie uma função que recebe como parâmetro um número

Leia mais

2. A figura a seguir ilustra várias relações binárias em Quais são funções? Dentre as que são funções, quais as sobrejetivas? E quais as injetivas?

2. A figura a seguir ilustra várias relações binárias em Quais são funções? Dentre as que são funções, quais as sobrejetivas? E quais as injetivas? Seção 4.3 Funções 199 Exercícios 4.3 1. A figura a seguir representa uma função. a. Qual seu domínio? Qual seu contradomínio? Qual o conjunto imagem? b. Qual a imagem de 5? E de 8? c. Quais as pré-imagens

Leia mais

Recursão e Back-Tracking

Recursão e Back-Tracking Recursão e Back-Tracking Fernando Silva & Luís Lopes DCC-FCUP Estruturas de Dados Recursão Uma função diz-se recursiva quando se chama a si própria, directa ou indirectamente. A recursão: à semelhança

Leia mais

7. Introdução à Complexidade de Algoritmos

7. Introdução à Complexidade de Algoritmos 7. Introdução à Complexidade de Algoritmos Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 7. Introdução à Complexidade de Algoritmos Estruturas de Dados 1 / 1 Análise de Algoritmos

Leia mais

Subsequência comum mais longa Em inglês, Longest Common Subsequence (LCS)

Subsequência comum mais longa Em inglês, Longest Common Subsequence (LCS) Programação Dinâmica Subsequência comum mais longa Em inglês, Longest Common Subsequence (LCS) Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 23 Longest Common Subsequence (LCS) Dadas duas sequências,

Leia mais

Resolução de Problemas

Resolução de Problemas Resolução de Problemas 1 Agente de Resolução de Problemas (1/2) 2 O agente reativo Escolhe suas ações com base apenas nas percepções atuais não pode pensar no futuro, não sabe aonde vai 4 5 8 1 6 7 2 3?

Leia mais

5COP096 TeoriadaComputação

5COP096 TeoriadaComputação Sylvio 1 Barbon Jr barbon@uel.br 5COP096 TeoriadaComputação Aula 12 Prof. Dr. Sylvio Barbon Junior Sumário - Árvore Geradora Mínima - Teorema pare reconhecer arestas seguras; - Algoritmo de Prim; - Algoritmo

Leia mais

Distorções Dinâmicas no Tempo & Pesquisa. Distorção dinâmica no tempo Pesquisa Algoritmos gráficos de pesquisa Algoritmos de programação dinâmica

Distorções Dinâmicas no Tempo & Pesquisa. Distorção dinâmica no tempo Pesquisa Algoritmos gráficos de pesquisa Algoritmos de programação dinâmica Distorções Dinâmicas no Tempo & Pesquisa Distorção dinâmica no tempo Pesquisa Algoritmos gráficos de pesquisa Algoritmos de programação dinâmica 1 Casamento de Template Baseado em Palavra Medida de Característica

Leia mais

ALGORITMOS em linguagem C

ALGORITMOS em linguagem C ALGORITMOS em linguagem C Paulo Feofiloff Instituto de Matemática e Estatística Universidade de São Paulo Campus/Elsevier. Algoritmos em linguagem C Paulo Feofiloff editora Campus/Elsevier, 2009 www.ime.usp.br/

Leia mais

5COP096 TeoriadaComputação

5COP096 TeoriadaComputação Sylvio 1 Barbon Jr barbon@uel.br 5COP096 TeoriadaComputação Aula 14 Prof. Dr. Sylvio Barbon Junior Sumário - Problemas Exponenciais - Algoritmos Exponenciais usando Tentativa e Erro - Heurísticas para

Leia mais

IN={0, 1, 2, 3, 4, 5,...}

IN={0, 1, 2, 3, 4, 5,...} ALUNO(A) AULA 001 MATEMÁTICA DATA 18 / 10 /2013 PROFESSOR: Paulo Roberto Weissheimer AULA 001 - DE MATEMÁTICA Conjunto dos números naturais (IN) IN={0, 1, 2, 3, 4, 5,...} CONJUNTOS NUMÉRICOS Um subconjunto

Leia mais

Textos de apoio às aulas práticas. Jaime Ramos, Francisco Miguel Dionísio

Textos de apoio às aulas práticas. Jaime Ramos, Francisco Miguel Dionísio Computação e Programação Textos de apoio às aulas práticas Jaime Ramos, Francisco Miguel Dionísio DMIST, Dezembro de 2010 Parte I MATLAB 1 Capítulo 1 Exercícios preliminares 1. Defina a função conta divisores

Leia mais

FACULDADE CAMPO LIMPO PAULISTA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto a Análise de Algoritmos I Lista de Exercícios 1

FACULDADE CAMPO LIMPO PAULISTA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto a Análise de Algoritmos I Lista de Exercícios 1 FACULDADE CAMPO LIMPO PAULISTA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO Projeto a Análise de Algoritmos I Lista de Exercícios 1 Prof. Osvaldo. 1. Descreva alguns problemas associados ao emprego de metodologias

Leia mais

Preenchimento de Polígonos

Preenchimento de Polígonos Preenchimento de Polígonos SCC0250 - Computação Gráca Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação (ICMC) Universidade

Leia mais

Algoritmo Genético. Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto

Algoritmo Genético. Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto Algoritmo Genético Inteligência Artificial Professor: Rosalvo Ferreira de Oliveira Neto Estrutura 1. Introdução 2. Conceitos Básicos 3. Aplicações 4. Algoritmo 5. Exemplo Introdução São técnicas de busca

Leia mais

Otimização de Sistemas Hidrotérmicos por Enxame de Partículas: Uma Abordagem Orientada a Objetos

Otimização de Sistemas Hidrotérmicos por Enxame de Partículas: Uma Abordagem Orientada a Objetos Otimização de Sistemas Hidrotérmicos por Enxame de Partículas: Uma Abordagem Orientada a Objetos Gelson da Cruz JUNIOR 2, Cassio Dener Noronha VINHAL 3 Lauro Ramon GOMIDES 1, Gelson da Cruz JUNIOR 2, Cassio

Leia mais

Compiladores. Introdução à Compiladores

Compiladores. Introdução à Compiladores Compiladores Introdução à Compiladores Cristiano Lehrer, M.Sc. Introdução (1/2) O meio mais eficaz de comunicação entre pessoas é a linguagem (língua ou idioma). Na programação de computadores, uma linguagem

Leia mais

Árvores balanceadas. Aleardo Manacero Jr.

Árvores balanceadas. Aleardo Manacero Jr. Árvores balanceadas Aleardo Manacero Jr. Árvores Balanceadas Para que uma árvore seja, de fato, um mecanismo eficiente, é preciso que os seus elementos estejam distribuídos de forma relativamente homogênea

Leia mais

Algoritmos e Programação de Computadores

Algoritmos e Programação de Computadores Algoritmos e Programação de Computadores Instituto de Computação UNICAMP Primeiro Semestre de 2013 Roteiro 1 Força Bruta 2 Backtracking 3 Branch and Bound Instituto de Computação (UNICAMP) MC102 Primeiro

Leia mais

Introdução à Lógica de Programação

Introdução à Lógica de Programação Sistemas Operacionais e Introdução à Programação Introdução à Lógica de Programação 1 Resolução de problemas usando computador Computador: ferramenta para processamento automático de dados Processamento

Leia mais

Uma recorrência é uma equação que descreve uma função em termos do seu valor em entradas menores

Uma recorrência é uma equação que descreve uma função em termos do seu valor em entradas menores Uma recorrêcia é uma equação que descreve uma fução em termos do seu valor em etradas meores T( ) O( 1) T( 1) 1 se 1 se 1 Útil para aálise de complexidade de algoritmos recursivos ou do tipo dividir para

Leia mais

AULA: Introdução à Informática I

AULA: Introdução à Informática I Campus Muriaé Professor: Luciano Gonçalves Moreir Disciplina: Informática Aplicada I AULA: Introdução à Informática I O que é Informática? Pode dizer-se que informática é ciência que estuda o processamento

Leia mais

Um Algoritmo Genético para o Problema de Roteamento de Veículos com Janelas de Tempo

Um Algoritmo Genético para o Problema de Roteamento de Veículos com Janelas de Tempo Um Algoritmo Genético para o Problema de Roteamento de Veículos com Janelas de Tempo Francisco Henrique de Freitas Viana Pontifícia Universidade Católica do Rio de Janeiro PUC-Rio Departamento de Informática

Leia mais

ST364 Estruturas de Dados Grupo 4 apresenta: Seminário MERGESORT Blog - http://grupomergesort.blogspot.com

ST364 Estruturas de Dados Grupo 4 apresenta: Seminário MERGESORT Blog - http://grupomergesort.blogspot.com ST364 Estruturas de Dados Grupo 4 apresenta: Seminário MERGESORT Blog - http://grupomergesort.blogspot.com Apresentação do Grupo André Pereira Giacon Dandara Contieri Folis Diego Narciso Hernandes Fernanda

Leia mais

Maratona de Programação da SBC 2016

Maratona de Programação da SBC 2016 Maratona de Programação da SBC 2016 Caderno de soluções A - Andando no tempo Para voltar para o exato ponto de saída, é necessário que ocorra alguma das alternativas: dois créditos são iguais ou um crédito

Leia mais

Questão 1. Nome para o arquivo fonte questao1.c

Questão 1. Nome para o arquivo fonte questao1.c Questão 1 Nome para o arquivo fonte questao1.c Construa um programa, na linguagem de programação C, que receba através da entrada padrão um número natural, o qual indicará quantas operações de divisão

Leia mais

Estruturas de Dados. Revisão de Funções e Recursão. Agradecimentos

Estruturas de Dados. Revisão de Funções e Recursão. Agradecimentos Estruturas de Dados Revisão de Funções e Recursão Prof. Ricardo J. G. B. Campello Agradecimentos Parte dos slides a seguir são adaptações dos originais em Pascal gentilmente cedidos pelo Prof. Rudinei

Leia mais

Aprendizado por Árvores de Decisão

Aprendizado por Árvores de Decisão Universidade Federal de Santa Maria Departamento de Eletrônica e Computação Prof. Cesar Tadeu Pozzer Disciplina de Programação de Jogos 3D E-mail: pozzer@inf.ufsm.br Período: 2006/01 Aprendizado por Árvores

Leia mais

Inteligência Artificial. Prof. Tiago A. E. Ferreira Aula 5 Resolvendo Problemas

Inteligência Artificial. Prof. Tiago A. E. Ferreira Aula 5 Resolvendo Problemas Inteligência Artificial Prof. Tiago A. E. Ferreira Aula 5 Resolvendo Problemas 1 Agente solucionador de problemas (guiado por objetivo) O agente reativo Escolhe suas ações com base apenas nas percepções

Leia mais

Complexidade de Algoritmos

Complexidade de Algoritmos 60 Desempenho 50 40 30 20 Algoritmo1 Algoritmo2 Algoritmo3 10 0 Complexidade de Algoritmos INFORMÁTICA BÁSICA Prof. Demétrios Coutinho C a m p u s P a u d o s F e r r o s D i s c i p l i n a d e A l g

Leia mais

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar - Aula 1-1. A CAMADA DE ENLACE DE DADOS (Parte 1) Relembrando as aulas do semestre passado quando estudamos os modelos de referência, lembramos que a Camada de Enlace de Dados é a camada responsável pela

Leia mais

Árvores B. Prof. Flávio Humberto Cabral Nunes

Árvores B. Prof. Flávio Humberto Cabral Nunes Árvores B Prof. Flávio Humberto Cabral Nunes Conteúdo 1. Introdução 2. Busca 3. Inserção 4. Remoção 5. B* 6. B+ Capítulo: 8 (APOSTILA). Introdução Em muitas aplicações, a tabela considerada é muito grande

Leia mais

Programação II Aula 07

Programação II Aula 07 Engenharias de Produção e Petróleo Programação II Aula 07 Adan Lucio P. Rodovia BR 101 Norte, Km. 60, Bairro Litorâneo, CEP 29932-540, São Mateus ES, Tel.: +55 (27) 3312-1511 - CEUNES Métodos de Ordenação

Leia mais

Exercícios: Comandos de Repetição

Exercícios: Comandos de Repetição Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Comandos de Repetição 1. Faça um programa que determine o mostre os

Leia mais

Árvore AVL A seguir estudaremos árvore AVL e árvore 234. Os slides que versão sobre as árvores retro aludidas foram baseados nos slides gerados pela

Árvore AVL A seguir estudaremos árvore AVL e árvore 234. Os slides que versão sobre as árvores retro aludidas foram baseados nos slides gerados pela 488 Árvore AVL A seguir estudaremos árvore AVL e árvore 234. Os slides que versão sobre as árvores retro aludidas foram baseados nos slides gerados pela professora Elisa Maria Pivetta Cantarelli intitulados

Leia mais

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Grafos Enumeração de Passeios/Caminhos O processo associado à enumeração de caminhos de um grafo/dígrafo é semelhante ao processo de contagem com a diferença de que usaremos uma matriz de

Leia mais

Módulo Divisibilidade. Conjunto e Quantidade de Divisores. 6 ano E.F. Professores Cleber Assis e Tiago Miranda

Módulo Divisibilidade. Conjunto e Quantidade de Divisores. 6 ano E.F. Professores Cleber Assis e Tiago Miranda Módulo Divisibilidade Conjunto e Quantidade de Divisores 6 ano E.F. Professores Cleber Assis e Tiago Miranda Divisibilidade Conjunto e Quantidade de Divisores 1 Exercícios Introdutórios Exercício 1. de:

Leia mais