A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Informática Teórica Engenharia da Computação

Apresentações semelhantes


Apresentação em tema: "Informática Teórica Engenharia da Computação"— Transcrição da apresentação:

1 Informática Teórica Engenharia da Computação

2 A escolha do modelo não afeta o poder: todos são equivalentes:
COMPLEXIDADE DE TEMPO A escolha do modelo não afeta o poder: todos são equivalentes: MT de uma única fita MT multifita MT não-determinística Mas afeta a complexidade de tempo MT multifita O(t(n)) → MT única fita O(t2(n)) MT não-determinística O(t(n)) → MT única fita 2O(t(n))

3 Diferenças polinomiais serão consideradas pequenas
COMPLEXIDADE DE TEMPO Diferenças polinomiais serão consideradas pequenas MT multifita e MT com uma fita Polinomialmente equivalentes Mas diferenças exponenciais serão tomadas como grandes MT não-determinística e MT com uma fita

4 Algoritmos exponenciais
COMPLEXIDADE DE TEMPO Algoritmos exponenciais Raramente são úteis Em geral surgem numa busca por força bruta Exemplo: fatoração Algoritmos polinomiais Rápidos para muitos propósitos Computadores reais Vários modelos computacionais são polinomialmente equivalentes

5 Já desprezamos fatores constantes
COMPLEXIDADE DE TEMPO Já desprezamos fatores constantes Notação O-grande Iremos desprezar diferenças polinomiais Nossa teoria não dependerá de um modelo de computação específico São importantes, mas queremos olhar por uma perspectiva diferente Nossa teoria não dependerá de um modelo de computação específico: estamos estudando as propriedades da computação e não das máquinas de Turing. São importantes, mas queremos olhar por uma perspectiva diferente: por exemplo, nos capítulos 4 e 5 estávamos interessados se um dado problema tinha SOLUÇÃO. Agora no capítulo 7 focaremos se um problema tem solução VIÁVEL (polinomial).

6 CLASSE P DEFINIÇÃO P é a classe de linguagens que são decidíveis em tempo polinomial por uma MT determinística de uma única fita

7 P é matematicamente robusta
CLASSE P P é matematicamente robusta Invariante para os modelos de computação equivalentes à MT determinística de uma fita P é relevante de um ponto de vista prático Problemas realisticamente solúveis em um computador Um problema de complexidade nk pode não ser prático (se k for muito grande). Porém, uma vez que tenha sido encontrada uma solução polinomial para algum problema que antes pensava-se ser exponencial, alguma “percepção chave” terá sido obtida para ele. A partir daí, em geral seguem-se reduções adicionais em sua complexidade.

8 CLASSE P – DESCRIÇÃO DOS ALGORITMOS
Algoritmos serão descritos em alto nível Não nos prenderemos em detalhes de um modelo computacional específico Evitaremos detalhes relativos a fitas e movimentos de cabeças Descrição dos estágios Estágios serão enumerados (como antes) Um estágio em geral vai requerer muitos passos numa MT

9 CLASSE P – DESCRIÇÃO DOS ALGORITMOS
Análise quanto à polinomialidade Entrada de comprimento n Dar um limitante superior polinomial para o número de estágios que o algoritmo roda em função de n Cada estágio deve ser implementável em tempo polinomial num modelo determinístico razoável Se os critérios acima forem respeitados, então o algoritmo executa em tempo polinomial A composição de polinômios é um polinômio

10 CLASSE P – DESCRIÇÃO DOS ALGORITMOS
Codificação da entrada Continuamos com A codificação e a decodificação dos objetos devem ser polinomiais (razoáveis) Exemplos: codificações que temos usados para autômatos e grafos Grafos Matriz de adjacência: (i,j) é 1 sse existe aresta do nó i para j Tempo calculado em função do número de nós Em grafos usaremos o número de nós no lugar do tamanho da representação do grafo. A justificativa é que em representações razoáveis o tamanho da entrada é um polinômio no número de nós. Logo, se o algoritmo for polinomial no número de nós, então será polinomial na representação do grafo.

11 CLASSE P – PROBLEMAS CAM = {<G,s,t> | G é um grafo direcionado que tem um caminho de s para t }

12 Estratégia força bruta
CLASSE P – PROBLEMAS TEOREMA CAM ∈ P Estratégia força bruta Examina todos os caminhos potenciais em G Determinar se algum é um caminho direcionado de s para t Caminho potencial: sequência de nós em G tendo um comprimento de no máximo |V| Há aproximadamente |V||V| caminhos potenciais Tempo exponencial

