INTRATABILIDADE e NP-COMPLETUDE

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

Download "INTRATABILIDADE e NP-COMPLETUDE"

Transcrição

1 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

2 Introdução Para alguns problemas não existem algoritmos substancialmente melhores que a execução de uma busca exaustiva Estes problemas são inerentemente intratáveis Provar essa intratabilidade inerente pode ser tão difícil quanto encontrar um algoritmo eficiente para resolver o problema Pode-se, entretanto, provar que o problema em questão é tão difícil quanto um grande conjunto de outros problemas reconhecidamente difíceis (problemas NP-Completo) Saber que um problema é NP-Completo antecipa a preferência por abordagens menos ambiciosas: Soluções para casos especiais do problema geral, soluções eficientes somente na maioria dos casos, soluções aproximadas etc

3 Conceitos Iniciais Def: um PROBLEMA é uma questão genérica a ser respondida e que possui parâmetros, cujos valores não são especificados Um problema é definido pela i) descrição geral dos seus parâmetros e pelas ii) propriedades que a resposta (SOLUÇÃO) deve satisfazer Def: uma INSTÂNCIA de um problema é obtida através da especificação de valores particulares para os parâmetros Exemplo: Problema do Caixeiro Viajante (Travelling Salesman Problem) Parâmetros: conjunto C={c 1, c 2,, c m } de cidades e, para cada par de cidades c i, c j em C, a distância d(c i, c j ) entre elas Solução: sequência <c Π (1), c Π (2),, c Π (m) > de cidades que minimiza: m 1 i=1 d c i, c i 1 d c m, c 1

4 Conceitos Iniciais Instância do Problema do Caixeiro Viajante: C={c 1, c 2, c 3, c 4 } d(c 1, c 2 ) = 10, d(c 1, c 3 ) = 5, d(c 1, c 4 ) = 9, d(c 2, c 3 ) = 6, d(c 3, c 4 ) = 3 Solução: <c 1, c 2, c 4, c 3 >

5 Conceitos Iniciais Um ALGORITMO é um procedimento, passo a passo, para resolver um determinado problema Um algoritmo RESOLVE um problema Π se ele puder ser aplicado a qualquer instância Ι de Π e sempre produzir uma solução para esta instância Em geral, procura-se algoritmos eficientes (rápidos) Os requisitos de tempo são indicados em função do tamanho da instância (quantidade de dados de entrada) A descrição da instância pode ser vista como uma string única e finita de símbolos escolhidos em um alfabeto finito de entrada

6 Conceitos Iniciais Def: a forma particular e fixa escolhida para representar instâncias de um problema é denominada ESQUEMA DE CODIFICAÇÃO (encoding schema) Ex: um esquema de codificação para o Problema do Caixeiro Viajante: c[1]c[2]c[3]c[4]//10/5/9//6/9//3. Tamanho da entrada = 32 Def: a FUNÇÃO DE COMPLEXIDADE DE TEMPO de um algoritmo informa, para cada tamanho de entrada possível, a maior quantidade de tempo necessário para resolver uma instância deste tamanho Depende do esquema de codificação e do modelo de computação utilizados, porém estes produzem pouco impacto nas distinções feitas pela teoria da NP-completude

7 Conceitos Iniciais A distinção entre algoritmos de tempo polinomial e algoritmos de tempo exponencial define um critério para análise de eficiência Def: um algoritmo é de TEMPO POLINOMIAL se a sua função de complexidade de tempo é Ο (p(n)), para alguma função polinomial p, onde n é o tamanho da entrada. Os algoritmos cuja função de complexidade de tempo não são limitadas dessa forma são ditos de TEMPO EXPONENCIAL (mesmo aqueles com função de complexidade de tempo limitadas por funções nãopolinomiais e não-exponenciais) A maioria dos algoritmos de tempo exponencial são meramente variações de busca exaustiva, enquanto os de tempo polinomial são projetados a partir do entendimento mais aprofundado da estrutura do problema

8 Conceitos Iniciais Def: um problema é dito INTRATÁVEL se não existir um algoritmo de tempo polinomial que o resolva Exceções para as associações polinomial eficiente, exponencial ineficiente: Entradas pequenas. Ex: 2 n é mais rápido que n 5, para n 20 Aplicabilidade prática. 2 n significa que existe pelo menos uma (e porque não somente uma?) instância de tamanho n que requer tal tempo (análise do pior caso). A aplicabilidade prática de alguns algoritmos de tempo exponencial indicam a existência de alguma propriedade do problema que, se refinada, pode conduzir a melhores algoritmos Algoritmos com complexidade n 100 ou n 2 não executarão de forma eficiente, mas na prática os polinômios são de baixa ordem

9 Conceitos Iniciais Qualquer esquema de codificação razoável irá diferir de um outro de forma polinomial, portanto não interferem na intratabilidade Todos os modelos de computação já estudados (Máquinas de Turing de uma e múltiplas fitas, random-access-machines RAM, etc) são equivalentes em relação à complexidade polinomial de tempo e não interferem na intratabilidade Duas causas distintas para a intratabilidade: A dificuldade do problema requer uma quantidade exponencial de tempo para se chegar na solução A solução é tão extensa que não pode ser descrita por uma expressão cujo comprimento é limitado por uma função polinomial do tamanho da entrada (causa menos comum). Ex: variação do Problema do Caixeiro Viajante: quais são todos os ciclos com comprimento menor ou igual a um valor B?

