Teoria dos Grafos Aula 17

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

Download "Teoria dos Grafos Aula 17"

Transcrição

1 Teoria dos Grafos Aula 17 Aula passada Problema da soma do subconjunto (subset sum) Programação dinâmica Problema da mochila Aula de hoje Alinhamento de sequências Programação dinâmica Caminho mais curto (abordagem via grafos)

2 Sugestões do Google Como o Google faz isto? realmente sabia o que eu procurava? por que não sugeriu esperando ou expansão?

3 Medindo Similaridade Problema: medir semelhança entre duas palavras Idéia: quantidade de modificações para transformar uma palavra em outra mais modificações, maior diferença Ex. exparansa e esperado exparansa esperado- 5 operações Operações de substituição e adição ou remoção (gap)

4 Medindo Similaridade Generalização: operações podem ter custos diferentes ex. adição é mais caro do que substituição Custo depende da substituição ex. trocar vogal por consoante é mais caro do que vogal por vogal De forma geral, para cada par de letras p, q pq = custo de substituir p por q = custo do gap (remoção/adição)

5 Exemplo pq = 1 : quando p, q são vogais pq = 2 : caso contrario = 3 exparansa exparansa exparansa Custo? = 10 esperado- expansão- Custo? = 11 esperança Custo? = 5 Google sugere palavra de menor custo (maior similaridade) Menor custo depende dos pesos

6 Alinhamento de Palavras Problema: Determinar menor custo entre duas palavras muitas maneiras de transformar uma palavra na outra Ex. exparansa e expansão exparansa Custo? = 11 expansão- exparansaexpan--são Custo? = 12 Problema do alinhamento entre palavras

7 Genoma: Código da Vida Genoma: conjunto de moléculas do DNA de um organismo (gens ou cromossomos) DNA: longa sequência de apenas 4 substâncias (A,C,G,T) humano: 6 bilhões, ao todo Subsequências (gigantes) determinam funcionalidade ex. resistência a uma determinada toxina, controle do metabolismo, etc.

8 Alinhamento de DNA Objetivo: Identificar gens (parte da sequência do DNA) que são similares entre indivíduos, entre espécies, etc. Problema: Medir similaridade entre os gens Problema importante e atual da área de Biologia Computacional de grande interesse na biologia molecular

9 Alinhamento de DNA Medir similaridade entre longas sequências custo de transformação das sequências Ex. similaridade entre as sequências ACCCAACCCCAAC e ACACAAACCCCCAC ACCCAACCCCAAC- ACCCAA--CCCCAAC ACACAAACCCCCAC ACACAAACCCCCA-C Problema: Encontrar transformação de menor custo (definição de similaridade)

10 Emparelhamento Considere duas sequências (de tamanho m e n) X = x 1 x 2... x m Y = y 1 y 2... y n Emparelhamento M: conjunto de pares ordenados (i, j) tal que cada elemento i ou j ocorre em no máximo 1 par Exemplo x 1 x 2 x 3 x 4 x 5 M = {(1, 1), (2, 4), (3, 2), (5, 6)} y 1 y 2 y 3 y 4 y 5 y 6

11 Alinhamento Considere duas sequências (de tamanho m e n) X = x 1 x 2... x m Y = y 1 y 2... y n Emparelhamento M é um alinhamento, quando não há cruzamentos Para todo (i, j) e (i', j') pertencente a M, se i < i', então j < j' M (slide anterior) é alinhamento? M = {(1, 1), (2, 4), (3, 2), (5, 6)}

12 Alinhamento Exemplo: espera e perna esper-a -esper-a --perna M = {(3, 1), (4, 2), (5, 3), (6, 5)} pe---rna M = {(1, 2), (5, 3), (6, 5)} Emparelhamento (alinhado) define a transformação Cada emparelhamento tem um custo Problema: Encontrar emparelhamento que minimiza o custo (ótimo)

13 Alinhamento de Sequência Abordagem via programação dinâmica Estudo da solução ótima M M emparelhamento de menor custo O que podemos dizer sobre o último par (m, n)? último símbolo das duas sequências Ou (m,n) pertence a M ou (m,n) não pertence a M O que podemos afirmar quando (m,n) não pertence a M?

