MAC5722 Complexidade Computacional

Documentos relacionados
AULA 24. Algoritmos p.856/905

Análise de Algoritmos

Complexidade computacional

Teoria da Complexidade Computacional

Melhores momentos AULA PASSADA. Complexidade Computacional p. 205

Teoria da Computação

Complexidade computacional

Universidade Federal de Alfenas

Melhores momentos AULA 24. Algoritmos p.906/953

Abordagens para Problemas Intratáveis

SCC Introdução à Teoria da Computação

Prof. Dr. Marcos Castilho. Departamento de Informática/UFPR. 22 de Fevereiro de 2018

ECO026 TEORIA DA COMPUTAÇÃO. Prof: Rafael Santos Site:

PCC104 - Projeto e Análise de Algoritmos

Teoria da Computação. Capítulo 1. Máquina de Turing. Prof. Wanderley de Souza Alencar, MSc.

1 INTRODUÇÃO E CONCEITOS BÁSICOS

Universidade Federal de Alfenas

SCC-5832 Teoria da Computação

Uma forma de classificação

SCC Teoria da Computação e Linguagens Formais

Teoria da Computação. Computabilidade e complexidade computacional

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

SCC Capítulo 3 Linguagens Sensíveis ao Contexto e Autômatos Limitados Linearmente

Linguagens Formais e Problemas de Decisão

Capítulo A máquina de Turing (TM) padrão Combinações de máquinas de Turing A Tese de Turing. ADC/TC/Cap.9/ /LEI/DEIFCTUC 375

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Linguagens Formais e Autômatos 02/2015. LFA Aula 02. introdução 28/09/2015. Celso Olivete Júnior.

Teoria da Computação. Unidade 3 Máquinas Universais. Referência Teoria da Computação (Divério, 2000)

Complexidade computacional

Máquinas de Turing - Computabilidade

Linguagens Formais e Autômatos Apresentação da Disciplina

Expressões regulares

Computação efectiva. Que linguagens podem ser reconhecidas por algum tipo de autómato?

Variedades Adicionais das Máquinas de Turing

Conceitos Básicos. Vocabulário Cadeias Linguagens Expressões Regulares Problema X Linguagem

LINGUAGENS FORMAIS E AUTÔMATOS

Linguagens Formais e Autômatos. Autômatos Finitos Determinísticos (AFD)

Teoria da Computação (BBC244)

Linguagens Formais e Autômatos. Tiago Alves de Oliveira

Teoria da Complexidade Computacional

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Aula 25

Melhores momentos AULA PASSADA. Complexidade Computacional p. 136

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados.

Complexidade de Algoritmos. Edson Prestes

2. DISCIPLINA REQUISITO (RECOMENDAÇÃO) 3. INDICAÇÃO DE CONJUNTO (BCC) Obrigatória TEORIA: 60 LABORATÓRIO: 30

Conceitos Básicos. Vocabulário Cadeias Linguagens Problema

Alfabeto, Cadeias, Operações e Linguagens

Turing e Complexidade

Resolução Exe 2.12 Monolítico Recursivo

Computabilidade e Complexidade (ENG10014)

INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação

Universidade Federal de Alfenas

Aula 10: Tratabilidade

Draft-v0.1. Máquinas de Turing Máquinas de Turing

Teoria da Computação. Máquinas Universais Máquina com Pilhas

Teoria da Computação. Computabilidade e complexidade computacional

Modelos de Computação

1 introdução. capítulo. O que é uma solução computável? Quais são os limites do que pode ser computado? Existem problemas sem solução computacional?

Modelos de Computação Folha de trabalho n. 10

Máquinas de Turing 3

Introdução à Teoria da Computação Exercícios

Teoria da Computação. Computabilidade

Teoria da Computação Aula 02 Introdução

Universidade Federal de Alfenas

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO

Linguagens Formais. Aula 01 - Conceitos Básicos. Prof. Othon Batista Mestre em Informática

Juliana Kaizer Vizzotto. Universidade Federal de Santa Maria. Disciplina de Teoria da Computação

a n Sistemas de Estados Finitos AF Determinísticos

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Aula 9: Máquinas de Turing