13 PROVA: o algoritmo seguinte M decide CAM em tempo polinomial
CLASSE P – PROBLEMAS IDÉIA DA PROVA: usar um método de busca no grafo para evitar a força bruta. Busca em largura: marcamos sucessivamente todos os nós que são atingíveis a partir de s por caminhos de comprimento 1, depois 2, em seguida 3 etc. Mostrar que a estratégia é polinomial PROVA: o algoritmo seguinte M decide CAM em tempo polinomial

14 CLASSE P – PROBLEMAS M = “Sobre a entrada <G, s, t> onde G é um grafo direcionado com nós s e t: 1. Marque o nó s. 2. Repita o passo seguinte até que nenhum nó adicional seja marcado 3. Para cada aresta (a,b) de G: se a for um nó marcado e b não estiver marcado, marque b. 4. Se t estiver marcado, aceite. Senão, rejeite.”

15 Complexidade dos passos de M
CLASSE P – PROBLEMAS Número de passos de M Os passos 1 e 4 executam apenas uma vez O passo 3 executa no máximo |V| vezes: no pior caso, apenas um nó é marcado a cada vez, exceto a última Complexidade dos passos de M Os passos 1 e 4 são facilmente implementados em tempo polinomial O passo 3 varre cada aresta e executa um teste para ver se um nó está marcado

16 CLASSE P – PROBLEMAS Conclusão da prova Exercício do livro: 7.8
M executa uma quantidade de passos polinomial na entrada Todos os passos de M rodam em tempo polinomial na entrada Logo, M é polinomial CAM ∈ P Exercício do livro: 7.8

17 CLASSE P – PROBLEMAS PRIM-ES = {<x, y> | x e y são primos entre si} Dois números são primos entre si quando 1 é o maior inteiro que divide ambos <10, 21> ∈ PRIM-ES <10, 22> ∉ PRIM-ES

18 Estratégia força bruta
CLASSE P – PROBLEMAS TEOREMA PRIM-ES ∈ P Estratégia força bruta Procurar entre todos os possíveis divisores de ambos os números Aceita se o único divisor comum entre eles for 1 A magnitude de um número representado em qualquer base maior ou igual a 2 é exponencial no comprimento da representação Então a busca é feita entre um número exponencial de potenciais divisores

19 Função mod: retorna o resto da divisão do primeiro número pelo segundo
CLASSE P – PROBLEMAS IDÉIA DA PROVA: usar o algoritmo de Euclides para computar o máximo divisor comum Calcular o MDC de x e y Se o resultado for 1, x e y são primos entre si Função mod: retorna o resto da divisão do primeiro número pelo segundo 10 mod 3 = 1 28 mod 4 = 0 Citar MMC

20 CLASSE P – PROBLEMAS PROVA: definiremos o algoritmo E para computar o MDC. Em seguida, definiremos o algoritmo R para decidir PRIM-ES

21 CLASSE P – PROBLEMAS E = “Sobre a entrada <x, y>, onde x e y são números naturais em binário: 1. Repita até que y = 0: 2. x := x mod y 3. Troque os valores de x e y 4. Retorne x” R = “Sobre a entrada <x, y>, onde x e y são números naturais em binário: 1. Execute E sobre <x, y> 2. Se E retornou 1, aceite. Senão, rejeite.”

22 CLASSE P – PROBLEMAS Complexidade de E
O passo 2 reduz o valor de x no mínimo pela metade (exceto possivelmente na 1ª vez: se x ≤ y) Após o passo 2 temos x < y e depois do passo 3 temos x > y: a cada iteração do loop, um valor é reduzido no mínimo pela metade e o outro não Então o número máximo de execuções do loop é o mínimo entre 2log2x e 2log2y Como x e y são representados em binário, a quantidade de passos de E é O(n) Os passos de E são facilmente implementáveis em tempo polinomial. Logo, o algoritmo é polinomial

23 CLASSE P – PROBLEMAS Complexidade de R Exercícios do livro: 7.3 e 7.12
R = “Sobre a entrada <x, y>, onde x e y são números naturais em binário: 1. Execute E sobre <x, y> 2. Se E retornou 1, aceite. Senão, rejeite.” Como E roda em tempo polinomial, então R também é polinomial Exercícios do livro: 7.3 e 7.12

