Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ......
Transcript of Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ......
![Page 1: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/1.jpg)
Teoria da Computação
1
Complexidade computacional –classes de problemas
![Page 2: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/2.jpg)
Universo de problemas
Problemas intratáveis
Não admitem algoritmosProblemas indecidíveisou não-computáveis
Não admitem algoritmos eficientes (tempo x espaço)
2
Problemas tratáveis
Problemas intratáveis eficientes (tempo x espaço)
Admitem algoritmos eficientes –em tempo polinomial
![Page 3: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/3.jpg)
Classes de problemas tratáveis e intratáveis
Se um algoritmo apresentar uma complexidadepolinominal ele é dito tratável, caso contrário, éintratável
3
Um problema tratável pode ser solucionado por umcomputador em um tempo aceitável pode serverificado a partir de um algoritmo de ordem polinomial
Algoritmos não polinomiais podem levar séculos, mesmopara entradas de tamanho reduzido.
![Page 4: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/4.jpg)
Complexidade computacional
A partir deste ponto, concentraremos a nossaatenção na questão de determinar se um problemaé tratável/intratável. Tratável: algoritmos com solução polinomial
4
Intratável: algoritmos com solução não-polinomial
Precisaremos introduzir mais um pouco de teoria,primeiramente classificando os problemas conformea resposta esperada. Os problemas podem serclassificados em:
![Page 5: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/5.jpg)
Classes de problemas algorítmicos
Problemas de Decisão consiste na verificação (decisão) da veracidade ou não de
determinada questão para o problema (resposta SIM ou NÃO)
Problemas de Localização
5
Problemas de Localização consiste na verificação da existência e identificação (localização)
de uma solução para o problema
Problemas de Otimização consiste na verificação da existência e identificação da melhor
(otimização) solução possível, dentre as soluções para o problema
![Page 6: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/6.jpg)
Problemas de Decisão
Objetivo: responder sim ou não à determinada indagação.
Algoritmo de Dijkstra Existe um caminho de i até j com peso <=k?
6
![Page 7: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/7.jpg)
Problemas de Localização
Objetivo: encontrar, caso exista, determinada estruturasatisfazendo requisitos especificados por uma questão.
Exemplo: Dado um conjunto P
7
Exemplo: Dado um conjunto Pde pontos turísticos de umadeterminada cidade, encontreum percurso turístico de umúnico dia que passa por todosos pontos em P com customenor ou igual a k. Resposta: Percurso turístico .
![Page 8: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/8.jpg)
Problemas de Otimização
Objetivo: obter determinada estrutura satisfazendo critériode otimização pré-definido
Exemplo: Dado um conjunto Pde pontos turísticos de uma
8
de pontos turísticos de umadeterminada cidade, qual é opercurso que passa por todosos pontos em P na menorquantidade de tempo/custopossível. Resposta: Percurso turístico (o
mais rápido/melhor/menoscustoso).
![Page 9: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/9.jpg)
Classes de problemas algorítmicos
Classes de problemas e grau de dificuldade
Problemas de Problemas de Problemas dedecisão localização otimização≤ ≤
A obtenção de resposta para o Problema de Decisão em
9
A obtenção de resposta para o Problema de Decisão em geral é mais fácil;
É fácil transformar um problema genérico em um Problema de Decisão;
Utiliza-se este problema para obter algumaindicação quanto à possível intratabilidade;
![Page 10: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/10.jpg)
Classificação dos problemas
A seguir, classificaremos os problemas segundo o temponecessário para:
1. encontrar uma solução2. verificar se uma resposta fornecida é realmente uma solução para o
problema.
10
As classes mais importantes nesses dois quesitossão denominadas P e NP
![Page 11: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/11.jpg)
Classes de problemas P e NP
Classe P
Classe de problemas que compreende precisamente aquelesproblemas que admitem algoritmo polinomial. (= classede problemas que podem ser resolvidos por uma MT
11
de problemas que podem ser resolvidos por uma MTdeterminística em tempo polinomial ao tamanho da entrada)
Exemplos: algoritmos de ordenação, problema da Conectividade, oproblema da equação do segundo grau (dados números inteiros a, be c, encontrar um número inteiro x tal que ax² + bx + c = 0), entreoutros.
![Page 12: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/12.jpg)
Classes de problemas P e NP
Classe NP
A classe NP consiste nos problemas que são“verificáveis” em tempo polinomial.
12
“verificáveis” em tempo polinomial.
É possível verificar, em tempo polinomial, se uma suposta solução deuma instância de X é de fato uma solução, ou seja, se existe umalgoritmo que, ao receber uma instância I de X e uma supostasolução S de I, responde sim ou não conforme S seja ou não soluçãode I, e consome tempo limitado por um polinômio no tamanho de Ipara responder sim.
![Page 13: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/13.jpg)
Classes de problemas P e NP
Classe NP
Para estes problemas são conhecidos algoritmos não-determinísticos polinomiais,ou seja, o algoritmo gera uma solução candidata ao problema e verifica suaviabilidade em tempo polinomial.
13
Alguns exemplos:
problema do caminho hamiltoniano - é possível verificar em tempo polinomialse uma dada permutação dos vértices é um ciclo do grafo;
Problema da fatoração - é fácil verificar se um dado número natural p édivisor de n;
Problema do campo minado - é possível verificar em tempo polinomial seuma dada distribuição das minas é consistente com a configuração dada
![Page 14: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/14.jpg)
Classes de problemas P e NP
Classe NP
Para que um problema p esteja na Classe NP é preciso que:
Seja possível verificar, em tempo polinomial, se uma candidata à
14
Seja possível verificar, em tempo polinomial, se uma candidata àsolução de p seja de fato uma solução. Ou seja, averificação/certificação/decisão da propriedade que faz dela umasolução para p tem que ser feita em tempo polinomial
resolver o problema de decisão subjacente já conhecido.
![Page 15: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/15.jpg)
Classes de problemas P e NP
Classe NP – exemplos
Caixeiro Viajante: Problema de decisão: Dada uma sequência devértices do grafo, ela é um ciclo hamiltoniano?
15
Coloração de Grafos: Problema de decisão: dados G e um inteiropositivo k, existe uma coloração de G usando k cores?
Se esses problemas de decisão forem polinomiais, entãoseus problemas originais, para os quais não se conhecesolução polinomial, estão em NP.
![Page 16: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/16.jpg)
Classes de problemas P e NP
Classe NP Observa-se que:
Não se exige uma solução polinomial para os problemas de NP;somente que uma certificação possa ser verificada em tempopolinomial;
16
Todo problema que está em P também está em NP, pois, se épossível achar uma solução em tempo polinomial, então é possívelverificá-la em tempo polinomial também. Logo, P ⊆ NP.
Para toda solução determinística pode ser construída uma não-determinística
![Page 17: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/17.jpg)
Classes de problemas P e NP
Classe NP Observa-se que:
Assim, os problemas que estão em NP e não estão em P sãoaqueles cuja certificação é polinomial, mas para os quais não seconhece solução polinomial.
17
NP NÃO significa “Não-Polinomial”, significa: Classe deproblemas certificáveis por uma MT NÃO-Determinística, em tempoPOLINOMIAL.
![Page 18: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/18.jpg)
Classes de problemas NP
Como mostrar que um determinado problema estáem NP? Elabore um algoritmo não-determinístico que execute em
tempo polinomial para resolver o problema.
18
OU
Define-se uma justificativa J para a resposta SIM. Elabora-se um algoritmo polinomial para reconhecer se J
está correta. A entrada desse algoritmo consiste de J e daentrada.
![Page 19: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/19.jpg)
Classes de problemas NP
Exemplo: ciclo Hamiltoniano está em NP?1. Define-se uma justificativa J para a resposta SIM.
R.: Uma sequência de vértices2. Para verificar a justificativa SIM
verificar se cada vértice aparece exatamente uma vez – contar
a
b
d
c
19
verificar se cada vértice aparece exatamente uma vez – contarquantos existem, O(n) e verificar se não há repetido O(n) – bastamarcar enquanto verifica e observar se não marcou mais de umavez.
verificar se existem arestas ligando os vértices consecutivos, O(n)– à medida que percorre a sequência observar o valor em umamatriz de adjacência
Como tudo pode ser feito em tempo polinomial, entãoestá em NP
![Page 20: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/20.jpg)
Classe de problemas P ou NP?
Para demonstrar que um problema pertence à classe Pbasta mostrar um algoritmo polinomial que o resolva.
Classe NP: devemos provar que não existe algoritmo(determinístico) polinomial para resolve-lo.
20
(determinístico) polinomial para resolve-lo.
![Page 21: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/21.jpg)
Classe NP-Completo
A classe NP-completo tem a propriedade de que seum problema NP- completo puder ser resolvido emtempo polinomial todos os problemas em NP temsolução polinomial.
21
Para definir formalmente a classe NP-completoprecisamos da noção de Redução Polinomial.
![Page 22: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/22.jpg)
Redução polinomial
Tem-se um problemade decisão A que sedeseja resolver emtempo polinomial.
Suposição 1
Existe um problemade decisão B, que já sesabe como resolver emtempo polinomial
Suposição 2
Tem-se umprocedimento quetransforma qualquerinstância α de A emalguma instância β de Bcom as seguintes
Suposição 3
22
Chama-se deinstância a entrada paraum determinadoproblema.
βcom as seguintescaracterísticas:
(1) transformação demoratempo polinomial
(2) As respostas são asmesmas, isto é, aresposta para α é “sim”se e somente se aresposta para βtambém é sim.
![Page 23: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/23.jpg)
Classe NP-Completo
NP-completo é um subconjunto de NP Conjunto de todos os problemas de decisão os quais suas
soluções podem ser verificadas em tempo polinomial;
23
Classe NP pode ser equivalentemente definida como oconjunto de problemas de decisão que podem sersolucionados em tempo polinomial em uma Máquina deTuring não determinística.
![Page 24: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/24.jpg)
Exemplo: Problema do caixeiro viajante
Este problema de decisão consiste em se determinar se háum ciclo que passa por todos os vértices apenas uma vezcom peso total no máximo um valor k. É um caso especial do ciclo hamiltoniano
24
![Page 25: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/25.jpg)
Exemplo: Problema do caixeiro viajante
A resposta pode ser dada por uma sequência de vértices: (1) verificar que cada vértice aparece na sequência apenas uma vez, O(n) – percorrer a
lista marcando os vértices, observando se já não foram marcados, verificar se contémtodos os vértices;
(2) O(1) – durante a marcação contar os vértices, e verificar se o peso total nãoultrapassa o valor k;
(3) O(n) – percorrer a lista somando-se os pesos das arestas, descobrir cada peso é
25
(3) O(n) – percorrer a lista somando-se os pesos das arestas, descobrir cada peso éO(1) se os dados estão em uma matriz de adjacência.
Como o algoritmo é polinomial, então o problema é da classe NP-Completo.
![Page 26: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/26.jpg)
Problemas exponenciais
É desejável resolver instâncias grandes de problemas deotimização em tempo razoável.
Os melhores algoritmos para problemas NP-completo têmcomportamento de pior caso exponencial no tamanho da entrada.
Para um algoritmo que execute em tempo proporcional a 2N, não é
26
Para um algoritmo que execute em tempo proporcional a 2 , não égarantido obter resposta para todos os problemas de tamanho N>=100.
Independente da velocidade do computador, ninguém poderiaesperar por um algoritmo que leva 2100 passos para terminar suatarefa.
Um supercomputador poderia resolver um problema de tamanhoN=50 em 1 hora, ou N=51 em 2 horas, ou N=59 em um ano.
![Page 27: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/27.jpg)
O que fazer para resolver problemas exponenciais?
Usar algoritmos exponenciais “eficientes” aplicandotécnicas de tentativa e erro.
Usar algoritmos aproximados. Acham uma respostaque pode não ser a solução ótima, mas é garantido
27
que pode não ser a solução ótima, mas é garantidoser próxima dela.
Exemplo: backtracking (tentativa e erro),programação dinâmica, branch-and-bound(ramificação e poda), etc.
![Page 28: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/28.jpg)
O que fazer para resolver problemas exponenciais?
Heurísticas: são modificações no tratamento do problema, deforma a produzir algoritmos polinomiais para problemasexponenciais a custo de otimalidade.
Um algoritmo heurístico pode não produzir uma solução ótima, na
28
Um algoritmo heurístico pode não produzir uma solução ótima, naverdade, uma solução heurística pode nem mesmo produzir umasolução. O que se faz é assumir certos riscos e fazer a computaçãoignorando-se o espaço de soluções que consideramos dispensável.
Exemplo: algoritmos gulosos
![Page 29: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/29.jpg)
Complexidade de algoritmos
Exponencial
Torre de hanói;Xadrez
NP
Ordenação;Busca; etc.
29
NP
P NP-completo
Caixeiro viajante
![Page 30: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/30.jpg)
Complexidade computacional
Exemplo: 400 estudantes universitários pleiteiam acomodação no alojamento, que
acomoda apenas 100. Para complicar, o reitor forneceu uma lista compares de estudantes que não podem figurar na lista dos escolhidos.Deseja-se uma lista-solução com 100 estudantes que podem ocupar oalojamento.
30
alojamento.
Este é um problema NP, uma vez que encontrar uma solução a partir da lista dos 400candidatos e da lista de pares incompatíveis do reitor consiste num algoritmoexponencial. No entanto, o problema de decisão correspondente (dada uma lista de100 estudantes, certificar se ela é uma solução possível) tem certificação polinomial.
![Page 31: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/31.jpg)
Complexidade computacional
Solução
Para certificar, basta verificar que nenhum par deestudantes da lista do reitor ocorre na lista candidata.
31
Já para construir uma lista-solução, seria necessáriocertificar cada uma das diferentes combinações de 100estudantes, a partir dos 400 estudantes. Nenhumsupercomputador do futuro será capaz de solucionar esseproblema por força bruta.
![Page 32: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/32.jpg)
Complexidade computacional
Solução
Este problema é modelado como um grafo (cada vértice correspondea um estudante; cada aresta liga dois estudantes que não podemficar juntos no alojamento), e sua solução corresponde em verificar,para 100400 possibilidades, se é possível “colorir” o grafo com 100
32
para 100400 possibilidades, se é possível “colorir” o grafo com 100cores.
![Page 33: Teoria da Computação Complexidade computacional ... · problema da equação do segundo grau ... Problema da fatoração ... comportamento de pior caso exponencial no tamanho da](https://reader033.fdocument.pub/reader033/viewer/2022051206/5be5717409d3f2580c8bc3d2/html5/thumbnails/33.jpg)
Exercícios
1. Mostre que o problema da coloração de vértices é NP.2. Dado um grafo G e um inteiro k, mostre que o problema de se colorir os
vértices do grafo de forma tal que nenhum vértice adjacente tenha amesma cor, com um número de cores >= k é um problema quepertence à classe NP.
3. Um funcionário precisa visitar n cidades, sem repeti-las, em qualquer
33
3. Um funcionário precisa visitar n cidades, sem repeti-las, em qualquerordem. Como as passagens aéreas são fornecidas pela empresa, eledeseja maximizar o programa de milhagens, ou seja, escolher umcaminho tal que a distância percorrida seja a máxima possível. Sabendo-se que o Problema do Caixeiro Viajante é NP-completo, mostre que oproblema do funcionário também é NP-completo.
4. Mostre qual é a classe de complexidade do Problema da Mochila.