Computabilidade e Complexidade (ENG10014)

Máquina de Turing. Controle finito

Primeira Lista de Exercícios 2005/1... Exercício 1 Desenhe Diagrama de Estados para Máquinas que Decidem as Linguagens:

Apostila 06. Objetivos: Estudar a Computabilidade Estudar a Decidibilidade Estudar a Redutibilidade

MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERALRURAL DO RIO DE JANEIRO Instituto Multidisciplinar Departamento de Ciência da Computação

I.2 Introdução a Teoria da Computação

15/03/2018. Professor Ariel da Silva Dias Algoritmo e Contagem de Instruções. Prof. Ariel da Silva Dias -

IBM1088 Linguagens Formais e Teoria da Computação

Máquina de Turing. Controle finito

Linguagens Formais e Autômatos (BBC242) Professor: Anderson Almeida Ferreira DECOM-UFOP

Complexidade de Tempo

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO

Projeto e Análise de Algoritmos NP Completude. Prof. Humberto Brandão

Universidade Federal de Uberlândia Mestrado em Ciência da Computação

INTRATABILIDADE e NP-COMPLETUDE

Teoria da Computação Prof. Lucília Figueiredo Prova 03 - ENTREGA DIA 24/06/2015. (a) Descreva o programa da MT usando um pseudocódigo.

Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios

Mecanismos de Interrupção e de Exceção, Barramento, Redes e Sistemas Distribuídos. Sistemas Operacionais, Sistemas

Marcos Castilho. DInf/UFPR. 16 de maio de 2019

Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

SCC 205 Teoria da Computação e Linguagens Formais

Noção de Computabilidade

Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente

Teoria da Computação

Linguagens Formais e Autômatos. Apresentação do Plano de Ensino

Propriedades das Linguagens Livres do Contexto

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Transcrição:

MAC5722 Complexidade Computacional Complexidade Computacional p. 1

MAC5722 Complexidade Computacional Qual é o seu problema? http://qwiki.stanford.edu/wiki/complexity_zoo Complexidade Computacional p. 2

Administração Professores: Zé Augusto e Coelho Página da disciplina: http://paca.ime.usp.br/ cadastro na paca código de inscrição: complexidade2010 apresentação critério: provas, listas de exercícios, plágio... fórum Complexidade Computacional p. 3

Texto principal Si = Michael Sipser, Introduction to the Theory of Computation Si = Michael Sipser, Introdução à Teoria da Computação Tradução Complexidade Computacional p. 4

Outros livros GJ = Michael Randolph Garey e David Stifler Johnson, Computers and Intractability: A Guide to the Theory of NP-completeness Pa = Christos Harilaos Papadimitriou, Computational complexity Complexidade Computacional p. 5

Pausa para os nossos comerciais Recepção dos alunos novos de mestrado e doutorado Na sexta-feira, dia 12/3, às 12h00, haverá a usual recepção dos alunos de pós. O evento ocorre na Anfiteatro Antonio Gilioli. Haverá sanduíche de metro e refrigerantes financiados pelo departamento. A organização está sendo tocada pelos representantes discentes da CCP Jihan e Alexandre. Complexidade Computacional p. 6

Pré-requisitos Prática em programação é bem-vinda É recomendável alguma experiência em análise assintótica de algoritmos MAC0338 Análise de algoritmos MAC5711 Análise de algoritmos ou algum conhecimento em modelos computacionais MAC0414 Linguagens formais e autômatos MAC4722 Linguagens, autômatos e computabilidade Complexidade Computacional p. 7

AULA 0 Complexidade Computacional p. 8

Autômatos, Computabilidade e Complexidade MS 0.1, GJ 1.1 Complexidade Computacional p. 9

Questão central Quais são as capacidades e limitações fundamentais de computadores? Complexidade Computacional p. 10

Autômatos Modelo computacional usado em processamento de texto, compiladores... FINITE-AUTOMATON-MATCHER e KMP-MATCHER (CLRS) 0 q 1 2 1 0 1 2 0 2 q 0 q 2 1 MAC4722 Linguagens, Autômatos e Computabilidade Complexidade Computacional p. 11

