Réduisez $ l_c=\ \ \ utilggle m_1 \ RANGER, \ LBABLE M_2 \ RANGER): L (M_1) \ CAP L (M_2) \ NEQ \ NEKYSET \} $ à $ A_ {TM} $

cs.stackexchange https://cs.stackexchange.com/questions/120339

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 $ ).

Était-ce utile?

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 $ $ à la $ a_ {tm} $ < / Span> Oracle (ou, alternativement, il est complet si vous le traitez comme une réduction de cartographie).

Notez que $ N $ accepte $ \ epsilon $ (et tout autre mot) iff il y a Un mot qui est accepté par $ m_1 $ et $ m_2 $ .

.

Licencié sous: CC-BY-SA avec attribution
Non affilié à cs.stackexchange
scroll top