24 AGLC = {<G, w> | G é uma GLC que gera a cadeia w }
CLASSE P – PROBLEMAS AGLC = {<G, w> | G é uma GLC que gera a cadeia w } Uma MT que decide AGLC S = “Sobre a entrada <G, w>, onde G é uma GLC e w uma cadeia de comprimento n: 1. Converta G para a forma normal de Chomsky 2. Liste todas as derivações com 2n-1 passos (se n = 0, liste todas as derivações com 1 passo) 3. Se alguma derivação gerou w, aceite. Senão, rejeite.”

25 S roda em tempo polinomial?
CLASSE P – PROBLEMAS S roda em tempo polinomial? Qualquer derivação de uma cadeia |w| = n tem 2n-1 passos (se a gramática está na forma normal de Chomsky) S tenta todas as derivações com 2n-1 passos para verificar se alguma gera w Como o número de derivações com k passos pode ser exponencial em k, S não é polinomial Logo, S não prova que aceitação de LLC é polinomial Existe algum algoritmo polinomial para aceitação de LLC?

26 CLASSE P – PROBLEMAS TEOREMA IDÉIA DA PROVA
Utilizar programação dinâmica: guardar informações sobre subproblemas menores Subproblema: determinar se cada variável da GLC gera cada subcadeia de w Usar uma tabela n x n para guardar as soluções dos subproblemas (i, j): se i ≤ j, então a célula guarda as variáveis que geram a subcadeia wiwi+1...wj. As posições com i > j não serão utilizadas Preenche a tabela para as subcadeias de comprimento 1, depois 2, ... Até a de tamanho n Programação dinâmica: os subproblemas menores serão resolvidos apenas uma vez

27 CLASSE P – PROBLEMAS IDÉIA DA PROVA (continuação)
Suponha que o algoritmo já tenha resolvido o problema para todas as subcadeias de tamanho k Para saber se alguma variável A gera uma subcadeia específica de tamanho k+1: Dividir a subcadeia de tamanho k+1 em duas partes não vazias (há k possibilidades de divisão) Para cada divisão, o algoritmo passa por cada regra do tipo A → BC Se B gera a primeira subcadeia e C gera a segunda, então A gera a subcadeia de tamanho k+1 Adicionamos A à entrada associada da tabela Iniciamos com as cadeias de tamanho 1 e analisando as regras do tipo A → b

28 D = “Sobre a entrada w = w1w2...wn
CLASSE P – PROBLEMAS TEOREMA PROVA: algoritmo que recebe uma gramática na forma normal de Chomsky e uma cadeia w (S é a variável inicial da gramática) D = “Sobre a entrada w = w1w2...wn 1. Se w = ε e S → ε for uma regra, aceite 2. Para i=1 até n: 3. Para cada variável A: 4. Teste se A → wi é uma regra 5. Se for, adicione A em tabela(i, i) Até aqui temos: I) Resolvido o problema para a cadeia vazia II) Resolvidos os “subproblemas de tamanho 1”

29 CLASSE P – PROBLEMAS D (continuação)
6. Para l = 2 até n [l é o comprimento da subcadeia] 7. Para i=1 até n-l-1 [i é a posição inicial da subcadeia] 8. j := i+l-1 [j é a posição final da subcadeia] 9. Para k=i até j-1 [k é onde ocorre a divisão] 10. Para cada regra A → BC 11. Se tabela(i, k) contém B e tabela (k+1,j) contém C Coloque A em tabela(i, j) 12. Se S estiver em tabela(1, n), aceite. Senão, rejeite

30 CLASSE P – PROBLEMAS Complexidade de D Exercício do livro: 7.4
Todo os passos são implementados em tempo polinomial A quantidade de passos é polinomial: O(n3) + O(n) = O(n3) O passo 1 roda apenas uma vez Os passos 4 e 5 rodam no máximo n*v (onde v é o número de variáveis): O(n) O passo 6 roda no máximo n vezes Para cada vez que o 6º roda, o passo 7 roda no máximo n vezes Para cada vez que o 7º roda, os passos 8 e 9 rodam no máximo n vezes Cada execução do 9º, o passo 10 roda r vezes (onde r é uma constante fixa) Logo, o passo 11 roda O(n3) vezes Exercício do livro: 7.4

31 Informática Teórica Engenharia da Computação


Carregar ppt "Informática Teórica Engenharia da Computação"

Apresentações semelhantes


Anúncios Google