Tópicos em Algoritmos. André Guedes

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

Download "Tópicos em Algoritmos. André Guedes"

Transcrição

1 Tópicos em Algoritmos André Guedes 31 de agosto de 2017

2 Sumário 1 Aulas 1 2 Introdução 2 3 Problemas Computacionais e Algoritmos Definições Correção e eficiência Classes de problemas Classes de algoritmos Espaço de Busca e Enumeração 7 5 Backtracking 8 6 Algoritmos gulosos 9 7 Programação dinâmica Problemas Links Branch-and-bound 11 9 Processamento de textos Trabalhos 13 A Problemas 14 A.1 Introdução i

3 A.2 Espaço de Busca e Enumeração A.3 Backtracking A.4 Algoritmos Gulosos A.5 Programação Dinâmica A.5.1 Outros problemas ii

4 Capítulo 1 Aulas 1. 03/08/ introdução (problemas, algoritmos etc) e subsequência máxima (e variações) 1

5 Capítulo 2 Introdução Objetivo: Tratar de assuntos referentes a algoritmos avançados com análises, implementações e testes para que os alunos tenham mais prática no desenvolviento e análise de algoritmos. Avaliação: Trabalhos práticos de análise e implementação. Serão 5 ou 6 trabalhos. Programa: Problemas Computacionais e Algoritmos Definições, Complexidade Computacional Classes de Problemas, Classes de Algoritmos; Correção e Eficiência, Espaço de Busca e Enumeração Técnicas de Algoritmos Backtracking; Algoritmos gulosos; Programação dinâmica; Branch-and-bound; 2

6 Metodologia: Dividir e Conquistar; Exemplos de problemas e soluções. Aulas teóricas sobre algoritmos e análise. Leitura de trechos de livros e artigos. Trabalhos práticos. Ver problemas 1, 2 e 3. 3

7 Capítulo 3 Problemas Computacionais e Algoritmos 3.1 Definições Um problema computacional é um problema que pode ser formulado como uma relação entre um conjunto de entradas e um conjunto de saídas. Nesta relação cada entrada (instância) do problema tem um conjunto de possíveis saídas (respostas) associadas. Por exemplo, o problema de encontrar o mínimo elemento de um vetor. Para cada vetor dado como entrada, as saídas válidas são os elementos que são mínimos. Um problema computacional, portanto, é um problema estabelecido por uma descrição de suas possíveis entradas e suas respectivas saídas. Cada possível entrada de um problema computacional é chamada de uma instância do problema. Uma saída correspondente a uma instância do problema é chamada de resposta daquela instância. Para ajudar, considere a seguinte definição. Definição 1. Dados a, b Z, o intervalo inteiro de a a b é o conjunto [a..b] dos inteiros entre a e b, isto é, Exemplo 1. [a..b] = {z Z a z b}. Mínimo de Vetor (minv) Instância: (v, a, b), onde v é um vetor indexado por [a..b], com a b. um índice m [a..b] tal que v[m] v[i] para todo i [a..b]. 4

8 Se v é dado por i v[i] , então (v, 1, 7) é uma instância do problema Mínimo de Vetor. 3 e 7 são respostas para a instância (v, 1, 7) do problema Mínimo de Vetor. (v, 4, 6) é uma instância do problema Mínimo de Vetor e 6 é uma resposta para a instância (v, 4, 6) do problema Mínimo de Vetor. Uma solução de um problema computacional é um algoritmo que recebe uma instância em devolve uma resposta válida. Cada problema computacional pode ter diversas soluções. Os problemas computacionais modelam problemas reais e as implementações dos algoritmos, que são soluções destes problemas, são as aplicações computacionais dos problemas reais. Portanto, estudar os problemas computacionais e suas soluções é uma atividade importante para quem quer ajudar a resolver problemas reais com o auxílio de computadores. 3.2 Correção e eficiência Para que uma aplicação computacional tenha sucesso é preciso que o algoritmo que ela implementa seja de fato uma solução do problema em questão e que seja eficiente. Além disso é esperado que o algoritmo esteja corretamente implementado. Esta última questão não é assunto para este texto e está mais relacionada com outras áreas da computação. Entretanto não pode ser ignorada. As duas primeiras questões, que chamaremos simplesmente de corretude e eficiência, são parte do nosso estudo de problemas computacionais e algoritmos. 3.3 Classes de problemas Existem diversos tipos de problemas computacionais e eles são classificados por diversos critérios. Os critérios que nos interessam por ora são: tipo (e tamanho) do conjunto de soluções (contra-domínio da relação binária); 5

9 3.4 Classes de algoritmos 6

10 Capítulo 4 Espaço de Busca e Enumeração Ver problemas 4 e 5. intervalos próprios - pdf bipartite permutation graphs - pub/ isaac.pdf permutações - s_algorithm AlgorithmsForGeneratingPermutationsAndCombinations-Notes.pdf - permutations 7

11 Capítulo 5 Backtracking 8

12 Capítulo 6 Algoritmos gulosos escrever as descrições dos problemas. mochila (caso particular), moedas (caso particular), intervalos sem intersecção, ainda moedas (porque e quando funciona), bin packing, Código de Huffmann. 9

13 Capítulo 7 Programação dinâmica escrever as descrições dos problemas. (*) There is an ordering on the subproblems, and a relation that shows how to solve a subproblem given the answers to smaller subproblems, that is, subproblems that appear earlier in the ordering. ([p. 171] Dasgupta, Papadimitriou, and Vazirani Algorithms (1 ed.). McGraw-Hill, Inc., New York, NY, USA.) 7.1 Problemas Multiplicação de matrizes. Moedas com quaisquer valores. Distância de edição. Mochila - O(nW ) 7.2 Links 1. dynamic-programming-from-novice-to-advanced/ 2. Ver problemas 24 e 25 10

14 Capítulo 8 Branch-and-bound 11

15 Capítulo 9 Processamento de textos 12

