Uma introdução à complexidade parametrizada
|
|
|
- Bernadete Abreu Caminha
- 7 Há anos
- Visualizações:
Transcrição
1 Vinicius Fernandes dos Santos - CEFET-MG Uéverton dos Santos Souza - UFF/CEFET-RJ 34 o JAI - Jornadas de Atualização em Informática XXXV Congresso da Sociedade Brasileira de Computação Recife, Julho 20 23, 2015
2 Complexidade clássica Problema computacional 1 Uma entrada. 2 A questão a ser respondida. 2 / 29
3 Complexidade clássica Problema computacional 1 Uma entrada. 2 A questão a ser respondida. Um algoritmo A para um problema Π é uma sequência finita de instruções para um computador, com a finalidade de solucionar Π. 2 / 29
4 Complexidade clássica Tratabilidade de tempo polinomial Um algoritmo de tempo polinomial é definido como um algoritmo cuja sua função de complexidade de tempo é O(p(n)), para alguma função polinomial p, onde n é usado para denotar o tamanho da entrada. 3 / 29
5 Complexidade clássica Tratabilidade de tempo polinomial Um algoritmo de tempo polinomial é definido como um algoritmo cuja sua função de complexidade de tempo é O(p(n)), para alguma função polinomial p, onde n é usado para denotar o tamanho da entrada. Um problema Π pertence à classe P se e somente se Π pode ser solucionado em tempo polinomial por um algoritmo determinístico. 3 / 29
6 Complexidade clássica Definição Um problema Π pertence à classe NP se e somente se para um dado certificado (uma string que certifica a resposta de uma computação), há um algoritmo determinístico que verifica sua validade em tempo polinomial. 4 / 29
7 Complexidade clássica 5 / 29
8 Complexidade clássica 6 / 29
9 A principal questão em aberto da computação P = N P? 7 / 29
10 Reduções Definição Dados dois problemas Π e Π, Π Π (Π se reduz a Π em tempo polinomial) se existe um algoritmo que, dado uma instância I de Π, constrói uma instância I de Π em tempo polinomial em I tal que a partir de uma solução para I, uma resposta correta para I pode ser emitida em tempo polinomial, e vice-versa. 8 / 29
11 NP-completude Definição Um problema Π é NP-difícil se para todo problema Π NP, Π Π ; se Π também está em NP, então Π é NP-completo. 9 / 29
12 A principal questão em aberto da computação P = N P? 10 / 29
13 Questões Como resolver um problema NP-completo de forma eficiente na prática? 11 / 29
14 Questões Como resolver um problema NP-completo de forma eficiente na prática? O que torna um problema NP-completo, de fato, difícil de ser solucionado na prática? 11 / 29
15 Questões Como resolver um problema NP-completo de forma eficiente na prática? O que torna um problema NP-completo, de fato, difícil de ser solucionado na prática? Quais aspectos de um problema NP-completo são suas fontes de intratabilidade? 11 / 29
16 Questões Como resolver um problema NP-completo de forma eficiente na prática? O que torna um problema NP-completo, de fato, difícil de ser solucionado na prática? Quais aspectos de um problema NP-completo são suas fontes de intratabilidade? Como explorar algumas fontes de intratabilidade de um problema para auxiliar a sua resolução? 11 / 29
17 Questões Como resolver um problema NP-completo de forma eficiente na prática? O que torna um problema NP-completo, de fato, difícil de ser solucionado na prática? Quais aspectos de um problema NP-completo são suas fontes de intratabilidade? Como explorar algumas fontes de intratabilidade de um problema para auxiliar a sua resolução? Todo problema NP-completo possui o mesmo nível de dificuldade? 11 / 29
18 Questões Como resolver um problema NP-completo de forma eficiente na prática? O que torna um problema NP-completo, de fato, difícil de ser solucionado na prática? Quais aspectos de um problema NP-completo são suas fontes de intratabilidade? Como explorar algumas fontes de intratabilidade de um problema para auxiliar a sua resolução? Todo problema NP-completo possui o mesmo nível de dificuldade? Como distinguir diferentes níveis de dificuldade entre problemas NP-completos? 11 / 29
19 Questões Como resolver um problema NP-completo de forma eficiente na prática? O que torna um problema NP-completo, de fato, difícil de ser solucionado na prática? Quais aspectos de um problema NP-completo são suas fontes de intratabilidade? Como explorar algumas fontes de intratabilidade de um problema para auxiliar a sua resolução? Todo problema NP-completo possui o mesmo nível de dificuldade? Como distinguir diferentes níveis de dificuldade entre problemas NP-completos? Quão bom pode ser um algoritmo de pré-processamento para um problema NP-completo? 11 / 29
20 Questões Como resolver um problema NP-completo de forma eficiente na prática? O que torna um problema NP-completo, de fato, difícil de ser solucionado na prática? Quais aspectos de um problema NP-completo são suas fontes de intratabilidade? Como explorar algumas fontes de intratabilidade de um problema para auxiliar a sua resolução? Todo problema NP-completo possui o mesmo nível de dificuldade? Como distinguir diferentes níveis de dificuldade entre problemas NP-completos? Quão bom pode ser um algoritmo de pré-processamento para um problema NP-completo? Existe alguma teoria para avaliar a eficiência de algoritmos de pré-processamento? 11 / 29
21 Complexidade parametrizada 12 / 29
22 Complexidade parametrizada Os pais da teoria Rod Downey & Michael Fellows 13 / 29
23 Complexidade parametrizada Os pais da teoria Rod Downey Uma ideia simples, mas brilhante & Michael Fellows Talvez boa parte ou toda a explosão combinatória que precisamos enfrentar para resolver de forma exata uma instância qualquer de um problema intratável, esteja confinada em uma característica estrutural pequena dessa instância. 13 / 29
24 Questões Como solucionar um problema NP-difícil da melhor forma possível na prática? 14 / 29
25 Questões Como solucionar um problema NP-difícil da melhor forma possível na prática? Primeiramente, temos duas possibilidades: 14 / 29
26 Questões Como solucionar um problema NP-difícil da melhor forma possível na prática? Primeiramente, temos duas possibilidades: - Tentar construir um algoritmo de tempo polinomial (implica P = NP). 14 / 29
27 Questões Como solucionar um problema NP-difícil da melhor forma possível na prática? Primeiramente, temos duas possibilidades: - Tentar construir um algoritmo de tempo polinomial (implica P = NP). - Invocar algum tipo de algoritmo heurístico ou aproximativo, de tempo polinomial. 14 / 29
28 Questões Como solucionar um problema NP-difícil da melhor forma possível na prática? Primeiramente, temos duas possibilidades: - Tentar construir um algoritmo de tempo polinomial (implica P = NP). - Invocar algum tipo de algoritmo heurístico ou aproximativo, de tempo polinomial. Entretanto, caso estejamos restritos a soluções exatas e ótimas, heurísticas e aproximações podem não ser suficientes. 14 / 29
29 Questões Como solucionar um problema NP-difícil da melhor forma possível na prática? Observação Frequentemente, problemas práticos possuem diversos aspectos adicionais que podem ser considerados como, por exemplo, o grafo de entrada ser planar, as instâncias possuírem grau máximo ou diâmetro constantes, a estrutura buscada possuir tamanho limitado, e assim por diante. 15 / 29
30 Questões Como solucionar um problema NP-difícil da melhor forma possível na prática? Observação Frequentemente, problemas práticos possuem diversos aspectos adicionais que podem ser considerados como, por exemplo, o grafo de entrada ser planar, as instâncias possuírem grau máximo ou diâmetro constantes, a estrutura buscada possuir tamanho limitado, e assim por diante. Sendo assim, dado que na prática alguns aspectos do problema possuem tamanho ou valor delimitado, existem outras abordagens para a sua resolução: 15 / 29
31 Questões Como solucionar um problema NP-difícil da melhor forma possível na prática? - Invocar algum tipo de técnica de força bruta, que pode ser executada em tempo polinomial com complexidade O(n f (k) ), onde n é usado para denotar o tamanho da entrada e k é algum aspecto com tamanho ou valor delimitado. Neste caso, quando as instâncias a serem resolvidas são grandes, esta abordagem pode não ser muito viável. 16 / 29
32 Questões Como solucionar um problema NP-difícil da melhor forma possível na prática? - Invocar um algoritmo de tempo não polinomial tal que sua complexidade de tempo não polinomial é apenas uma função de algum subconjunto de aspectos do problema que possuem tamanho ou valor delimitado na prática. 17 / 29
33 Questões Como podemos observar, um problema genérico possui inúmeros aspectos que poderiam ser considerados para análise. No entanto, para cada aplicação existe um subconjunto particular de aspectos do problema que são de fato interessantes. 18 / 29
34 Questões Como podemos observar, um problema genérico possui inúmeros aspectos que poderiam ser considerados para análise. No entanto, para cada aplicação existe um subconjunto particular de aspectos do problema que são de fato interessantes. Parâmetro Um parâmetro, por sua vez, é uma função que extrai um aspecto ou um conjunto de aspectos particulares de um problema; isto é, um parâmetro é um mecânismo para isolar aspectos de um problema e um receptáculo no qual aspectos são encapsulados para manipulação e análise subsequente. 18 / 29
35 Questões Como podemos observar, um problema genérico possui inúmeros aspectos que poderiam ser considerados para análise. No entanto, para cada aplicação existe um subconjunto particular de aspectos do problema que são de fato interessantes. Parâmetro Um parâmetro, por sua vez, é uma função que extrai um aspecto ou um conjunto de aspectos particulares de um problema; isto é, um parâmetro é um mecânismo para isolar aspectos de um problema e um receptáculo no qual aspectos são encapsulados para manipulação e análise subsequente. Neste ponto, outras questoes emergem: 18 / 29
36 Questões 1 Dado um problema e um parâmetro do problema, existe um algoritmo para o problema cuja complexidade de tempo não polinomial é puramente uma função deste parâmetro? 2 Relativo a quais parâmetros do problema tal algoritmo existe? 19 / 29
37 Complexidade parametrizada Um parâmetro é aspecto do problema encapsulado para posterior análise. 20 / 29
38 Complexidade parametrizada Um parâmetro é aspecto do problema encapsulado para posterior análise. Problema parametrizado 1 A parte principal da entrada do problema. 2 Alguns aspectos do problema, que constituem o(s) parâmetro(s). 3 A questão a ser respondida. 20 / 29
39 Complexidade parametrizada Um parâmetro é aspecto do problema encapsulado para posterior análise. Problema parametrizado 1 A parte principal da entrada do problema. 2 Alguns aspectos do problema, que constituem o(s) parâmetro(s). 3 A questão a ser respondida. Definição Sejam Π um problema NP-difícil; S = {a 1, a 2,..., a l } um subconjunto de aspectos de Π Denotamos por: Π(a 1, a 2,..., a l ), ou Π(S), a versão parametrizada de Π onde os aspectos em S são parâmetros fixados. 20 / 29
40 Complexidade parametrizada Tratabilidade por parâmetro fixo Um problema parametrizado Π(k) pertence à classe FPT se e somente se existe um algoritmo determinístico que o resolva em tempo f (k).n O(1). 21 / 29
41 Complexidade parametrizada na prática Caracterização da classe FPT Redução a um núcleo (kernelization): Um problema parametrizado Π(k) pertence à classe FPT se e somente se existe um algoritmo de pré-processamento que em tempo polinomial reduz a instância original do problema a uma outra instância cujo tamanho é uma função de k. x = f (k) 22 / 29
42 Complexidade clássica complexidade parametrizada Análise clássica 23 / 29
43 Complexidade clássica complexidade parametrizada Análise multivariada 24 / 29
44 Complexidade parametrizada Tratabilidade por parâmetro fixo Um problema parametrizado Π(k) pertence à classe FPT se e somente se existe um algoritmo determinístico que o resolva em tempo f (k).n O(1). Dado um problema NP-difícil Π e algum subconjunto de aspectos S de Π, dizemos que S é uma uma fonte de intratabilidade de tempo polinomial para Π, se Π(S) pertence a FPT. 25 / 29
45 Complexidade parametrizada Tratabilidade por parâmetro fixo Um problema parametrizado Π(k) pertence à classe FPT se e somente se existe um algoritmo determinístico que o resolva em tempo f (k).n O(1). Dado um problema NP-difícil Π e algum subconjunto de aspectos S de Π, dizemos que S é uma uma fonte de intratabilidade de tempo polinomial para Π, se Π(S) pertence a FPT. Na teoria da complexidade parametrizada, o foco não está em verificar se um problema é difícil, a teoria parte da suposição que os problemas mais interessantes são intratáveis quando considerados classicamente. O foco desta teoria está na seguinte questão: O que faz o problema computacionalmente difícil?. 25 / 29
46 Como provar que um problema pertence à classe FPT? Primeiro passo: 26 / 29
47 Como provar que um problema pertence à classe FPT? Primeiro passo: FPT XP 26 / 29
48 Como provar que um problema pertence à classe FPT? Primeiro passo: FPT XP verificar se o problema parametrizado em questão, Π(k), pertence à classe XP. 26 / 29
49 A classe XP Definição Um problema parametrizado Π(S) pertence à classe XP se existe um algoritmo para solucionar Π(S) em tempo f (S).n g(s), onde n é usado para denotar o tamanho da entrada e f e g são funções arbitrárias. 27 / 29
50 A classe XP Lema Dado um problema NP-difícil Π e um subconjunto S de seus aspectos, se Π permanece NP-difícil mesmo quando os aspectos em S são delimitados por constantes, então um problema parametrizado Π(S) não está em XP, a menos que P = NP. 28 / 29
51 A classe XP Lema Dado um problema NP-difícil Π e um subconjunto S de seus aspectos, se Π permanece NP-difícil mesmo quando os aspectos em S são delimitados por constantes, então um problema parametrizado Π(S) não está em XP, a menos que P = NP. Prova. Se Π está em XP então por definição este problema é solucionado por um algoritmo que pode ser executado em tempo f (S)n g(s) para algumas funções f e g. Quando o valor de todos os aspectos em S são delimitados por uma constate, os valores de f (S) e g(s) são constantes e este tempo de execução torna-se polinomial em n. Como Π é NP-difícil então P = NP. 28 / 29
52 A classe XP Corolário Se P NP, então Π(S) pertence a XP se e somente se Π é solucionável em tempo polinomial quando os aspectos em S são delimitados por constantes. 29 / 29
COMPLEXIDADE PARAMETRIZADA PARTE 1. Rafael Coelho.
UMA BREVE INTRODUÇÃO À TEORIA DE COMPLEXIDADE PARAMETRIZADA PARTE 1 Rafael Coelho [email protected] Instituto de Matemática e Estatística Universidade de São Paulo Seminários de Teoria da Computação,
Teoria da Computação. Complexidade computacional classes de problemas
Teoria da Computação Complexidade computacional classes de problemas 1 Universo de problemas Problemas indecidíveis ou não-computáveis Não admitem algoritmos Problemas intratáveis Não admitem algoritmos
Complexidade computacional
Complexidade computacional Marina Andretta ICMC-USP 15 de setembro de 2015 Baseado no livro Uma introdução sucinta a Algoritmos de Aproximação, de M. H. Carvalho, M. R. Cerioli, R. Dahab, P. Feofiloff,
INTRATABILIDADE e NP-COMPLETUDE
INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS Junho/2008 Grafos e Análise de Algoritmos Introdução Para alguns problemas
Como saber se um problema está em NP e não está em P?
? P = NP Uma das principais questões em aberto é se P = NP, isto é, se de fato tudo o que pode ser feito em tempo polinomial por uma MTND poderia ser feito por uma MTD em tempo polinomial, talvez com um
PCC104 - Projeto e Análise de Algoritmos
PCC104 - Projeto e Análise de Algoritmos Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 1 de novembro de 2018 Marco Antonio
PCC104 - Projeto e Análise de Algoritmos
PCC104 - Projeto e Análise de Algoritmos Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 5 de dezembro de 2017 Marco Antonio
Aula 10: Tratabilidade
Teoria da Computação DAINF-UTFPR Aula 10: Tratabilidade Prof. Ricardo Dutra da Silva Na aula anterior discutimos problemas que podem e que não podem ser computados. Nesta aula vamos considerar apenas problemas
Teoria da Complexidade Computacional
Teoria da Complexidade Computacional 25 de novembro de 2011 Enquanto a teoria de análise de algoritmos estuda a análise de complexidade de algoritmos, a teoria da complexidade estuda a classificação de
Teoria da computabilidade Indecidíveis Decidíveis
Bacharelado em Ciência da Computação Disciplina: Algoritmos e Estruturas de Dados I Professor: Mário Luiz Rodrigues Oliveira Teoria da computabilidade Indecidíveis Decidíveis Teoria da complexidade Intratáveis:
Projeto e Análise de Algoritmos NP Completude. Prof. Humberto Brandão
Projeto e Análise de Algoritmos NP Completude Prof. Humberto Brandão [email protected] Universidade Federal de Alfenas versão da aula: 0.4 Introdução Problemas intratáveis ou difíceis são comuns
Teoria da Computação. Computabilidade e complexidade computacional
Teoria da Computação Computabilidade e complexidade computacional 1 Computabilidade e Complexidade Computabilidade: verifica a existência de algoritmos que resolva uma classe de linguagens trata a possibilidade
Problemas de otimização
Problemas de otimização Problemas de decisão: Existe uma solução satisfazendo certa propriedade? Resultado: sim ou não Problemas de otimização: Entre todas as soluções satisfazendo determinada propriedade,
3. Resolução de problemas por meio de busca
Inteligência Artificial - IBM1024 3. Resolução de problemas por meio de busca Prof. Renato Tinós Local: Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3. Resolução de problemas por
Complexidade de Algoritmos. Edson Prestes
Edson Prestes O limite superior de complexidade de um problema refere-se ao melhor algoritmo que o resolve. nlog 2 n é um limite superior para o problema de classificação. O limite inferior de um problema
Coloração. Carolina Moraes e Lucas Glir
Coloração Carolina Moraes e Lucas Glir Introdução Os primeiros questionamentos sobre o assunto surgiram por volta de 1800, com o problema das 4 cores. Os primeiros resultados sobre coloração de grafos
Projeto e Análise de Algoritmos. Introdução. Prof. Ademir Constantino Universidade Estadual de Maringá Departamento de Informática
Projeto e Análise de Algoritmos Introdução Prof. Ademir Constantino Universidade Estadual de Maringá Departamento de Informática Projeto e Análise de Algoritmos Eu penso que o projeto de algoritmos eficientes
Teoria da Computação. Computabilidade
Cristiano Lehrer Introdução O objetivo do estudo da solucionabilidade de problemas é investigar a existência ou não de algoritmos que solucionem determinada classe de problemas. Ou seja, investigar os
Complexidade computacional
Complexidade computacional CLRS sec 34.1 e 34.2 Algoritmos p. 1 Algumas questões Por que alguns problemas parecem ser (computacionalmente) mais difíceis do que outros? Algoritmos p. 2 Algumas questões
Juliana Kaizer Vizzotto. Universidade Federal de Santa Maria. Disciplina de Teoria da Computação
Universidade Federal de Santa Maria Disciplina de Teoria da Computação Quais são as capacidades e limitações fundamentais dos computadores? Funções Computáveis Algoritmo: descrição finitade uma computação
P, NP e NP-Completo. André Vignatti DINF- UFPR
P, NP e NP-Completo André Vignatti DINF- UFPR Problemas Difíceis, Problemas Fáceis O mundo está cheio de problemas de busca. Alguns podem ser resolvidos eficientemente, outros parecem ser muito difíceis.
Análise e Projeto de Algoritmos
Análise e Projeto de Algoritmos Prof. Eduardo Barrére www.ufjf.br/pgcc www.dcc.ufjf.br [email protected] www.barrere.ufjf.br A Classe de Problemas P A classe de algoritmos P é formada pelos procedimentos
5COP096 TeoriadaComputação
Sylvio 1 Barbon Jr [email protected] 5COP096 TeoriadaComputação Aula 13 Prof. Dr. Sylvio Barbon Junior Sumário - Problemas NP-Completo Algoritmos Não-deterministas; Classes NP-Completo e NP-Dificil; Teorema
Introdução à classe de problemas NP- Completos
Introdução à classe de problemas NP- Completos R. Rossetti, A.P. Rocha, A. Pereira, P.B. Silva, T. Fernandes FEUP, MIEIC, CAL, 2010/2011 1 Introdução Considerações Práticas Em alguns casos práticos, alguns
Redução de Cook-Levin e Considerações Finais
Redução de Cook-Levin e Considerações Finais André Vignatti DINF- UFPR Fechando o Ciclo de Reduções Nós reduzimos o SAT para diversos problemas de busca, como mostra a figura: Todos problemas NP CIRCUIT
Projeto 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
Técnicas de Demonstração. Raquel de Souza Francisco Bravo 17 de novembro de 2016
Técnicas de Demonstração e-mail: [email protected] 17 de novembro de 2016 Técnicas de Demonstração O que é uma demonstração? É a maneira pela qual uma proposição é validada através de argumentos formais.
Complexidade de Algoritmos. Edson Prestes
Edson Prestes A classe P consiste nos problemas que podem ser resolvidos em tempo Polinomial (Problemas tratáveis) A classe NP consiste nos problemas que podem ser verificados em tempo polinomial (Problemas
Algoritmos Combinatórios: Introdução
[email protected] UFSC, Fevereiro, 2010 Estruturas e Problemas Combinatórios Introdução a Algoritmos Combinatórios O que são: Estruturas Combinatórias? Algoritmos Combinatórios? Problemas Combinatórios?
LINGUAGENS FORMAIS E AUTÔMATOS
LINGUGENS FORMIS E UTÔMTOS Introdução reve Histórico Em 1936, lan Turing (matemático) propôs a possibilidade de se construir um computador digital através da formalização de um procedimento em tempo finito.
Melhores momentos AULA 24. Algoritmos p.906/953
Melhores momentos AULA 24 Algoritmos p.906/953 Problemas polinomiais Analise de um algoritmo em um determinado modelo de computação estima o seu consumo de tempo e quantidade de espaço como uma função
Marcos Castilho. DInf/UFPR. 16 de maio de 2019
16 de maio de 2019 Motivação Quais são os limites da computação? O que é um Problema de decisão? Um problema de decisão é um conjunto de perguntas, cada uma das quais tem um SIM ou um NÃO como resposta.
PROBLEMAS DE CORTES DE ARESTAS MÁXIMOS E MÍNIMOS EM GRAFOS. Rubens André Sucupira
PROBLEMAS DE CORTES DE ARESTAS MÁXIMOS E MÍNIMOS EM GRAFOS Rubens André Sucupira Tese de Doutorado apresentada ao Programa de Pós-graduação em Engenharia de Sistemas e Computação, COPPE, da Universidade
Apostila 06. Objetivos: Estudar a Computabilidade Estudar a Decidibilidade Estudar a Redutibilidade
Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e
Aula 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
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
Teoria da Complexidade Computacional
Teoria da Complexidade Computacional Letícia Rodrigues Bueno UFABC Motivação Motivação I can t find an efficient algorithm, I guess I m just too dumb. Fonte: GAREY, M. R. e JOHNSON, D. S. Computers and
Teoria dos Conjuntos. (Aula 6) Ruy de Queiroz. O Teorema da. (Aula 6) Ruy J. G. B. de Queiroz. Centro de Informática, UFPE
Ruy J. G. B. de Centro de Informática, UFPE 2007.1 Conteúdo 1 Seqüências Definição Uma seqüência é uma função cujo domíno é um número natural ou N. Uma seqüência cujo domínio é algum número natural n N
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) 3 de dezembro de 2016 Período: 2016.2 ANÁLISE DE ALGORITMOS (INF 1721) 3 a Lista de
4º 20/10/2003. ÍNDICE
Universidade Federal de Juiz de Fora UFJF. Departamento de Ciência da Computação DCC. Curso de Ciência da Computação. Análise e Projeto de Algoritmos 4º período. Filippe Jabour. Atualizado em 20/10/2003.
Paulo Guilherme Inça. 7 de dezembro de 2016
Coloração de grafos é NP-Difícil Paulo Guilherme Inça 7 de dezembro de 2016 Sumário 1 Introdução 1 2 O Problema da Coloração de Grafos 2 3 3-Coloração é NP-Completo 3 4 Generalizações e Restrições 6 5
INFORMÁTICA APLICADA AULA 02 ALGORITMOS
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: Bacharelado em Ciências e Tecnologia INFORMÁTICA APLICADA AULA 02 ALGORITMOS Profª ª Danielle Casillo ALGORITMOS Um algoritmo é uma sequência de instruções
BCC204 - Teoria dos Grafos
BCC204 - Teoria dos Grafos Marco Antonio M. Carvalho (baseado nas notas de aula do prof. Haroldo Gambini Santos) Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal
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
Estruturas de Dados Apresentação
Estruturas de Dados Apresentação Prof. Eduardo Alchieri Objetivos Apresentar técnicas fundamentais na análise e projeto de estruturas de dados em programas computacionais Vamos aprender: Quais são as principais
Linguagens Formais e Autômatos. Apresentação do Plano de Ensino
Linguagens Formais e Autômatos Apresentação do Plano de Ensino Linguagens Formais e Autômatos LFA Código - CMP4145 Turma C01 Engenharia da Computação e Ciência da Computação Horário: Terça e Sexta: 20:30
Linguagens Formais e Autômatos. Apresentação do Plano de Ensino
Linguagens Formais e Autômatos Apresentação do Plano de Ensino Linguagens Formais e Autômatos LFA Código - CMP4145 Turma A01 Engenharia da Computação e Ciência da Computação Horário: Segunda, Terça e Quinta.
Otimização Combinatória - Parte 4
Graduação em Matemática Industrial Otimização Combinatória - Parte 4 Prof. Thiago Alves de Queiroz Departamento de Matemática - CAC/UFG 2/2014 Thiago Queiroz (DM) Parte 4 2/2014 1 / 33 Complexidade Computacional
Linguagens Formais e Autômatos. Autômatos Finitos Determinísticos (AFD)
Linguagens Formais e Autômatos Autômatos Finitos Determinísticos (AFD) Cristiano Lehrer, M.Sc. Linguagens Regulares A teoria da computação começa com uma pergunta: O que é um computador? É, talvez, uma
a complexidade no desempenho de algoritmos
capítulo 1 introdução Os algoritmos são o cerne da computação. Este capítulo introdutório procura ressaltar a importância da complexidade e dos métodos de projeto e análise de algoritmos. Partindo da ideia
Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel Introdução.
Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel 8.1 - Introdução. Como observado no capítulo anterior, podemos substituir a definição informal de procedimento pela
ALGORITMOS AVANÇADOS UNIDADE I Análise de Algoritmo - Notação O. Luiz Leão
Luiz Leão [email protected] http://www.luizleao.com Conteúdo Programático 1.1 - Algoritmo 1.2 - Estrutura de Dados 1.2.1 - Revisão de Programas em C++ envolvendo Vetores, Matrizes, Ponteiros, Registros
ESTRUTURAS DE DADOS prof. Alexandre César Muniz de Oliveira
ESTRUTURAS DE DADOS prof. Alexandre César Muniz de Oliveira 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Grafos 7. Complexidade 8. Ordenação 9. Busca Sugestão bibliográfica: ESTRUTURAS DE DADOS
Fundamentos de Lógica e Algoritmos Aula 2.5 Conceitos Básicos de Algoritmos. Prof. Dr. Bruno Moreno
Fundamentos de Lógica e Algoritmos Aula 2.5 Conceitos Básicos de Algoritmos Prof. Dr. Bruno Moreno [email protected] Introdução Um algoritmo pode ser definido como uma sequência finita de passos
Algoritmos 2 - Introdução
DAINF - Departamento de Informática Algoritmos 2 - Introdução Prof. Alex Kutzke (http://alex.kutzke.com.br/courses) 19 de Agosto de 2015 Slides adaptados do material produzido pelo Prof. Rodrigo Minetto
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 [email protected] 1 Cap 7.2 A classe P 2 Tempo polinomial e exponencial Ex: Máquina de tempo n 3 (tempo
Aula 10: Decidibilidade
Teoria da Computação Segundo Semestre, 2014 Aula 10: Decidibilidade DAINF-UTFPR Prof. Ricardo Dutra da Silva Definição 10.1. Um problema de decisão P é um conjunto de questões para as quais as respostas
ANÁLISE DE COMPLEXIDADE DOS ALGORITMOS
1/18 ANÁLISE DE COMPLEXIDADE DOS ALGORITMOS Algoritmos 2/18 Algoritmos Algoritmo - sequência de instruções necessárias para a resolução de um problema bem formulado (passíveis de implementação em computador)
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
Lógica Computacional
Aula Teórica 1: Apresentação Departamento de Informática 14 de Fevereiro de 2011 O que é a lógica? Lógica: de que se trata? A lógica está na base do raciocínio É um processo inerentemente humano, tão básico
MC102 Aula 26. Instituto de Computação Unicamp. 17 de Novembro de 2016
MC102 Aula 26 Recursão Instituto de Computação Unicamp 17 de Novembro de 2016 Roteiro 1 Recursão Indução 2 Recursão 3 Fatorial 4 O que acontece na memória 5 Recursão Iteração 6 Soma em um Vetor 7 Números
Linguagens de Programação
Universidade Federal do Rio Grande do Norte Centro de Tecnologia Departamento de Computação e Automação Linguagens de Programação Professor Responsável: Luiz Affonso Henderson Guedes de Oliveira Prof.
Projeto e Análise de Algoritmos NP Completude Parte 2. Prof. Humberto Brandão
Projeto e Análise de Algoritmos NP Completude Parte 2 Prof. Humberto Brandão [email protected] Universidade Federal de Alfenas Departamento de Ciências Exatas versão da aula: 0.2 Última aula
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
Teoria da Computação. Computabilidade e complexidade computacional
Teoria da Computação Computabilidade e complexidade computacional 1 Computabilidade e Complexidade Computabilidade: verifica a existência de algoritmos que resolva uma classe de linguagens trata a possibilidade
