Classes de Complexidade e NP-Completude



Documentos relacionados
ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Seção 5.1 Problemas indecidíveis. Slides originais gentilmente cedidos pela Profa. Ariane Machado Lima

Complexidade de Algoritmos

Eduardo C. Xavier. 24 de fevereiro de 2011

Análise e Complexidade de Algoritmos

Online Survivable Network Design

UM TEOREMA QUE PODE SER USADO NA

Faculdade de Computação

Dadas a base e a altura de um triangulo, determinar sua área.

O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2

Sistemas de Numerações.

CI165 Introdução. André Vignatti. 31 de julho de 2014

Bases Matemáticas. Aula 2 Métodos de Demonstração. Rodrigo Hausen. v /15

E A D - S I S T E M A S L I N E A R E S INTRODUÇÃO

Complexidade de Algoritmos. Edson Prestes

Lógica Computacional

Universidade Federal de Alfenas

Faculdade de Computação

Teoria dos Grafos. Edson Prestes

Análise de Algoritmos. Slides de Paulo Feofiloff

Função. Definição formal: Considere dois conjuntos: o conjunto X com elementos x e o conjunto Y com elementos y. Isto é:

Resolução de problemas e desenvolvimento de algoritmos

Princípio da Casa dos Pombos I

9 Comandos condicionais

Implementando uma Classe e Criando Objetos a partir dela

Análise e Projeto de Algoritmos

a 1 x a n x n = b,

5 Equacionando os problemas

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Arquitetura de Rede de Computadores

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

5COP096 TeoriadaComputação

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Orientação a Objetos

x0 = 1 x n = 3x n 1 x k x k 1 Quantas são as sequências com n letras, cada uma igual a a, b ou c, de modo que não há duas letras a seguidas?

CÁLCULO DE ZEROS DE FUNÇÕES REAIS

Qual é Mesmo a Definição de Polígono Convexo?

Excel Planilhas Eletrônicas

Princípio da Casa dos Pombos II

FATEC Cruzeiro José da Silva. Ferramenta CRM como estratégia de negócios

Curso: Desenvolvendo Jogos 2d Com C# E Microsoft XNA. Mostrar como funciona a programação orientada a objetos

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

Computabilidade 2012/2013. Sabine Broda Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

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

6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto

Desenvolvendo plugins WordPress usando Orientação a Objetos

Criptografia e Teoria da Complexidade

Estrutura de Dados Básica

O Problema do Troco Principio da Casa dos Pombos. > Princípios de Contagem e Enumeração Computacional 0/48

Nome: Calcule a probabilidade de que os dois alunos sorteados falem Inglês e. Análise Quantitativa e Lógica Discursiva - Prova B

PARANÁ GOVERNO DO ESTADO

Avaliação de Desempenho

2. Representação Numérica

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES

RESULTADO COM MERCADORIAS!!!

O endereço de sua estação de trabalho é , e você esta usando a máscara de subrede:

Entendendo como funciona o NAT

Problemas insolúveis. Um exemplo simples e concreto

Lógica Formal e Booleana. Cálculo Proposicional

MA14 - Aritmética Unidade 4. Representação dos Números Inteiros (Sistemas de Numeração)

Algoritmos de Busca em Tabelas

Lema do Bombeamento Linguagens Livres de Contexto

Consumidor.gov.br. Usuário: Consumidor

Conceitos e fórmulas

Algoritmos e Programação Conceitos e Estruturas básicas (Variáveis, constantes, tipos de dados)

Resíduos Quadráticos e Fatoração: uma aplicação à criptoanálise do RSA

Estabilidade. Carlos Alexandre Mello. Carlos Alexandre Mello 1

Copiright de todos artigos, textos, desenhos e lições. A reprodução parcial ou total desta aula só é permitida através de autorização por escrito de

LÓGICA DE PROGRAMAÇÃO. Vitor Valerio de Souza Campos

Por que o quadrado de terminados em 5 e ta o fa cil? Ex.: 15²=225, 75²=5625,...

Simulado OBM Nível 2

Fundamentos em Informática (Sistemas de Numeração e Representação de Dados)

Algoritmo e Programação