16 Capítulo 10 Trabalhos 1. Submatriz máxima de zeros (Problema 3). 2. Backtracking: Set Cover (Problema 14). 3. Revisão bibliográfica: dar um problema e os alunos buscam soluções (de um determinado tipo) na rede. Problema ainda não definido. 4. Enumeração: permutações bipartidas conexas, subconjuntos de tamanho k de um conjunto X e arranjos de tamanho k de um conjunto X. 5. Apresentações sobre dois problemas: Sequenciamento de texto e Ordenação de conjuntos consecutivos (Problemas 31 e 30). 13

17 Apêndice A Problemas Aqui segue uma lista com alguns problemas computacionais para serem trabalhados pelos alunos da disciplina de Tópicos em Algoritmos (CI811) do Programa de Pós-Graduação em Informática da UFPR. Esta lista ainda não está completa e pode ser alterada. Alguns problemas são simples e tem o objetivo de apresentar diferentes técnicas, outros são mais difíceis. (...) A.1 Introdução 1. [default,pr:subseqmax0]subsequência Máxima de 0 s Dada uma sequência de n 0 s e 1 s, S n = (d 1, d 2,..., d n ), queremos encontrar uma subsequência (consecutiva) máxima composta somente de 0 s, ou seja, encontrar m e k tais que d i = 0, para m i m+k 1 e k seja máximo. Subsequência Máxima de 0 s (subseqmax) Instância: Sequência de 0 s e 1 s de tamanho n, S n = (d 1, d 2,..., d n ). m e k tais que d i = 0, para m i m + k 1 e k seja máximo. Um problema mais simples é o problema de, dados uma sequência e 14