10 Conceitos Iniciais Def: um problema é dito INDECIDÍVEL se não existir um algoritmo (mesmo exponencial) que o resolva. É um sentido mais forte para a intratabilidade. Ex: problema da parada Histórico: 1936 (Turing): problema da parada (indecidível) 1965 (Hartmanis e Stearns): problemas decidíveis e intratáveis artificiais 1972 (Meyer e Stockmeyer): problemas decidíveis e intratáveis reais Os problemas apontados em 1972 não podem ser resolvidos em tempo polinomial nem mesmo por um modelo computacional não-determinístico Alguns problemas aparentemente intratáveis encontrados na prática são decidíveis e podem ser resolvidos por um computador não-determinístico

11 Conceitos Iniciais Estudar como os problemas se relacionam em relação à sua dificuldade pode trazer informações valiosas para os projetistas de algoritmos A principal técnica para demonstrar que dois problemas se relacionam é a REDUÇÃO A redução define uma transformação que mapeia qualquer instância de um problema em uma instância equivalente de um outro problema Contribuições de Cook (1971): Noção de redutibilidade em tempo polinomial Ressaltou a classe NP (problemas de decisão que podem ser resolvidos em tempo polinomial por um computador não-determinístico) Provou que todo problema em NP pode ser polinomialmente reduzido a um problema particular em NP (o Problema da Satisfatibilidade)

12 Conceitos Iniciais Consequências: Se o Problema da Satisfatibilidade puder ser resolvido com um algoritmo de tempo polinomial, então todo problema em NP também poderá Se algum problema em NP for intratável, então o Problema da Satisfatibilidade também é O Problema da Satisfatibilidade é o problema mais difícil em NP Outros problemas compartilham com o Problema da Satisfatibilidade o título de Problema mais difícil em NP Def: a classe de equivalência que contém os problemas mais difíceis em NP é denominada classe dos problemas NP- COMPLETO A intratabilidade de todos os problemas em NP depende da intratabilidade dos problemas NP-Completo (o que é desconhecido)

13 A Teoria da NP-Completude Por convenciência, a Teoria da NP-Completude é aplicada somente a Problemas de Decisão Def: um PROBLEMA DE DECISÃO Π consiste de um conjunto D Π de instâncias e um sub-conjunto Y Π D Π de instâncias-sim Exemplo de Problema de Decisão: Instância genérica: dois grafos G 1 = (V 1, E 1 ) e G 2 = (V 2, E 2 ) Questão: G1 contém um sub-grafo que é isomorfo a G2? Problema de decisão relacionado ao Problema do Caixeiro Viajante: Instância genérica: o conjunto C de cidades, a distância entre cada par de cidades e um valor limite B Questão: Existe um ciclo que passa por todas as cidades de C com comprimento menor ou igual a B?

14 A Teoria da NP-Completude Problemas de otimização podem ser facilmente transformados em Problemas de Decisão: mínimo (máximo) custo existe X com custo menor (maior) ou igual a Y? Porque trabalhar com Problemas de Decisão? Pelo suporte formal dado pela Teoria da Computação (linguagens e modelos computacionais) Def: para qualquer conjunto finito Σ de símbolos, Σ * denota o conjunto de todas as strings finitas formadas por símbolos de Σ. Ex: Σ = {0, 1}, Σ * = { ɛ, 0, 1, 00, 01, 10, 11, 000, 001, } Def: se Ⅼ é um sub-conjunto de Σ * então Ⅼ é uma LINGUAGEM sobre o conjunto Σ. Exs: {01, 001, 111, } é uma linguagem sobre {0, 1}, Σ * é uma linguagem sobre Σ

15 A Teoria da NP-Completude Cada instância de um problema é descrita por uma string formada por símbolos de um alfabeto fixo Σ Um problema Π e um esquema de codificação e particionam Σ * em três classes de strings: i) as que não codificam instâncias de Π, ii) as que codificam instâncias-não de Π e iii) as que codificam instâncias-sim de Π Def: a LINGUAGEM ASSOCIADA A Π e e é definida por: L[,e] = x * : é o alfabetousado por e ; x éa codificação em e deuma instância I em Se um resultado é válido para a linguagem Ⅼ[Π, e] então ele é válido para o problema Π sobre o esquema de codificação e

16 A Classe P Para formalizar a noção de algoritmo é necessário padronizar um modelo particular de computação MÁQUINA DE TURING DETERMINÍSTICA DE UMA FITA (MTD): Um programa para uma MTD especifica: Um conjunto finito Τ de símbolos de fita, incluindo o sub-conjunto Σ Τ de símbolos de entrada e o símbolo branco b Τ-Σ Um conjunto finito Q de estados, incluindo um estado-inicial q 0 e dois estados-final q Y e q N Uma função de transição δ: (Q {q Y, q N }) x Τ Q x Τ x { 1, +1}

17 A Classe P Um programa M com alfabeto de entrada Σ ACEITA x Σ * se e somente se M termina no estado q Y quando aplicado a x A linguagem Ⅼ M reconhecida pelo programa M é dada por: L M = x * : M aceitax Esta definição de reconhecimento de linguagem não requer que M pare para todas as strings de entrada em Σ *, somente aquelas em Ⅼ M Se x pertence a Σ * - Ⅼ M, M pode parar em q N ou pode nunca parar Entretanto, para que um programa de uma MTD correspoda ao conceito de algoritmo ela deve parar para todas as possíveis strings formadas com base no alfabeto de entrada