Capítulo 2. Laboratório 2.1. Introdução ao Packet Tracer, Roteadores, Switches e Inicialização

N1Q1 Solução. a) Há várias formas de se cobrir o tabuleiro usando somente peças do tipo A; a figura mostra duas delas.

1. Introdução ao uso da calculadora

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br

Aula 13: Lógica de Predicados

Curso de Programação Computadores

SISTEMAS LINEARES CONCEITOS

Unidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 01

Construção de tabelas verdades

Estruturas Discretas INF 1631

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

CAPÍTULO 6 - ESTRUTURA DE SELEÇÃO

Projeto e Desenvolvimento de Algoritmos

O método de Monte Carlo: algumas aplicações na Escola Básica

PROGRAMAÇÃO LINEAR. Resolução de problemas de programação linear usando o comando Solver, no Excel.

Que tipo de problemas são insolúveis por computador? Todos eles são teóricos?? A resposta é não!

JSP - ORIENTADO A OBJETOS

CTC-17 Inteligência Artificial Problemas de Busca. Prof. Paulo André Castro

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

Linguagem Lógica Prolog

ESTRUTURA CONDICIONAL

MRP - Material Requirement Planning

Transcrição:

Classes de Complexidade e NP-Completude E. C. Xavier e F. K. Miyazawa Instituto de Computação/Unicamp 8 de outubro de 2009 E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de 2009 1 / 19

Mais Sobre Complexidade Devemos estabelecer bem que problema estamos considerando durante provas de NP-Completude. Considere o problema 2CNF-SAT: Temos uma fórmula escrita na CNF onde cada cláusula possui até 2 literais. 2CNF-SAT = { f : f é uma fórmula na 2CNF e possui atribuição verdadeira } E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de 2009 2 / 19

Mais Sobre Complexidade Teorema Seja f uma fórmula na 2CNF. Existe um algoritmo polinomial que decide se f possui ou não atribuição verdadeira. Prova. Exercício. Com isso mostramos que 2CNF-SAT pertence a P. Mas considere o problema MAX-2CNF-SAT: MAX-2CNF-SAT = { f : f é uma fórmula na 2CNF e possui uma atribuição que deixa pelo menos k cláusulas verdadeiras } E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de 2009 3 / 19

Mais Sobre Complexidade Teorema MAX-2CNF-SAT é NP-Completo. Vamos fazer uma redução do problema Vertex-Cover (VC) para o MAX-2CNF-SAT. Seja G, k uma instância para o VC com n vértices. Para cada vértice x i de G criamos um literal x i. Também inserimos a cláusula x i na fórmula f. Para cada aresta (x i, x j ) de G acrescentamos n 3 cláusulas (x i x j ) na fórmula f. E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de 2009 4 / 19

Continuação da prova É claro que f pode ser construída em tempo polinomial. Consideramos a instância f, k para o MAX-2CNF-SAT onde k = n 3 E + n k. Ida: Seja V V uma cobertura de tamanho k. Para cada vértice x u V faça x u = 1 em f. Para os demais vértices, deixe os valores das variáveis em zero. Como V é uma cobertura então todas as cláusulas correspondentes as arestas serão satisfeitas. Além disso, das n cláusulas correspondentes aos vértices, k não serão satisfeitas. Portanto n 3 E + n k cláusulas são satisfeitas E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de 2009 5 / 19

Volta: Continuação da prova Suponha que pelo menos E n 3 + n k cláusulas sejam satisfeitas em f. Primeiramente note que é impossível satisfazer todas as cláusulas de arestas e vértices ao mesmo tempo. Note que se não satisfizermos alguma cláusula de aresta deixamos pelo menos n 3 cláusulas não satisfeitas. E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de 2009 6 / 19

Continuação da prova Logo para haver E n 3 + n k cláusulas satisfeitas, todas as cláusulas de aresta devem estar satisfeitas. Do total de n cláusulas de vértices, teremos n k satisfeitas, e portanto existem k literais x i com valores em 1. Os vértices correspondentes a estes literais devem formar um cobertura pois todas as cláusulas de arestas estão satisfeitas. E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de 2009 7 / 19

