Disciplina de Projetos e Análise de Algoritmos
|
|
- Diogo Capistrano Camelo
- 8 Há anos
- Visualizações:
Transcrição
1 Aula 6 - A Maior Subsequência Comum Possível (Programação Dinâmica Parte IV)
2 Aplicações na Biologia Um problema bastante em voga na Biologia é a análise do DNA de dois ou mais organismos distintos. Um DNA é composto por uma sequência de moléculas, chamadas de bases, A Adenina T Timina C Citosina G Guanina Computacionalmente, um DNA pode ser visto como uma fita dupla de Strings, com o alfabeto {A,T,G,C}
3 Aplicações na Biologia
4 Aplicações na Biologia Dado os DNA s de dois organismos: S 1 = ACCGTGGAAAAGGTTAAGGCCAGGATTTAACCGCGGGC S 2 = ACCGCGGTTTAATCCGGATAGGTTGAAATGGTTGAAAC É possível indagar: Quão semelhantes são estes dois organismos? Estes organismos são da mesma espécie? Um destes organismos é ancestral do outro organismo? Observe que a resposta destas questões dependerão de quão semelhantes eles são.
5 Similaridade É possível medir similaridade de várias formas diferentes! É possível definir que duas fitas de DNA são similares se uma é uma substring da outra. Também é possível definir similaridade pelo número de transformações necessária para transforma uma fita de DNA na outra. Aqui, quanto menor o número de transformações maior a similaridade. Uma terceira forma é definir uma outra fita S 3 de tal forma que esta seja formada pelas bases que coincidentes nas fitas S 1 e S 2. Quanto maior for S 3 mais semelhantes serão S 1 e S 2. S 3 é a maior subsequência comum possível entre S 1 e S 2.
6 Subsequência Introdução Uma Subsequência Uma Subsequência Comum A subsequência comum mais longa Dada uma sequência X = x 1,x 2,...,x m e outra sequência Z = z 1,z 2,...,z k. A sequência Z será subsequência de X se existir uma sequência estritamente crescente i 1,i 2,...,i k de índices de X tal que para todo j = 1,2,...,k implique em x ij = z j. Por exemplo, dado X = A,B,C,B,D,A,B e Z = B,C,D,B. Z é uma subsequência de X com a sequência de índices correspondendo a 2,3,5,7
7 Subsequência Comum Uma Subsequência Uma Subsequência Comum A subsequência comum mais longa Agora são dadas duas sequências, X e Y. É dito que Z é uma subsequência comum de X e Y se Z é uma subsequência de X e de Y ao mesmo tempo. Por exemplo, e X = A,B,C,B,D,A,B Y = B,D,C,A,B,A note que a subsequência B,C,A, embora não seja a subsequência mais longa. A subsequência mais longa (LCS) terá comprimento 4: B,C,B,A ou B,D,A,B.
8 Definindo o Problema Uma Subsequência Uma Subsequência Comum A subsequência comum mais longa Problema da Subsequência Comum Mais Longa (LCS) Dadas duas sequências X = x 1,x 2,...,x m e Y = y 1,y 2,...,y n é desejado encontrar a maior subsequência de maior comprimento possível comum às sequências X e Y. Este problema pode ser abordado via programação dinâmica.
9 Passo 1: Caracterizando a Maior Subsequência Comum Por força bruta: Enumera-se todas as possíveis subsequências de X. Checa-se se cada uma destas subsequências também é subsequências de Y, guardando a de maior comprimento. Cada subsequência pode ser representada por por um subconjunto de índices na forma {1,2,...,m}. Observe que X terá 2 m subsequências, o que acarreta em um custo exponencial, sendo inviável na prática!
10 Passo 1: Caracterizando a Maior Subsequência Comum O problema LCS apresenta uma subestrutura ótima! Como será visto, a classe natural de subproblemas são os pares dos prefixos de duas sequências de entrada. Dada uma sequência X = x 1,x 2,...,x m Definie-se o i-ésimo prefixo de X, para i = 0,1,2,...,m como Por exemplo, dada a sequência X i = x 1,x 2,...,x i X = A,B,C,B,D,A,B então e X 0 = (sequência vazia) X 4 = A,B,C,B
11 Passo 1: Caracterizando a Maior Subsequência Comum Teorema Ótima para o Problema LCS Faça X = x 1,x 2,...,x m e Y = y 1,y 2,...,y n serem sequências, e faça Z = z 1,z 2,...,z k ser uma LCS de X e Y. 1 Se x m = y n, então z k = x m = y n e Z k 1 é uma LCS de X m 1 e Y n 1. 2 Se x m y n, então z k x m implicando que Z é uma LCS de X m 1 e de Y. 3 Se x m y n, então z k y n implicando que Z é uma LCS de X e de Y n 1.
12 Passo 1: Caracterizando a Maior Subsequência Comum Prova do Teorema Se z k x m e fixarmos x m = y n para obtermos Z com uma LCS de X e Y de comprimento k +1, estaremos contrariando o fato de Z ser uma LCS de X e Y. Assim, temos que ter z k = x m = y n. Observe então que o prefixo Z k 1 de comprimento k 1 é uma sequência comum de X m 1 e Y n 1. Pergunta-se Z k 1 é uma LCS? Suponha que existe uma sequência comum W de X m 1 e Y n 1 com comprimento maior que k 1. Logo fazendo x m = y n implicaria que W teria um comprimento maior que k, o que seria uma contradição.
13 Passo 1: Caracterizando a Maior Subsequência Comum Prova do Teorema Se z k x m então Z é uma sequência comum entre X m 1 e Y. Se existisse uma sequência comum W de X m 1 e Y com comprimento maior que k, então W também poderia ser uma sequência comum de X m e Y, contrariando a suposição de que Z é uma LCS de X e Y. 3 Uma prova simétrica ao item 2.
14 Passo 2: Uma Solução Recursiva O Teorema 5.1 afirma que deve-se observar 1 ou 2 subproblemas para se encontrar uma LCS de X = x 1,x 2,...,x m e Y = y 1,y 2,...,y n, Se x m = y n deve-se procurar a LCS de X m 1 e Y n 1 e depois acrescentar x m = y n. Se x m y n, então deve-se resolver 2 subproblemas: Encontrar uma LCS de X m 1 e Y; e Encontrar uma LCS de X e Y n 1 Sendo a LCS mais longa destas duas a LCS de X e Y. Desta forma a sobreposição nas soluções dos subproblemas é clara! Para resolver a LCS de X e Y é necessário resolver a LCS de X m 1 e Y, e X e Y n 1.
15 Passo 2: Uma Solução Recursiva Defina c[i,j] ser o comprimento de uma LCS das sequências X i e Y j. Se i = 0 ou j = 0, uma das sequências tem comprimento zero, implicando que a LCS tem comprimento zero. ótima do problema da LCS e a forma recursiva: 0, sei = 0 ou j = 0 c[i,j] = c[i 1,j 1]+1, sei,j > 0 e x i = y j max(c[i,j 1],c[i 1,j]), sei,j > 0 e x i y j (1)
16 Passo 3: Computando o comprimento de uma LCS Um algoritmo natural para resolver a Equação 1 teria custo exponencial! Contudo este problema tem apenas Θ(nm) subproblemas distintos. Algoritmo com programação dinâmica: Considere duas sequências como entrada, X = x 1,x 2,...,x m e Y = y 1,y 2,...,y n Os valore c[i, j] são armazenados em uma tabela c[0..m, 0..n], onde os valores são computados linha a linha, esquerda para direita Também há uma tabela b[1..m, 1..n] tal que são armazenados as entradas para a escolha da solução ótima dos subproblemas quando está se computando c[i, j]. Saídas: b e c, onde c[m,n] contem o comprimento de uma LCS de X e Y.
17 Passo 3: Computando o comprimento de uma LCS LCS-LENGTH(X,Y) 1 m = X.length 2 n = Y.length 3 let b[1..n,1..n] e c[0..m,0..n] be new tables 4 for i = 1 to m 5 c[i,0] = 0 6 for i = 1 to n 7 c[0,j] = 0 8 for i = 1 to m 9 for j = i to n 10 if x i == y j 11 c[i,j] = c[i 1,j 1]+1 12 b[i,j] = տ 13 elseif c[i 1,j] c[i,j 1] 14 c[i,j] = c[i 1,j] 15 b[i,j] = 16 else c[i,j] = c[i,j 1] 15 b[i,j] = 17 return c and b
18 Passo 3: Computando o comprimento de uma LCS Exemplo: Dadas as sequências X = A,B,C,D,A,B e Y = B,D,C,A,B,A. Observe que o custo será Θ(nm) visto que a referência a cada entrada de uma tabela tem custo de Θ(1).
19 Passo 4: Construindo uma LCS Observando a tabela b gerada pelo LCS-LENGTH rapidamente é possível se construir uma LCS das sequências X e Y. Começa-se na entrada b[n, m], e segue-se as setas. Quando encontra-se a seta տ em b[i,j] significa que x i = y j, logo este é um elemento da LCS. Assim, é possível se computar os elementos de uma LCS em ordem reversa.
20 Passo 4: Construindo uma LCS Para se imprimir a LCS na ordem correta, PRINT-LCS(b,X,i,j) 1 if i == 0 or j == 0 2 return // LCS is empty 3 if b[i,j] == տ 4 PRINT-LCS(b,X,i 1,j 1) 5 print x i 6 elseif b[i,j] == 7 PRINT-LCS(b,X,i 1,j) 8 else PRINT-LCS(b,X,i,j 1) Sendo a chamada inicial PRINT-LCS(b, X, X.length, Y.length).
21 Passo 4: Construindo uma LCS Para a tabela b gerada no nosso último exemplo, PRINT-LCS iria gerar a sequência, BCBA O custo para este procedimento será de O(m+n) Visto que este decrementa no mínimo uma unidade de i e/ou j para cada chamada recursiva.
22 Melhorando o Código! Observe que este código LENGTH-LCS pode ser melhorado em desempenho tanto no tempo como no espaço. Como? Exercício para reflexão! Será que a tabela b é realmente necessária? Será que a tabela c necessita ser totalmente armazenada?
23 Sugestão de Leitura Capítulo 15, seção 15.4 do ĺıvro do Cormen; Weiss, Mark Allen. Data Structures and Algorithms Analysis in C. Second Edition. (1997) - Capítulo 8
Projeto e Análise de Algoritmos
Projeto e Análise de Algoritmos Aula 08 Maior Subsequência Comum (LCS) Edirlei Soares de Lima Problema Subsequência: sequência de caracteres não necessariamente contínuos, retirados
Leia maisSubsequência comum mais longa Em inglês, Longest Common Subsequence (LCS)
Programação Dinâmica Subsequência comum mais longa Em inglês, Longest Common Subsequence (LCS) Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 23 Longest Common Subsequence (LCS) Dadas duas sequências,
Leia maisAlgoritmos para Automação e Sistemas. Programação Dinâmica. Universidade Federal do Amazonas Departamento de Eletrônica e Computação
Algoritmos para Automação e Sistemas Programação Dinâmica Universidade Federal do Amazonas Departamento de Eletrônica e Computação Roteiro Programação Dinâmica Problemas de Otimização Linha de Montagem
Leia maisO Problema do Troco Principio da Casa dos Pombos. > Princípios de Contagem e Enumeração Computacional 0/48
Conteúdo 1 Princípios de Contagem e Enumeração Computacional Permutações com Repetições Combinações com Repetições O Problema do Troco Principio da Casa dos Pombos > Princípios de Contagem e Enumeração
Leia maisProgramação Dinâmica. Programa do PA. Técnicas Avançadas de Projeto. Aulas Anteriores. Introdução. Plano de Aula. Técnicas de Projeto de Algoritmos
Programação Dinâmica Técnicas de Projeto de Algoritmos Aula 13 Alessandro L. Koerich Pontifícia Universidade Católica do Paraná (PUCPR) Ciência da Computação 7 o Período Engenharia de Computação 5 o Período
Leia maisProjetos. Universidade Federal do Espírito Santo - UFES. Mestrado em Informática 2004/1. O Projeto. 1. Introdução. 2.
Pg. 1 Universidade Federal do Espírito Santo - UFES Mestrado em Informática 2004/1 Projetos O Projeto O projeto tem um peso maior na sua nota final pois exigirá de você a utilização de diversas informações
Leia maisPROGRAMAÇÃO DINÂMICA
PROGRAMAÇÃO DINÂMICA Programação dinâmica é tipicamente aplicada para problemas de otimização. O desenvolvimento de um algoritmo de programação dinâmica pode ser divido em 4 etapas. Caracterizar uma solução
Leia maisLista n 0 1 de Exercícios de Teoria da Computação
Lista n 0 1 de Exercícios de Teoria da Computação UFU-Curso de Bacharelado em Ciência da Computação - 7 0 período Profa. Sandra de Amo Exercícios de Revisão : Autômatos e Gramáticas 1. Mostre que a linguagem
Leia maisLógica Computacional 117366. 2 Descrição do Projeto
Lógica Computacional 117366 Descrição do Projeto Formalização de Algoritmos para Ordenação com Heaps 24 de setembro de 2015 Prof. Mauricio Ayala-Rincón Prof. Flávio L. C. de Moura A estagiária de docência
Leia maisContagem. George Darmiton da Cunha Cavalcanti CIn - UFPE
Contagem George Darmiton da Cunha Cavalcanti CIn - UFPE Sumário Princípios Básicos de Contagem A Regra do Produto A Regra da Soma O número de subconjuntos de um conjunto finito Princípio da Inclusão-Exclusão
Leia maisÁrvores Binárias de Busca
Árvores Binárias de Busca Uma Árvore Binária de Busca T (ABB) ou Árvore Binária de Pesquisa é tal que ou T = 0 e a árvore é dita vazia ou seu nó contém uma chave e: 1. Todas as chaves da sub-árvore esquerda
Leia maisUm Estudo Sobre a Chance de Repetição de Sorteios na Mega-Sena
Um Estudo Sobre a Chance de Repetição de Sorteios na Mega-Sena Rogério César dos Santos 05 de Janeiro de 2014 Resumo Qual é a chance de haver um sorteio repetido na Mega-Sena, em n jogos? Como veremos,
Leia maisMAT 461 Tópicos de Matemática II Aula 3: Resumo de Probabilidade
MAT 461 Tópicos de Matemática II Aula 3: Resumo de Probabilidade Edson de Faria Departamento de Matemática IME-USP 19 de Agosto, 2013 Probabilidade: uma Introdução / Aula 3 1 Probabilidade Discreta: Exemplos
Leia maisComplexidade de Algoritmos
Complexidade de Algoritmos Complexidade de Algoritmos Envolvendo Estruturas de Dados Elementares Prof. Osvaldo Luiz de Oliveira Estas anotações devem ser complementadas por apontamentos em aula. Vetor
Leia maisMC102 Algoritmos e Programação de Computadores
MC102 Algoritmos e Programação de Computadores Instituto de Computação UNICAMP Primeiro Semestre de 2015 Roteiro 1 Fundamentos de análise de algoritmos 2 Cálculo da função de custo 3 Exercícios Instituto
Leia maisOrientação a Objetos
1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou
Leia maisContagem I. Figura 1: Abrindo uma Porta.
Polos Olímpicos de Treinamento Curso de Combinatória - Nível 2 Prof. Bruno Holanda Aula 4 Contagem I De quantos modos podemos nos vestir? Quantos números menores que 1000 possuem todos os algarismos pares?
Leia maisBCC202 - Estrutura de Dados I
BCC202 - Estrutura de Dados I Aula 04: Análise de Algoritmos (Parte 1) Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Ciência da Computação, DECOM Website: www.decom.ufop.br/reifortes
Leia maisApostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi
Apostila de Fundamentos de Programação I Prof: André Luiz Montevecchi Introdução O mundo atual é dependente da tecnologia O uso intenso de diversos aparatos tecnológicos é parte integrante do nosso dia-a-dia
Leia maisMétodos Computacionais. Árvores
Métodos Computacionais Árvores Árvores Vetores e Listas são ótimos para representar estrutura de dados lineares, mas não para modelar dados hierárquicos Exemplos de dados hierárquicos: sistema de arquivos
Leia maisDadas a base e a altura de um triangulo, determinar sua área.
Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares
Leia maisPROGRAMAÇÃO ESTRUTURADA. CC 2º Período
PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 06: Ponteiros Declarando e utilizando ponteiros Ponteiros e vetores Inicializando ponteiros Ponteiros para Ponteiros Cuidados a serem
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 maisBCC242. Alfabeto, Strings, Linguagens. Registro aqui o agradecimento à Profa. Lucília por ceder slides que fazem parte deste material.
BCC242 Alfabeto, Strings, Linguagens Registro aqui o agradecimento à Profa. Lucília por ceder slides que fazem parte deste material. Exemplo: Máquina de Venda A máquina de venda retorna uma cocacola por
Leia maisFaculdade de Computação
UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Disciplina : Teoria da Computação Professora : Sandra Aparecida de Amo Lista de Exercícios n o 2 Exercícios sobre Modelos de Máquinas de Turing
Leia maisCONCEITOS BÁSICOS PARA A CONSTRUÇÃO DE ALGORITMOS PARA COMPUTADORES. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com
CONCEITOS BÁSICOS PARA A CONSTRUÇÃO DE ALGORITMOS PARA COMPUTADORES Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com Objetivos Compreender os conceitos de lógica de programação e de algoritmos. Conhecer
Leia maisx0 = 1 x n = 3x n 1 x k x k 1 Quantas são as sequências com n letras, cada uma igual a a, b ou c, de modo que não há duas letras a seguidas?
Recorrências Muitas vezes não é possível resolver problemas de contagem diretamente combinando os princípios aditivo e multiplicativo. Para resolver esses problemas recorremos a outros recursos: as recursões
Leia maisIntrodução a Java. Hélder Nunes
Introdução a Java Hélder Nunes 2 Exercício de Fixação Os 4 elementos básicos da OO são os objetos, as classes, os atributos e os métodos. A orientação a objetos consiste em considerar os sistemas computacionais
Leia mais20 Caracteres - Tipo char
0 Caracteres - Tipo char Ronaldo F. Hashimoto e Carlos H. Morimoto Até agora vimos como o computador pode ser utilizado para processar informação que pode ser quantificada de forma numérica. No entanto,
Leia maisSistemas Operacionais e Introdução à Programação. Vetores e matrizes
Sistemas Operacionais e Introdução à Programação Vetores e matrizes 1 Matrizes Cada elemento de uma matriz é referenciado indicando-se sua posição dentro da matriz. Na Matemática, matrizes são arranjos
Leia maisAs bactérias operárias
A U A UL LA As bactérias operárias Na Aula 47 você viu a importância da insulina no nosso corpo e, na Aula 48, aprendeu como as células de nosso organismo produzem insulina e outras proteínas. As pessoas
Leia maisHoje estudaremos a bioquímica dos ácidos nucléicos. Acompanhe!
Aula: 2 Temática: Ácidos Nucléicos Hoje estudaremos a bioquímica dos ácidos nucléicos. Acompanhe! Introdução: Os ácidos nucléicos são as moléculas com a função de armazenamento e expressão da informação
Leia maisO que queremos. Processamento Estatístico da Linguagem Natural. Parsing Morfológico. Regras Simples. Adicionando palavras. Regras Derivacionais
Processamento Estatístico da Linguagem Natural Aula 5 Professora Bianca (Sala 302 Bloco E) bianca@ic.uff.br http://www.ic.uff.br/~bianca/peln/ O que queremos Algo que faça automaticamente um mapeamento
Leia maisUNIVERSIDADE FEDERAL DO ESPÍRITO SANTO PROGRAMA DE EDUCAÇÃO TUTORIAL - MATEMÁTICA PROJETO FUNDAMENTOS DE MATEMÁTICA ELEMENTAR
UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO PROGRAMA DE EDUCAÇÃO TUTORIAL - MATEMÁTICA PROJETO FUNDAMENTOS DE MATEMÁTICA ELEMENTAR Assuntos: Matrizes; Matrizes Especiais; Operações com Matrizes; Operações Elementares
Leia maisO ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2
3.2 O Espaço Nulo de A: Resolvendo Ax = 0 11 O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2 Esta seção trata do espaço de soluções para Ax = 0. A matriz A pode ser quadrada ou retangular. Uma solução imediata
Leia maisComandos Sequenciais if else, e Switch
Introdução à Programação Comandos Sequenciais if else, e Switch 1º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv) O computador pensa? Muitas vezes utiliza-se a
Leia maisCálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante
Cálculo Numérico Aula : Computação numérica. Tipos de Erros. Aritmética de ponto flutuante Computação Numérica - O que é Cálculo Numérico? Cálculo numérico é uma metodologia para resolver problemas matemáticos
Leia maisComputabilidade 2012/2013. Sabine Broda Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto
Computabilidade 2012/2013 Sabine Broda Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto Capítulo 1 Computabilidade 1.1 A noção de computabilidade Um processo de computação
Leia maisCAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES
CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:
Leia maisEstruturas de Dados Pilhas, Filas e Deques
Estruturas de Dados Pilhas, Filas e Deques Prof. Eduardo Alchieri Estruturas de Dados Pilhas Pilhas Lista LIFO (Last In, First Out) Os elementos são colocados na estrutura (pilha) e retirados em ordem
Leia maisDisciplina de Projetos e Análise de Algoritmos. Aula 1 - Apresentação aos Algoritmos Computacionais
Aula 1 - Apresentação aos Algoritmos Computacionais O que é a Disciplina? Disciplina de Projeto e Análise de Algoritmos Esta é uma disciplina de Algoritmos em nível de Pós-Graduação! Temas a serem abordados:
Leia mais6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto
Capítulo 6. Autômatos com Pilha 6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto Nos exemplos da seção anterior, vimos que os autômatos com pilha existem para
Leia maisEstruturas de Dados Aula 15: Árvores 17/05/2011
Estruturas de Dados Aula 15: Árvores 17/05/2011 Fontes Bibliográficas Livros: Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 13; Projeto de Algoritmos (Nivio Ziviani): Capítulo
Leia maisSESSÃO 5: DECLINAÇÃO SOLAR AO LONGO DO ANO
SESSÃO 5: DECLINAÇÃO SOLAR AO LONGO DO ANO Respostas breves: 1.1) 9,063 N 1.2) norte, pois é positiva. 1.3) São José (Costa Rica). 2) Não, porque Santa Maria não está localizada sobre ou entre os dois
Leia maisCadeias de Markov. Geovany A. Borges gaborges@ene.unb.br
36341 - Introdução aos Processos Estocásticos Curso de Pós-Graduação em Engenharia Elétrica Departamento de Engenharia Elétrica Universidade de Brasília Cadeias de Markov Geovany A. Borges gaborges@ene.unb.br
Leia maisComplexidade de Algoritmos. Edson Prestes
Edson Prestes Caminhos de custo mínimo em grafo orientado Este problema consiste em determinar um caminho de custo mínimo a partir de um vértice fonte a cada vértice do grafo. Considere um grafo orientado
Leia maisVetores Lidando com grandezas vetoriais
Vetores Lidando com grandezas vetoriais matéria de vetores é de extrema importância para o ensino médio basta levar em consideração que a maioria das matérias de física envolve mecânica (movimento, dinâmica,
Leia maisProjeto e Análise de Algoritmos Projeto de Algoritmos Introdução. Prof. Humberto Brandão humberto@dcc.ufmg.br
Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução Prof. Humberto Brandão humberto@dcc.ufmg.br aula disponível no site: http://www.bcc.unifal-mg.edu.br/~humberto/ Universidade Federal de
Leia maisFunção Logarítmica Função Exponencial
ROTEIRO DE ESTUDO MATEMÁTICA 2014 Aluno (a): nº 1ª Série Turma: Data: /10/2014. 3ª Etapa Professor: WELLINGTON SCHÜHLI DE CARVALHO Caro aluno, O objetivo desse roteiro é orientá-lo em relação aos conteúdos
Leia maisO DNA é formado por pedaços capazes de serem convertidos em algumas características. Esses pedaços são
Atividade extra Fascículo 2 Biologia Unidade 4 Questão 1 O DNA é formado por pedaços capazes de serem convertidos em algumas características. Esses pedaços são chamados de genes. Assinale abaixo quais
Leia maisAlgoritmos e Estrutura de Dados. Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira
Algoritmos e Estrutura de Dados Aula 1 Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira Linguagem a ser Utilizada? Nossa disciplina é de Algoritmos e Estrutura de Dados, e não de linguagem
Leia maisAs fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:
1 As notas de aula que se seguem são uma compilação dos textos relacionados na bibliografia e não têm a intenção de substituir o livro-texto, nem qualquer outra bibliografia. Introdução O Cálculo Numérico
Leia maisÁrvores AVL. Prof. Othon M. N. Batista Estrutura de Dados
Árvores AVL Prof. Othon M. N. Batista Estrutura de Dados Roteiro (/2) Árvore Binária de Pesquisa - Pior Tempo ABP Balanceada e Não Balanceada Balanceamento de Árvores Balanceamento de ABP Balanceamento
Leia maisEAD Árvore árvore binária
EAD Árvore árvore binária - Uma árvore binária é um conjunto finito de elementos (nodos) que pode ser vazio ou particionado em três subconjuntos: - raiz da árvore (elemento inicial, que é único); - subárvore
Leia maisÁrvores e Árvores Binárias
MAC 5710 - Estruturas de Dados - 2008 Referência bibliográfica Os slides sobre este assunto são parcialmente baseados nas seções sobre árvores do capítulo 4 do livro N. Wirth. Algorithms + Data Structures
Leia maisAula 7 Ácidos nucléicos
Aula 7 Ácidos nucléicos Os ácidos nucléicos DNA (ácido desoxirribonucléico) e o RNA (ácido ribonucléico) são substâncias essenciais para os seres vivos, pois mantêm a informação genética que controla a
Leia maisNesta aula serão apresentados alguns comandos de condição, repetição e gráficos.
3 COMANDOS CONDICIONAIS E DE LAÇO Nesta aula serão apresentados alguns comandos de condição, repetição e gráficos. 3.1 COMANDOS CONDICIONAIS 3.1.1 Comando IF Como o próprio nome já indica, estes comandos
Leia maisINE 5111 Gabarito da Lista de Exercícios de Probabilidade INE 5111 LISTA DE EXERCÍCIOS DE PROBABILIDADE
INE 5 LISTA DE EERCÍCIOS DE PROBABILIDADE INE 5 Gabarito da Lista de Exercícios de Probabilidade ) Em um sistema de transmissão de dados existe uma probabilidade igual a 5 de um dado ser transmitido erroneamente.
Leia maisAula 14: Instruções e Seus Tipos
Aula 14: Instruções e Seus Tipos Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Instruções e Seus Tipos FAC 1 / 35 Conceitos Básicos Diego Passos
Leia maisÁrvores Binárias de Busca
Árvores Binárias de Busca Definição Uma Árvore Binária de Busca possui as mesmas propriedades de uma AB, acrescida da seguinte propriedade: Para todo nó da árvore, se seu valor é X, então: Os nós pertencentes
Leia maisUM TEOREMA QUE PODE SER USADO NA
UM TEOREMA QUE PODE SER USADO NA PERCOLAÇÃO Hemílio Fernandes Campos Coêlho Andrei Toom PIBIC-UFPE-CNPq A percolação é uma parte importante da teoria da probabilidade moderna que tem atraído muita atenção
Leia mais4.1 Em cada caso use a definição para calcular f 0 (x). (a) f (x) =x 3,x R (b) f (x) =1/x, x 6= 0 (c) f (x) =1/ x, x > 0.
4. Em cada caso use a definição para calcular f 0 (). (a) f () = 3, R (b) f () =/, 6= 0 (c) f () =/, > 0. 4.2 Mostre que a função f () = /3, R, não é diferenciável em =0. 4.3 Considere a função f : R R
Leia maisAtividade 4 - Acerte no alvo
Atividade 4 - Acerte no alvo 1. Justificativa Para entender um processo estatístico, é possível criar um experimento em que os alunos possam vivenciá-lo, organizando, selecionando, interpretando e criticando
Leia maisPLANEJAMENTO DA MANUFATURA
58 FUNDIÇÃO e SERVIÇOS NOV. 2012 PLANEJAMENTO DA MANUFATURA Otimizando o planejamento de fundidos em uma linha de montagem de motores (II) O texto dá continuidade à análise do uso da simulação na otimização
Leia maisPython Funções. Introdução à Programação SI1
Python Funções Introdução à Programação SI1 Conteúdo Funções Conceitos Objetivos Modularização Exemplos Exercícios 2 Funções O que são? Qual a função de uma função? 3 Imagine o código 4 Imagine o código
Leia maisSHA(SECURE HASH ALGORITHM - ALGORITMO HASH SEGURO) BRUNO KAMINO YAMAMOTO ALEXANDRE FLEURY
SHA(SECURE HASH ALGORITHM - ALGORITMO HASH SEGURO) BRUNO KAMINO YAMAMOTO ALEXANDRE FLEURY TIPOS DO ALGORITMO SHA SHA-0: Uma sigla dada a versão original do algoritmo, porém se tornou obsoleta por causa
Leia maisOPERADORES E ESTRUTURAS DE CONTROLE
OPERADORES E ESTRUTURAS DE CONTROLE 3.1 Operadores Os operadores indicam o tipo de operação matemática que será executada gerando novos valores a partir de um ou mais operadores. São muito utilizados em
Leia maisMÓDULO 6 INTRODUÇÃO À PROBABILIDADE
MÓDULO 6 INTRODUÇÃO À PROBBILIDDE Quando estudamos algum fenômeno através do método estatístico, na maior parte das vezes é preciso estabelecer uma distinção entre o modelo matemático que construímos para
Leia maisINF 1771 Inteligência Artificial
Edirlei Soares de Lima INF 1771 Inteligência Artificial Aula 04 Algoritmos Genéticos Introdução Algoritmos genéticos são bons para abordar espaços de buscas muito grandes e navegálos
Leia maisAnalise filogenética baseada em alinhamento de domínios
Analise filogenética baseada em alinhamento de domínios Moléculas biológicas e evolução Como já foi comentado anteriormente sabemos que o DNA de qualquer espécie de ser vivo sofre mutações ao longo do
Leia maisDepartamento de Matemática - UEL - 2010. Ulysses Sodré. http://www.mat.uel.br/matessencial/ Arquivo: minimaxi.tex - Londrina-PR, 29 de Junho de 2010.
Matemática Essencial Extremos de funções reais Departamento de Matemática - UEL - 2010 Conteúdo Ulysses Sodré http://www.mat.uel.br/matessencial/ Arquivo: minimaxi.tex - Londrina-PR, 29 de Junho de 2010.
Leia maisFaculdade de Computação
UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Disciplina : Teoria da Computação Professora : Sandra de Amo Solução da Lista de Exercícios n o 6 - Problemas Indecidiveis Exercicio 7-5.5 do
Leia maisCurso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura
UFPI CCN DIE Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura O projeto Desenvolver um compilador de um subconjunto básico da linguagem PORTUGOL.
Leia maisACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Seção 5.1 Problemas indecidíveis. Slides originais gentilmente cedidos pela Profa. Ariane Machado Lima
ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO Seção 5.1 Problemas indecidíveis Slides originais gentilmente cedidos pela Profa. Ariane Machado Lima 1 Na aula passada... A MT é indecidível (usando diagonalização)
Leia maisProgramação em papel quadriculado
4 NOME DA AULA: Programação em papel quadriculado Tempo de aula: 45 60 minutos Tempo de preparação: 10 minutos Objetivo principal: ajudar os alunos a entender como a codificação funciona. RESUMO Ao "programar"
Leia maisEstruturas de Dados. Prof. Gustavo Willam Pereira Créditos: Profa. Juliana Pinheiro Campos
Estruturas de Dados Prof. Gustavo Willam Pereira Créditos: Profa. Juliana Pinheiro Campos Árvores Conceitos Árvores binárias Árvores binárias de pesquisa Árvores binárias balanceadas Árvores ESTRUTURAS
Leia maisCapítulo SETE Números em Ponto Fixo e Ponto Flutuante
Capítulo SETE Números em Ponto Fixo e Ponto Flutuante 7.1 Números em ponto fixo Observação inicial: os termos ponto fixo e ponto flutuante são traduções diretas dos termos ingleses fixed point e floating
Leia maisAlgoritmos de pesquisa. Tabelas de dispersão/hash
Algoritmos de pesquisa Tabelas de dispersão/hash Introdução Motivação: Considerar o problema de pesquisar um determinado valor num vetor (array). Se o vetor não está ordenado, a pesquisa requer O(n) de
Leia maisData Transformation Services (DTS) por Anderson Ferreira Souza
Data Transformation Services (DTS) por Anderson Ferreira Souza O Sql Server possui um recurso extremamente poderoso que é muito pouco utilizado pelos administradores e programadores. Com certeza, sendo
Leia maiscomputador-cálculo numérico perfeita. As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:
1 UNIVERSIDADE FEDERAL DE VIÇOSA Departamento de Matemática - CCE Cálculo Numérico - MAT 271 Prof.: Valéria Mattos da Rosa As notas de aula que se seguem são uma compilação dos textos relacionados na bibliografia
Leia maisSobre o Professor Dr. Sylvio Barbon Junior
5COP096 Teoria da Computação Aula 1 Apresentação da Disciplina e Revisão de Conceitos Prof. Dr. Sylvio Barbon Junior 1 Sobre o Professor Dr. Sylvio Barbon Junior 5COP096 Teoria da Computação Formação:
Leia maisPointer Jumping. odg(v) e idg(v): graus de saída e entrada do vértice v V. um vértice r tal que. O vértice r é dita raíz de T
Pointer Jumping T = (V,E) : árvore direcionada odg(v) e idg(v): graus de saída e entrada do vértice v V um vértice r tal que v V-{r}, odg(v) = 1, odg(r)=0 v V-{r}, um caminho de v a r O vértice r é dita
Leia maisSEMINÁRIO . ORGANIZAÇÃO DO SEMINÁRIO.
SEMINÁRIO Seminário é um grupo de pessoas que se reúnem com o propósito de estudar um tema sob a direção de um professor ou autoridade na matéria. O nome desta técnica vem da palavra semente, indicando
Leia maisTUTORIAL DO ACCESS PASSO A PASSO. I. Criar um Novo Banco de Dados. Passos: 1. Abrir o Access 2. Clicar em Criar um novo arquivo
TUTORIAL DO ACCESS PASSO A PASSO I. Criar um Novo Banco de Dados Passos: 1. Abrir o Access 2. Clicar em Criar um novo arquivo 3. Clicar em Banco de Dados em Branco 4. Escrever um nome na caixa de diálogo
Leia maiscasa. Será uma casa simples, situada em terreno plano, com sala, dois quartos, cozinha, banheiro e área de serviço.
A UUL AL A A casa Nesta aula vamos examinar a planta de uma casa. Será uma casa simples, situada em terreno plano, com, dois quartos, cozinha, banheiro e área de serviço. Introdução terreno 20 m rua 30
Leia maisIFTO LÓGICA DE PROGRAMAÇÃO AULA 02
IFTO LÓGICA DE PROGRAMAÇÃO AULA 02 Prof. Manoel Campos da Silva Filho Tecnólogo em Processamento de Dados / Unitins Mestre em Engenharia Elétrica / UnB http://lab.ifto.edu.br/~mcampos http://manoelcampos.com
Leia maisLinguagem C: Árvores Binarias
Instituto de C Linguagem C: Árvores Binarias Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Tópicos Principais Introdução Árvores binárias Implementação
Leia mais1. Introdução ao uso da calculadora
1. Introdução ao uso da calculadora O uso da calculadora científica no curso de Estatística é fundamental pois será necessário o cálculo de diversas fórmulas com operações que uma calculadora com apenas
Leia mais1.2) Na tela seguinte, o primeiro item a ser selecionado é o Unidade Acumuladora1.
MANUAL DA NOVA VERSÃO DE ARQUIVAMENTO DO CPROD Na nova versão de Arquivamento que está sendo implementada no CPROD, antes de realizarmos o Arquivamento do Processo ou Documento em si, temos que criar no
Leia maisQUADRADO MÁGICO - ORDEM 4
CONCEITO Partindo da definição original, os QUADRADOS MÁGICOS devem satisfazer três condições: a) tabela ou matriz quadrada (número de igual ao número de ); b) domínio: com elementos assumindo valores
Leia maisALGORITMOS PARTE 01. Fabricio de Sousa Pinto
ALGORITMOS PARTE 01 Fabricio de Sousa Pinto Algoritmos: Definição 2 É uma sequência de instruções finita e ordenada de forma lógica para a resolução de uma determinada tarefa ou problema. Algoritmos 3
Leia maisVocê pode dizer isso de novo! Compressão de Texto
Atividade 3 Você pode dizer isso de novo! Compressão de Texto Sumário Desde que os computadores possuíam apenas uma quantidade limitada de espaço para armazenar informações, estes precisavam armazená-las
Leia maisÁrvores Binárias Balanceadas
Árvores Binárias Balanceadas Elisa Maria Pivetta Cantarelli Árvores Balanceadas Uma árvore é dita balanceada quando as suas subárvores à esquerda e à direita possuem a mesma altura. Todos os links vazios
Leia maisLista de Exercícios. Vetores
Lista de Exercícios Vetores LINGUAGEM DE PROGRAMAÇÃO PROF. EDUARDO SILVESTRI. WWW.EDUARDOSILVESTRI.COM.BR ATUALIZADO EM: 13/03/2007 Página 1/1 1. Faça um programa que crie um vetor de inteiros de 50 posições
Leia maisULA Sinais de Controle enviados pela UC
Solução - Exercícios Processadores 1- Qual as funções da Unidade Aritmética e Lógica (ULA)? A ULA é o dispositivo da CPU que executa operações tais como: Adição Subtração Multiplicação Divisão Incremento
Leia maisEstrutura de Dados. Introdução a Ponteiros. Prof. Gerson Borges Estrutura de Dados I 1
Estrutura de Dados Introdução a Ponteiros Prof. Gerson Borges Estrutura de Dados I 1 Sumário è Explicação da importância do planejamento de ensino; è Métodos e técnicas que iremos trabalhar durante o semestre;
Leia maisINF 1005 Programação I
INF 1005 Programação I Aula 12 Cadeia de Caracteres (Strings) Edirlei Soares de Lima Caracteres Até o momento nós somente utilizamos variáveis que armazenam números (int, float ou
Leia maisBUSCA EM LISTAS LISTAS SEQÜENCIAIS, LISTAS SIMPLESMENTE E DUPLAMENTE ENCADEADAS E LISTAS CIRCULARES
BUSCA EM LISTAS LISTAS SEQÜENCIAIS, LISTAS SIMPLESMENTE E DUPLAMENTE ENCADEADAS E LISTAS CIRCULARES ALGORITMOS DE BUSCA EM LISTAS COM ALOCAÇÃO SEQÜENCIAL Busca em Listas Lineares A operação de busca é
Leia maisAULA 1 INTRODUÇÃO - ENGENHARIA DE SOFTWARE. Prof. Msc. Hélio Esperidião
AULA 1 INTRODUÇÃO - ENGENHARIA DE SOFTWARE Prof. Msc. Hélio Esperidião O QUE É UM ALGORITMO? É qualquer procedimento computacional bem definido que informa algum valor ou conjunto de valores como entrada
Leia mais