18 um k, encontrar uma subsequência com exatos k 0 s consecutivos. Subsequência de tamanho k de 0 s (subseqk) Instância: Sequência de 0 s e 1 s de tamanho n, S n = (d 1, d 2,..., d n ) e inteiro k. m tal que d i = 0, para m i m + k 1 ou não, caso não exista tal m. Seja M : N N, representando o tamanho da maior subsequência de 0 s começando em d i, definida por: M(i) = { 0, se i [1..n] ou d i 0, M(i + 1) + 1, se i [1..n] e d i = 0. E seja R : N N, representando o tamanho da maior subsequência de 0 s da sequência que começa em d i, definida por: R(i) = { 0, se i [1..n], max{m(i), R(i + 1)}, se i [1..n]. 2. [default,pr:subsqmaxcrescente]subsequência Máxima Crescente Dada uma sequência de n números inteiros, S n = (d 1, d 2,..., d n ), queremos encontrar uma subsequência (consecutiva) máxima crescente, ou seja, encontrar m e k tais que d i < d i+1, para m i m + k 2 e k seja máximo. Subsequência Máxima Crescente (subseqmaxcresc) Instância: Sequência de 0 s e 1 s de tamanho n, S n = (d 1, d 2,..., d n ). m e k tais que d i < d i+1, para m i m + k 2 e k seja máximo. 3. [default,pr:submatmax0]submatriz Máxima de 0 s Dada uma matriz n m de 0 s e 1 s, A = a 1,1 a 1,2 a 1,m a 2,1 a 2,2 a 2,m a n,1 a n,2 a n,m 15

19 queremos encontrar uma submatriz (consecutiva) máxima composta somente de 0 s, ou seja, encontrar p, q, r e s tais que a i,j = 0, para p i p + r 1, q j q + s 1 e r s seja máximo. Submatriz Máxima de 0 s (submatmax) Instância: Matriz n m de 0 s e 1 s, [a i,j ]. p, q, r e s tais que a i,j = 0, para p i p + r 1, q j q + s 1 e k l seja máximo. 16

20 A.2 Espaço de Busca e Enumeração 4. [default,pr:passeiocavalo]passeio do cavalo Dado um tabuleiro n n, será possível que um cavalo de xadrez (usando seus movimentos válidos) poderia sair da casa na linha 1, coluna 1 passar por todas as outras casas, sem repetir nenhuma e voltar ao início? Passeio do cavalo de xadrez (cavalo) Instância: Um inteiro n. Se é possível um passeio do cavalo, usando apenas seus movimentos de xadrez, em um tabuleiro n n, que passe por todas as casas sem repetir e volte para a primeira. 5. [default,pr:mochila]problema da Mochila Problema da Mochila (knapsack) Instância: Um número natural n, um número real D e duas funções, w : {1, 2,..., n} R e v : {1, 2,..., n} R. Um conjunto X {1, 2,..., n} tal que i X w(i) D e i X v(i) seja máximo. 6. [default,pr:enum-subconj]enumeração de subconjuntos Dado um conjunto X, como enumerar todos os seus subconjuntos? opção 1: Cada nó representa um subconjunto de X. Comece com o conjunto vazio ( ) como nó raiz. Gere cada filho de um nó incluindo um único elemento. Se os elementos são ordenados e só são incluídos elementos que estão a direita do último incluído, então não acontecem repetições e temos uma árvore. Cada nível tem conjuntos de um tamanho. opção 2: Cada nó representa um conjunto de subconjuntos de X. 17

21 Cada nó i tem dois conjuntos P i e Q i, ambos subconjuntos de X. Os subconjuntos de X representados pelo no i são dados pelo conjunto abaixo {R = S Q i S P i }. Cada nó tem no máximo dois filhos (e i e d i ). Um elemento de P i é escolhido como pivô, x i. Os filhos são gerados como se segue: P ei = P di = P i {x i }, Q ei = Q i, Q di = Q i {x i }. 7. [default,pr:enum-perm]enumeração de permutações Enumere todas as permutações de (1, 2, 3,..., n). 8. [default,pr:enum-interv]enumeração de intervalos próprios Enumere todas as permutações de (( () )) - n abre parênteses e n fecha parênteses - de tal forma que em qualquer prefixo tenha um número de abre parênteses maior ou igual que o número de fecha parênteses. 9. [default,pr:enum-perm-bip-conexo]enumeração de permutações bipartidas conexas Uma permutação π de um conjunto X é uma sequência (π(1),..., π( X )). Dizemos que uma permutação π de {1,..., n} é conexa se a sequência (π(1), π(2),..., π(n)) não pode ser descrita como uma concatenação de uma permutação de {1,..., k} com uma permutação de {(k+1),..., n}, para algun 1 k < n. A permutação (3, 2, 4, 1, 6, 5) é desconexa, pois é uma concatenação de (3, 2, 4, 1) e (6, 5) que são, respectivamente, permutações de {1, 2, 3, 4} e {5, 6} (portanto k = 4). Já a permutação (3, 1, 5, 2, 6, 4) é conexa. Perceba que nenhum prefixo de tamanho k < 6 contém todos os números de 1 a k. 18

22 Dizemos que uma permutação π de {1,..., n} é bipartida se existe uma bipartição (X, Y ) de {1,..., n} de forma que os elementos de cada parte (X e Y ) aparecem na ordem natural, ou seja, se (i, j X ou i, j Y ) e i < j então π 1 (i) < π 1 (j). A permutação (2, 4, 1, 3, 5, 6) é bipartida, pois X = {1, 3, 6} e Y = {2, 4, 5} formam uma bipartição de {1,..., 6} como descrito acima. Enumere todas as permutações de (1, 2, 3,..., n) que são bipartidas conexas. 10. [default,pr:enum-subconj-tam-k]enumeração de subconjuntos de tamanho fixo Dado um conjunto X e um inteiro k, enumere todos os subconjuntos de X de tamanho k. Ou seja, ( ) X = {S X S = k}. k 11. [default,pr:arranjos-x-k]enumeração de arranjos Dado um conjunto X e um inteiro k, um arranjo de tamanho k de X é uma sequência de tamanho k com elementos de X sem repetição. Dado um conjunto X e um inteiro k, enumere todos os arranjos de tamanho k de X. 19

23 A.3 Backtracking 12. Clique; 13. Coloração; 14. [default,pr:setcover]cobertura por conjuntos Cobertura por conjuntos (setcover) Instância: Um conjunto de n subconjuntos do conjunto U = {1, 2,..., m}, A 1, A 2,..., A n. Um conjunto X {1, 2,..., n} tal que i X A(i) = U e X seja mínimo. 20

24 A.4 Algoritmos Gulosos 15. mochila (caso particular); 16. moedas (caso particular) - ainda moedas: porque e quando funciona; 17. intervalos sem intersecção; 18. bin packing; 19. Código de Huffmann; 21

25 A.5 Programação Dinâmica 20. Multiplicação de matrizes; 21. Moedas com quaisquer valores; 22. Distância de edição; 23. Mochila - O(nW ); 24. [default,pr:linearpartition]linear Partition Problem (Skiena - pp ) Integer Partition without Rearrangement (partition) Instância: An arrangement S of nonnegative numbers {s 1,..., s n } and an integer k. Partition S into k or fewer ranges, to minimize the maximum sum over all the ranges, without reordering any of the numbers. 25. [default,pr:somadiscreta]melhor sequência de decisões d 1, d 2,..., d n são decisões, ou seja, d i {p 1, p 2,..., p k }, para todo i {1, 2,..., n}. O objetivo final é M. Queremos que n i=1 d i seja o mais próximo de M possível, ou seja, que M n i=1 d i seja mínimo. A.5.1 Outros problemas 26. Rolos de papel (bin packing unidiensional); 22

26 27. 8 Rainhas (e variações); 28. [default,pr:emparelhamento-minmax]emparelhamento de mínimo maior peso Emparelhamento de mínimo maior peso (emp-minmax) Instância: Dois conjuntos A e B, um conjunto de pares com um elemento de cada conjunto, R, e uma função w : R N. Subconjunto M R tal que max{w(e) e M} seja mínimo. 29. [default,pr:casamento-estavel]casamento Estável Casamento Estável (casamento) Instância: Dois conjuntos, A e B, tal que A = B = n, para cada elemento a A, uma função p a : {1,..., n} B e, para cada elemento b B, uma função p b : {1,..., n} A. Conjunto M A B tal que não [default,pr:conjuntos-consecutivos]ordenação de conjuntos consecutivos Dados n subconjuntos de um conjunto U, N 1, N 2,..., N n, encontre uma ordem (u 1, u 2,..., u m ) para os elementos de U de forma que, para 1 i n, os elementos de N i sejam consecutivos, caso seja possível. 31. [default,pr:sequenciamento]sequenciamento de texto Seja T uma sequência de dígitos decimais desconhecida. E sejam n subsequências de T, P 1, P 2,..., P n. Assumindo que as subsequências cobrem toda a sequência T e que existem intersecções entre subsequências consecutivas, reconstrua T, caso seja possível. Exemplo: P 1 =

27 P 2 = P 3 = Como P 1 4 P 3 (o final de P 1 e o início de P 3 coincidem em 4 dígitos), P 2 5 P 1 e P 3 1 P 1, temos T = pela concatenação P 2 P 1 P 3, já que a relação P 3 1 P 1 é fraca e pode ser descartada. 32. [default,pr:reducaotransitiva]redução Transitiva Redução transitiva (redtran) Instância: Uma ordem parcial (X, ). Uma relação binária (X, ) tal que o seu fecho transitivo seja igual a (X, ) e não exista outra relação binária menor com a mesma propriedade. 33. [default,pr:poset-to-sets]modelo de conjuntos para ordem parcial Modelo de conjuntos (modelconj) Instância: Uma ordem parcial (X, ). Um conjunto C de conjuntos tal que a ordem parcial (C, ) (ordem de inclusão de subconjuntos) seja isomorfa a ordem (X, ). 24

CI811 Tópicos em Algoritmos

CI811 Tópicos em Algoritmos CI811 Tópicos em Algoritmos Problemas 15 de junho de 2016 Aqui segue uma lista com alguns problemas computacionais para serem trabalhados pelos alunos da disciplina de Tópicos em Algoritmos (CI811) do

Leia mais

Rascunho. CI165 - Análise de algoritmos (rascunho alterado constantemente) André Guedes Departamento de Informática UFPR. 7 de dezembro de 2016

Rascunho. CI165 - Análise de algoritmos (rascunho alterado constantemente) André Guedes Departamento de Informática UFPR. 7 de dezembro de 2016 CI165 - Análise de algoritmos (rascunho alterado constantemente) André Guedes Departamento de Informática UFPR 7 de dezembro de 016 Sumário 1 Apresentação do Curso Problemas computacionais e algoritmos

Leia mais

Rascunho. CI165 - Análise de algoritmos (rascunho alterado constantemente) André Guedes Departamento de Informática UFPR. 11 de junho de 2017

Rascunho. CI165 - Análise de algoritmos (rascunho alterado constantemente) André Guedes Departamento de Informática UFPR. 11 de junho de 2017 CI165 - Análise de algoritmos (rascunho alterado constantemente) André Guedes Departamento de Informática UFPR 11 de junho de 017 Sumário 1 Apresentação do Curso Problemas computacionais e algoritmos 4

Leia mais

Problemas de Busca (a.k.a NP) - parte 2

Problemas de Busca (a.k.a NP) - parte 2 Problemas de Busca (a.k.a NP) - parte 2 André Vignatti DINF- UFPR Euler e Rudrata No verão de 1735 Leonhard Euler, o famoso matemático suíço, estava andando nas pontes da cidade de Königsberg, na Prússia

Leia mais

Projeto e Análise de Algoritmos

Projeto e Análise de Algoritmos Projeto e Análise de Algoritmos Aula 05 Técnicas de Projeto de Algoritmos (Programação Dinâmica) Edirlei Soares de Lima Estratégias de Projeto de Algoritmos Força Bruta (Brute Force)

Leia mais

Projeto e Análise de Algoritmos

Projeto e Análise de Algoritmos Projeto e Análise de Algoritmos Aula 04 Técnicas de Projeto de Algoritmos (Método Guloso) Edirlei Soares de Lima Estratégias de Projeto de Algoritmos Força Bruta (Brute Force) Dividir

Leia mais

Princípio da Multiplicação. > Corretude de Algoritmos Princípios de Contagem e Enumeração Computacional 0/18

Princípio da Multiplicação. > Corretude de Algoritmos Princípios de Contagem e Enumeração Computacional 0/18 Conteúdo 1 Corretude de Algoritmos 2 Princípios de Contagem e Enumeração Computacional Princípio da Multiplicação > Corretude de Algoritmos Princípios de Contagem e Enumeração Computacional 0/18 Corretude

Leia mais

Projeto e Análise de Algoritmos. Prof. Ruy Luiz Milidiú

Projeto e Análise de Algoritmos. Prof. Ruy Luiz Milidiú Projeto e Análise de Algoritmos Prof. Introdução 2 www.inf.puc-rio.br/~milidiu/inf2926 3 Resumo Objetivo Apresentar o enfoque adotado no curso para capacitação em Projeto e Análise de Algoritmos Sumário

Leia mais

Abordagens para Resolução de Problemas

Abordagens para Resolução de Problemas Abordagens para Resolução de Problemas UDESC - Universidade do Estado de Santa Catarina Departamento de Ciência da Computação CAL - Complexidade de Algoritmos Teodoro Alberto Borges Junior Abordagens para

Leia mais

BCC Projeto e Análise de Algoritmos Aula 0: Apresentação

BCC Projeto e Análise de Algoritmos Aula 0: Apresentação 1 BCC 241 - Projeto e Análise de Algoritmos Aula 0: Apresentação DECOM/UFOP 5º. Período - 2012/02 Anderson Almeida Ferreira BCC 241/2012-2 2 Objetivos do curso Dados dois algoritmos, compará-los quanto

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

BCC Projeto e Análise de Algoritmos Aula 0: Apresentação

BCC Projeto e Análise de Algoritmos Aula 0: Apresentação 1 BCC 241 - Projeto e Análise de Algoritmos Aula 0: Apresentação DECOM/UFOP 5º. Período - 2013/01 Anderson Almeida Ferreira BCC 241/2012-2 2 Objetivos do curso Dados dois algoritmos, compará-los quanto

Leia mais

TEORIA: 60 LABORATÓRIO: 0

TEORIA: 60 LABORATÓRIO: 0 Universidade Federal do ABC Rua Santa Adélia, 166 - Bairro Bangu - Santo André - SP - Brasil CEP 09.210-170 - Telefone/Fax: +55 11 4996-3166 1. CÓDIGO E NOME DA DISCIPLINA: BC1435 - Análise de 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

Melhores momentos AULA 24. Algoritmos p.906/953

Melhores momentos AULA 24. Algoritmos p.906/953 Melhores momentos AULA 24 Algoritmos p.906/953 Problemas polinomiais Analise de um algoritmo em um determinado modelo de computação estima o seu consumo de tempo e quantidade de espaço como uma função

Leia mais

Algoritmos Combinatórios: Introdução

Algoritmos Combinatórios: Introdução lucia@site.uottawa.ca UFSC, Fevereiro, 2010 Estruturas e Problemas Combinatórios Introdução a Algoritmos Combinatórios O que são: Estruturas Combinatórias? Algoritmos Combinatórios? Problemas Combinatórios?

Leia mais

Programação de Computadores II TCC

Programação de Computadores II TCC Programação de Computadores II TCC-00.174 Profs.: Leandro A. F. Fernandes (Turma A1) & Marcos Lage (Turma B1) (Turma A1) www.ic.uff.br/~laffernandes (Turma B1) www.ic.uff.br/~mlage Conteúdo: Material elaborado

Leia mais

Tópico 5 Algoritmos de Ordenação. Parte II - métodos de ordenação: counting sort, radix sort e bucket sort.

Tópico 5 Algoritmos de Ordenação. Parte II - métodos de ordenação: counting sort, radix sort e bucket sort. Tópico 5 Algoritmos de Ordenação Parte II - métodos de ordenação: counting sort, radix sort e bucket sort. 1 Árvore de Decisão Todos os algoritmos descritos anteriormente utilizam comparações para determinar

Leia mais

Complexidade de Algoritmos

Complexidade de Algoritmos Complexidade de Algoritmos Prof. Diego Buchinger diego.buchinger@outlook.com diego.buchinger@udesc.br Prof. Cristiano Damiani Vasconcellos cristiano.vasconcellos@udesc.br Abordagens para Resolução de Problemas

Leia mais

CIC 111 Análise e Projeto de Algoritmos II

CIC 111 Análise e Projeto de Algoritmos II CIC 111 Análise e Projeto de Algoritmos II Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá AULA 27 Square root algorithms Combining algorithms Integer partitions Mo s algorithm Square

Leia mais

AULA 15. Algoritmos p.600/637

AULA 15. Algoritmos p.600/637 AULA 15 Algoritmos p.600/637 Programação dinâmica CLRS 15.1 15.3 = recursão com tabela = transformação inteligente de recursão em iteração Algoritmos p.601/637 Programação dinâmica "Dynamic programming

Leia mais

Aula 20: Revisão Otimização Linear e Inteira Túlio A. M. Toffolo

Aula 20: Revisão Otimização Linear e Inteira Túlio A. M. Toffolo Aula 20: Revisão Otimização Linear e Inteira Túlio A. M. Toffolo http://www.toffolo.com.br BCC464 / PCC174 Departamento de Computação - UFOP Breve Revisão Programação Linear vs Programação Inteira Modelagem

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

Redução de Cook-Levin e Considerações Finais

Redução de Cook-Levin e Considerações Finais Redução de Cook-Levin e Considerações Finais André Vignatti DINF- UFPR Fechando o Ciclo de Reduções Nós reduzimos o SAT para diversos problemas de busca, como mostra a figura: Todos problemas NP CIRCUIT

Leia mais

Projeto e Análise de Algoritmos

Projeto e Análise de Algoritmos Projeto e Análise de Algoritmos Aula 02 Técnicas de Projeto de Algoritmos (Força Bruta) Edirlei Soares de Lima Tipos Importantes de Problemas Problemas de Ordenação: Reorganizar

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

MATEMÁTICA DISCRETA. Patrícia Ribeiro 2018/2019. Departamento de Matemática, ESTSetúbal 1 / 47

MATEMÁTICA DISCRETA. Patrícia Ribeiro 2018/2019. Departamento de Matemática, ESTSetúbal 1 / 47 1 / 47 MATEMÁTICA DISCRETA Patrícia Ribeiro Departamento de Matemática, ESTSetúbal 2018/2019 2 / 47 1 Combinatória 2 Aritmética Racional 3 3 / 47 Capítulo 3 4 / 47 não orientados Um grafo não orientado

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

Aula 13: Branch-and-bound

Aula 13: Branch-and-bound Aula 13: Branch-and-bound Otimização Linear e Inteira Túlio A. M. Toffolo http://www.toffolo.com.br BCC464/PCC174 2018/2 Departamento de Computação UFOP Previously... Modelagem em PI / Problemas Combinatórios

Leia mais

Programação Dinâmica I SCC0210 Algoritmos Avançados (2/2011) Lucas Schmidt Cavalcante

Programação Dinâmica I SCC0210 Algoritmos Avançados (2/2011) Lucas Schmidt Cavalcante Programação Dinâmica I SCC0210 Algoritmos Avançados (2/2011) Lucas Schmidt Cavalcante Introdução Soma máxima de uma subsequência contígua Problema do troco Quantidade de formas de dar troco Problema da

Leia mais

> Princípios de Contagem e Enumeração Computacional 1/13

> Princípios de Contagem e Enumeração Computacional 1/13 Princípios de Contagem e Enumeração Computacional > Princípios de Contagem e Enumeração Computacional 1/13 Objetivos Contar/listar o número de elementos de conjuntos finitos Aplicações > Princípios de

Leia mais

BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1

BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1 BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1 Na aula anterior Prova 2 Na aula de hoje Técnicas básicas de contagem; Tentativa e Erro; Recursividade.

Leia mais

Projeto e Análise de Algoritmos

Projeto e Análise de Algoritmos Projeto e Análise de Algoritmos Aula 03 Técnicas de Projeto de Algoritmos (Divisão e Conquista) Edirlei Soares de Lima Estratégias de Projeto de Algoritmos Força Bruta (Brute Force)

Leia mais

Limite assintótico para a ordenação, Ordenação em tempo linear

Limite assintótico para a ordenação, Ordenação em tempo linear Algoritmos e Estruturas de Dados I Limite assintótico para a ordenação, Ordenação em tempo linear Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 1Q-2017 1 Ordenação Ordenar corresponde ao processo

Leia mais

Recursividade, Tentativa e Erro

Recursividade, Tentativa e Erro Recursividade, Tentativa e Erro Túlio Toffolo www.toffolo.com.br Marco Antônio Carvalho marco.opt@gmail.com BCC402 Aula 07 Algoritmos e Programação Avançada Na aula anterior Prova 2 Na aula de hoje Técnicas

Leia mais

Algoritmos de Enumeração

Algoritmos de Enumeração Em muitos casos para fazer a simulação de um algoritmo é necessário testar-se com um conjunto exaustivo de dados, ou seja, gerar várias ou todas as sequências possíveis de dados e verificar o comportamento

Leia mais

Análise Combinatória

Análise Combinatória Introdução Análise combinatória PROBLEMAS DE CONTAGEM Princípio Fundamental da Contagem Exemplo: Um número de telefone é uma seqüência de 8 dígitos, mas o primeiro dígito deve ser diferente de 0 ou 1.

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada Teoria dos Grafos Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo Departamento de Matemática Aplicada Capítulo 09: Representação de Grafos Preparado a partir do texto: Rangel, Socorro. Teoria

Leia mais

Backtracking. Túlio Toffolo Marco Antônio Carvalho BCC402 Aula 10 Algoritmos e Programação Avançada

Backtracking. Túlio Toffolo  Marco Antônio Carvalho BCC402 Aula 10 Algoritmos e Programação Avançada Backtracking Túlio Toffolo www.toffolo.com.br Marco Antônio Carvalho marco.opt@gmail.com BCC402 Aula 10 Algoritmos e Programação Avançada Backtracking Backtracking é um refinamento do algoritmo de busca

Leia mais

Instituto de Computação - Universidade Federal Fluminense Teoria dos Grafos - Lista de exercícios

Instituto de Computação - Universidade Federal Fluminense Teoria dos Grafos - Lista de exercícios Instituto de Computação - Universidade Federal Fluminense Teoria dos Grafos - Lista de exercícios 1 Conceitos 1. Prove o Teorema da Amizade: em qualquer festa com pelo menos seis pessoas, ou três se conhecem

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

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

Projeto e Análise de Algoritmos

Projeto e Análise de Algoritmos Projeto e Análise de Algoritmos Apresentação da Disciplina Edirlei Soares de Lima Por que Estudar Algoritmos? Razões Práticas e Teóricas: Devemos conhecer um conjunto de algoritmos

Leia mais

Análise e Complexidade de Algoritmos

Análise e Complexidade de Algoritmos Análise e Complexidade de Algoritmos Professor Ariel da Silva Dias Algoritmos Divisão e Conquista Construção incremental Resolver o problema para um sub-conjunto dos elementos de entrada; Então, adicionar

Leia mais

Raiz, filho, pai, irmão, ancestral, descendente, folha.

Raiz, filho, pai, irmão, ancestral, descendente, folha. 17.1 Aula 17: Conceitos de Árvores e Árvores Binárias Raiz, ilho, pai, irmão, ancestral, descendente, olha. Nível, altura, subárvore, subárvore parcial. Árvores binárias completas, binárias cheias, estritamente

Leia mais

Análise de Algoritmos

Análise de Algoritmos Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos p. 1/36 Complexidade computacional Classifica os problemas em relação

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

Complexidade computacional

Complexidade computacional Complexidade computacional Classifica os problemas em relação à dificuldade de resolvê-los algoritmicamente. CLR 36 ou CLRS 34 Algoritmos p. 1 Palavras Para resolver um problema usando um computador é

Leia mais

Programação dinâmica

Programação dinâmica Programação dinâmica CLRS 15.2 15.3 = recursão com tabela = transformação inteligente de recursão em iteração Algoritmos p. 1 Multiplicação iterada de matrizes Se A é p q e B é q r então AB é p r. (AB)[i,j]

Leia mais

Análise e Projeto de Algoritmos

Análise e Projeto de Algoritmos Análise e Projeto de Algoritmos Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG) Análise e Projeto de Algoritmos junho - 2018 1 / 40 Este material é preparado

Leia mais

Alguns comentários. Segunda prova. Programação dinâmica em grafos. Guloso em grafos. Algoritmos p. 1

Alguns comentários. Segunda prova. Programação dinâmica em grafos. Guloso em grafos. Algoritmos p. 1 Alguns comentários Segunda prova Programação dinâmica em grafos Guloso em grafos Algoritmos p. 1 Problema dos intervalos disjuntos Problema: Dados intervalos [s[1],f[1]),...,[s[n],f[n]), encontrar coleção

Leia mais

ANÁLISE DE ALGORITMOS

ANÁLISE DE ALGORITMOS ANÁLISE DE ALGORITMOS Paulo Feofiloff Instituto de Matemática e Estatística Universidade de São Paulo agosto 2009 Introdução P. Feofiloff (IME-USP) Análise de Algoritmos agosto 2009 2 / 102 Introdução

Leia mais

Instituto de Computação - Universidade Federal Fluminense Teoria dos Grafos - Lista de exercícios

Instituto de Computação - Universidade Federal Fluminense Teoria dos Grafos - Lista de exercícios Instituto de Computação - Universidade Federal Fluminense Teoria dos Grafos - Lista de exercícios 1 Conceitos 1. Prove o Teorema da Amizade: em qualquer festa com pelo menos seis pessoas, ou três se conhecem

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

Aula 19: Lifting e matrizes ideais

Aula 19: Lifting e matrizes ideais Aula 19: Lifting e matrizes ideais Otimização Linear e Inteira Túlio A. M. Toffolo http://www.toffolo.com.br BCC464/PCC174 2018/2 Departamento de Computação UFOP Previously... Branch-and-bound Formulações

Leia mais

Análise de algoritmos

Análise de algoritmos Análise de algoritmos Ordenação em tempo linear Prof. Flávio Rogério Uber (UEM/DIN) Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN) Conteúdo Limites inferiores para ordenação por comparações Ordenação