18 A Classe P Um programa MTD M resolve um problema de decisão Π sobre esquema de codificação e se M pára para toda string formada com base no alfabeto de entrada e Ⅼ M = Ⅼ[Π, e] Def: para um programa MTD M que pára para todas as entradas x Σ *, sua FUNÇÃO DE COMPLEXIDADE DE TEMPO T M : Z+ Z+ é dada por: T M n = max m: existe um x *,com x =n,talque acomputação de M na entrada x durao tempom Def: um programa MTD M é dito um PROGRAMA DE TEMPO POLINOMIAL se existe um polinômio p tal que, para todo n Z +, T M (n) p(n)

19 A Classe P Def: classe P = {L: existe um programa MTD de tempo polinomial M para o qual L = L M } Esta definição omite a especificação de um esquema de representação e modelo de computação particulares, visto que existe uma equivalências entre as alternativas

20 A Classe NP Não existe um algoritmo de tempo polinomial que resolva o Problema do Caixeiro Viajante (versão enunciada como um Problema de Decisão) Se a solução para o problema (existe rota com comprimento menor que B) puder ser adivinhada, pode-se executar um procedimento de verificação que calcula o comprimento e verifica se ele é menor que B Este procedimento de verificação pode ser realizado em tempo polinomial (o qual não considera o tempo para encontrar a solução) Def: um ALGORITMO NÃO-DETERMINÍSTICO adivinha uma solução S de um instância I e envia S e I ao procedimento de verificação, o qual pode parar com resposta sim, com resposta não ou nunca parar

21 A Classe NP Um algoritmo não-determinístico resolve um problema de decisão Π se as seguintes propriedades valem para todas as instâncias I D Π : Se I Y Π então existe alguma solução S que, quando adivinhada para a entrada I, irá fazer o procedimento de verificação terminar com SIM para S e I Se I Y Π então não existe solução S que, quando adivinhada para a entrada I, irá fazer o procedimento de verificação terminar com SIM para S e I

22 A Classe NP Um algoritmo não-determinístico opera em tempo polinomial se existe um polinômio p que, para cada instância I Y Π, existe uma solução adivinhada S que faz com que o procedimento de verificação termine com resposta SIM dentro do tempo p(length[i]) A classe NP é formada por todos os problemas de decisão Π que podem ser resolvidos por algoritmos não-determinísticos de tempo polinomial

23 A Classe NP As soluções de Problemas de Decisão obtidos por algoritmos não-determinísticos não têm simetria entre respostas SIM e NÃO. Ex: é verdade que não existe um ciclo com comprimento menor ou igual a B? MÁQUINA DE TURING NÃO-DETERMINÍSTICA DE UMA FITA (MTND): O módulo de adivinhação tem o papel de escrever uma solução adivinhada na fita para que seja feita a verificação

24 A Classe NP O tempo requerido por um programa MTND M para aceitar a string x L M é o mínimo, entre todas as computações de M que aceitam x, de passos ocorridos nas fases de adivinhação e verificação até que o estado q Y seja encontrado Def: a FUNÇÃO DE COMPLEXIDADE DE TEMPO T M : Z+ Z+ para M é: Def: um programa MDNT M é dito um PROGRAMA DE TEMPO POLINOMIAL se existe um polinômio p tal que T M (n) p(n), para todo n 1 T M n = max {1} m: existeum x L M,com x =n,tal m queo tempo param aceitar xé

25 A Classe NP Def: classe NP = {L: existe um programa MTND de tempo polinomial M para o qual L = L M } Qual o relacionamento entre P e NP? P NP. Se um problema Π P e A é um algoritmo determinístico de tempo polinomial para Π, pode-se obter um algoritmo não-determinístico de tempo polinomial para Π usando A como o procedimento de verificação e ignorando a adivinhação P = NP? Não se sabe, provavelmente não!!! A falha em encontrar uma prova de que P NP é um argumento a favor de que P = NP tão forte quanto a falha em encontrar algoritmos de tempo polinomial é um argumento a favor de que P NP

26 A Classe NP Se P difere de NP, a distinção entre P e NP - P é significativa. Todos os problemas em P podem ser resolvidos por algoritmos de tempo polinomial enquanto todos os problemas em NP - P são intratáveis (quando considerado apenas modelos determinísticos reais) Para provar que um problema pertence a NP - P deve-se provar que P NP Enquanto isso não acontece, prova-se que: se P NP, então Π NP P A idéia chave para essa abordagem condicional é o conceito de transformação polinomial (redução)