14 Alinhamento de Sequência Se (m, n) não pertence a M, então ou a posição m de X ou a posição n de Y não aparece em nenhum par caso contrário, (se as duas aparecem em dois pares) teríamos um cruzamento Se M é ótimo, então sabemos que (m, n) pertence a M ou posição m de X não está emparelhada em M ou posição n de Y não está emparelhada em M

15 Analisando Solução Ótima Variáveis para definição dos subproblemas? número de caracteres sendo considerados da sequência X e Y (a partir do início) i : x 1 x 2... x i -- j : y 1 y 2... y j OPT(i, j): custo da solução ótima com as respectivas subsequências de X e Y Três casos para considerar 1) Se (m, n) pertence a M Custo do emparelhamento entre x m e y n (que pode ser zero) + custo do subproblema ótimo OPT(m, n) = xm yn + OPT(m-1, n-1)

16 Analisando Solução Ótima 2) Se posição m de X não está emparelhada Custo de um gap (da posição m de X) + custo da solução ótima sem a posição m de X OPT(m, n) = + OPT(m-1, n) 3) Se posição n de Y não está emparelhada Custo de um gap (da posição n de Y) + custo da solução ótima sem a posição n de Y OPT(m, n) = + OPT(m, n-1) Solução ótima considera caso de menor custo entre as três possibilidades