Computabilidade O que computadores podem fazer? 10 ō. problema de Hilbert (1900): projetar um algoritmo para decidir se um dado polinômio de coeficientes inteiros tem uma raiz inteira. Exemplos: 10x 2 y + 10yz + 5z tem raiz inteira x = 3, y = 1 e z = 6 x 2 5 não tem raiz inteira. Como definir algoritmo? MAC4722 Linguagens, Autômatos e Computabilidade Complexidade Computacional p. 12

Complexidade Pergunta central: O que faz alguns problemas computacionalmente difíceis e outros fáceis? O que computadores podem fazer eficientemente? Complexidade Computacional p. 13

Complexidade Pergunta central: O que faz alguns problemas computacionalmente difíceis e outros fáceis? O que computadores podem fazer eficientemente? Não se sabe a resposta... mas há esquemas para se classificar os problemas de acordo com sua dificuldade. Complexidade Computacional p. 13

Ordenação A[1..n] é crescente se A[1] A[n]. Problema: Rearranjar um vetor A[1..n] de modo que ele fique crescente. Entra: 1 n 33 55 33 44 33 22 11 99 22 55 77 Complexidade Computacional p. 14

Ordenação A[1..n] é crescente se A[1] A[n]. Problema: Rearranjar um vetor A[1..n] de modo que ele fique crescente. Entra: Sai: 1 n 33 55 33 44 33 22 11 99 22 55 77 1 n 11 22 22 33 33 33 44 55 55 77 99 Complexidade Computacional p. 14

Escalonamento de máquinas idênticas Dados: m máquinas t tarefas duração d[i] da tarefa i (i = 1,...,t) um escalonamento é uma partição {M[1],...,M[m]} de {1,...,t} tarefas máquinas Complexidade Computacional p. 15

Exemplo 1 m = 3 t = 7 d[1] d[2] d[3] d[4] d[5] d[6] d[7] 3 2 7 5 1 6 2 M[1] M[2] M[3] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 {{1, 4, 7}, {2, 5}, {3, 6}} Tempo de conclusão = 13 Complexidade Computacional p. 16

Exemplo 2 m = 3 t = 7 d[1] d[2] d[3] d[4] d[5] d[6] d[7] 3 2 7 5 1 6 2 M[1] M[2] M[3] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 {{1, 2, 3}, {4, 5}, {6, 7}} Tempo de conclusão = 12 Complexidade Computacional p. 17

Problema Encontrar um escalonamento com tempo de conclusão mínimo. d[1] d[2] d[3] d[4] d[5] d[6] d[7] 3 2 7 5 1 6 2 M[1] M[2] M[3] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 {{1, 4}, {2, 3}, {5, 6, 7}} Tempo de conclusão = 9 Complexidade Computacional p. 18

Orientador I can t find an efficient algorithm, I guess I m just too dumb. GJ 1.1 Complexidade Computacional p. 19

Orientador I can t find an efficient algorithm, because no such algorithm is possible. Complexidade Computacional p. 19

Orientador I can t find an efficient algorithm, but neither can all these famous people. Complexidade Computacional p. 19

Emparelhamentos Problema: Dado um grafo bipartido encontrar um emparelhamento perfeito. X G Y Complexidade Computacional p. 20

Emparelhamentos Problema: Dado um grafo bipartido encontrar um emparelhamento perfeito. X G Y Complexidade Computacional p. 20

Emparelhamentos Problema: Dado um grafo bipartido encontrar um emparelhamento perfeito. X G Y NÃO existe! Certificado? Complexidade Computacional p. 21

Emparelhamentos Problema: Dado um grafo bipartido encontrar um emparelhamento bipartido. X G NÃO existe! Certificado: S X tal que S > vizinhos(s). Teorema de Hall: G tem um emparelhamento perfeito se e somente se S vizinhos(s), para todo S X. Y Complexidade Computacional p. 21

Arthur e Merlin Complexidade Computacional p. 22

Grafos hamiltonianos Problema: Dado um grafo encontrar um ciclo hamiltoniano. G Complexidade Computacional p. 23