27 A Classe NP Def: uma TRANSFORMAÇÃO POLINOMIAL (REDUÇÃO) de uma linguagem L 1 Σ 1* para uma linguagem L 2 Σ 2* é uma função f : Σ 1 * Σ 2 * que satisfaz as seguintes condições: Existe um programa DTM de tempo polinomial que computa f Para todo x Σ * * 1, x L 1 se e somente se f(x) Σ 2 Se existe uma redução de L 1 para L 2 diz-se que L 1 L 2 redutível a L 2 ) A importância da redução vem do seguinte lema: (L 1 é Se L 1 L 2 então L 2 P implica L 1 P (e, de forma equivalente L 2 P implica L 1 P)

28 A Classe NP Ex: pode-se provar que o Problema do Circuito Hamiltoniano é redutível ao Problema do Caixeiro Viajante Π 1 Π 2 = Π 1 não é mais difícil que Π 2 A relação define uma ordem parcial onde a classe P é a menor nesta ordem. A classe NP-Completo contém os problemas de decisão (linguagens) mais difíceis de NP Def: uma linguagem L é NP-Completo se L NP e, para quaisquer outras linguagens L' NP, L' L Se um único problema NP-Completo puder ser resolvido em tempo polinomial, todos os outros também poderão. Se algum problema em NP for intratável, todos os NP-Completo serão

29 A Classe NP Teorema de Cook: Define o primeiro problema NP-Completo conhecido: o Problema da Satisfatibilidade (SAT) A prova não é tão trivial! Processo de prova da NP-Completude: 1. Mostrar que Π está em NP 2. Selecionar um problema NP-Completo Π' conhecido 3. Construir uma redução f de Π' para Π 4. Provar que f é uma redução polinomial

30 Estudo de Caso Cobertura de Vértices: Seja G = (V, E) um grafo não-direcionado. Uma Cobertura de Vértices de G é um conjunto de vértices tal que toda aresta de G é incidente em pelo menos um desses vértices

31 Estudo de Caso O problema: Dado um grafo não-direcionado G = (V, E) e um inteiro k, determine se G tem uma Cobertura de Vértices com no máximo k vértices Teorema: O Problema da Cobertura de Vértices é NP-Completo PROVA: 1. O Problema da Cobertura de Vértices pertence a NP, visto que pode-se adivinhar uma cobertura de tamanho k e executar o procedimento de verificação em tempo polinomial (verificar se esta cobertura contém ao menos um vértice de cada aresta e tem o tamanho apropriado) 2. Seleciona-se o problema 3SAT Versão restrita do problema SAT no qual todas as instâncias têm exatamente três literais por cláusula

32 Estudo de Caso PROVA: 3. Redução de 3SAT para o Problema da Cobertura de Vértices Seja U = {u 1, u 2,..., u n } o conjunto de variáveis e C = {c 1, c 2,..., c m } o conjunto de cláusulas que compõem uma instância arbitrária de 3SAT Deve-se construir um grafo G = (V, E) e um inteiro positivo k V de modo que G tenha uma cobertura de vértice de tamanho k ou menos se e somente se C é satisfatível Processo de transformação: Para cada variável u i U, criar um componente do grafo G denominado T i = (V i, E i ), com V i = (u i, u i ') e E i = {{u i, u i '}}. Qualquer cobertura de vértice terá de conter u i ou u i '. Para cada cláusula c i C, criar um componente do grafo G denominado S j = (V' j, E' j ), tal que V' j = {a 1 [j], a 2 [j], a 3 [j]} e E'j = {{a 1 [j], a 2 [j]}, {a 1 [j], a 3 [j]}, {a 2 [j], a 3 [j]}}. Qualquer cobertura de vértice terá de conter dois vértices de V' j.

33 Estudo de Caso PROVA: 3. Redução de 3SAT para o Problema da Cobertura de Vértices Processo de transformação: Para cada cláusula c j C, seja os três literais presentes em c j denotados por x j, y j, z j. Criar as arestas de comunicação E'' = {{a 1 [j], xj}, {a 2 [j], y j }, {a 3 [j], z j }}. O grafo final G = (V, E) terá: e e k = n + 2m 4. Esta redução pode ser realizada em tempo polinomial

34 Exemplo: Estudo de Caso

35 Estudo de Caso Algoritmo de aproximação: Produz uma cobertura de tamanho no máximo duas vezes o tamanho da menor cobertura

36 Intratabilidade e NP-Completude FIM

PCC104 - Projeto e Análise de Algoritmos

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

Leia mais

5COP096 TeoriadaComputação

5COP096 TeoriadaComputação Sylvio 1 Barbon Jr barbon@uel.br 5COP096 TeoriadaComputação Aula 13 Prof. Dr. Sylvio Barbon Junior Sumário - Problemas NP-Completo Algoritmos Não-deterministas; Classes NP-Completo e NP-Dificil; Teorema

Leia mais

Problemas Intratáveis ou computação eficiente X computação ineficiente

Problemas Intratáveis ou computação eficiente X computação ineficiente Problemas Intratáveis ou computação eficiente X computação ineficiente Problemas Tratáveis Os problemas que podem ser resolvidos em tempo polinomial em um computador típico são exatamente os mesmos problemas

Leia mais

Complexidade de Algoritmos. Edson Prestes

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

Leia mais

Projeto e Análise de Algoritmos NP Completude. Prof. Humberto Brandão

Projeto e Análise de Algoritmos NP Completude. Prof. Humberto Brandão Projeto e Análise de Algoritmos NP Completude Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br Universidade Federal de Alfenas versão da aula: 0.4 Introdução Problemas intratáveis ou difíceis são comuns

Leia mais

Uma forma de classificação

Uma forma de classificação Uma forma de classificação L. Não-RE ou f. nãocomputáveis LRE ou MT ou f. comput. L. Indecidíveis ou Procedimentos L. Recursivas ou Decidíveis ou Algoritmos Outra forma de classificação Problemas Indecidíveis

Leia mais

Teoria da Complexidade Computacional

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

Leia mais

Complexidade Parametrizada - Intratabilidade Uéverton S. Souza - UFF

Complexidade Parametrizada - Intratabilidade Uéverton S. Souza - UFF Uéverton S. Souza - UFF ueverton@ic.uff.br 1 o Workshop Paulista em Otimização, Combinatória e Algoritmos Junho 2017 Intratabilidade - Comlexidade Computacional Teoria da NP-completude Classe P Solucionáveis

Leia mais

Complexidade computacional

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,

Leia mais

Teoria da Computação. Complexidade computacional classes de problemas

