150 likes | 264 Views
Problema de Correspondência de Post (PCP). Teoria da Computação. g. b c d. b c d. e f. e f. f g. b. b. c d e. c d e. g. b c d e f g. f g. b c d e f g. O problema PCP. Input. abc. b c d. …. eg. ef. 3. 2. 4. n. 1. Pergunta : É possivel encontrar uma sequência de
E N D
Problema de Correspondência de Post (PCP) Teoria da Computação
g b c d b c d e f e f f g b b c d e c d e g b c d e f g f g b c d e f g O problema PCP Input abc b c d … eg ef 3 2 4 n 1 Pergunta : É possivel encontrar uma sequência de peças tal que o string formado na parte de cima e idêntico ao string formado na parte de baixo ? Sequência : 3 n 1
b b a a a c a c a a b c c a c a a b a b a b a a c a b c a a a b c a b c a a a b c Exemplos a b c c 3 1 2 4 Sequência de peças= 2 1 3 2 4
a b c c a a b a Exemplo Input a c c b a 1 2 3 Resposta ?? Não Justificativa : a parte de cima das peças é sempre maior que a parte de baixo !
t3 tn t1 t2 bn b1 b3 b2 Formalização do Problema Input genérico do Problema PCP C = { } , , , … , t1, t2, …, tn são strings sobre um alfabeto S b1, b2, …, bn são strings sobre um alfabeto S Um pareamento (match) = uma sequência <i1, i2, …, ik> de números em {1,…,n} tal que ti1 ti2 … tik = bi1 bi2 … bik = string do pareamento
Formalização do Problema • Pergunta do problema PCP : Existe um pareamento para o input C ?
Configurações de uma MT M = Máquina de Turing w = string (por exemplo w = (0002102) 1 0 2 B 0 0 0 2 B B B 0 0 0 2 q 1 0 2 q q0 0 0 0 2 1 0 2 Configuração Inicial = Cin 0 0 0 2 qa1 0 2 Configuração de Aceitação = Ca 0 0 0 2 qr1 0 2 Configuração de Rejeição = Cr
Um passo de cálculo Configuração 1 Configuração 2 1 0 2 B 0 0 0 2 4 B B B q 0 0 0 2 q1 0 2 0 0 0 q 2 4 0 2
Um passo de cálculo Configuração 1 Configuração 2 1 0 2 B 0 0 0 2 4 B B B q 0 0 0 2 q 1 0 2 0 0 0 2 4 q0 2
Histórico de configurações • M : máquina de Turing • w = string sobre o alfabeto de M • Histórico de configurações de M em w Cin # C1 # C2 # …. # Ca Cin # C1 # C2 # …. # Cr Cin # C1 # C2 # …. # Cn …..
Problema PCP é indecidível Técnica = redução de ATM para PCP PCP ATM <M,w> Um conjunto de peças, onde os strings correspondem aos possiveis passos de M ao ser executada em w String pareado = corresponderá ao histórico de aceitação de w por M Pareamento = corresponderá aos passos executados pela máquina, partindo da configuração inicial até chegar numa configuração de aceitação. Assim : M aceita w se e somente se existir este pareamento
# #Cin Idéia de Emil Post Cn # Ca # Cin # C2 # C2 # C3 # Ca # Primeira peça String pareado = # Cin # C2 # C3 … # Ca # Pareamento = sequência de peças correspondendo aos passos realizados pela máquina até chegar no estado de aceitação qa Peças = correspondem aos passos (transições) da máquina de Turing
Exemplo Máquina de Turing M • d(qo,0) = (q1,2,R) • d(q1,1) = (q2,0,R) • d(q2,0) = (q3,2,L) • d(q2,1) = (qr,1,R) • d(q3,0) = (q3,0,R) • d(q3,2) = (q3,2,R) • d(q3,2) = (q3,2,R) • d(q3,B) = (qa,B,R) • w = 0 1 0 0 q0 0 1 0 0 2 q1 1 0 0 2 0 q20 0 2 q30 2 0 2 0 q3 2 0 2 0 2 q3 0 2 0 2 0 q3 2 0 2 0 B qa
g b c d f g b # #q0 0 1 0 0# Idéia Cin # C2 # C3 # # # Cin # C2 # C3 # C4 # Primeira peça # q0 0 1 0 0 # 2 q1 1 0 0 # 2 0 q2 0 0 # PEÇAS #q0 0 1 0 0# 2 q3 0 2 0 # 2 q1 1 0 0 # 2 0 q2 0 0 # q0 0 q1 1 0 q2 0 1 2 0 # 2 q1 0 q2 q3 0 2 1 2 0 #
Problema Definir um conjunto fixo de peçastal que seja possivel encadear algumas dessas peças (no caso de M aceitar w) de modo a construir o string de pareamento (em baixo e em cima da sequência das peças) : # q0 0 1 0 0 # 2 q1 1 0 0 # 2 0 q2 0 0 # 2 q3 0 2 0 # 2 0 q3 2 0 # 2 0 2 q3 0 # 2 0 2 0 B qa # 2 0 2 0 q3 # A DESCRIÇÃO DAS PEÇAS FAZ USO DO CÓDIGO DA MÁQUINA E O STRING w