Grafos hamiltonianos Problema: Dado um grafo encontrar um ciclo hamiltoniano. G Complexidade Computacional p. 23

Grafos hamiltonianos Problema: Dado um grafo encontrar um ciclo hamiltoniano. G NÃO existe! Certificado? Hmmm... Complexidade Computacional p. 24

Composto Problema: Dado um número inteiros positivo n, encontrar números inteiros k > 1 e m > 1 tais que n = k m. Exemplo: n = 44003111, k = 4651 m = 9461 n = 1544824079, k = 37493 m = 41203 fazem o serviço n = 27644437, não existem n e m Complexidade Computacional p. 25

Solução café-com-leite Considere o seguinte algoritmo que recebe um número natural n e devolve 0 se n é primo ou um fator não-trivial k de n. FATOR (n) 1 para k 2 até n 1 faça 2 se resto(n/k) = 0 3 devolva k 4 devolva 0 O consumo de tempo do algoritmo FATOR no pior caso é proporcional a n. Complexidade Computacional p. 26

Solução café-com-leite Considere o seguinte algoritmo que recebe um número natural n e devolve 0 se n é primo ou um fator não-trivial k de n. FATOR (n) 1 para k 2 até n 1 faça 2 se resto(n/k) = 0 3 devolva k 4 devolva 0 O consumo de tempo do algoritmo FATOR no pior caso é proporcional a n. Não é considerado eficiente. Complexidade Computacional p. 26

Que bagunça! Vimos exemplo de problemas: não podem ser resolvidos por computador (Hilbert) sabemos resolver eficientemente (ordenação) não sabemos resolver eficientemente (escalonamento) sabemos verificar a resposta eficientemente (emparelhamento) não sabemos verificar a resposta eficientemente (hamiltoniano) sabemos verificar a resposta eficientemente, mas não sabemos encontrar a resposta eficientemente (composto) Complexidade Computacional p. 27

Intratabilidade A descoberta da intratabilidade de um problema é apenas o começo do trabalho. Busca por algoritmos eficientes ganha baixa prioridade. Podemos nos concentrar em objetivos menos pretenciosos. Encontrar algoritmos: eficientes para casos particulares; freqüentemente eficientes; eficientes que encontram bons candidatos a solução;... Complexidade Computacional p. 28

Intratabilidade A descoberta da intratabilidade de um problema é apenas o começo do trabalho. Busca por algoritmos eficientes ganha baixa prioridade. Podemos nos concentrar em objetivos menos pretenciosos. Encontrar algoritmos: eficientes para casos particulares; freqüentemente eficientes; eficientes que encontram bons candidatos a solução;... Problema intratáveis são os preferidos pela galera de criptografia (sistema criptográfico RSA, composto, Pa 12). Complexidade Computacional p. 28

MAC5722 MAC5722 Complexidade Computacional: é uma disciplina básica e tradicional em teoria da computação busca a compreensão das limitações do modelo computacional e da dificuldade inerente para resolver problemas computacionais algoritmicamente classifica problemas computacionais baseado na quantidade de recursos (tempo e espaço) necessários para resolvê-los e investiga a relação entre estas classes. Complexidade Computacional p. 29

Principais tópicos máquinas de Turing variantes de máquinas de Turing definição de algoritmos tese de Church-Turing complexidade de tempo a classe P. as classes NP e conp NP-completude problemas NP-completos complexidade de espaço teorema de Savitch classe PSPACE as classes L e NL NL-completude NL e conl. Complexidade Computacional p. 30

AULA 1 Complexidade Computacional p. 31

Cadeias e linguagens MS 0.2 Complexidade Computacional p. 32

Cadeias Para resolver um problema usando um computador é necessário descrever os dados do problema através de uma seqüência de símbolos retirados de algum alfabeto. Este alfabeto pode ser, por exemplo, o conjunto de símbolos ASCII ou o conjunto {0, 1}. Qualquer seqüência dos elementos de um alfabeto é chamada de uma cadeia. Não é difícil codificar objetos tais como racionais, vetores, matrizes, grafos e funções como cadeias. O comprimento de uma cadeia w, denotado por w é o número de símbolos usados em w, contando multiplicidades. O comprimento do racional 123/567 é 7. Complexidade Computacional p. 33