Teoria da Computação. Complexidade computacional classes de problemas Teoria da Computação Complexidade computacional classes de problemas 1 Universo de problemas Problemas indecidíveis ou não-computáveis Não admitem algoritmos Problemas intratáveis Não admitem algoritmos

Leia mais

Como saber se um problema está em NP e não está em P?

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

Leia mais

Teoria da Computação. Computabilidade e complexidade computacional

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

Leia mais

Complexidade de Algoritmos. Edson Prestes

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

Leia mais

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 Projeto e Análise de Algoritmos NP Completude Parte 2 Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br Universidade Federal de Alfenas Departamento de Ciências Exatas versão da aula: 0.2 Última aula

Leia mais

Teoria da Complexidade Computacional

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

Leia mais

Marcos Castilho. DInf/UFPR. 16 de maio de 2019

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.

Leia mais

Complexidade computacional

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

Leia mais

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

Projeto e Análise de Algoritmos Prof. Ruy Luiz Milidiú Projeto e Análise de Algoritmos Prof. Ruy Luiz Milidiú 5/5/2014 Ruy Luiz Milidiú 1 O Teorema de Cook 5/5/2014 Ruy Luiz Milidiú 2 Resumo Objetivo Apresentar os conceitos básicos necessários ao enunciado

Leia mais

Teoria da Computação. Computabilidade

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

Leia mais

Aula 10: Tratabilidade

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

Leia mais

Análise e Síntese de Algoritmos

Análise e Síntese de Algoritmos Análise e Síntese de Algoritmos Problemas NP-Completos CLRS, Cap. 34 Contexto Algoritmos em Grafos Estruturas de Dados para Conjuntos Disjuntos Programação Linear Programação Dinâmica Algoritmos Greedy

Leia mais

TEORIA DE COMPLEXIDADE

TEORIA DE COMPLEXIDADE TEORIA DE COMPLEXIDADE Fundamentos: classes P e N P Mauricio Ayala-Rincón Grupo de Teoria da Computaç~ao http://ayala.mat.unb.br/tcgroup Instituto de Ciências Exatas Universidade de Brasília, Brasília

Leia mais

Máquinas de Turing 3

Máquinas de Turing 3 Máquinas de Turing 3 Exercícios Máquinas de Turing com Múltiplas Fitas Máquinas de Turing Não-deterministicas A Tese/Hipótese de Church-Turing Linguagens decidíveis por Máquinas de Turing (Recursivas)

Leia mais

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

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

Leia mais

Uma introdução à complexidade parametrizada

Uma introdução à complexidade parametrizada 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

Leia mais

Melhores momentos AULA 24. Algoritmos p.906/953

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

Leia mais

Apostila 06. Objetivos: Estudar a Computabilidade Estudar a Decidibilidade Estudar a Redutibilidade

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

Leia mais

Complexidade de Algoritmos

Complexidade de Algoritmos Complexidade de Algoritmos Prof. Diego Buchinger diego.buchinger@outlook.com diego.buchinger@udesc.br Prof. Cristiano Damiani Vasconcellos cristiano.vasconcellos@udesc.br Estudo da Tratabilidade de Problemas

Leia mais

3. Resolução de problemas por meio de busca

3. Resolução de problemas por meio de busca Inteligência Artificial - IBM1024 3. Resolução de problemas por meio de busca Prof. Renato Tinós Local: Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3. Resolução de problemas por

Leia mais

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

Linguagens recursivamente enumeráveis

Linguagens recursivamente enumeráveis Linguagens recursivamente enumeráveis Uma palavra x Σ é aceite por uma máquina de Turing M ( x L(M)) se M iniciando com a palavra x na fita e no estado inicial, pára num estado final. Caso contrário, M

Leia mais

TEORIA DE COMPLEXIDADE

TEORIA DE COMPLEXIDADE UFMG/ICEX/DCC PROJETO E ANÁLISE DE ALGORITMOS TEORIA DE COMPLEXIDADE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO 1 O SEMESTRE DE 2008 Antonio Alfredo Ferreira Loureiro loureiro@dcc.ufmg.br http://www.dcc.ufmg.br/~loureiro

Leia mais

Polinomial: função de complexidade é O(p(n)), onde p(n) é um polinômio.

Polinomial: função de complexidade é O(p(n)), onde p(n) é um polinômio. UFMG/ICEX/DCC PROJETO E ANÁLISE DE ALGORITMOS Introdução TEORIA DE COMPLEXIDADE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO 1 O SEMESTRE DE 2008 Problemas intratáveis ou difíceis são comuns na natureza e nas

Leia mais

Análise e Projeto de Algoritmos

Análise e Projeto de Algoritmos Análise e Projeto de Algoritmos Prof. Eduardo Barrére www.ufjf.br/pgcc www.dcc.ufjf.br eduardo.barrere@ice.ufjf.br www.barrere.ufjf.br A Classe de Problemas P A classe de algoritmos P é formada pelos procedimentos

Leia mais

Redução polinomial. Permite comparar o grau de complexidade de problemas diferentes.

Redução polinomial. Permite comparar o grau de complexidade de problemas diferentes. Redução polinomial Permite comparar o grau de complexidade de problemas diferentes. Uma redução de um problema Π a um problema Π é um algoritmo ALG que resolve Π usando uma subrotina hipotética ALG que

Leia mais

Autómatos determísticos de k-pilhas

Autómatos determísticos de k-pilhas Autómatos determísticos de k-pilhas dados de entrada a a a3 an controlo finito (S, Σ, Γ, δ, Z, s 0, F ) δ (S Σ Γ k ) (S, (Γ ) k ) Departamento de Ciência de Computadores da FCUP MC Aula 3 Dados um estado