Leia mais

CIC 110 Análise e Projeto de Algoritmos I

CIC 110 Análise e Projeto de Algoritmos I CIC 110 Análise e Projeto de Algoritmos I Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá Algoritmos Gulosos AULA 06 Algoritmos Gulosos Um algoritmo guloso constrói uma solução para

Leia mais

AED2 - Aula 11 Problema da separação e quicksort

AED2 - Aula 11 Problema da separação e quicksort AED2 - Aula 11 Problema da separação e quicksort Projeto de algoritmos por divisão e conquista Dividir: o problema é dividido em subproblemas menores do mesmo tipo. Conquistar: os subproblemas são resolvidos

Leia mais

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 10: Introdução aos Grafos

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 10: Introdução aos Grafos Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 10: Introdução aos Grafos História O assunto que se constitui no marco inicial da teoria de grafos é na realidade um problema algorítmico.

Leia mais

INF01056 Aula 07/08 Backtracking. Baseado no livro Programming Challenges

INF01056 Aula 07/08 Backtracking. Baseado no livro Programming Challenges INF01056 Aula 07/08 Backtracking Baseado no livro Programming Challenges 1 Backtracking Busca sistemática de todas as possíveis soluções Garante que a solução será encontrada, ao enumerar todas as possibilidades

Leia mais

