Sei sulla pagina 1di 32

Complexidade

e Completude
Centro de Inform-ca Universidade Federal de Pernambuco Sistemas de Informao Vinicius Cardoso Garcia vcg@cin.ufpe.br

2011 Vinicius Cardoso Garcia

Introduo
Complexidade, denio genrica:
Complexidade a escola losca que v o mundo como um todo indissocivel e prope uma abordagem mul-disciplinar para a construo do conhecimento. Contrape-se causalidade por abordar os fenmenos como totalidade orgnica.

Algoritmos e Estrutura de Dados Complexidade e Completude 2011 Vinicius Cardoso Garcia

Complexidade Computacional
Teoria da complexidade computacional a parte da teoria da computao que estuda os recursos necessrios durante o clculo para resolver um problema. A teoria da complexidade difere da teoria da computabilidade a qual se ocupa de possibilidade de se solucionar um problema com algoritmos sem levar em conta os recursos necessrios para ele.
Algoritmos e Estrutura de Dados Complexidade e Completude 2011 Vinicius Cardoso Garcia

Completude
Completude tem a ver com a completa descrio ou abrangncia de um modelo, geralmente abstrato, com o problema/ universo que ele envolve. Ex: o programa:
x=input(digite um nmero) print x+1

completo para os inteiros, pois dado qualquer inteiro, a operao ser executada.
Algoritmos e Estrutura de Dados Complexidade e Completude 2011 Vinicius Cardoso Garcia

Completude
Demonstrado por Kurt Gdel, o teorema da incompletude, garante que todos os clculos lgicos de operaes simples sobre os inteiros no podem ser simultaneamente completos e consistentes.

Algoritmos e Estrutura de Dados Complexidade e Completude 2011 Vinicius Cardoso Garcia

Decidibilidade
Um problema dito decidvel se h uma mquina de Turing (computador) que possa computar, independente do tempo que leve. Caso contrrio, chamado de indecidvel.
hgp://en.wikipedia.org/wiki/Turing_machine

Exemplo: dizer se um nmero primo ou no trivialmente decidvel, mas exponencial no tamanho da entrada.
Algoritmos e Estrutura de Dados Complexidade e Completude 2011 Vinicius Cardoso Garcia

Computabilidade
A Teoria da Computabilidade estuda:
Questes de decibilidade Modelos de computao Capacidade computacional.

Algoritmos e Estrutura de Dados Complexidade e Completude 2011 Vinicius Cardoso Garcia

Sumarizando
A teoria da complexidade est preocupara com resolver problemas di@ceis de maneira eciente. A teoria da computabilidade est preocupada com a forma com que as computaes so feitas (modelo abstrato de computao). O foco da aula de hoje complexidade.

Algoritmos e Estrutura de Dados Complexidade e Completude 2011 Vinicius Cardoso Garcia

Denies
Algoritmo polinomial do -po:
nK, onde n o tamanho da entrada e k constante.

Um algoritmo exponencial do -po:


Kcn,onde n o tamanho da entrada e k e c so constantes maiores que zero.

Problemas polinomiais so ditos tratveis e exponenciais intratveis (diqceis).

Algoritmos e Estrutura de Dados Complexidade e Completude 2011 Vinicius Cardoso Garcia

Exemplos de custos
Funo de Custo n n2 n3 n5 2n 3n n = 10 10-5 s 10-4 s 10-3 s 0,1 s 10-3 s 59,10-3 s n = 20 2.10-5 s 4.10-4 s 8.10-3 s 3,2 s 1 s 58 min n = 30 3.10-5 s 9.10-4 s 27.10-3 s 24,3 s 17,9 min 6,5 anos n = 40 4.10-5 s 16.10-4 s 64.10-3 s 1,7 min 12,7 dias 3855 sc. n = 50 5.10-5 s 25.10-4 s 5,2 min 35,7 anos 108 sc. n = 60 6.10-5 s 36.10-4 s 13 min 366 sc. 1013 sc.

125.10-3 s 216.10-3 s