Leia mais

Redutibilidade. Mário S. Alvim Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02)

Redutibilidade. Mário S. Alvim Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Redutibilidade Mário S. Alvim (msalvim@dcc.ufmg.br) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim (msalvim@dcc.ufmg.br) Redutibilidade DCC-UFMG (2018/02) 1 / 46 Redutibilidade:

Leia mais

Técnicas de Extensão de MT

Técnicas de Extensão de MT Máquinas de Turing Técnicas de Extensão de MT Permanecer parada após a leitura (STILL) Máquinas de Turing com Múltiplas Fitas e Cabeças Máquinas de Turing Não-deterministicas A Tese/Hipótese de Church-Turing

Leia mais

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados.

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados. Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados. José Lucas Rangel 9.1 - Introdução. Como já vimos anteriormente, a classe das linguagens sensíveis ao contexto (lsc) é uma

Leia mais

Computabilidade e Complexidade (ENG10014)

Computabilidade e Complexidade (ENG10014) Sistemas de Informação Computabilidade e Complexidade (ENG10014) Profa. Juliana Pinheiro Campos E-mail: jupcampos@gmail.com Decidibilidade O estudo da decidibilidade objetiva determinar a solucionabilidade

Leia mais

Aula 9: Máquinas de Turing

Aula 9: Máquinas de Turing Teoria da Computação Aula 9: Máquinas de Turing DAINF-UTFPR Prof. Ricardo Dutra da Silva Uma máquina de Turing é uma máquina de estados finitos que pode mover o cabeçote em qualquer direção, ler e manipular

Leia mais

IME, UFF 7 de novembro de 2013

IME, UFF 7 de novembro de 2013 em Lógica IME, UFF 7 de novembro de 2013 em Sumário Intermezzo sobre problemas. Intermezzo sobre algoritmos.. em : Val, Sat, Conseq, Equiv, Consist. Redução de problemas. em Um problema computacional é

Leia mais

Análise de Algoritmos. Slides de Paulo Feofiloff

Análise de Algoritmos. Slides de Paulo Feofiloff Análise de Algoritmos Slides de Paulo Feofiloff [com erros do coelho e agora também da cris] Algoritmos p. 1 Redução polinomial Permite comparar o grau de complexidade de problemas diferentes. Uma redução

Leia mais

Linguagem Universal. assim como a entrada ser processada por a. (b) A segunda fita de representa a fita de

Linguagem Universal. assim como a entrada ser processada por a. (b) A segunda fita de representa a fita de Linguagem Universal 1. Uma máquina de Turing representa um PC? Ou representa um possível problema que um PC pode resolver? 2. Uma máquina de Turing pode ser utilizada para simular uma de Turing máquina.

Leia mais

Problemas de otimização

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,

Leia mais

Busca e Decisão. Problemas de Otimização. Kakuro. P e NP. Pode-se resolver o Kakuro somente resolvendo problemas de decisão?

Busca e Decisão. Problemas de Otimização. Kakuro. P e NP. Pode-se resolver o Kakuro somente resolvendo problemas de decisão? Busca e Decisão Universidade Federal de Ouro Preto Departamento de Computação P e NP Decisão: Respostas SIM ou NÃO Eiste uma clique de tamanho k no grafo? Eiste um preenchimento da mochila com lucro z?

Leia mais

Problemas Computáveis

Problemas Computáveis Indecidibilidade Problemas Computáveis Máquinas de Turing ou Problemas Computáveis ou Linguagens Recursivamente Enumeráveis LER (*) podem ser divididas em 2 classes: as MT que sempre param (Algoritmos),

Leia mais

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

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

Leia mais

Teoria da Computação. Computabilidade e complexidade computacional

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

Leia mais

Algoritmos de Aproximação Segundo Semestre de 2012

Algoritmos de Aproximação Segundo Semestre de 2012 Algoritmos de Aproximação Segundo Semestre de 2012 Aproximação p. 1 Problema de decisão Problema de decisão: conjunto I de instâncias e função f : I {SIM, NÃO} Aproximação p. 2 Problema de decisão Problema

Leia mais

Algoritmos Combinatórios: Introdução

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

Leia mais

Introdução Maquinas de Turing universais O problema da parada. Indecidibilidade. Rodrigo Gabriel Ferreira Soares DEINFO - UFRPE.

Introdução Maquinas de Turing universais O problema da parada. Indecidibilidade. Rodrigo Gabriel Ferreira Soares DEINFO - UFRPE. DEINFO - UFRPE Julho, 2014 Motivação Introdução O que pode ser computado? E mais intrigantemente, o que não pode ser computado? Motivação Introdução O que pode ser computado? E mais intrigantemente, o

Leia mais

Paulo Guilherme Inça. 7 de dezembro de 2016

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

Leia mais

I.2 Introdução a Teoria da Computação

I.2 Introdução a Teoria da Computação I.2 Introdução a Teoria da Computação O que é? Fundamento da Ciência da Computação Tratamento Matemático da Ciência da Computação Estudo Matemático da Transformação da Informação Qual sua importância?

Leia mais

Agenda. Complexidade Não Determinista A classe NP. A classe Co-NP Reduções de tempo polinomial. Definida por. Exemplos em:

Agenda. Complexidade Não Determinista A classe NP. A classe Co-NP Reduções de tempo polinomial. Definida por. Exemplos em: A Classe NP Agenda Complexidade Não Determinista A classe NP Definida por aceitação em tempo polinomial por NTM s instâncias positivas com provas de tamanho polinomial aceitação por verificadores em tempo