Exemplo 1 Grafo a b e f h j G c d g i Cadeia: ({a,b,c,d,e,f,g,h,i,j}, {{bd}, {eg}, {ac}, {hi}, {ab}, {ef}, {bc}} Comprimento da cadeia: 59 Complexidade Computacional p. 34

Exemplo 2 Função a 3/2 b e 7 f h j G 0 0 2 1 3 c d g i Cadeia: (({bd}, 2), ({eg}, 1), ({ac}, 0), ({hi}, 3), ({ab}, 3/2), ({ef}, 7), ({bc}, 0)) Comprimento da cadeia: 67 Complexidade Computacional p. 35

Alfabeto, símbolos e cadeias Um alfabeto é conjunto finito não vazio. Os elementos de um alfabeto são chamados de símbolos. Exemplos: Σ 1 = {0, 1} Σ 2 = {a,b,...,z} Complexidade Computacional p. 36

Alfabeto, símbolos e cadeias Um alfabeto é conjunto finito não vazio. Os elementos de um alfabeto são chamados de símbolos. Exemplos: Σ 1 = {0, 1} Σ 2 = {a,b,...,z} Uma cadeia sobre um alfabeto é uma sequência finita de símbolos do alfabeto. Exemplos: 0 1 0 0 1 é uma cadeia sobre Σ 1 abracadabra é uma cadeia sobre Σ 2. Complexidade Computacional p. 36

Comprimento de cadeias O comprimento de uma cadeia w sobre um alfabeto Σ, denotado por w, é o número de símbolos em w, contando multiplicidades. Exemplos: 0 1 0 0 1 tem comprimento 5 abracadabra tem comprimento 11 A cadeia vazia é denotada por ε e tem comprimento zero. Se w tem comprimento n escrevemos w = w 1 w 2...w n, onde cada w i está em Σ. Complexidade Computacional p. 37

Concatenação de cadeias A concatenação das cadeias x e y é a cadeia xy. Exemplo: se x = abra e y = cadabra, então xy = abracadabra Para k é um inteiro, denotamos x k a concatenação de x com ele mesmo k 1 vezes. Exemplo: se x = abra, então x 4 = abraabraabraabra Complexidade Computacional p. 38

Subcadeias z 1... z k é subcadeia de x 1... x m se existe um índice i tal que EXEMPLOS: z 1 = x i... z k = x i+k 1 5 9 2 7 é subseqüência de 9 5 5 9 2 7 3 7 A C A D A é subcadeia de A B R A C A D A B R A A C A D A A B R A C A D A B R A Complexidade Computacional p. 39

Reverso e ordem lexicográfica Se w = w 1 w 2... w n o reverso de w, denotado por w R, é w n w n 1... w 1. A ordem lexicográfica de cadeias é a mesma do dicionário, exceto que cadeias menores precedem cadeias maiores. Exemplo: a ordem lexicográfica das cadeias sobre {0, 1} é ε 0 1 0 0 0 1 1 0 1 1 0 0 0... Complexidade Computacional p. 40

Linguagem Uma linguagem é um conjunto de cadeias sobre um alfabeto. Exemplos: conjunto das cadeias que codificam grafos conjunto das cadeias que codificam grafos bipartidos que possuem um emparelhamento perfeito conjunto das cadeias que codificam grafos hamiltonianos conjunto de cadeias da forma w#w R para alguma cadeia w sobre Σ... Complexidade Computacional p. 41

Operações Se L e L são linguagens então União: L L = {x : x L ou x L }. Concatenação: L L = {xy : x L e y L }. Estrela: L = {x 1 x 2...x k : k 0 e cada x i L}. Note que, para qualquer L, ε L. Σ = conjunto de todas as cadeias sobre Σ Complexidade Computacional p. 42

Máquinas de Turing MS 3.1 Complexidade Computacional p. 43

Modelo de computação É uma descrição abstrata e conceitual de um computador que será usado para executar um algoritmo. Um modelo de computação especifica as operações elementares um algoritmo pode executar e o critério empregado para medir a quantidade de tempo que cada operação consome. No critério uniforme supõe-se que cada operação elementar consome uma quantidade de tempo constante. Complexidade Computacional p. 44

Máquinas de Turing controle cabeça a b a a c ε b fita de leitura e escrita Componentes: 1. controle 2. cabeça 3. fita Complexidade Computacional p. 45

Sobre os componentes Componentes de uma máquina de Turing: Controle: possui um conjunto finito de estados, dentres eles há 3 estados especiais: inicial, aceitação e rejeição; Cabeça: pode ler o símbolo na posição sobre a qual está, escrever um símbolo nessa posição e mover uma posição para a direita ou esquerda; Fita: infinita à direita, possui brancos nas posições não utilizadas. Complexidade Computacional p. 46

Exemplo de computação 0 0 1 0 1 0 1 Complexidade Computacional p. 47

Exemplo de computação 0 0 1 0 1 0 1 0 0 1 0 1 0 1 Complexidade Computacional p. 47

Exemplo de computação 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 0 Complexidade Computacional p. 47

Exemplo de computação 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 0 0 0 1 0 1 0 0 1 Complexidade Computacional p. 47

Exemplo de computação 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 0 0 0 1 0 1 0 0 1 0 0 1 0 1 0 0 1 Complexidade Computacional p. 47

Ainda sobre os componentes Inicialmente: Controle: está em um estado inicial; Cabeça: está sobre a primeira posição da fita; Fita: infinita contém a cadeia representando a entrada do problema nas primeiras posições, as demais posições contém brancos. Complexidade Computacional p. 48

Exemplo de máquina de Turing Descrição alto nível de uma máquina de Turing que decide se uma dada cadeia w está na linguagem M 1 = Com entrada w: {x#x : x {0, 1} }. 0 1 1 0 0 0 # 0 1 1 0 0 0... Complexidade Computacional p. 49

Simulação de M 1 passo 0 0 1 1 0 0 0 # 0 1 1 0 0 0... Complexidade Computacional p. 50

Simulação de M 1 passo 0 0 1 1 0 0 0 # 0 1 1 0 0 0... 1 1 1 0 0 0 # 0 1 1 0 0 0... Complexidade Computacional p. 50

Simulação de M 1 passo 0 0 1 1 0 0 0 # 0 1 1 0 0 0... 1 1 1 0 0 0 # 0 1 1 0 0 0... 2 1 1 0 0 0 # 0 1 1 0 0 0... Complexidade Computacional p. 50

Simulação de M 1 passo 0 0 1 1 0 0 0 # 0 1 1 0 0 0... 1 1 1 0 0 0 # 0 1 1 0 0 0... 2 1 1 0 0 0 # 0 1 1 0 0 0... 3 1 1 0 0 0 # 0 1 1 0 0 0... Complexidade Computacional p. 50

Simulação de M 1 passo 4 1 1 0 0 0 # 0 1 1 0 0 0... Complexidade Computacional p. 51

Simulação de M 1 passo 4 1 1 0 0 0 # 0 1 1 0 0 0... 5 1 1 0 0 0 # 0 1 1 0 0 0... Complexidade Computacional p. 51

Simulação de M 1 passo 4 1 1 0 0 0 # 0 1 1 0 0 0... 5 1 1 0 0 0 # 0 1 1 0 0 0... 6 1 1 0 0 0 # 0 1 1 0 0 0... Complexidade Computacional p. 51

Simulação de M 1 passo 4 1 1 0 0 0 # 0 1 1 0 0 0... 5 1 1 0 0 0 # 0 1 1 0 0 0... 6 1 1 0 0 0 # 0 1 1 0 0 0... 7 1 1 0 0 0 # 0 1 1 0 0 0... Complexidade Computacional p. 51

Simulação de M 1 passo 8 1 1 0 0 0 # 1 1 0 0 0... Complexidade Computacional p. 52

Simulação de M 1 passo 8 1 1 0 0 0 # 1 1 0 0 0... 9 1 1 0 0 0 # 1 1 0 0 0... Complexidade Computacional p. 52

Simulação de M 1 passo 8 1 1 0 0 0 # 1 1 0 0 0... 9 1 1 0 0 0 # 1 1 0 0 0... 10 1 1 0 0 0 # 1 1 0 0 0... Complexidade Computacional p. 52

Simulação de M 1 passo 8 1 1 0 0 0 # 1 1 0 0 0... 9 1 1 0 0 0 # 1 1 0 0 0... 10 1 1 0 0 0 # 1 1 0 0 0... 11 1 1 0 0 0 # 1 1 0 0 0... Complexidade Computacional p. 52

Simulação de M 1 passo 12 1 1 0 0 0 # 1 1 0 0 0... Complexidade Computacional p. 53

Simulação de M 1 passo 12 1 1 0 0 0 # 1 1 0 0 0... 13 1 1 0 0 0 # 1 1 0 0 0... Complexidade Computacional p. 53

Simulação de M 1 passo 12 1 1 0 0 0 # 1 1 0 0 0... 13 1 1 0 0 0 # 1 1 0 0 0... 14 1 1 0 0 0 # 1 1 0 0 0... Complexidade Computacional p. 53

Simulação de M 1 passo 12 1 1 0 0 0 # 1 1 0 0 0... 13 1 1 0 0 0 # 1 1 0 0 0... 14 1 1 0 0 0 # 1 1 0 0 0... 15 1 1 0 0 0 # 1 1 0 0 0... Complexidade Computacional p. 53

Simulação de M 1 passo 16 1 0 0 0 # 1 1 0 0 0... Complexidade Computacional p. 54

Simulação de M 1 passo 16 1 0 0 0 # 1 1 0 0 0... 17 1 0 0 0 # 1 1 0 0 0... Complexidade Computacional p. 54

Simulação de M 1 passo 16 1 0 0 0 # 1 1 0 0 0... 17 1 0 0 0 # 1 1 0 0 0... 18 1 0 0 0 # 1 1 0 0 0... Complexidade Computacional p. 54

Simulação de M 1 passo 16 1 0 0 0 # 1 1 0 0 0... 17 1 0 0 0 # 1 1 0 0 0... 18 1 0 0 0 # 1 1 0 0 0... 19 1 0 0 0 # 1 1 0 0 0... Complexidade Computacional p. 54

Simulação de M 1 passo 20 1 0 0 0 # 1 1 0 0 0... Complexidade Computacional p. 55

Simulação de M 1 passo 20 1 0 0 0 # 1 1 0 0 0... 21 1 0 0 0 # 1 1 0 0 0... Complexidade Computacional p. 55

Simulação de M 1 passo 20 1 0 0 0 # 1 1 0 0 0... 21 1 0 0 0 # 1 1 0 0 0... 22 1 0 0 0 # 1 1 0 0 0... Complexidade Computacional p. 55

Simulação de M 1 passo 20 1 0 0 0 # 1 1 0 0 0... 21 1 0 0 0 # 1 1 0 0 0... 22 1 0 0 0 # 1 1 0 0 0... 23 1 0 0 0 # 1 0 0 0... Complexidade Computacional p. 55

Simulação de M 1 passo conteúdo da fita 0 0 1 1 0 0 0 # 0 1 1 0 0 0... 1 1 1 0 0 0 # 0 1 1 0 0 0... 8 1 1 0 0 0 # 1 1 0 0 0... 15 1 1 0 0 0 # 1 1 0 0 0... 16 1 0 0 0 # 1 1 0 0 0... 60 #... aceita Complexidade Computacional p. 56

Exemplo de máquina de Turing Descrição alto nível de uma máquina de Turing que decide se uma dada cadeia w está na linguagem M 1 = Com entrada w: {x#x : x {0, 1} }. 1. Vá e volte na fita em torno de # verificando se posições correspondentes contém o mesmo símbolo. Caso negativo, ou no caso em que # não é encontrado, rejeite. Marque os símbolos já verificados. 2. quando todos os símbolos à esquerda de # foram verificados, examine se sobraram símbolos do lado direito de #. Se sobrou algum símbolo, rejeite; senão, aceite. Complexidade Computacional p. 57