Algoritmos e Estrutura de Dados Complexidade e Completude 2011 Vinicius Cardoso Garcia

10

Algoritmos DeterminsOcos
So algoritmos que apresentam comportamento previsvel. Dada uma determinada entrada, o algoritmo apresenta sempre a mesma sada. Mquinas determins-cas so aquelas que s podem estar em um estado por vez.
Um estado dene o que a mquina est fazendo em um determinado tempo.

Algoritmos e Estrutura de Dados Complexidade e Completude 2011 Vinicius Cardoso Garcia

11

Algoritmos No-DeterminsOcos
So algoritmos que apresentam comportamento guiado por uma certa distribuio estass-ca. Dada uma determinada entrada, o algoritmo apresenta uma sada com uma dada probabilidade.

Algoritmos e Estrutura de Dados Complexidade e Completude 2011 Vinicius Cardoso Garcia

12

Algoritmos No-DeterminsOcos
N recebe o problema

Algoritmos e Estrutura de Dados Complexidade e Completude 2011 Vinicius Cardoso Garcia

13

Algoritmos No-DeterminsOcos
Subdivide os problemas

Algoritmos e Estrutura de Dados Complexidade e Completude 2011 Vinicius Cardoso Garcia

14

Algoritmos No-DeterminsOcos
Nova subdiviso

Algoritmos e Estrutura de Dados Complexidade e Completude 2011 Vinicius Cardoso Garcia

15

Algoritmos No-DeterminsOcos
Nova subdiviso

Algoritmos e Estrutura de Dados Complexidade e Completude 2011 Vinicius Cardoso Garcia

16

Algoritmos No-DeterminsOcos
Um n encontra o resultado

Algoritmos e Estrutura de Dados Complexidade e Completude 2011 Vinicius Cardoso Garcia

17

Algoritmos No-DeterminsOcos
Toda computao pra!

Algoritmos e Estrutura de Dados Complexidade e Completude 2011 Vinicius Cardoso Garcia

18

Algoritmos No-DeterminsOcos
Em outras palavras:
Problema inicial com resoluo em 2n passos em mquina determins-ca (pior caso) Em uma mquina no-determins-ca leva tempo n.

Intrigante:
Ser que existe algum problema que apenas uma mquina no-determins-ca resolva? No. Uma mquina no-determins-ca calcula apenas mais rpido, porm equivalente a mquinas determins-cas.
Algoritmos e Estrutura de Dados Complexidade e Completude 2011 Vinicius Cardoso Garcia

19

Classe de Problemas
Problemas P
a classe dos problemas resolvveis em tempo Polinomial em mquina determinsOca.

Problemas NP
a classe dos problemas resolvveis em tempo Polinomial em mquina No-determinsOca.

Algoritmos e Estrutura de Dados Complexidade e Completude 2011 Vinicius Cardoso Garcia

20

Classe de Problemas

Algoritmos e Estrutura de Dados Complexidade e Completude 2011 Vinicius Cardoso Garcia

21

Classe de Problemas
Problemas NPC ou NP-Completos
a classe dos problemas que so Polinomiais em mquinas No-Determins-cas e so Completos no sen-do que, para cada um deles, todos os problemas de NP podem ser reduzidos a ele em tempo polinomial (em mquina determins-ca).

Algoritmos e Estrutura de Dados Complexidade e Completude 2011 Vinicius Cardoso Garcia

22

NP-Completo
Formalmente, um problema NP-Completo se:
O problema NP NP-Diqcil

NP-Diqcil um problema que pode ser reduzido a outro problema NP, em outras palavras, se tem mesma complexidade de um problema NP.

Algoritmos e Estrutura de Dados Complexidade e Completude 2011 Vinicius Cardoso Garcia

23

NP-Completo
Problemas NPC ou NP-Completos
Se um problema de NPC puder ser resolvido em tempo polinomial em mquina determins-ca, ento todos os problemas de NP o podero, e NP = P; Se um problema de NPC for provadamente intratvel, ento todos os problemas em NPC tambm o sero. Da: (NPC intercepta P) se somente se (NP = P). A maioria cr que NPC disjunto de P, portanto NPP.