Leia mais

Coloração. Carolina Moraes e Lucas Glir

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

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

PCC104 - Projeto e Análise de Algoritmos

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

Leia mais

Variedades Adicionais das Máquinas de Turing

Variedades Adicionais das Máquinas de Turing LFA - PARTE 5 Variedades Adicionais das Máquinas de Turing 1 Máquinas de Turing com uma Fita Infinita de um Sentido A fita da máquina é infinita apenas à direita O quadrado da fita mais à esquerda contém

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

Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios

Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios 1. Escreva a expressão regular para as seguintes linguagens sobre o alfabeto {0, 1}: strings começando

Leia mais

Linguagens Formais e Autômatos Decidibilidade

Linguagens Formais e Autômatos Decidibilidade Linguagens Formais e Autômatos Decidibilidade Andrei Rimsa Álvares Sumário Introdução A tese de Church-Turing Máquinas de Turing e problemas de decisão Máquina de Turing Universal O problema da parada

Leia mais

Modelos de Computação Folha de trabalho n. 10

Modelos de Computação Folha de trabalho n. 10 Modelos de Computação Folha de trabalho n. 10 Nota: Os exercícios obrigatórios marcados de A a D constituem os problemas que devem ser resolvidos individualmente. A resolução em papel deverá ser depositada

Leia mais

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

Leia mais

2 Preliminares. (ii) α é uma subfórmula de α; (iii) Se γ β é uma subfórmula de α então também são γ, β para =,,.

2 Preliminares. (ii) α é uma subfórmula de α; (iii) Se γ β é uma subfórmula de α então também são γ, β para =,,. 2 Preliminares Com intuito de fixar a notação, apresentaremos, neste capítulo, resultados e definições essenciais que serão utilizados ao longo da tese. Para indicar identidade de duas expressões, usaremos.

Leia mais

Complexidade de Tempo

Complexidade de Tempo Complexidade de Tempo 1 Complexidade de Tempo Quando um problema é decidível, ele pode não ser solúvel na prática se a solução requer uma quantidade excessiva de tempo ou memória Medindo a complexidade

Leia mais

Melhores momentos AULA PASSADA. Complexidade Computacional p. 205

Melhores momentos AULA PASSADA. Complexidade Computacional p. 205 Melhores momentos AULA PASSADA Complexidade Computacional p. 205 MT multifita por MT fita única Duas máquinas são equivalentes se elas reconhecem a mesma linguagem. Teorema. Dada uma máquina de Turing

Leia mais

Algoritmo Aproximação. Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3

Algoritmo Aproximação. Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3 Algoritmo Aproximação Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3 Heurísticas para Problemas NP- Completo Heurística: algoritmo que pode produzir um bom resultado (ou até a solução ótima),

Leia mais

Linguaguens recursivamente enumeráveis

Linguaguens recursivamente enumeráveis Linguaguens recursivamente enumeráveis Uma palavra x Σ é aceite por uma máquina de Turing M ( x L(M)) se M iniciando com a palavra x na fita e no estado inicial, pára num estado final. Caso contrário,

Leia mais

Por que não encontramos algoritmos polinomiais para muitos problemas?

Por que não encontramos algoritmos polinomiais para muitos problemas? Por que não encontramos algoritmos polinomiais para muitos problemas? Talvez não tenhamos AINDA encontrado ou talvez eles sejam MESMO intrinsicamente difíceis 1 Objetivos: Introdução Apresentar o conceito

Leia mais

Medida do Tempo de Execução de um Programa

Medida do Tempo de Execução de um Programa Medida do Tempo de Execução de um Programa Livro Projeto de Algoritmos Nívio Ziviani Capítulo 1 Seção 1.3.1 http://www2.dcc.ufmg.br/livros/algoritmos/ Comportamento Assintótico de Funções O parâmetro n

Leia mais

Por que não encontramos algoritmos polinomiais para muitos problemas?

Por que não encontramos algoritmos polinomiais para muitos problemas? Por que não encontramos algoritmos polinomiais para muitos problemas? Talvez não tenhamos AINDA encontrado ou talvez eles sejam MESMO intrinsicamente difíceis 1 Objetivos: Introdução Apresentar o conceito

Leia mais

Modelos Universais de Computação

Modelos Universais de Computação Modelos Universais de Computação 1 Equivalência entre Variantes de TM TM s definem naturalmente uma classe. Toda variante razoável de TM define a mesma classe de linguagens. (reforça a Tese Church-Turing)

Leia mais

Análise de Algoritmos

Análise de Algoritmos Análise de Algoritmos Aula 04 Prof. Fernando Freitas Classes de Comportamento Assintótico Se f é uma função de complexidade para um algoritmo F, então O(f) é considerada a complexidade assintótica ou o

Leia mais

Algoritmos de aproximação - Problema de cobertura por conjuntos

Algoritmos de aproximação - Problema de cobertura por conjuntos Algoritmos de aproximação - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de 205 Baseado no livro Uma introdução sucinta a Algoritmos de Aproximação, de M. H. Carvalho, M.

Leia mais

Projeto e Análise de Algoritmos. Problemas N P-Completo e Algoritmos Aproximados

Projeto e Análise de Algoritmos. Problemas N P-Completo e Algoritmos Aproximados Projeto e Análise de Algoritmos Problemas N P-Completo e Algoritmos Aproximados Antonio Alfredo Ferreira Loureiro loureiro@dcc.ufmg.br http://www.dcc.ufmg.br/~loureiro PAA Problemas NP-Completo e Algoritmos

