Baixe o app para aproveitar ainda mais
Prévia do material em texto
Autoˆmatos e Computabilidade – Teste 4 Desenhe o diagrama de estados de uma ma´quina de Turing que compute a func¸a˜o f(n) = 2n, onde n e´ um nu´mero natural. A ma´quina utiliza notac¸a˜o una´ria, i.e., o nu´mero n e´ representado pela cadeia 1n. Suponha que, inicialmente, a fita da ma´quina de Turing conte´m @w, onde w e´ a representac¸a˜o una´ria de n, e a cabec¸a da ma´quina esta´ sobre o s´ımbolo mais a esquerda de w. No final da operac¸a˜o, a fita devera´ conter @u, onde u e´ a representac¸a˜o una´ria de 2n, e a cabec¸a da ma´quina devera´ esta´r sobre o s´ımbolo mais a esquerda de u. Resposta: Em aula vimos uma ma´quina de Turing que copia uma cadeia de entrada w, produzindo w#w. A ma´quina de Turing para computar f(n) = 2n pode ser construida de maneira muito similar: q0 q1 q2 q3 q4 q5qacc 1 → x,D 1 → D unionsq → #,D 1 → E # → E x → 1,D 1 → x,D 1 → D # → D unionsq → 1,E # → 1,E @ → D 1 → E Um inteiro n ≥ 0 pode ser representado em base bina´ria como uma cadeia sobre o alfabeto {0, 1}. Por exemplo, o nu´mero 13 e´ representado pela cadeia 1101. Tambe´m, um inteiro n > 0 pode ser representado em base una´ria como uma cadeia sobre o alfabeto {1}, na forma 1n. Assim, o nu´mero 13 e´ representado pela cadeia 1111111111111. Descreva uma ma´quina de Turing que recebe como entrada a representac¸a˜o bina´ria de um nu´mero n > 0 e gera sua representac¸a˜o una´ria. Explique o funcionamento da ma´quina claramente. A ma´quina de Turing pode usar mais de uma fita. Na˜o e´ necessa´rio desenhar um diagrama de estado. Resposta: Ha´ va´rias formas de construir essa ma´quina de Turing. Por exemplo, podemos usar uma ma´quina com treˆs fitas. Na primeira fita, recebe a representac¸a˜o bina´ria de n. Na segunda fita, a ma´quina gera cadeias de 1s, cujo comprimento e´ uma poteˆncia de 2. Na terceira fita, a ma´quina gera a representac¸a˜o una´ria de n. M= “Sobre a entrada w: 1. Marque o in´ıcio da primeira fita. 2. Desloque a cabec¸a da primeira fita ate´ o extremo direito de w. 3. Ate´ que atingir o in´ıcio da primeira fita, fac¸a: 4. Se a segunda fita estiver vazia, escreva 1. Se na˜o, duplique a quantidade de 1s nela. 5. Leia o s´ımbolo na primeira fita e desloque a cabec¸a a` esquerda. Se o s´ımbolo lido for 1, concatene o conteu´do da segunda fita a` direita do conteu´do da terceira fita. 6. Apague a primeira fita, copie o conteu´do da terceira fita na primeira, e pare.” Descreva como construir uma ma´quina de Turing que enumere o conjunto de pal´ındromos sobre {0, 1} em ordem lexicogra´fica. Por exemplo, em um momento dado, a fita da ma´quina de Turing sera´ ##0#1#00#11#000#010#101#111#0000#0110 . . . Atenc¸a˜o: explique claramente o funcionamento dessa ma´quina de Turing. Resposta: Podemos usar uma ma´quina com treˆs fitas. Na primeira fita, a ma´quina enumera os pal´ıdromos. Na segunda, enumera todas as cadeias si ∈ {0, 1}∗, com i = 1, 2, 3, . . ., em ordem lexicogra´fica (i.e., s1 = ε, s2 = 0, s3 = 1, s4 = 00 etc.), separadas pelo s´ımbolo #. Na terceira fita, a ma´quina analisa cada cadeia enumerada na segunda fita para determinar se e´ um pal´ındromo ou na˜o. Em cada etapa i, a ma´quina adiciona a cadeia #si a` direita do conteu´do da fita 2 (vimos em aula uma ma´quina ENUM que faz isso). Seguidamente, apaga o conteu´do da fita 3, copia nela si e verifica se a cadeia e´ um pal´ındromo. Para isso, a cabec¸a da ma´quina compara os s´ımbolos correspondentes a partir de extremo direito e do extremo esquerdo de si (i.e., compara os s´ımbolos situados a mesma distaˆncia de cada extremo, respectivamente). Se os s´ımbolos sa˜o iguais, marca eles e continua com o pro´ximo par. Se sa˜o diferentes, enta˜o si na˜o e´ um pal´ındromo e conclui esta etapa. Se todos os s´ımbolos de si foram marcados, exceto o s´ımbolo do centro no caso de uma cadeia de comprimento ı´mpar, enta˜o si e´ um pal´ındromo. Nesse caso, a ma´quina escreve # a` direita do conteu´do da primeira fita e adiciona si. Desenhe o diagrama de estados de uma ma´quina de Turing que compute a func¸a˜o f(n) = n− 1, onde n ≥ 1. Suponha que, inicialmente, a fita da ma´quina de Turing conte´m @w, onde w ∈ {0, 1}∗ e´ a representac¸a˜o de n em base bina´ria, e a cabec¸a da ma´quina esta´ sobre o s´ımbolo mais a esquerda de w. No final da operac¸a˜o, a fita devera´ conter @u, onde u ∈ {0, 1}∗ e´ a representac¸a˜o de n− 1 em base bina´ria, e a cabec¸a da ma´quina devera´ esta´r sobre o s´ımbolo mais a esquerda de u. Resposta: A ma´quina de Turing que computa f(n) = n − 1 e´ muito similar a` que computa f(n) = n+ 1, vista em aula. q0 q1 q2 q3 q4 qaccq5 q6 q7 q8 q9 unionsq → E ¬unionsq → D 1 → 0,E 0 → 1,E @ → D 1 → D → E0 → D ¬@ → E unionsq → E 1 → D ¬unionsq → D unionsq → E 1 → unionsq,E ¬@ → E @ → D → 1,D Os estados q0, q1, q2 e q3 fazem a substrac¸a˜o. Os estados restantes eliminam um 0 a` esquerda, se for o caso. Suponha que tem uma ma´quina de Turing M que decide a linguagem L. Explique como construir uma ma´quina de Turing na˜o determin´ıstica N que decida L∗. Atenc¸a˜o: explique claramente o funcionamento de N . Resposta: N= “Sobre a entrada w: 1. Na˜o deterministicamente, corte w em subcadeias de forma que w = w1w2 . . . wn. Para cada poss´ıvel corte: 2. Rode M sobre wi, com i = 1, 2, . . . , n. Se M aceita cada uma das subcadeias wi, aceite; se na˜o, rejeite. Suponha que L1 e L2 sa˜o subconjuntos de Σ ∗ e que M1 e M2 sa˜o ma´quinas de Turing que reconhecem L1 e L2, respectivamente. Explique como construir uma ma´quina de Turing na˜o determin´ıstica que reconhec¸a L1L2. Atenc¸a˜o: explique claramente o funcionamento dessa ma´quina de Turing. Resposta: N= “Sobre a entrada w: 1. Na˜o deterministicamente, corte w em duas subcadeias de forma que w = w1w2. Para cada poss´ıvel corte: 2. Rode M1 sobre w1. Se M1 para e rejeita, rejeite; se aceita, va ao passo 3. 3. Rode M2 sobre w2. Se M2 para e rejeita, rejeite; se aceita, aceite.”
Compartilhar