Paradigmas de Projetos de Algoritmos
|
|
- João Guilherme Meneses da Rocha
- 6 Há anos
- Visualizações:
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 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 maisComplexidade 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 maisProjeto 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 maisParadigmas 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 maisResoluçã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 maisGrafos 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 maisProblema 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 maisQuantidade 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 maisAula 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 mais6. 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 maisO 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 maisTeoria 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 mais04 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 maisDivisã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 maisEstruturas 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 maisAlgoritmos 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 maisTeoria 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 maisMé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 maisAlgoritmos 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 maisINSTITUTO 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 maisA 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 maisFernando 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 maisTratamento 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 maisComplexidade 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 maisUniversidade 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 maisESTRUTURAS 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 maisProbabilidade. 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- 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: Comparar algoritmos: existem algoritmos que resolvem o mesmo tipo de problema. Determinar se o algoritmo é ótimo :
Leia maisBCC202 - 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 maisRoteiro 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 maisLista 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 maisMé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 maisPESQUISA 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 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 maisPalavras-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 maisResoluçã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 maisde 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 maisFundamentos 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 maisAlgoritmos 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 maisLista 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 maisFiltros 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 maisUniversidade 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 maisClassificaçã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 maisProgramaçã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 maisTeoria 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 maisInteligê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 maisEstudo 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 maisAlgoritmos 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 maisI. 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 maisSOLUÇÕ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 maisUML. 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 maisAná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 mais4. 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 maisQuicksort 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 maisTeoria 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 maisSobre 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 maisMC102 - 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
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 maisAlgoritmos 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 maisPython: 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 maisESTRUTURA 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 maisMÓ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 maisUniversidade 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 mais2. 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 maisRecursã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 mais7. 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 maisSubsequê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 maisResoluçã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 mais5COP096 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 maisDistorçõ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 maisALGORITMOS 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 mais5COP096 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 maisIN={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 maisTextos 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 maisFACULDADE 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 maisPreenchimento 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 maisAlgoritmo 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 maisOtimizaçã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 maisCompiladores. 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 Para que uma árvore seja, de fato, um mecanismo eficiente, é preciso que os seus elementos estejam distribuídos de forma relativamente homogênea
Leia maisAlgoritmos 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 maisIntroduçã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 maisUma 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 maisAULA: 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 maisUm 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 maisST364 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 maisMaratona 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 maisQuestã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 maisEstruturas 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 maisAprendizado 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 maisInteligê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 maisComplexidade 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 maisTRANSMISSÃ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 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 maisProgramaçã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 maisExercí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
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 maisTeoria 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 maisMó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