Leia mais

Aula 10: Decidibilidade

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

Leia mais

Aula 10: Decidibilidade

Aula 10: Decidibilidade Teoria da Computação 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 são sim ou não. Exemplo

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens

Leia mais

Introdução à classe de problemas NP- Completos

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

Leia mais

3 Problema de decisão em esquemas conceituais

3 Problema de decisão em esquemas conceituais 35 35 3 Problema de decisão em esquemas conceituais Um sistema de representação do conhecimento baseado em Lógica de Descrição (LD) é capaz de executar tipos específicos de inferência lógica. O domínio

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Diferencia-se das máquinas de Turing e Post principalmente pelo fato de possuir a memória de entrada separada

Leia mais

Medida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Medida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Medida do Tempo de Execução de um Programa David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Classes de Comportamento Assintótico Se f é uma função de complexidade para um algoritmo F, então

Leia mais

Linguagens Formais e Autômatos. Autômatos Finitos Determinísticos (AFD)

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

Leia mais

GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de Algoritmos: Computabilidade e Máquina de Turing

GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de Algoritmos: Computabilidade e Máquina de Turing GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de Algoritmos: Computabilidade e Máquina de Turing Ilmério Reis da Silva ilmerio@ufu.br www.facom.ufu.br/~ilmerio/icc UFU/FACOM/BCC Funções Def. Função

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) 3 de dezembro de 2016 Período: 2016.2 ANÁLISE DE ALGORITMOS (INF 1721) 3 a Lista de

Leia mais

Preliminares. Profa. Sheila Morais de Almeida. agosto

Preliminares. Profa. Sheila Morais de Almeida. agosto Preliminares Profa. Sheila Morais de Almeida DAINF-UTFPR-PG agosto - 2016 Algoritmos Definição - Skiena Algoritmo é a ideia por trás dos programas de computador. É aquilo que permanece igual se o programa

Leia mais

Máquinas de Turing 3

Máquinas de Turing 3 Máquinas de Turing 3 Máquinas de Turing com Múltiplas Fitas Máquinas de Turing Não-deterministicas A Tese/Hipótese de Church-Turing Linguagens decidíveis por Máquinas de Turing (Recursivas) Linguagens

Leia mais

Faculdade de Computação

Faculdade 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 8 - Indecidibilidade Exercicio 1-5.5 do Livro

Leia mais

Algoritmos de aproximação - Problema do caixeiro viajante

Algoritmos de aproximação - Problema do caixeiro viajante Algoritmos de aproximação - Problema do caixeiro viajante Marina Andretta ICMC-USP 30 de setembro de 2015 Baseado no livro Uma introdução sucinta a Algoritmos de Aproximação, de M. H. Carvalho, M. R. Cerioli,

Leia mais

Algoritmo Aproximado. Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3

Algoritmo Aproximado. Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3 Algoritmo Aproximado Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3 Heurísticas para Problemas N P- Completo Heurística: algoritmo que pode produzir um bom resultado (ou até a solução ótima),

Leia mais

Problemas NP-completos

Problemas NP-completos Problemas NP-completos Marina Andretta ICMC-USP 15 de setembro de 2015 Marina Andretta (ICMC-USP) sme0216 e 5826 15 de setembro de 2015 1 / 26 Sat é NP-completo Já vimos que o primeiro problema que se

Leia mais

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Aula 18. Cap O Problema da Parada

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Aula 18. Cap O Problema da Parada ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO Aula 18 Cap 4.2 - O Problema da Parada Profa. Ariane Machado Lima ariane.machado@usp.br 1 Nas últimas aulas Tese de Church-Turing Problemas computacionais descritos

Leia mais

Teoria da Computação. Máquinas Universais Máquina com Pilhas

Teoria da Computação. Máquinas Universais Máquina com Pilhas Máquinas Universais Máquina com Pilhas Cristiano Lehrer Introdução A Máquina com Pilhas diferencia-se das Máquinas de Turing e de Post principalmente pelo fato de possuir uma memória de entrada separada

Leia mais

P, NP e NP-Completo. André Vignatti DINF- UFPR

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.

Leia mais

Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente

Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente ESIN/UCPel 058814 Linguagens Formais e Autômatos TEXTO 5 Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente Prof. Luiz A M Palazzo Maio de 2007 0. Introdução A Ciência da Computação

Leia mais

Aula 12: Programação Inteira

Aula 12: Programação Inteira Aula 12: Programação Inteira Otimização Linear e Inteira Túlio A. M. Toffolo http://www.toffolo.com.br BCC464/PCC174 2018/2 Departamento de Computação UFOP Aula de Hoje 1 Programação Inteira: A Formulação

Leia mais

Problemas Algoritmicos

Problemas Algoritmicos Problemas Algoritmicos 1 O que pode ser computado? Chegamos a um importante ponto do curso. Vamos agora estudar uma das questões mais fundamentais em Ciência da Computação: Qual seria o limite do poder

Leia mais

Universidade Federal de Uberlândia Mestrado em Ciência da Computação

Universidade Federal de Uberlândia Mestrado em Ciência da Computação Universidade Federal de Uberlândia Mestrado em Ciência da Computação Solução da 1 a Prova de Teoria da Computação - 05/05/2010 Questão 1 (Valor = 7 pontos) Um número real é dito algébrico se é raiz de

Leia mais

INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação

INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação bas eado em material produzido pelo prof Olinto Jos é Varela Furtado Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: silveira@inf.ufsc.br

Leia mais