17 Analisando Solução Ótima Generalizando o argumento para qualquer subsequência de tamanho i e j OPT(i, j) = min ( xi yj + OPT(i-1, j-1), + OPT(i-1, j), + OPT(i, j-1) Quando emparelhamento (i, j) pertence a solução ótima? Quando primeiro caso é o mínimo

18 Algoritmo Algoritmo para calcular OPT(n, m)? iterativo, não recursivo (mas utilizando recursão) Alinhamento OPT(X, Y) Array A[0,...,m ; 0,...,n] Init A[i,0] = i*, para i = 0,...,m Init A[0,j] = j*, para j = 0,...,n Init A[0,0] = 0 For j = 1,..., n For i = 1,..., m A[i,j] = min( (X[i],Y[j]) + A[i 1,j 1], + A[i 1, j], + A[i, j 1]) Retorna A[m,n] Inicialização: gap em todos os caracteres quando a outra sequência é vazia

19 Complexidade Tempo de execução do algoritmo? Número de elementos da matriz A cada elemento da matriz A tem tempo constante O(1) Complexidade O(m n)

20 Redução para Grafos Alinhamento de sequências pode ser mapeado em problema de grafos problema de menor caminho Dado duas sequências X e Y, construir um grafo direcionado G XY em um grid Elemento (i, j) do grid corresponde aos índices (i, j) das sequências Arestas direcionadas apenas entre vizinhos no grid (horizontal, vertical e diagonal) Pesos correspondem ao custos de gap (horizontal e vertical) ou substituição (diagonal)

21 Construindo o Grafo Ex. X = x 1 x 2 x 3 Y = y 1 y 2 y 3 y 4 x 3 x 2 x 1 0 y 1 y 2 y 3 y 4 Mover na horizontal ou vertical, é igual a introduzir um gap custo Mover na diagonal é igual a emparelhar (i, j) custo xi yj

22 Caminho Mínimo Seja c(i, j) o custo mínimo para ir do vértice (0, 0) ao vértice (i, j) Então, para qualquer (i, j) c(i, j) = OPT(i, j) custo do caminho mínimo é igual ao custo do emparelhamento ótimo Prova por indução (e muito intuitiva) Caminho de custo mínimo determina emparelhamento c(m,n) é solução para o problema

23 Complexidade Solução mais eficiente para o problema? Número de vértices do grafo (m+1)(n+1) ~ mn Número de arestas do grafo ~ 3mn Complexidade de Dijkstra (caminho mínimo) O((n + m)log n), onde n é número de vértices e m número de arestas Logo, com Dijkstra temos O(mn log mn) Não reduz complexidade (necessariamente) mas interpretação vem ajudando desenvolver outros algoritmos

Teoria dos Grafos Aula 22

Teoria dos Grafos Aula 22 Teoria dos Grafos Aula 22 Aula passada Caminho mais curto entre todos os pares Algoritmo de Floyd Warshall Programação dinâmica Aula de hoje Caminho mais curto Algoritmo de Bellman Ford Melhorias Caminho

Leia mais

Teoria dos Grafos Aula 23

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

Leia mais

Teoria dos Grafos Aula 24

Teoria dos Grafos Aula 24 Teoria dos Grafos Aula 24 Aula passada Caminho mais curto entre todos os pares Algortimo de Floyd Warshall Programação dinâmica Aula de hoje Caminho mais curto em grafos Algoritmo de Bellman Ford Algoritmo

Leia mais

Alinhamento de Sequências e Genômica Comparativa

Alinhamento de Sequências e Genômica Comparativa Encontro França-Brasil de Bioinformática Universidade Estadual de Santa Cruz (UESC) Ilhéus-BA - Brasil Alinhamento de Sequências e Genômica Comparativa Maria Emília M. T. Walter Departamento de Ciência

Leia mais

Programação Dinâmica. Prof. Anderson Almeida Ferreira. Adaptado do material elaborado por Andrea Iabrudi Tavares

Programação Dinâmica. Prof. Anderson Almeida Ferreira. Adaptado do material elaborado por Andrea Iabrudi Tavares Programação Dinâmica Prof. Anderson Almeida Ferreira Adaptado do material elaborado por Andrea Iabrudi Tavares Programação Dinâmica 1950, Bellman Evitar recálculos dos subproblemas em comum Menor para

Leia mais

Programação Dinâmica. Prof. Anderson Almeida Ferreira

Programação Dinâmica. Prof. Anderson Almeida Ferreira Programação Dinâmica Prof. Anderson Almeida Ferreira Programação Dinâmica 1950, Bellman Evitar recálculos dos subproblemas em comum Menor para maior (bottom-up) Tabelas ou memorização É uma técnica de

Leia mais

Teoria dos Grafos Aula 8

Teoria dos Grafos Aula 8 Teoria dos Grafos Aula 8 Aula passada Grafos com pesos, caminhos e distâncias Ideia e algoritmo de Dijkstra Dijkstra o próprio Aula de hoje Corretude de Dijkstra Fila de prioridades e Heap Dijkstra eficiente

Leia mais

Teoria dos Grafos Aula 8

Teoria dos Grafos Aula 8 Teoria dos Grafos Aula 8 Aula passada Grafos com pesos, caminhos e distâncias Ideia e implementação de alg. de Dijkstra Aula de hoje Corretude de Dijkstra Fila de prioridades e Heap Dijkstra eficiente

Leia mais

Tópicos Especiais em Inteligência Artificial COS746. Vítor Santos Costa COPPE/Sistemas Universidade Federal do Rio de Janeiro

Tópicos Especiais em Inteligência Artificial COS746. Vítor Santos Costa COPPE/Sistemas Universidade Federal do Rio de Janeiro Tópicos Especiais em Inteligência Artificial COS746 Vítor Santos Costa COPPE/Sistemas Universidade Federal do Rio de Janeiro Agradecimento Copiado dos slides de Mark Craven para BMI/CS 576, UW-Madison

Leia mais

Complexidade de Algoritmos. Edson Prestes

Complexidade de Algoritmos. Edson Prestes Edson Prestes Programação Dinâmica A programação dinâmica costuma ser aplicada a problemas de otimização resultando, em geral, em algoritmos mais eficientes que os mais diretos. Esse método é útil quando

Leia mais

Teoria dos Grafos Aula 18

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

Leia mais

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

PROGRAMAÇÃO DINÂMICA

PROGRAMAÇÃ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 mais

Análise de Complexidade para algoritmos iterativos e recursivos

Análise de Complexidade para algoritmos iterativos e recursivos Disciplina: Matemática Discreta Agostinho Iaqchan Ryokiti Homa Análise de Complexidade para algoritmos iterativos e recursivos Algoritmos iterativos - complexidade expressa através de somatórios. Algoritmos

Leia mais

Aula 14. Aula de hoje. Aula passada

Aula 14. Aula de hoje. Aula passada Aula 14 Aula passada Autovalores, autovetores, decomposição Convergência para estacionaridade Tempo de mistura Spectral gap Tempo de mistura de passeios aleatórios Aula de hoje Caminho amostral Teorema

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 dos Grafos Aula 22

Teoria dos Grafos Aula 22 Teoria dos Grafos Aula 22 Aula passada Aula de hoje Algoritmo de Ford- Aplicações do Fulkerson fluxo máximo Análise do Emparelhamento algoritmo Caminhos Melhorando distintos algoritmo inicial Corte mínimo

Leia mais

Projeto e Análise de Algoritmos

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 mais

Teoria dos Grafos Aula 27

Teoria dos Grafos Aula 27 Teoria dos Grafos Aula 27 Aula passada Aula de hoje Algoritmo de Ford Aplicações do fluxo Fulkerson máximo Análise do algoritmo Emparelhamento perfeito Melhorando algoritmo inicial Caminhos distintos Corte

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

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

Alinhamentos de Múltiplas Seqüências. Rogério T. Brito Orientador: José A. R. Soares

Alinhamentos de Múltiplas Seqüências. Rogério T. Brito Orientador: José A. R. Soares 1 Alinhamentos de Múltiplas Seqüências Rogério T. Brito Orientador: José A. R. Soares 2 Motivação Problema em Biologia: saber qual é o grau de parentesco entre um conjunto de espécies (construção de árvores

Leia mais

Aná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 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 mais

Teoria dos Grafos Aula 14

Teoria dos Grafos Aula 14 Teoria dos Grafos Aula 14 Aula passada MST Aula de hoje Construção de algoritmos Paradigma guloso Escalonando tarefas no tempo (interval scheduling) Projetando Algoritmos Dado um problema P, como projetar

Leia mais

Prova Didática Grafos: Árvores Geradoras e Caminhos Mínimos, Análise de Complexidade

Prova Didática Grafos: Árvores Geradoras e Caminhos Mínimos, Análise de Complexidade Prova Didática Grafos: Árvores Geradoras e Caminhos Mínimos, Análise de Complexidade Gustavo E.A.P.A. Batista 25 de janeiro de 2005 1 Contextualização 2 Caminhos Mínimos Caminhos Mínimos de uma Origem

Leia mais

Resumo - capítulo 5 - Predição da estrutura secundária do RNA

Resumo - capítulo 5 - Predição da estrutura secundária do RNA Resumo - capítulo 5 - Predição da estrutura secundária do RNA Pedro Ivo Gomes de Faria Sumário 1 Introdução 2 1.1 Fundamentos da predição da estrutura do RNA........ 2 1.2 Características da estrutura

Leia mais

GRAFOS BUSCAS E MENOR CAMINHO. Prof. André Backes

GRAFOS BUSCAS E MENOR CAMINHO. Prof. André Backes 8//6 GRAFOS BUSCAS E MENOR CAMINHO Prof. André Backes Busca em grafos Definição Consiste em explorar o grafo de uma maneira bem específica. Trata-se de um processo sistemático de como caminhar por seus

Leia mais

Projeto e Análise de Algoritmos Aula 8: Algoritmos Gulosos (5)

Projeto 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 mais

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

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 11: Introdução aos Grafos Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 11: Introdução aos Grafos Indução Finita Indução Finita é uma técnica para provar teoremas também usada no projecto de algoritmos. Suponha

Leia mais

INTRODUÇÃO A BUSCA EXERCÍCIOS

INTRODUÇÃO A BUSCA EXERCÍCIOS INTRODUÇÃO USC EXERCÍCIOS 1. Formule um problema de busca de forma que um agente possa planejar sua ida do Portal da Graciosa à ntonina pelo caminho de menor custo. Não é necessário prever caminhos de

Leia mais

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Aula 25

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Aula 25 ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO Aula 25 Cap 7.2 A classe P Profa. Ariane Machado Lima ariane.machado@usp.br 1 Cap 7.2 A classe P 2 Tempo polinomial e exponencial Ex: Máquina de tempo n 3 (tempo

Leia mais

Análise e Projeto de Algoritmos

Análise e Projeto de Algoritmos Análise e Projeto de Algoritmos 2018.2 Classes P e NP P São os problemas que podem ser resolvidos em tempo polinomial por uma Máquina de Turing Determinística. NP São os problemas que podem ser decididos

Leia mais

Algoritmo de Dijkstra

Algoritmo de Dijkstra lgoritmo de Dijkstra Caminhos mínimos em Grafos Considere um grafo orientado ponderado G = (V,E) em que cada aresta possui um rótulo não negativo associado que define o custo da aresta, e um dos vértices

Leia mais

QUESTÕES DE PROVAS ANTIGAS

QUESTÕES DE PROVAS ANTIGAS CT-24 QUESTÕES DE PROVAS ANTIGAS ) Preencha a tabela abaixo com Î ou Ï: ω(log n) Θ(n) O(n log n) Ω(n 2 ) o(n ) 6n + 2n 2 + 2.log n + 4n + n.log n + log n 2) Dada a árvore binária abaixo, escreva os seus

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

Solução de Recorrências

Soluçã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 mais

Teoria dos Grafos Aula 6

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

Leia mais

Memória cache. Sistemas de Computação

Memória cache. Sistemas de Computação cache Sistemas de Computação Princípio da localidade Programas tendem a reutilizar dados e instruções perto daqueles que foram utilizados recentemente Localidade temporal: Itens recentemente referenciados

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

Gabriel Coutinho DCC035 - Pesquisa Operacional Lista 6

Gabriel Coutinho DCC035 - Pesquisa Operacional Lista 6 Lista 6 Exercício. O objetivo deste exercício é modelar o problema de emparelhamento em um grafo bipartido como um problema de fluxo, e verificar que o Teorema de Konig é essencialmente o Teorema de Fluxo

Leia mais

ExpressMath: Análise estrutural de expressões matemáticas manuscritas

ExpressMath: Análise estrutural de expressões matemáticas manuscritas ExpressMath: Análise estrutural de expressões matemáticas manuscritas Bruno Yoiti Ozahata, Ricardo Sider Nina S. T. Hirata (orientadora) Departamento de Ciência da Computação Instituto de Matemática e

Leia mais

Referências e materiais complementares desse tópico

Referências e materiais complementares desse tópico Notas de aula: Análise de Algoritmos Centro de Matemática, Computação e Cognição Universidade Federal do ABC Profa. Carla Negri Lintzmayer Programação Dinâmica (Última atualização: 6 de maio de 2019) Referências

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

Algoritmos de Ordenação: QuickSort

Algoritmos de Ordenação: QuickSort Algoritmos de Ordenação: QuickSort 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

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

Projeto e Análise de Algoritmos Aula 8: Algoritmos Gulosos (DPV 5; CLRS 4)

Projeto 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 mais

Grafos COM11087-Tópicos Especiais em Programação II

Grafos COM11087-Tópicos Especiais em Programação II Grafos COM11087-Tópicos Especiais em Programação II edmar.kampke@ufes.br Introdução Grafos são estruturas muito estudadas na Ciência da Computação para modelagem de problemas Euler (1736) em Königsberg

Leia mais

Algoritmos 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 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 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

Teoria dos Grafos Aula 2

Teoria dos Grafos Aula 2 Teoria dos Grafos Aula 2 Aula passada Logística, regras Objetivos Grafos, o que são? Formando pares Encontrando caminhos Aula de hoje Outro problema real Definições importantes Algumas propriedades Grafo

Leia mais

Teoria dos Grafos Aula 7

Teoria dos Grafos Aula 7 Teoria dos Grafos Aula 7 Aula passada Grafos direcionados Busca em grafos direcionados Ordenação topológica Aula de hoje Grafos com pesos Caminhos mínimos Dijkstra a ideia Dijkstra o algoritmo Dijkstra

Leia mais

Otimização em Grafos

Otimização em Grafos Otimização em Grafos Luidi G. Simonetti PESC/COPPE 2017 Luidi Simonetti (PESC) EEL857 2017 1 / 33 Definição do Problema Dado: um grafo ponderado G = (V, E), orientado ou não, onde d : E R + define as distâncias

Leia mais

Teoria dos Grafos Aula 26

Teoria dos Grafos Aula 26 Teoria dos Grafos Aula 26 Aula passada Redes de fluxo Problema do fluxo máximo Problema do corte mínimo Aula de hoje Algoritmo de Ford Fulkerson Análise do algoritmo Melhorando algoritmo inicial Dualidade

Leia mais

Teoria dos Grafos Aula 8

Teoria dos Grafos Aula 8 Teoria dos Grafos Aula 8 Aula passada Classe de funções e notação Propriedades da notação Funções usuais Aula de hoje Grafos direcionados Busca em grafos direcionados Ordenação topológica Tempo de execução

Leia mais

Teoria dos Grafos. Aula 5 - Estruturas de Dados para Grafos. Profª. Alessandra Martins Coelho. março/2013

Teoria dos Grafos. Aula 5 - Estruturas de Dados para Grafos. Profª. Alessandra Martins Coelho. março/2013 Teoria dos Grafos Aula 5 - Estruturas de Dados para Grafos Profª. Alessandra Martins Coelho março/2013 Estrutura é o que caracteriza o próprio grafo e independe da forma como ele é representado. A representação

Leia mais

4 Casamento de Padrões

4 Casamento de Padrões 4 Casamento de Padrões O casamento de padrões é uma técnica que tem por objetivo localizar os elementos constituintes de uma seqüência em um conjunto de outras seqüências. Chamemos de padrão a seqüência

Leia mais

Grafos Direcionados. > Grafos Direcionados Representações Computacionais 1/36

Grafos Direcionados. > Grafos Direcionados Representações Computacionais 1/36 Grafos Direcionados > Grafos Direcionados Representações Computacionais 1/36 Grafos Direcionados Em muitas aplicações, é importante ter direção nas arestas: Ruas de mão única Grafos modelando páginas da

Leia mais

Problema do Caminho Mais Curto. Problema do Caminho Mais Curto

Problema do Caminho Mais Curto. Problema do Caminho Mais Curto Problema do Caminho Mais Curto " Podemos afectar pesos" aos arcos de um grafo, por exemplo, para representar uma distância entre cidades numa rede ferroviária: ria: Chicago 650 600 700 Toronto 200 New

Leia mais

Análise e Complexidade de Algoritmos

Análise e Complexidade de Algoritmos Análise e Complexidade de Algoritmos Principais paradigmas do projeto de algoritmos - Recursividade - Tentativa e erro - Divisão e Conquista - Programação dinâmica - Algoritmos Gulosos e de Aproximação

Leia mais

Transformada Rápida de Fourier (FFT)

Transformada Rápida de Fourier (FFT) Transformada Rápida de Fourier (FFT) A FFT é um algoritmo eficiente para calcular a DFT A DFT de uma sequência x n de comprimento finito N é definida como: N 1 N 1 X k = x n e j2π N kn = x n W N kn, 0

Leia mais

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Campus Pato Branco ENGENHARIA DE COMPUTAÇÃO. Prova Parcial 1 Matemática Discreta para Computação

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Campus Pato Branco ENGENHARIA DE COMPUTAÇÃO. Prova Parcial 1 Matemática Discreta para Computação Prova Parcial 1 2011-2 Aluno(a): Data: 08/09/2011 1. (3p) Usando regras de inferência, prove que os argumentos são válidos. Use os símbolos proposicionais indicados: a. A Rússia era uma potência superior,

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

Algoritmo Simplex para Programação Linear I

Algoritmo Simplex para Programação Linear I EA Planejamento e Análise de Sistemas de Produção Algoritmo Simple para Programação Linear I DCA-FEEC-Unicamp Modelo de Programação Linear ma c ( n ) s. a. A b A ( m n) b ( m ) c ( n) P ( R n A b} Poliedro

Leia mais

Redes Complexas Aula 2

Redes Complexas Aula 2 Redes Complexas Aula 2 Aula passada Logística Redes e Grafos Exemplos Redes Complexas Aula de hoje Redes e classes Estrutura e características Grau, distância, clusterização Rede (ou Grafo) Abstração que

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

Redes Complexas Aula 14

Redes Complexas Aula 14 Redes Complexas Aula 14 Aula passada Busca em redes Explorando estrutura Navegação em redes Algoritmo eficiente e estrutura Aula de hoje Resilience ( robustez ) Tipo de falhas Influência da estrutura Análise

Leia mais

Uma Introdução Sucinta à Teoria dos Grafos

Uma Introdução Sucinta à Teoria dos Grafos Uma Introdução Sucinta à Teoria dos Grafos Paulo Feofiloff Yoshiharu Kohayakawa Yoshiko Wakabayashi IME USP www.ime.usp.br/ pf/teoriadosgrafos/ 25/10/2004 11:00 1 Prefácio 2 Grafos são bons modelos para

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

Teoria dos Grafos. Edson Prestes

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

Leia mais

Análise e Complexidade de Algoritmos

Análise e Complexidade de Algoritmos Análise e Complexidade de Algoritmos Introdução a algoritmos geométricos e seus métodos - varredura - envoltória convexa Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com Onde

Leia mais

Matemática Discreta Capítulo 3 Versão preliminar

Matemática Discreta Capítulo 3 Versão preliminar Matemática Discreta Capítulo 3 Versão preliminar Henri Anciaux e Derek Hacon October 25, 2007 1 Generalidades sobre grafos Um grafo G é simplesmente um par de dois conjuntos V e A, o segundo sendo constituído

Leia mais

5ª Lista de Exercícios de Programação I

5ª 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 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

Teoria e Algoritmos em Grafos

Teoria e Algoritmos em Grafos Teoria e Algoritmos em Grafos 2018.2 Conjunto Independente Conjuntos Independentes são subconjuntos de vértices de um grafo no qual nenhum vértice é adjacente entre si. Conjunto Independente Conjuntos

Leia mais

Grafos IFRN. Prof.Robinson Alves

Grafos IFRN. Prof.Robinson Alves Grafos IFRN Prof.Robinson Alves Caminhos É uma seqüência de arestas onde o vértice final de uma aresta é o vértice inicial da próxima v c c3 c1 c6 c4 {c1,c,c4,c5,c6} {c,c3,c4,c5} {,v,,,v5} {v,,,v5,} c5

Leia mais

x y Grafo Euleriano Figura 1

x y Grafo Euleriano Figura 1 Grafo Euleriano Um caminho simples ou um circuito simples é dito euleriano se ele contém todas as arestas de um grafo. Um grafo que contém um circuito euleriano é um grafo euleriano. Um grafo que não contém

Leia mais

Problema do Caminho Mínimo

Problema do Caminho Mínimo Departamento de Engenharia de Produção UFPR 63 Problema do Caminho Mínimo O problema do caminho mínimo ou caminho mais curto, shortest path problem, consiste em encontrar o melhor caminho entre dois nós.

Leia mais

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca ÁRVORES SUMÁRIO Fundamentos Árvores Binárias Árvores Binárias de Busca 2 ÁRVORES Utilizadas em muitas aplicações Modelam uma hierarquia entre elementos árvore genealógica Diagrama hierárquico de uma organização

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 É 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 mais

Algoritmos de Ordenação

Algoritmos 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 mais

Introdução à Teoria da Computação Exercícios

Introdução à Teoria da Computação Exercícios Introdução à Teoria da Computação Exercícios Livro: Michel Sipser, Introdução à Teoria da Computação 2ª Ed. Capítulo 07 Obs: Exercícios 7.7 e 7.20 estão apresentados em versões simplificadas. NP Dicas

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

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

Algoritmos em Grafos

Algoritmos em Grafos Algoritmos em Grafos Baseado em: The Algorithm Design Manual Steven S. Skiena IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/42 Introdução (1) Um grafo G=(V,E)

Leia mais

Caminhos de Amizades pelo Facebook:

Caminhos de Amizades pelo Facebook: Caminhos de Amizades pelo Facebook: Dualidade Computacional entre Curto e Longo Introdução a ECI Aula 2 Daniel R. Figueiredo LAND PESC/COPPE/UFRJ Problemas da Computação Objetivo: como resolver problemas

Leia mais

A matemática e o genoma. Resumo

A matemática e o genoma. Resumo I Coloquio Regional da Região Centro-Oeste, 3 a 6 de novembro de 2009 Universidade Federal de Mato Grosso do Sul Mini-curso A matemática e o genoma Nalvo F. Almeida Jr. Resumo Os avanços da biotecnologia

Leia mais

INE Fundamentos de Matemática Discreta para a Computação

INE Fundamentos de Matemática Discreta para a Computação INE543 - Fundamentos de Matemática Discreta para a Computação 5) Relações 5.) Relações e Dígrafos 5.2) Propriedades de Relações 5.3) Relações de Equivalência 5.4) Manipulação de Relações 5.5) Fecho de

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

Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 45

Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 45 Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 45 Introdução a Grafos Muitos problemas de otimização podem ser analisados utilizando-se uma estrutura denominada grafo ou rede. Problemas

