INTRATABILIDADE e NP-COMPLETUDE
|
|
|
- Fábio Esteves Damásio
- 8 Há anos
- Visualizações:
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 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
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
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
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 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
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,
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
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
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
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
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
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
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.
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
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
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
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)
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
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
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
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
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
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 [email protected] http://www.dcc.ufmg.br/~loureiro
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
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
Redutibilidade. Mário S. Alvim Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02)
Redutibilidade Mário S. Alvim ([email protected]) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim ([email protected]) Redutibilidade DCC-UFMG (2018/02) 1 / 46 Redutibilidade:
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
Computabilidade e Complexidade (ENG10014)
Sistemas de Informação Computabilidade e Complexidade (ENG10014) Profa. Juliana Pinheiro Campos E-mail: [email protected] Decidibilidade O estudo da decidibilidade objetiva determinar a solucionabilidade
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
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
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,
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?
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
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
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?
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
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
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?
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
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
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
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
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
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
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
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
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
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
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
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.
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 [email protected] http://www.dcc.ufmg.br/~loureiro PAA Problemas NP-Completo e Algoritmos
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
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
Linguagens Formais e Autômatos P. Blauth Menezes
Linguagens Formais e Autômatos P. Blauth Menezes [email protected] Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens
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
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
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
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
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
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
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
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,
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
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 [email protected] 1 Nas últimas aulas Tese de Church-Turing Problemas computacionais descritos
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
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.
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
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
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: [email protected]