Este um dos problemas em aberto que pode mudar todo o entendimento da computabilidade na pr-ca, se for provado que NP = P
Algoritmos e Estrutura de Dados Complexidade e Completude 2011 Vinicius Cardoso Garcia

24

Classe de Problemas
Como provar que um problema A NPC ?
Mostrar que A pertence a NP; Selecionar um problema A, conhecido, de NPC; Construir uma transformao f:AA; Mostrar que f uma transformao polinomial.

Algoritmos e Estrutura de Dados Complexidade e Completude 2011 Vinicius Cardoso Garcia

25

Problemas NP-Completos
TSP - TheTraveling Salesman Problem (PCV - O Problema do Caixeiro Viajante):
Um vendedor tem que visitar cada uma de n cidades, terminando naquela por onde comeou; Cada arco tem um custo associado; O problema, na verso de deciso, pergunta: H uma turn de custo menor ou a igual a um valor, dado?; A verso de o-mizao pergunta: Qual o menor custo possvel para uma turn, e qual ela?
Algoritmos e Estrutura de Dados Complexidade e Completude 2011 Vinicius Cardoso Garcia

26

Problemas NP-Completos
HC The Hamilton Circuit (= Cycle) O Circuito Hamiltoniano:
Dado um grafo orientado, determine se h um ciclo que visite cada n exatamente uma vez, terminando no n inicial.

Algoritmos e Estrutura de Dados Complexidade e Completude 2011 Vinicius Cardoso Garcia

27

Problemas NP-Completos
ZOK (The Zero-One Knapsack) (O Problema da Mochila, cada item sendo totalmente tomado ou no tomado):
Uma mochila tem capacidade de M kilogramas; Num cofre, h N itens, cada um com seu peso (pi) e seu valor (vi); Escolha que itens levar na mochila, de modo que o total de peso seja menor ou igual a M, e o total dos valores seja mximo.
Algoritmos e Estrutura de Dados Complexidade e Completude 2011 Vinicius Cardoso Garcia

28

Problemas NP-Completos
Boolean Sa-sability Problem (SAT) SaOsfaObilidade de expresso booleana:
Dada uma expresso proposicional na forma normal conjun-va, determine se h algum conjunto de atribuies true e false aos smbolos proposicionais, que torne o valor da expresso igual a true.

Foi o primeiro problema NP-Completo proposto por Stephen Cookem em 1971. Foi demonstrado atravs de mquina de Turing.
Algoritmos e Estrutura de Dados Complexidade e Completude 2011 Vinicius Cardoso Garcia

29

Tcnicas de trabalhar com algoritmos NP- Completos


No faz sen-do dizer que um problema NP e simplesmente esquec-lo. Existem tcnicas de soluo que vo tentar achar uma soluo o-mizada de um problema NP. Essas tcnicas trabalham na questo de comprometer algo para achar uma soluo:
Op-malidade Robustez Ecincia Completude das Solues
Algoritmos e Estrutura de Dados Complexidade e Completude 2011 Vinicius Cardoso Garcia

30

Tcnicas de trabalhar com algoritmos NP- Completos


Algumas dessas tcnicas:
Algoritmos de aproximao (soluo pode ser ou no -ma)
Comprometem a optamibilidade.

Algoritmos que tratam problemas NPC em tempo polinomial na mdia.


Comprometem a ecincia.

Algoritmos que funcionam para casos especiais da entrada.


Comprometem a completude.

Algoritmos exponenciais que trabalham bem para pequenas entradas (backtracking).


Algoritmos e Estrutura de Dados Complexidade e Completude 2011 Vinicius Cardoso Garcia

31

AOvidades complementares
Leitura do captulo 34 do livro do Cormen

Algoritmos e Estrutura de Dados Complexidade e Completude 2011 Vinicius Cardoso Garcia

32