Complexidade de Espaço Da mesma forma como avaliamos algoritmos em termos de tempo, podemos avalia-los em termos de espaço utilizado. Definição O espaço (memória) utilizado por um algoritmo determinístico corresponde ao número de células (bits) que este acessa durante sua execução. Definição O espaço utilizado por um algoritmo não-determinístico é o número de células acessadas em um ramo mais curto de execução da árvore até o estado aceita. E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de 2009 8 / 19

Complexidade de Espaço Definição SPACE(f (n)) = {L : L é uma linguagem decidida deterministicamente em espaço O(f (n))} Definição NSPACE(f (n)) = {L : L é uma linguagem decidida não-deterministicamente em espaço O(f (n))} Podemos mostrar por exemplo que linguagens em NP gastam espaço polinomial. E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de 2009 9 / 19

Complexidade de Espaço Definição PSPACE são as linguagens que podem ser decididas por algoritmos determinísticos que usam espaço polinomial:. Definição PSPACE = k SPACE(n k ) para constante k NPSPACE são as linguagens que podem ser decididas por algoritmos não-determinísticos que usam espaço polinomial:. NPSPACE = k NSPACE(n k ) para constante k E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de 2009 10 / 19

Complexidade de Espaço Teorema Teorema de Savitch: Para qualquer função f : N R NSPACE(f (n)) SPACE(f 2 (n)) O teorema nos diz que as linguagens decididas por algoritmos não-determinísticos com f (n) de espaço podem ser decididas por algoritmos determinísticos com espaço f 2 (n). E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de 2009 11 / 19

Complexidade de Espaço Teorema PSPACE = NPSPACE. Prova. É claro que PSPACE NPSPACE. Se L NPSPACE então ela é decidida não deterministicamente em espaço O(n k ) para uma constante k. Pelo teo. de Savitch L pode ser decidida por alg. determinístico com espaço O(n 2k ) que é polinomial. E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de 2009 12 / 19

Complexidade de Espaço Sabemos que existe a seguinte relação entre as classes: P NP PSPACE = NPSPACE E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de 2009 13 / 19

Indecibilidade Até então temos nos preocupado com o esforço necessário que um algoritmo tem para resolver um problema. Mas existem problemas insolúveis por algoritmos como temos usado!!! Tais problemas são ditos indecidíveis pois não há algoritmo que decide o problema. Mesmo que o algoritmo não seja polinomial! E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de 2009 14 / 19

Indecibilidade Definição Problema da Parada: Dado uma string s e um algoritmo A, deve-se decidir se A aceita ou não s. Vamos mostrar que este problema é indecidível. Uma idéia que poderíamos ter é a de criar um algoritmo A que simule A sobre a entrada s. Mas não sabemos se A para ou não!! Quando decidir que A não aceita s? E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de 2009 15 / 19

Indecibilidade Teorema O problema da Parada é indecidível. Prova. Vamos fazer uma prova por contradição. Suponha que haja um algoritmo H que decida o problema. H( A, s ) = { aceita rejeita se A aceita s se A não aceita s E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de 2009 16 / 19

Continuação da Prova Vamos montar um outro algoritmo H 2 que usa H como subrotina. Este algoritmo recebe como parâmetro apenas um algoritmo e testa se o algoritmo aceita ou não o próprio algoritmo. { aceita se A aceita A (se H( A, A ) = 1) H 2 ( A ) = rejeita se A não aceita A (se H( A, A ) = 0) E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de 2009 17 / 19

Continuação da Prova Vamos considerar agora um novo algoritmo H 3 que faz o contrário de H 2. { aceita se A não aceita A (se H( A, A ) = 0) H 3 A ) = rejeita se A aceita A (se H( A, A ) = 1) O que acontece se passarmos o algoritmo H 3 como entrada para ele mesmo?? E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de 2009 18 / 19

Continuação da Prova Se passarmos H 3 como parâmetro para H 3 teremos: { aceita se H 3 não aceita H 3 H 3 ( H 3 ) = rejeita se H 3 aceita H 3 O que é uma contradição pois H 3 aceita ele próprio quando ele rejeita ele próprio! E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de 2009 19 / 19