DINTER UFF/IFTM - Análise e Síntese de Algoritmos - Lista de Exercícios

DINTER UFF/IFTM - Análise e Síntese de Algoritmos - Lista de Exercícios DINTER UFF/IFTM - Análise e Síntese de Algoritmos - Lista de Exercícios - 2013 1. Uma pessoa sobe uma escada composta de n degraus, com passos que podem alcançar entre 1 e k n degraus. Escrever equações

Leia mais

CONCEITOS BÁSICOS EM GRAFOS

CONCEITOS BÁSICOS EM GRAFOS Um grafo (simples) G é formado por um conjunto de vértices, denotado por V(G), e um conjunto de arestas, denotado por E(G). Cada aresta é um par (não ordenado) de vértices distintos. Se xy é uma aresta,

Leia mais

Algoritmos de Ordenação

Algoritmos de Ordenação Algoritmos de Ordenação Introdução à Ciência da Computação Prof. Edison Ishikawa Objetivo Apresentar diferentes algoritmos de ordenação de dados Mostrar como analisar os algoritmos em termos de tempo de

Leia mais

AULA 24. Algoritmos p.856/905

AULA 24. Algoritmos p.856/905 AULA 24 Algoritmos p.856/905 Máximo divisor comum CLRS 31.1 e 31.2 Algoritmos p.857/905 Divisibilidade Suponha que a, b e d são números inteiros. Dizemos que d divide a se a = k d para algum número inteiro

