É o que se sabe sobre o problema da parada e a semi-decidibilidade:
O problema de parada diz que, para uma dada entrada xe uma máquina H, não podemos dizer se a máquina H pára ou não na entrada x.
Diz-se que um idioma é semi-decidível se existir uma máquina de Turing que pare se uma palavra pertencer ao idioma (casos SIM) e pode rejeitar ou entrar em loop infinito se a palavra não pertencer ao idioma (caso NÃO) .
Agora, no problema de parada, não podemos dizer se a máquina irá parar, mesmo que a entrada pertença ao idioma (casos YES). Então, como é semi-decidível? Eu acho que deveria ser não recursivamente enumerável ou indecidível.
Respostas:
Tl; dr: "(diga) se pára ou não" e "(diga) se pára" não são a mesma coisa. Use a matemática para evitar confusão induzida pela ambiguidade da linguagem.
Não, não é isso que diz. O problema da parada é o problema computacional de decidir seH pára x , dado x e H como entrada. É importante notar que "decidir" aqui significa "diga sim se for assim e diga não se não for".
A indecidibilidade do problema de parada afirma que não existe um algoritmo único (máquina de Turing) que resolve o problema de parada para todosH e x .
Após o esclarecimento acima, sua confusão aqui deve ficar clara. Não importa o que "podemos dizer". O "problema de semi-parada" é relaxado: o algoritmo ainda precisa dizer "sim" seH pára x , mas pode fazer o que quiser, se não o fizer (exceto a resposta "sim").
Isso é trivial de implementar: basta executarH em x . Se parar, responda "sim". Caso contrário, não importa, pois temos permissão para fazer um loop.
fonte