Leia mais

O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste

O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste material e a resolução (por parte do aluno) de todos os

Leia mais

Análise de Algoritmos

Aná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 Matroides e o método guloso U: conjunto finito arbitrário. C: família

Leia mais

ANÁLISE DE ALGORITMOS (INF 1721)

ANÁ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) 24 de novembro de 2015 Período: 2015.2 ANÁLISE DE ALGORITMOS (INF 1721) 3 a Lista de

Leia mais

Cap. 6: Métodos para alinhamento de múltiplas seqüências

Cap. 6: Métodos para alinhamento de múltiplas seqüências Cap. 6: Métodos para alinhamento de múltiplas seqüências Organização O que é um alinhamento múltiplo Escores para alinhamentos múltiplos Relação entre alinhamento múltiplo e análise filogenética Métodos

Leia mais

Inteligência Artificial. Algoritmos Genéticos. Aula I Introdução

Inteligência Artificial. Algoritmos Genéticos. Aula I Introdução Universidade Estadual do Oeste do Paraná Curso de Bacharelado em Ciência da Computação Inteligência Artificial Algoritmos Genéticos Aula I Introdução Roteiro Introdução Computação Evolutiva Algoritmos

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 16 Directed graphs Topological sorting Dynamic programming Successor paths Cycle detection

Leia mais

Aula 7 Medidas de Distância. Profa. Elaine Faria UFU

Aula 7 Medidas de Distância. Profa. Elaine Faria UFU Aula 7 Medidas de Distância Profa. Elaine Faria UFU - 2017 Agradecimentos Este material é baseado No livro Tan et al, 2006 Nos slides do prof Andre C. P. L. F. Carvalho Agradecimentos Ao professor André

Leia mais

Universidade de São Paulo

Universidade de São Paulo Universidade de São Paulo Instituto de Ciências Matemáticas e Computação SCE5763 - Tipos e Estrutura de Dados - Luis Gustavo Nonato 2 a Lista de Exercícios 1. Seja A um array de inteiros. Escreva algoritmos

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 22 Combinatorics Binomial coefficients Catalan numbers Inclusion-exclusion Burnside

Leia mais

Edsger Wybe Dijkstra

Edsger Wybe Dijkstra Edsger Wybe Dijkstra Maio 90 Agosto 00 Roterdã, Holanda Nuenen, Holanda Cientista da Computação Contribuições: Algoritmos Linguagem de Programação ALGOL 0 Sistema Operacional THE Processamento Distribuído

Leia mais