Réduisez $ l_c=\ \ \ utilggle m_1 \ RANGER, \ LBABLE M_2 \ RANGER): L (M_1) \ CAP L (M_2) \ NEQ \ NEKYSET \} $ à $ A_ {TM} $
-
29-09-2020 - |
Question
Comment réduire $ l_c=\ \ \ \ \ lger m_1 \ RANGER, \ Langle m_2 \ RANGER): L (m_1) \ CAP L (M_2) \ NEQ \ NEYTYSET \} $ à $ a_ {tm}={\ utill m, w \ rangs: m $ est une machine de Turing qui accepte $ w $ }.
mon essai:
Construire une machine de Turing $ n $ à l'aide d'une machine de Turing $ U $ qui décide du langage universel comme sous-programme pour décider $ l_c $ .
$ n $ , sur toute entrée $ <\ étouffe m_1 \ rangs, \ lelopper M_2 \ RANG> $ :
1 $. $ construire un programme qui génère le mot $ w \ in \ sum ^ \ ast $ dans l'ordre canonique .
2 $. $ exécuter $ U $ sur $ \ langle m_1 , w \ rangs $ et $ \ lambeaux m_2, w \ rangs $ .
3 $. $ si $ U $ accepte les deux, accepter.
4 $. $ sinon, retour à $ 1 $
Il semble ne pas fonctionner. Parce que si $ l (m_1) \ cap l (m_2)=videtset $ , $ N $ boucle pour toujours (il ne peut tout simplement pas trouver de telle $ w $ ).
La solution
La direction de réduction que vous demandez est un peu étrange. En règle générale, nous réduisons de $ a_ {tm} $ , afin de montrer une indécidecabilité.
Peut-être que vous vouliez poser des questions sur l'autre direction?
En tout cas, en réponse à votre question: votre tentative était en fait assez proche, elle a juste besoin d'un peu de modification. Voici comment vous pouvez procéder:
donné $ m_1, m_2 $ comme entrée pour $ l_c $ , construire une nouvelle machine $ n $ qui fonctionne comme suit: Entrée donnée $ x $ , $ N $ l'ignore (c'est-à-dire efface $ x $ de son ruban adhésif), puis commence à simuler $ M_1 $ et $ m_2 $ sur chaque mot $ w \ sigma ^ * $ , en ordre canonique. Notez, cependant, que pour simuler $ m_1 $ et $ m_2 $ sur tous < / em> mots, nous ne pouvons pas simplement les exécuter sur chaque mot arbitrairement, car nous pourrions être bloqués (nous n'utilisons pas d'oracle sur $ a_ {tm} $ ). Au lieu de cela, nous les exécutons dans parallèle : exécuter $ m_1 $ et $ m_2 $ sur chacun des premiers $ k $ mots dans $ \ sigma ^ * $ pour $ K $ étapes, puis augmenter $ k $ par 1. C'est un tour assez courant, mais c'est assez intelligent, mais c'est assez intelligent.
Maintenant, si à tout moment, $ M_1 $ ET $ M_2 $ Accepte, puis $ N $ accepte. Sinon, il continue à courir et à augmenter $ k $ pour toujours.
La réduction est complétée en envoyant $
Notez que $ N $ accepte $ \ epsilon $ (et tout autre mot) iff il y a Un mot qui est accepté par $ m_1 $ et $ m_2 $ .
.