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

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

Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO A escolha do modelo não afeta o poder: todos são equivalentes: A escolha do modelo.

Apresentações semelhantes


Apresentação em tema: "Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO A escolha do modelo não afeta o poder: todos são equivalentes: A escolha do modelo."— Transcrição da apresentação:

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

2 COMPLEXIDADE DE TEMPO A escolha do modelo não afeta o poder: todos são equivalentes: 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 Mas afeta a complexidade de tempo –MT multifita O(t(n)) MT única fita O(t 2 (n)) –MT não-determinística O(t(n)) MT única fita 2 O(t(n))

3 COMPLEXIDADE DE TEMPO Diferenças polinomiais serão consideradas pequenas 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 Mas diferenças exponenciais serão tomadas como grandes –MT não-determinística e MT com uma fita

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

5 COMPLEXIDADE DE TEMPO Já desprezamos fatores constantes Já desprezamos fatores constantes –Notação O-grande Iremos desprezar diferenças polinomiais 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

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 P é a classe de linguagens que são decidíveis em tempo polinomial por uma MT determinística de uma única fita

7 CLASSE P P é matematicamente robusta 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 P é relevante de um ponto de vista prático –Problemas realisticamente solúveis em um computador

8 CLASSE P – DESCRIÇÃO DOS ALGORITMOS Algoritmos serão descritos em alto nível 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 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 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 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 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 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

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

12 CLASSE P – PROBLEMAS TEOREMA CAM P CAM P Estratégia força bruta 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 CLASSE P – PROBLEMAS IDÉIA DA PROVA: usar um método de busca no grafo para evitar a força bruta. 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 PROVA: o algoritmo seguinte M decide CAM em tempo polinomial

14 CLASSE P – PROBLEMAS M = Sobre a entrada onde G é um grafo direcionado com nós s e t: M = Sobre a entrada 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. 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 CLASSE P – PROBLEMAS Número de passos de M 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 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 Conclusão da prova –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 Exercício do livro: 7.8

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

18 CLASSE P – PROBLEMAS TEOREMA PRIM-ES P PRIM-ES P Estratégia força bruta 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 CLASSE P – PROBLEMAS IDÉIA DA PROVA: usar o algoritmo de Euclides para computar o máximo divisor comum 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 Função mod: retorna o resto da divisão do primeiro número pelo segundo –10 mod 3 = 1 –28 mod 4 = 0

20 CLASSE P – PROBLEMAS PROVA: definiremos o algoritmo E para computar o MDC. Em seguida, definiremos o algoritmo R para decidir PRIM-ES 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, onde x e y são números naturais em binário: E = Sobre a entrada, onde x e y são números naturais em binário: –1. Repita até que y = 0: 2. x := x mod y 2. x := x mod y 3. Troque os valores de x e y 3. Troque os valores de x e y –4. Retorne x R = Sobre a entrada, onde x e y são números naturais em binário: R = Sobre a entrada, onde x e y são números naturais em binário: –1. Execute E sobre –1. Execute E sobre –2. Se E retornou 1, aceite. Senão, rejeite.

22 CLASSE P – PROBLEMAS Complexidade de E 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: 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 2log 2 x e 2log 2 y –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 Complexidade de R –R = Sobre a entrada, onde x e y são números naturais em binário: 1. Execute E sobre 1. Execute E sobre 2. Se E retornou 1, aceite. Senão, rejeite. 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 Exercícios do livro: 7.3 e 7.12

24 CLASSE P – PROBLEMAS A GLC = { | G é uma GLC que gera a cadeia w } A GLC = { | G é uma GLC que gera a cadeia w } Uma MT que decide A GLC Uma MT que decide A GLC S = Sobre a entrada, onde G é uma GLC e w uma cadeia de comprimento n: S = Sobre a entrada, 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 CLASSE P – PROBLEMAS S roda em tempo polinomial? 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? Existe algum algoritmo polinomial para aceitação de LLC?

26 CLASSE P – PROBLEMAS TEOREMA IDÉIA DA PROVA 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 w i w i+1...w j. 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

27 CLASSE P – PROBLEMAS IDÉIA DA PROVA (continuação) 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) 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 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 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 Adicionamos A à entrada associada da tabela –Iniciamos com as cadeias de tamanho 1 e analisando as regras do tipo A b

28 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) 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 = w 1 w 2...w n D = Sobre a entrada w = w 1 w 2...w n –1. Se w = ε e S ε for uma regra, aceite –2. Para i=1 até n: 3. Para cada variável A: 3. Para cada variável A: –4. Teste se A w i é uma regra –5. Se for, adicione A em tabela(i, i)

29 CLASSE P – PROBLEMAS D (continuação) 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] 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] 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] 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) 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 Complexidade de D –Todo os passos são implementados em tempo polinomial –A quantidade de passos é polinomial: O(n 3 ) + O(n) = O(n 3 ) O passo 1 roda apenas uma vez 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) 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 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(n 3 ) vezes Logo, o passo 11 roda O(n 3 ) vezes Exercício do livro: 7.4 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. COMPLEXIDADE DE TEMPO A escolha do modelo não afeta o poder: todos são equivalentes: A escolha do modelo."

Apresentações semelhantes


Anúncios Google