AED-II, 2011/2012 Trabalho prático 1
|
|
- Maria Peralta
- 5 Há anos
- Visualizações:
Transcrição
1 AED-II, 2011/2012 Trabalho prático 1 Prazos e formalidades Prazo de entrega: 02/Mar/2012. Devem entregar um único ficheiro PDF com o nome aed2-trab1-gxx.pdf, em que XX é o vosso número de grupo. Na primeira folha do documento deve aparecer os nomes e números dos alunos que constituem o grupo. A entrega deve ser feita por para fernando.lobo@gmail.com. O subject do deverá ser: aed2-trab1-gxx. Exercícios 1. Insertion Sort Escalabilidade empírica. a) Implemente o algoritmo Insertion Sort (provavelmente já o fez em AED-I) numa linguagem de programação à sua escolha. b) Teste o algoritmo em inputs gerados aleatoriamente de tamanho 2 10,2 11, 2 12,...,2 20, e meça o tempo de execução do algoritmo. (Nota: Não é necessário ir até n =2 20, caso o algoritmo se torne demasiado lento no seu computador. Pode terminar os testes quando as execuções do algoritmo começarem a exceder 5 minutos.) c) Repita a alínea anterior em inputs que correspondam ao melhor caso. d) Repita a alínea anterior em inputs que correspondam ao pior caso. e) Faça um gráfico com os resultados obtidos (tamanho do problema no eixo do x, tempo de execução no eixo do y). O que pode concluir? f) Altere o código do Insertion Sort de tal forma que para além de ordenar o array de input, o algoritmo retorne o número de vezes que a instrução A[i +1] = A[i] é executada (linha 6 do pseudocódigo dado na aula teórica). g) Repita as alíneas (b), (c), (d), com a versão modificado do algoritmo, registando desta vez o número de vezes que a instrução A[i + 1]= A[i] é executada, para cada tamanho de input, e para cada tipo de input (melhor caso, pior caso, aleatório). 1
2 h) Faça um novo gráfico com os resultados obtidos (tamanho do problema no eixo do x, número de execuções de A[i +1]=A[i]). O que pode concluir? i) Indique uma estimativa do tempo que o seu algoritmo demoraria a ordenar um array de (10 milhões) de números, assumindo que o input se encontra ordenado de forma aleatória. 2. Crescimento de funções. a) Imagine que tem à sua disposição 2 algoritmos, A e B. O tempo de execução do algoritmo A para resolver um problema de dimensão n é de 100n 2. O tempo de execução do algoritmo B para resolver o mesmo problema de dimensão n é de 2 n. A partir de que valor de n é que o algoritmo A é mais rápido do que o algoritmo B? 3. Complexidade assimptótica. a) Mostre que (n + a) b = Θ(n b ) para quaisquer constantes reais a e b, com b>0. b) 2 n+1 = O(2 n )? c) 2 2n = O(2 n )? d) Sejam f e g duas funções não negativas. Isto é, f(n) 0, g(n) 0, n. Mostre que se f(n) = O(g(n)), então g(n) = Ω(f(n)). 2
3 AED-II, 2011/2012 Trabalho prático 2 Prazos e formalidades Prazo de entrega: 16/Mar/2012. Devem entregar um único ficheiro PDF com o nome aed2-trab2-gxx.pdf, em que XX é o vosso número de grupo. Na primeira folha do documento deve aparecer os nomes e números dos alunos que constituem o grupo. A entrega deve ser feita por para fernando.lobo@gmail.com. O subject do deverá ser: aed2-trab2-gxx. 1. Indução matemática Prove por indução matemática que: a) n i=1 i = n(n +1)/2 b) n i=0 2i =2 n+1 1 c) n 1 i=0 ari = arn a, com r = 1 r 1 (soma dos n primeiros termos da progressão geométrica: a, ar, ar 2,..., ar n 1 ) 2. Recorrências: Método de substituição. Utilize o método de substituição nestas alíneas. a) Seja T (n) =T (n/2) + 1. Mostre que T (n) éo(lg n). b) Seja T (n) =2T (n/2) + n. Mostre que T (n) éω(n lg n). 3. Recorrências: Método da árvore de recorrência. a) Use o método da árvore de recorrência para determinar um bom limite assimptótico superior para a recorrência T (n) = 3 T (n/2)+ n. 1
4 b) Argumente, com o auxílio de uma árvore de recorrência, que a solução de T (n) =T (n/3) + T (2n/3) + n é Ω(n lg n). 4. Mais recorrências. a) Use o teorema Mestre para obter limites assimptóticos apertados para as seguintes recorrências: 1. T (n) =2T (n/4) T (n) =2T (n/4) + n. 3. T (n) =2T (n/4) + n. 4. T (n) =2T (n/4) + n 2. b) Sejam A e B dois algoritmos para resolver um determinado problema. O tempo de execução do algoritmo A é dado por T A (n) =7T (n/2) + n 2. O tempo de execução do algoritmo B é dado por T B (n) =dt(n/4) + n 2. Qual o maior valor inteiro que d pode assumir de forma a que o algoritmo B seja assimptóticamente mais rápido do que o algoritmo A? c) Use o teorema Mestre para mostrar que a solução da recorrência para a pesquisa binária, T (n) =T (n/2) + Θ(1), é T (n) =Θ(lg n). d) Suponha que tem à sua disposição os seguintes três algoritmos para resolver um problema de dimensão n: O algoritmo A resolve o problema dividindo-o em cinco sub-problemas de tamanho n/2, resolvendo cada um dos sub-problemas recursivamente e combinando as soluções em tempo linear. O algoritmo B resolve o problema dividindo-o em dois sub-problemas de tamanho n 1, resolvendo cada um dos sub-problemas recursivamente e combinando as soluções em tempo constante. O algoritmo C resolve o problema dividindo-o em nove sub-problemas de tamanho n/3, resolvendo cada um dos sub-problemas recursivamente e combinando as soluções em O(n 2 ). Qual a complexidade temporal de cada um destes algoritmos? Qual deles é assimptoticamente mais rápido? Justifique. 5. Divisão e Conquista: Exercício de aquecimento. a) Faça um algoritmo baseado no paradigma de divisão e conquista, para obter o valor máximo de um array de n elementos. b) Indique a recorrência para o tempo de execução do algoritmo. c) Resolva a recorrência. Qual a complexidade do algoritmo? 6. Escalabilidade empírica. a) Implemente o algoritmo Merge Sort dado na aula teórica. 2
5 b) Teste o algoritmo em inputs gerados aleatoriamente de tamanho 2 10,2 11, 2 12,...,2 20, e meça o tempo de execução do algoritmo. c) Faça um gráfico com os resultados obtidos (tamanho do problema no eixo do x, tempo de execução no eixo do y). Compare com os resultados do algoritmo Insertion Sort que obteve no trabalho prático da semana anterior. 3
6 AED-II, 2011/2012 Trabalho prático 3 Prazos e formalidades Prazo de entrega: 23/Mar/2012 até às 23:59. Os problemas devem ser submetidos via Mooshak. Devem ir a mooshak/ e registarem-se fazendo os seguintes passos: Seguir o link Register for online contest Escolher AEDII1112 na caixa contest, preencher grupox no campo nome (em que X é o vosso número de grupo) e o de um dos elementos do grupo. Depois do registo, recebem uma password no que indicaram. Devem partilhar essa password pelos elementos do grupo. Problema A: Pares Marafados Dado um array A com n inteiros distintos, pretende-se obter o número de pares marafados contidos no array. Um par (i, j) diz-se marafado se e só se: i<j A[i] > 2 A[j] Como exemplo, o array A = [8, 3, 9, 2, 5] tem 3 pares marafados. Implemente um algoritmo de complexidade Θ(n lg n) para resolver o problema. Pode fazê-lo em C ou Java. Formato para o Mooshak Input O input deverá ter o seguinte formato, n A1 A2... An 1
7 Na primeira linha aparece o número de elementos do array (n 80000). Nas restantes linhas aparecem os elementos do array, um por linha. O timeout é 1 seg. Output O output deverá apresentar o número de pares marafados, seguido de um caracter de fim de linha. Exemplo Input Output 3 Problema B: Ganhar dinheiro na bolsa Considere o seguinte problema relacionado com a bolsa. Dada uma sequência de valores correspondentes à cotação das acções da empresa Marafados Lda ao longo de um período de n dias consecutivos (um valor por dia), pretende-se saber qual teria sido a altura ideal para comprar e a altura ideal para vender, de modo a maximizar o lucro. Para efeitos deste exercício considere que as taxas de juro são nulas. Considere também que apenas pode comprar e vender uma vez ao longo do período de n dias. Como exemplo, para o seguinte input: cotaç~ao: dia: a resposta correcta deveria ser: comprar no dia 2, vender no dia 5, lucro = 4 Implemente um algoritmo de complexidade Θ(n lg n) para resolver o problema. Pode fazê-lo em C ou Java. Pode assumir que as cotações são números inteiros positivos. O timeout é 1 seg. 2
8 Formato para o Mooshak Input O input deverá ter o seguinte formato, n C1 C2... Cn Na primeira linha aparece o número de dias para os quais temos a cotação da acção (n 80000). Nas restantes linhas aparecem as cotações da empresa ao longo dos n dias. C1 é a cotação no 1 o dia, C2 é a cotação no 2 o dia,..., Cn é a cotação no n-ésimo dia. Output O output deverá apresentar o lucro máximo que se consegue obter, seguido de um caracter de fim de linha. Caso não seja possível obter qualquer lucro, o programa deverá escrever a frase no profit is possible, seguido de um caracter de fim de linha. Exemplo 1 Input Output 4 Exemplo 2 Input
9 Output no profit is possible 4
10 AED-II, 2011/2012 Trabalho prático 4 Prazos e formalidades Prazo de entrega: 30/Mar/2012 até às 23:59. Devem entregar um único ficheiro ZIP com o nome aed2-trab4-gxx.zip, em que XX é o vosso número de grupo. No ficheiro ZIP deve estar incluido um PDF com o nome aed2-trab4-gxx.pdf com as respostas às perguntas 1b e 1c. As respostas às perguntas 1a, 2a, 2c devem vir em ficheiros com os nomes p1a.java, p2a.java, p2c.java no caso de programarem em Java, ou p1a.c, p2a.c, p2c.c no caso de programarem em C. As perguntas 1d, 1e, 2b devem ser submetidas ao Mooshak. A entrega do ficheiro ZIP deve ser feita por para fernando.lobo@gmail.com. O subject do deverá ser: aed2-trab4-gxx. As submissões ao Mooshak apenas poderão ser efectuadas a partir de 26/Mar/2012. O timeout de todos os problemas no Mooshak é de 1 segundo. Os exercícios propostos esta semana são exercícios de aquecimento sobre programação dinâmica. Os problemas pedidos foram dados nas aulas teóricas sob a forma de pseudo-código. 1 Combinações Pretende-se fazer um algoritmo que calcule o valor de Comb(n, k), o número de combinações de n, k a k. a) Implemente um algoritmo de força bruta para resolver o problema, através da aplicação directa da fórmula recursiva: Comb(n, k) = 1 Comb(n 1,k 1) + Comb(n 1,k), se k = 0 ou n = k, caso contrário b) Meça o tempo de execução para n =50ek =1, 2, 3,... Pode parar quando o tempo de execução para um determinado valor de k exceder 5 minutos. 1
11 c) Faça um gráfico com os tempos obtidos na alínea anterior (k no eixo do x, tempo no eixo do y). d) Utilize programação dinâmica para resolver o mesmo problema. Submeta a sua implementação ao mooshak (Problema C). O input tem 2 linhas, a primeira contêm o valor de n e a segunda contém o valor de k. O output tem apenas uma linha contendo o valor de Comb(n, k) seguido de um caracter de fim de linha. Pode assumir que 0 n 50 e que 0 k n. e) Utilize a técnica de memoization para resolver o mesmo problema. Submeta a sua implementação ao mooshak (Problema D). O formato do input e output é idêntico ao da alínea anterior. 2 Subsequência comum mais longa a) Implemente o algoritmo para obter a subsequência comum mais longa entre 2 strings usando o método de força bruta. b) O mesmo da alínea anterior mas usando programação dinâmica ou memoization. Submeta a sua solução ao mooshak (Problema E). O input tem duas linhas, a primeira contêm uma string X e a segunda contém uma string Y.O comprimento das strings não excede os 1000 caracteres. O output deverá apresentar apenas o comprimento de uma subsequência comum mais longa entre X e Y, seguido de um caracter de fim de linha. Exemplo de input nocturno mosquiteiro Output 4 c) O mesmo da alínea anterior mas desta fazendo o output da subsequência comum mais longa. Com o input dado anteriormente o output tanto poderia ser otro como ouro. Esta versão não é para submeter ao mooshak. 2
12 AED-II, 2011/2012 Trabalho prático 5 Prazos e formalidades Prazo de entrega: 13/Abr/2012 até às 23:59. Devem entregar um único ficheiro ZIP com o nome aed2-trab5-gxx.zip, em que XX é o vosso número de grupo. No ficheiro ZIP deve estar incluido um PDF com o nome aed2-trab5-gxx.pdf com as respostas às perguntas 2c, 2d, 2e. A resposta à pergunta 2b deve vir num ficheiro com o nome p2b.java ou p2b.c consoante a linguagem de programação escolhida. As perguntas 1 e 2a devem ser submetidas ao Mooshak (problemas F e G, respectivamente) A entrega do ficheiro ZIP deve ser feita por para fernando.lobo@gmail.com. O subject do deverá ser: aed2-trab5-gxx. As submissões ao Mooshak apenas poderão ser efectuadas a partir de 04/Abr/2012. O timeout de todos os problemas no Mooshak é de 1 segundo. 1 Ganhar dinheiro na bolsa, outra vez! No trabalho prático n o 3 pediu-se um algoritmo de complexidade Θ(n lg n) para resolver o problema da bolsa. Desta vez, pretende-se um algoritmo de complexidade Θ(n) para resolver o mesmo problema. Implemente o dito algoritmo e submeta-o ao Mooshak. O formato do input e output é exactamente igual ao do problema que resolveram na ficha n o 3. Contudo, desta vez o limite máximo de dias é de n = NOTA: Apenas considerarei a resposta correcta se o algoritmo que fizerem for de complexidade Θ(n), independentemente de terem Accepted no Mooshak. 2 Ladrão de Gambelas O João Gamão vive nos arredores de Faro e ultimamente tem espalhado o terror pelas redondezas. Na noite passada conseguiu entrar na casa de férias da Madonna na Quinta do Lago. Dentro da casa encontrou vários objectos: um anel de diamantes, uma cópia do famoso quadro Les Demoiselles D Avignon de Picasso, uma aparelhagem Bose Wave, uma camisola do Real Madrid assinada pelo Cristiano Ronaldo, e 1
13 um vaso de porcelana da Vista Alegre. O João Gamão tem uma mochila com uma capacidade máxima de 20kg. Cada um dos objectos tem um valor e um peso, e a mochila não aguenta com todos eles. Objecto Valor Peso ========== ===== ==== anel 15 1 picasso 10 9 bosewave 8 3 ronaldo 5 4 vaso 9 6 O João Gamão pretende saber quais os objectos que deve levar de modo a maximizar o seu lucro. Reparem que se a mochila não tivesse limite de peso, ele poderia pura e simplesmente levar os objectos todos e dar à sola. Mas não é esse o caso. A mochila não aguenta com os objectos todos e o nosso João vai ter de decidir o que levar. a) Escreva um programa (em C ou Java) que leia a capacidade máxima da mochila e uma sequência de n objectos, cada qual com o seu valor e peso. O programa deve imprimir o valor associado à melhor combinação de objectos que pode ser colocada na mochila. Pode assumir que a capacidade máxima da mochila, bem como os valores e pesos dos objectos são inteiros positivos. Assuma ainda que o número máximo de objectos é inferior a 100 e que a capacidade máxima da mochila nunca poderá ultrapassar os 200kg. O programa desta alínea deve ser submetido ao Mooshak. b) Implemente uma variante do problema (esta variante não é para submeter ao mooshak) que para além de retornar o valor máximo do recheio que está na mochila, indique também quais os objectos que devem ser roubados. Por exemplo, para o caso do input dado anteriormente, o resultado deveria ser: 42 anel picasso bosewave vaso c) Qual a complexidade temporal e espacial do vosso algoritmo (versão submetida ao mooshak)? Justifique a resposta. d) Especifique uma estratégia greedy para este problema. Essa estratégia dá sempre a solução óptima? Justifique. (Não é necessário fazer o algoritmo, basta especificá-lo em linguagem corrente.) e) Especifique um algoritmo de força bruta para este problema. Qual a complexidade? Justifique. (Também não é necessário fazer o algoritmo, basta especificá-lo em linguagem corrente.) 2
14 Formato para o Mooshak Para o código submetido ao mooshak, o input deverá ter o seguinte formato, C n O1 V1 P1 O2 V1 P On Vn Pn em que C é a capacidade máxima da mochila em Kg (0 <C 200), n é o número de objectos (0 <n<100), O i é nome do i-ésimo objecto (uma palavra sem espaços com um máximo de 10 caracteres), e V i e P i são inteiros positivos que indicam respectivamente o valor e o peso do i-ésimo objecto. O output deve apresentar o valor máximo que pode ser colocado na mochila, seguido de um caracter de mudança de linha. Exemplo Input 20 5 anel 15 1 picasso 10 9 bosewave 8 3 ronaldo 5 4 vaso 9 6 Output 42 Dicas para a construção do algoritmo O problema do ladrão de Gambelas pode ser resolvido usando programação dinâmica porque exibe subestrutura óptima. Seja OPT uma solução óptima para o problema (pode haver várias). Temos n objectos: O 1,O 2,...,O n. OPT é um subconjunto destes n objectos. Consideremos O n,on-ésimo objecto. Duas coisas podem acontecer: 1. O n OPT, o que implica que a solução óptima é constituída pelo objecto O n mais o melhor subconjunto de objectos que se pode obter usando apenas os restantes n 1 objectos, mas desta vez sujeito à capacidade máxima da mochila ser de C P n, uma vez que o objecto O n pesa P n e está na mochila. Logo sobram apenas C P n Kg para os restantes objectos. 3
15 2. O n OPT, o que implica que a solução óptima é constituída pelo melhor subconjunto de objectos que se pode obter usando apenas os restantes n 1 objectos, sujeito igualmente à capacidade máxima da mochila ser C. O raciocínio exposto acima, mostra que a solução óptima para um problema pode ser definida em termos de soluções óptimas de subproblemas. Faltam apenas alguns detalhes (tais como os casos base) para obter uma formulação recursiva do problema e a subsequente implementação usando programação dinâmica. 4
16 AED-II, 2011/2012 Trabalho prático 6 Prazos e formalidades Prazo de entrega: 20/Abr/2012 até às 23:59. Não é necessário relatório. A submissão é feita via Mooshak a partir de 16/Abr/2012. O timeout no Mooshak é de 2 segundos. Palavra puxa palavra vinho vinha pinha pinta pista pasta casta casca tasca Considere o seguinte problema: É-lhe dado como input um dicionário com N palavras (todas com o mesmo número de caracteres), seguido de M pares de palavras. Cada par indica uma palavra de origem e uma palavra de destino. Para cada um dos M pares, pretende-se gerar como output o comprimento da sequência mais curta possível de palavras, desde a palavra de origem até à palavra de destino, de tal forma que duas palavras consecutivas da sequência só possam ser diferentes numa e numa só posição. Pode assumir que as palavras são constítuidas apenas por caracteres minúsculos de a..z, sem acentos e sem cedilhas. Se a palavra de origem ou de destino não existir no dicionário, o programa deve escrever palavra inexistente. Se ambas as palavras existirem mas não for possível obter uma sequência, o programa deve escrever sequencia inexistente (note bem, sequencia sem acento para evitar eventuais problemas com o Mooshak). a) Escreva um programa (em C ou Java) para resolver este problema. O programa deve ser submetido ao Mooshak (Problema H). O timeout é 2 segundos. b) Indique a complexidade do seu algoritmo em função de N e de M, e eventualmente também em função de outro parâmetro que considere ser relevante. Justifique a complexidade obtida. (Esta alínea deve ser respondida no próprio código submetido ao mooshak, em comentário logo ao início do ficheiro.) 1
17 Formato para o Mooshak Input O input deverá ter o seguinte formato. Na primeira linha aparece o número de palavras do dicionário, N. Segue-se uma sequência de N linhas, com uma palavra por linha. Segue-se uma linha com o número de pares de palavras, M, seguido de uma sequência de M linhas, em que para cada linha aparecem duas palavras (origem e destino) separadas por um espaço. Pode assumir que N<2000, M<100, e que as palavras do dicionário têm todas o mesmo tamanho, entre 3 e 20 caracteres. Output O output consiste em M linhas. Em cada linha deve aparecer a palavra de origem, seguida de ->, seguida da palavra de destino, seguido do caracter :, seguido de um espaço, seguido do comprimento da sequência mais curta de palavras desde a origem até ao destino. Se a palavra de origem ou de destino não existir no dicionário, o programa deve escrever palavra inexistente. Se ambas as palavras existirem mas não for possível obter uma sequência, o programa deve escrever sequencia inexistente Todas as linhas de output terminam com um caracter de fim de linha. Exemplo Input 11 cao sol pai mae mao nao sai sal mal pao aed 4 pai sol sal aed pai faz cao mae 2
18 Output pai->sol: 4 sal->aed: sequencia inexistente pai->faz: palavra inexistente cao->mae: 3 Por curiosidade, uma sequência mais curta de pai para sol seria: pai sai sal sol. E uma sequência mais curta de cao para mae seria: cao mao mae. Dicionário com algumas palavras de 5 letras Emhttp:// está um ficheiro com 1585 palavras, caso queiram usar para fazer testes. 3
Comparação com Divisão e Conquista
Programação Dinâmica Programação Dinâmica Fernando Lobo Algoritmos e Estrutura de Dados II Outra técnica de concepção de algoritmos, tal como Divisão e Conquista ou Estratégias Greedy. O termo Programação
Leia maisO termo Programação Dinâmica é um bocado infeliz.
Programação Dinâmica Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 18 Programação Dinâmica Outra técnica de concepção de algoritmos, tal como Divisão e Conquista ou Estratégias Greedy. O termo Programação
Leia maisAlgoritmos de ordenação Quicksort
Algoritmos de ordenação Quicksort Sumário Introdução Descrição do quicksort Desempenho do quicksort Pior caso Melhor caso Particionamento balanceado Versão aleatória do quicksort Análise do quicksort Pior
Leia maisTrabalho Prático 1. Valor: 1,0 pontos (10% da nota total) Data de Entrega: 02/05/2010
Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Biológicas Programa de Pós-Graduação em Ciência da Computação Projeto e Análise de Algoritmos - 1 o semestre de 2010 Professor: David Menotti
Leia maisDivisão e Conquista. Fernando Lobo. Algoritmos e Estrutura de Dados II. É uma técnica para resolver problemas (veremos outras técnicas mais adiante).
Divisão e Conquista Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 27 Divisão e Conquista É uma técnica para resolver problemas (veremos outras técnicas mais adiante). Consiste em 3 passos: Dividir
Leia maisAná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 maisClasses, 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 maisProblema de seleção de atividades. Aula 14. Exemplo. Algoritmos Gulosos. Algoritmos Gulosos. Intervalo: par ordenado de números
Problema de seleção de atividades Aula 14 Algoritmos Gulosos Prof. Marco Aurélio Stefanes marco em dct.ufms.br www.dct.ufms.br/ marco Intervalo: par ordenado de números [s[i],f[i]): início e fim do intervalo
Leia maisBusca Binária. Aula 05. Busca em um vetor ordenado. Análise do Busca Binária. Equações com Recorrência
Busca Binária Aula 05 Equações com Recorrência Prof. Marco Aurélio Stefanes marco em dct.ufms.br www.dct.ufms.br/ marco Idéia: Divisão e Conquista Busca_Binária(A[l...r],k) 1:if r < lthen 2: index = 1
Leia maisAlgoritmos 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 maisANÁ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 maisProjeto e Análise de Algoritmos
Projeto e Análise de Algoritmos Aula 01 Complexidade de Algoritmos Edirlei Soares de Lima O que é um algoritmo? Um conjunto de instruções executáveis para resolver um problema (são
Leia maisSolução de Recorrências
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Solução de Recorrências Algoritmos e Estruturas de Dados I Natália Batista https://sites.google.com/site/nataliacefetmg/ nataliabatista@decom.cefetmg.br
Leia maisFernando Lobo. Algoritmos e Estrutura de Dados. Outra técnica de concepção de algoritmos, tal como Divisão e Conquista.
Programação Dinâmica Fernando Lobo Algoritmos e Estrutura de Dados 1 / 56 Programação Dinâmica Outra técnica de concepção de algoritmos, tal como Divisão e Conquista. O termo Programação Dinâmica é um
Leia maisTeoria 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 e Algoritmos Preparado a partir do texto: Rangel, Socorro.
Leia maisLista 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 maisAula 1. Teoria da Computação III
Aula 1 Teoria da Computação III Complexidade de Algoritmos Um problema pode ser resolvido através de diversos algoritmos; O fato de um algoritmo resolver um dado problema não significa que seja aceitável
Leia maisAlgoritmos de Ordenação
Algoritmos de Ordenação ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo dbeder@usp.br 10/2008 Material baseado em
Leia maisMergesort. Aula 04. Algoritmo Mergesort. Divisão e Conquista. Divisão e Conquista- MergeSort
Mergesort Aula 0 Divisão e Conquista- MergeSort Prof. Marco Aurélio Stefanes marco em dct.ufms.br www.dct.ufms.br/ marco Mergesort é um algoritmo de ordenação recursivo Ele recursivamente ordena as duas
Leia maisÉ interessante comparar algoritmos para valores grandes de n. Para valores pequenos de n, mesmo um algoritmo ineficiente não custa muito para ser
É interessante comparar algoritmos para valores grandes de n. Para valores pequenos de n, mesmo um algoritmo ineficiente não custa muito para ser executado 1 Fazendo estimativas e simplificações... O número
Leia maisAlgoritmos Greedy. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Algoritmos Greedy 2014/ / 40
Algoritmos Greedy Pedro Ribeiro DCC/FCUP 2014/2015 Pedro Ribeiro (DCC/FCUP) Algoritmos Greedy 2014/2015 1 / 40 Algoritmos Greedy Vamos falar de algoritmos greedy. Em português são conhecidos como: Algoritmos
Leia maisAbordagens 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 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 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 maisLista de Exercícios 6: Soluções Funções
UFMG/ICEx/DCC DCC Matemática Discreta Lista de Exercícios 6: Soluções Funções Ciências Exatas & Engenharias o Semestre de 06 Conceitos. Determine e justifique se a seguinte afirmação é verdadeira ou não
Leia maisAnálise e Síntese de Algoritmos. Programação Dinâmica CLRS, Cap. 15
Análise e Síntese de Algoritmos Programação Dinâmica CLRS, Cap. 15 Contexto Revisões [CLRS, Cap. 1-10] Algoritmos em Grafos [CLRS, Cap. 22-26] Algoritmos elementares Árvores abrangentes Caminhos mais curtos
Leia maisEncriptação de Mensagens
Instituto Superior Técnico Fundamentos da Programação 2016/2017 Enunciado do 1 o Projecto Data de entrega: 4 de Novembro de 2016 às 23h59 Encriptação de Mensagens Pretende-se com este trabalho a implementação
Leia maisAnálise de algoritmos
Análise de algoritmos Introdução à Ciência de Computação II Baseados nos Slides do Prof. Dr. Thiago A. S. Pardo Análise de algoritmos Existem basicamente 2 formas de estimar o tempo de execução de programas
Leia maisEstruturas de Dados 2
Estruturas de Dados 2 Técnicas de Projeto de Algoritmos Dividir e Conquistar IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/83 Projeto de Algoritmos por Divisão
Leia maisGrupo 2 - Implementação de uma Classe Simples
Estruturas de Dados 2017/2018 Época Normal (15 de Junho de 2018) Versão A Duração: 2h30m + 30m Número mecanográco: Nome completo do estudante: Grupo 1 - Fundamentos de Java 1.1. Escreva pequenos excertos
Leia maisDivisão e Conquista. Norton T. Roman. Apostila baseada nos trabalhos de Cid de Souza, Cândida da Silva e Delano M. Beder
Divisão e Conquista Norton T. Roman Apostila baseada nos trabalhos de Cid de Souza, Cândida da Silva e Delano M. Beder Divisão e Conquista Construção incremental Ex: Consiste em, inicialmente, resolver
Leia maisAlgoritmos 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 maisIntrodução à Análise Algoritmos
Introdução à Análise Algoritmos Notas de aula da disciplina IME 4-182 Estruturas de Dados I Paulo Eustáquio Duarte Pinto (pauloedp arroba ime.uerj.br) abril/218 Ordenação por SELEÇÃO: Idéia: Dado um vetor
Leia maisLista de Exercícios 6 Funções
UFMG/ICEx/DCC DCC Matemática Discreta Lista de Exercícios 6 Funções Ciências Exatas & Engenharias o Semestre de 06 Conceitos. Determine e justifique se a seguinte afirmação é verdadeira ou não para todas
Leia maisAnálise de Algoritmos
Análise de Algoritmos Estes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos p. 1 Introdução CLRS 2.2 e 3.1 AU 3.3, 3.4 e 3.6 Essas transparências foram
Leia maisAnálise de complexidade
Introdução Algoritmo: sequência de instruções necessárias para a resolução de um problema bem formulado (passíveis de implementação em computador) Estratégia: especificar (definir propriedades) arquitectura
Leia maisProjeto 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 maisProjeto e Análise de Algoritmos Aula 8: Algoritmos Gulosos (5)
1 Projeto e Análise de Algoritmos Aula 8: Algoritmos Gulosos (5) DECOM/UFOP 2012/2 5º. Período Anderson Almeida Ferreira Adaptado do material de Andréa Iabrudi Tavares BCC241/2012-2 3 Algoritmos Gulosos
Leia maisEstruturas de Dados 2
Estruturas de Dados 2 Recorrências IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/31 Recorrências Análise da Eficiência de Algoritmos: Velocidade de Execução; Análise
Leia maisANÁLISE DE ALGORITMOS: PARTE 3
ANÁLISE DE ALGORITMOS: PARTE 3 Prof. André Backes 2 A notação grande-o é a forma mais conhecida e utilizada de análise Complexidade do nosso algoritmo no pior caso Seja de tempo ou de espaço É o caso mais
Leia maisInformática para Ciências e Engenharias-B 2017/18
Informática para Ciências e Engenharias-B 2017/18 Trabalho Prático N o 2 2017/18 1 Objectivo do Trabalho Até 1982, a insulina disponível para tratamento de diabetes era obtida por purificação de tecidos
Leia maisINE5403 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 maisComplementos de Investigação Operacional. Folha nº 1 Programação Inteira 2007/08
Complementos de Investigação Operacional Folha nº Programação Inteira 2007/08 - A Eva e o Adão pretendem dividir entre eles as tarefas domésticas (cozinhar, lavar a louça, lavar a roupa, fazer as compras)
Leia maisProjeto e Análise de Algoritmos Aula 4: Dividir para Conquistar ou Divisão e Conquista ( )
Projeto e Análise de Algoritmos Aula 4: Dividir para Conquistar ou Divisão e Conquista (2.1-2.2) DECOM/UFOP 2013/1 5º. Período Anderson Almeida Ferreira Adaptado do material desenvolvido por Andréa Iabrudi
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 maisLista 1. 8 de abril de Algorithms: Capítulo 0, exercícios 1 e 2. Tardos: Todos exercícios do cap 2 do livro texto, exceto 7 e 8 letra b.
Lista 1 8 de abril de 2013 1 Exercícios Básicos 1.1 Na bibliografia Algorithms: Capítulo 0, exercícios 1 e 2. Tardos: Todos exercícios do cap 2 do livro texto, exceto 7 e 8 letra b. 1.2 Outros 1. Projete
Leia maisAula 2. Divisão e conquista. Exemplo 1: Número de inversões de uma permutação (problema 2-4 do CLRS; veja também sec 5.4 do KT)
Aula 2 Divisão e conquista Exemplo 1: Número de inversões de uma permutação (problema 2-4 do CLRS; veja também sec 5.4 do KT) Exemplo 2: Par de pontos mais próximos (sec 33.4 do CLRS) Essas transparências
Leia maisINSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS. Aluno (s): 01 ATIVIDADE. Revisão de Conteúdo
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS DISCIPLINA: Lab. de Programação PROF: MSc. Flávio Barros PERÍODO: 2 DATA: Aluno (s): 01 ATIVIDADE / / Revisão de Conteúdo
Leia maisMedida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR
Medida do Tempo de Execução de um Programa David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Classes de Comportamento Assintótico Se f é uma função de complexidade para um algoritmo F, então
Leia maisModelagem com relações de recorrência. Exemplo: Determinada população dobra a cada ano; população inicial = 5 a n = população depois de n anos
Relações de recorrência 8. RELAÇÕES DE RECORRÊNCIA Introdução a relações de recorrência Modelagem com relações de recorrência Solução de relações de recorrência Exemplos e aplicações Relações de recorrência
Leia mais5ª Lista de Exercícios de Programação I
5ª Lista de Exercícios de Programação I Instrução As questões devem ser implementadas em C. Questões que envolvam leitura de matrizes, a construção dessas matrizes pode ser realizada através da geração
Leia mais5. Invólucros Convexos no Plano (cont )
5. Invólucros Convexos no Plano (cont ) Antonio Leslie Bajuelos Departamento de Matemática Universidade de Aveiro Mestrado em Matemática e Aplicações Complexidade Algorítmica Notação O Sejam T(n) e f(n)
Leia maisUNIVERSIDADE FEDERAL DO RIO DE JANEIRO DEPARTAMENTO DE CIÊNCIAS DA COMPUTAÇÃO. 4 a Lista de Exercícios Gabarito de algumas questões.
UNIVERSIDADE FEDERAL DO RIO DE JANEIRO DEPARTAMENTO DE CIÊNCIAS DA COMPUTAÇÃO MATEMÁTICA COMBINATÓRIA 4 a Lista de Exercícios Gabarito de algumas questões. Este gabarito foi feito direto no computador
Leia maisExercícios: Vetores e Matrizes
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Vetores e Matrizes 1 Vetores 1. Faça um programa que possua um vetor
Leia maisInteligência Artificial
Instituto Politécnico de Setúbal Escola Superior de Tecnologia de Setúbal Departamento de Sistemas e Informática Guia de Exercícios das Aulas Práticas Inteligência Artificial Prof Joaquim Filipe Eng. Adelaide
Leia maisAlgoritmo. Exemplo. Definição. Programação de Computadores Comparando Algoritmos. Alan de Freitas
Algoritmos Programação de Computadores Comparando Algoritmos Um algoritmo é um procedimento de passos para cálculos. Este procedimento é composto de instruções que definem uma função Até o momento, vimos
Leia maisAnálise de algoritmos
Análise de algoritmos Recorrências Conteúdo Introdução O método mestre Referências Introdução O tempo de execução de um algoritmo recursivo pode frequentemente ser descrito por uma equação de recorrência.
Leia maisLista 2 - PMR2300/3200
Lista 2 - PMR2300/3200 Fabio G. Cozman, Thiago Martins 8 de março de 2015 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
Leia maisCentro Federal de Educação Tecnológica de Minas Gerais Programa de Pós-Graduação em Modelagem Matemática e Computacional
Centro Federal de Educação Tecnológica de Minas Gerais Programa de Pós-Graduação em Modelagem Matemática e Computacional Disciplina: Algoritmos e Estruturas de Dados Professor: Flávio Cardeal Lista de
Leia maisTeste de P1 12 de Dezembro 2001
Teste de P1 12 de Dezembro 2001 Pergunta 1: Converta o seguinte segmento de código trocando o bloco de if para o bloco do sem modificar o resultado do programa if ( (i=1) OR (i=x) OR (j=1) OR (j=y) ) then
Leia maisComplementos de Investigação Operacional. Folha nº 1 Programação Inteira 2006/07
Complementos de Investigação Operacional Folha nº Programação Inteira 2006/07 - A Eva e o Adão pretendem dividir entre eles as tarefas domésticas (cozinhar, lavar a louça, lavar a roupa, fazer as compras)
Leia maisFicha 1 Noções de sequência e decisão em algoritmia
Ficha 1 Noções de sequência e decisão em algoritmia 1. Ler uma temperatura em Celsius e converter para Fahrenheit. Elabore o algoritmo e especifique as estruturas de dados necessárias para a resolução
Leia maisUniversidade Federal do ABC Avaliação Disciplina Turma Professor Data Instruções para a prova (leia antes de começar): SelectionSort selectonsortrec
Universidade Federal do ABC Avaliação: Prova 02 Disciplina: BC1424 - Algoritmos e Estruturas de Dados I Turma: Noturno Professor: Jesús P. Mena-Chalco Data: 03/05/2016 Nome completo: RA: Instruções para
Leia maisPUC-Rio Departamento de Informática Prof. Marcus Vinicius S. Poggi de Aragão Período: Horário: 4as-feiras de 13 às 16 horas - Sala 520L
PUC-Rio Departamento de Informática Prof. Marcus Vinicius S. Poggi de Aragão Período: 20047.1 Horário: 4as-feiras de 13 às 16 horas - Sala 520L PROJETO E ANÁLISE DE ALGORITMOS (INF 2926) Lista 1 1. Considere
Leia maisAlgoritmos 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 maisOtimizaçã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 maisDepartamento de Matemática da Universidade de Aveiro Matemática Discreta. A prova consta de 4 questões cada uma cotada com 5 valores.
Departamento de Matemática da Universidade de Aveiro Matemática Discreta Exame Final ( 2 a Chamada: 22/0/2007 Licenciatura em Matemática (8220 Mest. Int. Eng. Computadores e Telemática (8240 Informações
Leia maisAnálise de algoritmos
Análise de algoritmos Introdução à Ciência da Computação 2 Baseado nos slides do Prof. Thiago A. S. Pardo Algoritmo Noção geral: conjunto de instruções que devem ser seguidas para solucionar um determinado
Leia maisTópico 5 Algoritmos de Ordenação. Parte I - métodos de ordenação: inserção, mergesort, heapsort e quicksort.
Tópico 5 Algoritmos de Ordenação Parte I - métodos de ordenação: inserção, mergesort, heapsort e quicksort. 1 Problema Computacional: Ordenação Problema computacional que surge em diversas situações. Definição:
Leia maisProjeto e Análise de Algoritmos
Projeto e Análise de Algoritmos A. G. Silva Baseado nos materiais de Souza, Silva, Lee, Rezende, Miyazawa Unicamp Ribeiro FCUP 18 de agosto de 2017 Conteúdo programático Introdução (4 horas/aula) Notação
Leia maisANÁLISE DE ALGORITMOS (INF 1721)
PUC-Rio Departamento de Informática Prof. Marcus Vinicius S. Poggi de Aragão (3WA) Horário: 2as. e 4as. 9-11hs (3WA) 3 de dezembro de 2016 Período: 2016.2 ANÁLISE DE ALGORITMOS (INF 1721) 3 a Lista de
Leia maisProgramaçã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 maisAula 6: Entrada e Saída
Aula 6: Entrada e Saída Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Entrada e Saída Programação de Computadores IV 1 / 29 Agenda 1 Revisão e Contexto
Leia maisOrdenação em tempo linear
Ordenação em tempo linear CLRS cap 8 Algoritmos p. 1 Ordenação: limite inferior Problema: Rearranjar um vetor A[1..n] de modo que ele fique em ordem crescente. Existem algoritmos que consomem tempo O(n
Leia maisProf. Tiago Alves de Oliveira. Tiago Alves de Oliveira - 1
Prof. Tiago Alves de Oliveira tiagofga@gmail.com 1 Operadores Aritméticos; Operadores Relacionais; Operadores Lógicos; Operador MOD Calcula o resto da divisão Estrutura X MOD 2 = 0 verifica se o resto
Leia maisTópicos Avançados em Algoritmos - exercícios de Prog. Din. com correcção parcial
Armando Matos, 2008/2009 Tópicos Avançados em Algoritmos - exercícios de Prog. Din. com correcção parcial 1. Optimizar o produto de matrizes Considere o problema da parentização óptima de uma multiplicação
Leia maisGrupo 2 - Implementação de uma classe simples
Exame Modelo Estruturas de Dados 2018/2019 Junho de 2019 Duração: 2h30m + 30m Número mecanográco: Nome completo do estudante: Grupo 1 - Fundamentos de Java 1.1. Escreva pequenos excertos de código para
Leia maisBCC402 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 maisINSTITUTO SUPERIOR TÉCNICO Algoritmos e Estruturas de Dados
INSTITUTO SUPERIOR TÉCNICO Algoritmos e Estruturas de Dados Ano Lectivo de 2004/2005 2 o Semestre RESOLUÇÃO DA REPESCAGEM DO 2 o TESTE B I. (2.0+1.5+1.5 = 5.0 val.) a) Qual das seguintes declarações pode
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 maisTécnicas de análise de algoritmos
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Técnicas de análise de algoritmos Algoritmos e Estruturas de Dados I Natália Batista https://sites.google.com/site/nataliacefetmg/ nataliabatista@decom.cefetmg.br
Leia maisPesquisa Operacional / Programação Matemática
Pesquisa Operacional / Programação Matemática Otimização discreta Modelagem com variáveis binárias: problemas clássicos Breve Comentários (aula anterior) Em geral, não faz sentido resolver a relaxação
Leia maisAULA 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 maisTabelas de dispersão/hash
Tabelas de dispersão/hash 1 Tabelas de dispersão/hash 1. Considere uma tabela de hash de tamanho m = 1000 e a função de hash h(k)= [m.(k.a % 1)], com A=( 5-1)/2. Calcule os valores de hash das chaves 61,
Leia maisBCC202 - Estrutura de Dados I
BCC202 - Estrutura de Dados I Aula 13: Ordenação: MergeSort Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Website: www.decom.ufop.br/reifortes Email: reifortes@iceb.ufop.br
Leia maisAlguns 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 maisOtimização discreta Modelagem com variáveis binárias: problemas clássicos
Otimização discreta Modelagem com variáveis binárias: problemas clássicos Importância histórica...... e prática. Usados para modelar problemas reais e como subproblemas em problemas maiores (e mais freqüentes
Leia maisOptimização e Algoritmos (2004/2005) Série de Problemas 1 Programação Linear, Método Simplex
Optimização e Algoritmos (24/25) Instituto Superior Técnico Engenharia Electrotécnica e de Computadores Série de Problemas Programação Linear, Método Simplex Nota MATLAB (requer a instalação da optimization
Leia maisMelhores momentos AULA 3. Algoritmos p.148/188
Melhores momentos AULA 3 Algoritmos p.148/188 Análise da intercalação Problema: Dados e crescentes, rearranjar de modo que ele fique em ordem crescente. Entra: Sai: Algoritmos p.149/188 Algoritmos p.150/188
Leia mais> 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 maisCapítulo 6 Análise de Algoritmos Capítulo 6
666 Apêndice C Respostas e Sugestões para os Exercícios de Revisão 42. Consulte a Seção 5.4. 43. (a) Escoamento de memória.(b) Porque não há garantia que o cliente irá usá-la devidamente. 44. (a) Contagem
Leia maisElementos de Matemática Finita
Elementos de Matemática Finita Exercícios Resolvidos - Princípio de Indução; Algoritmo de Euclides 1. Seja ( n) k n! k!(n k)! o coeficiente binomial, para n k 0. Por convenção, assumimos que, para outros
Leia maisProjeto e Análise de Algoritmos Aula 8: Algoritmos Gulosos (DPV 5; CLRS 4)
1 Projeto e Análise de Algoritmos Aula 8: Algoritmos Gulosos (DPV 5; CLRS 4) DECOM/UFOP 2013/1 5º. Período Anderson Almeida Ferreira Adaptado do material de Andréa Iabrudi Tavares BCC241/2012-2 3 Comparação
Leia maisINSTITUTO SUPERIOR TÉCNICO Algoritmos e Estruturas de Dados
INSTITUTO SUPERIOR TÉCNICO Algoritmos e Estruturas de Dados Ano Lectivo de 2002/2003 2 o Semestre Repescagem do 2 o Teste (A) 18 de Julho de 2003 Duração: 2h - O teste é sem consulta. - Para cada questão
Leia maisUniversidade da Beira Interior Departamento de Matemática. Ficha de exercícios nº3: Dualidade. Interpretação Económica.
Ano lectivo: 2008/2009; Universidade da Beira Interior Departamento de Matemática INVESTIGAÇÃO OPERACIONAL Ficha de exercícios nº3: Dualidade. Interpretação Económica. Cursos: Economia 1. Formule o problema
Leia maisCT-234. 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 Bibliografia T.H. Cormen, C.E. Leiserson and R.L. Rivest Introduction to algorithms R. Sedgewick
Leia maisDivisã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 maisPROVA ESPECÍFICA MODELO. Duração da prova: 120 minutos
Página 1 de 10 Provas especialmente adequadas destinadas a avaliar a capacidade para a frequência do ensino superior dos maiores de 23 anos, Decreto-Lei n.º 64/2006, de 21 de Março AVALIAÇÃO DA CAPACIDADE
Leia maisProva 1 PMR3201 Computação para Automação 1o. semestre 2016 Prof. Thiago de Castro Martins
Prova 1 PMR3201 Computação para Automação 1o. semestre 2016 Prof. Thiago de Castro Martins 1. (25 pontos) A listagem a seguir mostra o código de uma função que converte uma cadeia de caracteres com a representação
Leia mais