Leia mais

Formulação de Programação Linear Inteira para o Problema de Particionamento em Conjuntos Convexos

Formulação de Programação Linear Inteira para o Problema de Particionamento em Conjuntos Convexos Formulação de Programação Linear Inteira para o Problema de Particionamento em Conjuntos Convexos Teobaldo L. Bulhões Júnior a a Instituto de Computação, Universidade Federal Fluminense, Niterói, RJ, Brazil

Leia mais

AED2 - Aula 01 Apresentação, estruturas de dados, tabelas de símbolos e hash tables

AED2 - Aula 01 Apresentação, estruturas de dados, tabelas de símbolos e hash tables AED2 - Aula 01 Apresentação, estruturas de dados, tabelas de símbolos e hash tables É esperado de um projetista de algoritmos que ele entenda o problema a resolver e compreenda as ferramentas a sua disposição,

Leia mais

Divisão-e-Conquista ( ) CAL ( ) MIEIC/FEUP. ./rr (1) Técnicas de Concepção de Algoritmos

Divisão-e-Conquista ( ) CAL ( ) MIEIC/FEUP. ./rr (1) Técnicas de Concepção de Algoritmos 1 Técnicas de Concepção de Algoritmos (1ª parte): divisão e conquista R. Rossetti, A.P. Rocha, A. Pereira, P.B. Silva, T. Fernandes CAL, MIEIC, FEUP Fevereiro de 2011 2 Divisão e Conquista (divide and

Leia mais

ABORDAGENS PARA RESOLVER O PROBLEMA DA MOCHILA 0/1

ABORDAGENS PARA RESOLVER O PROBLEMA DA MOCHILA 0/1 ABORDAGENS PARA RESOLVER O PROBLEMA DA MOCHILA 0/1 Éfren Lopes de Souza 1 e Erik Alexander Landim Rafael 2 1 Universidade Federal do Amazonas (UFAM) (efren_lopes@hotmail.com) 2 Instituto Federal de Educação,

Leia mais

Coloração de intervalos

Coloração de intervalos Coloração de intervalos Problema: Dados intervalos de tempo [s 1,f 1 ),...,[s n,f n ), encontrar uma coloração dos intervalos com o menor número possível de cores em que dois intervalos de mesma cor sempre

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

(P AA) 2 PACOTE DE APOIO A APRENDIZAGEM DE PROJETO E ANÁLISE DE ALGORITMOS: IMPLEMENTAÇÃO EM JAVA

(P AA) 2 PACOTE DE APOIO A APRENDIZAGEM DE PROJETO E ANÁLISE DE ALGORITMOS: IMPLEMENTAÇÃO EM JAVA Universidade Federal de Ouro Preto - UFOP Instituto de Ciências Exatas e Biológicas - ICEB Departamento de Computação - DECOM (P AA) 2 PACOTE DE APOIO A APRENDIZAGEM DE PROJETO E ANÁLISE DE ALGORITMOS:

Leia mais

Métodos de Ordenação Parte 4

Métodos de Ordenação Parte 4 Métodos de Ordenação Parte 4 Introdução à Ciência de Computação II Prof. Diego Raphael Amancio Baseado no material do Prof. Rudinei Goularte e Prof. Thiago A. S. Pardo 1 Ordenação por Intercalação Revisando...

Leia mais

Teoria da Complexidade Computacional

Teoria da Complexidade Computacional Teoria da Complexidade Computacional Letícia Rodrigues Bueno UFABC Motivação Motivação I can t find an efficient algorithm, I guess I m just too dumb. Fonte: GAREY, M. R. e JOHNSON, D. S. Computers and

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada. Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br Grafos direcionados (Digrafos) Preparado a partir do texto:

Leia mais

Estruturas de Dados 2

Estruturas de Dados 2 Estruturas de Dados 2 Algoritmos de Ordenação em Tempo Linear IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/38 Algoritmos de Ordenação em Tempo Linear Limite Assintótico

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

Algoritmos e Estrutura de Dados. Algoritmos Prof. Tiago A. E. Ferreira

Algoritmos e Estrutura de Dados. Algoritmos Prof. Tiago A. E. Ferreira Algoritmos e Estrutura de Dados Aula 3 Conceitos Básicos de Algoritmos Prof. Tiago A. E. Ferreira Definição de Algoritmo Informalmente... Um Algoritmo é qualquer procedimento computacional bem definido

Leia mais

Departamento de Engenharia de Produção UFPR 57

Departamento de Engenharia de Produção UFPR 57 Departamento de Engenharia de Produção UFPR 57 Introdução a Grafos Muitos problemas de otimização podem ser analisados utilizando-se uma estrutura denominada grafo ou rede. Problemas em redes aparecem

Leia mais

Tópicos Avançados em Algoritmos

Tópicos Avançados em Algoritmos Tópicos Avançados em Algoritmos Armando Matos 2008 Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto 2 Tópicos Avançados de Algoritmos Armando B. Matos DCC-FC-UP 2009

Leia mais

Doutorado em Ciência da Computação. Algoritmos e Grafos. Raimundo Macêdo LaSiD/DCC/UFBA

Doutorado em Ciência da Computação. Algoritmos e Grafos. Raimundo Macêdo LaSiD/DCC/UFBA Doutorado em Ciência da Computação Algoritmos e Grafos Raimundo Macêdo LaSiD/DCC/UFBA Grafo Completo Grafo simples cujos vértices são dois a dois adjacentes. Usa-se a notação K n para um grafo completo

Leia mais

Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação. Combinatória

Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação. Combinatória Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação Combinatória Tópicos Especiais em Programação Site: http://jeiks.net E-mail: jacsonrcsilva@gmail.com

Leia mais

Universidade Federal de Mato Grosso do Sul. Lista de Exercícios 2

Universidade Federal de Mato Grosso do Sul. Lista de Exercícios 2 Universidade Federal de Mato Grosso do Sul Facom - Faculdade de Computação Programação de Computadores I - Engenharia Ambiental Lista de Exercícios 2 Exercícios usando if 1. Escreva um programa que leia

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

Projeto e Análise de Algoritmos Aula 1: Panorama (0.1,0.2)

Projeto e Análise de Algoritmos Aula 1: Panorama (0.1,0.2) 1 Projeto e Análise de Algoritmos Aula 1: Panorama (0.1,0.2) DECOM/UFOP 2013/1 5º. Período Anderson Almeida Ferreira Baseado no material desenvolvido por Andréa Iabrudi Tavares BCC 241 2012/2 2 Algumas

Leia mais

ALGORITMOS AVANÇADOS. UNIDADE III Algoritmo de Ordenação por Intercalação (Mergesort) Luiz Leão

ALGORITMOS AVANÇADOS. UNIDADE III Algoritmo de Ordenação por Intercalação (Mergesort) Luiz Leão UNIDADE III Algoritmo de Ordenação por Intercalação (Mergesort) Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático 3.1 - Definição 3.2 - Dividir para conquistar 3.3 - Problema da

Leia mais

Lista 1 - PMR2300. Fabio G. Cozman 3 de abril de 2013

Lista 1 - PMR2300. Fabio G. Cozman 3 de abril de 2013 Lista 1 - PMR2300 Fabio G. Cozman 3 de abril de 2013 1. Qual String é impressa pelo programa: p u b l i c c l a s s What { p u b l i c s t a t i c void f ( i n t x ) { x = 2 ; p u b l i c s t a t i c void

Leia mais

Doutorado em Ciência da Computação. Algoritmos e Grafos. Raimundo Macêdo LaSiD/DCC/UFBA

Doutorado em Ciência da Computação. Algoritmos e Grafos. Raimundo Macêdo LaSiD/DCC/UFBA Doutorado em Ciência da Computação Algoritmos e Grafos Raimundo Macêdo LaSiD/DCC/UFBA Grafo Completo Grafo simples cujos vértices são dois a dois adjacentes. Usa-se a notação K n para um grafo completo

Leia mais

2 Erro comum da indução. 3 Corretude de Algoritmos. > Indução Forte X Indução Fraca Erro comum da indução Corretude de Algoritmos 0/17

2 Erro comum da indução. 3 Corretude de Algoritmos. > Indução Forte X Indução Fraca Erro comum da indução Corretude de Algoritmos 0/17 Conteúdo 1 Indução Forte X Indução Fraca 2 Erro comum da indução 3 Corretude de Algoritmos > Indução Forte X Indução Fraca Erro comum da indução Corretude de Algoritmos 0/17 Indução Forte X Indução Fraca

Leia mais

Ordenação em Tempo Linear. Leitura: Cormen Capítulo 8

Ordenação em Tempo Linear. Leitura: Cormen Capítulo 8 Ordenação em Tempo Linear Leitura: Cormen Capítulo 8 Revisão Insertion sort: Vantagens Fácil de implementar Rápido em entradas com menos de 50 elementos. Rápido em entradas aproximadamente ordenadas. Desvantagens

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 Ordenação por bolha (bubble sort)

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 + y s.a x + y x + y 5 b) Max z = x + y s.a x + y 0 x + y 5 c) Max z = x + y s.a x + 9y 6 8 x +

Leia mais

Aula 08. Estruturas de dados Árvore e Grafo

Aula 08. Estruturas de dados Árvore e Grafo Logo Aula 08 Estruturas de dados Árvore e Grafo 2 Árvore Estruturas estudadas até agora não são \ adequadas para representar dados que devem ser dispostos de maneira hierárquica Ex., hierarquia de pastas

Leia mais

Princípio da Multiplicação Gerando todas as palavras de um alfabeto. > Princípios de Contagem e Enumeração Computacional 0/18

Princípio da Multiplicação Gerando todas as palavras de um alfabeto. > Princípios de Contagem e Enumeração Computacional 0/18 Conteúdo 1 Princípios de Contagem e Enumeração Computacional Princípio da Multiplicação Gerando todas as palavras de um alfabeto Permutações > Princípios de Contagem e Enumeração Computacional 0/18 Objetivos

Leia mais

Algoritmos 3/17/ Algoritmos como área de estudo e investigação

Algoritmos 3/17/ Algoritmos como área de estudo e investigação Algoritmos e Complexidade Ana Teresa Freitas INESC-ID/IST ID/IST 3/17/2005 1 O que é um algoritmo? Algoritmos: Sequência de instruções necessárias para a resolução de um problema bem formulado [passíveis

Leia mais

Análise e Síntese de Algoritmos. Problemas NP-Completos CLRS, Cap. 34

Análise e Síntese de Algoritmos. Problemas NP-Completos CLRS, Cap. 34 Análise e Síntese de Algoritmos Problemas NP-Completos CLRS, Cap. 34 Contexto Revisões [CLRS, Cap. 1-10] Algoritmos em Grafos [CLRS, Cap. 22-26] Algoritmos elementares Árvores abrangentes Caminhos mais

Leia mais

Divisão e conquista. Eficiência de divisão e conquista

Divisão e conquista. Eficiência de divisão e conquista Divisão e conquista Divisão: resolver recursivamente problemas mais pequenos (até caso base) Conquista: solução do problema original é formada com as soluções dos subproblemas á divisão quando o algoritmo

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada. Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br Preparado a partir do texto: Rangel, Socorro. Teoria do Grafos,

Leia mais

Algoritmos de Ordenação. Profº Carlos Alberto T. Batista

Algoritmos de Ordenação. Profº Carlos Alberto T. Batista Algoritmos de Ordenação Profº Carlos Alberto T. Batista E-mail: carlos.batista@facape.br carlos36_batista@yahoo.com.br Por que ordenar os dados? Encontrar elementos em uma lista torna-se algo simples e

Leia mais