Estou me sentindo um pouco confuso com a direção das reduções usadas para mostrar que certos idiomas não são recursivos. Por exemplo, digamos que queremos determinar se o problema de parada () é indecidível. Eu sei que podemos assumir que é decidível e tentar construir uma decisão para o problema de aceitação, o que é impossível. Mas, embora estejamos usando o problema de aceitação () para ajudar a resolver a decidibilidade do problema de parada, reduzimos o problema de aceitação ao problema de parada, e não o contrário, certo?
Às vezes fico um pouco confuso quando encontro perguntas que me pedem para implantar uma redução; Me pedem para reduzir o idioma para , mas o que isso significa é que é uma instância mais simples de um problema de , certo (ou pelo menos deveria ser)? Estou assumindo que é impossível reduzir uma versão mais simples de um problema para uma versão mais complexa de um problema, estou certo em acreditar nisso?
Respostas:
Não se preocupe - todo mundo fica confuso com a direção das reduções. Mesmo as pessoas que trabalham com algoritmos e complexidade há décadas ocasionalmente têm um "Espere, deveríamos estar reduzindoUMA para B ou B para UMA ?" momento.
ReduzindoUMA para B produz uma declaração do formulário "Se eu pudesse resolver B , então eu também saberia como resolver UMA "." Resolver "nesse sentido pode significar" calcular usando qualquer máquina de Turing "ou" calcular em tempo polinomial "ou qualquer outra noção de solução que seu contexto exija.
Isso pode parecer contra-intuitivo, pois "UMA reduz a B "implica que resolver B é pelo menos tão difícil quanto resolver UMA , então você não reduziu a dificuldade. No entanto, você pode pensar nisso como reduzir o número de problemas que precisa resolver. Imagine que, no início do dia, seus objetivos fossem encontrar um algoritmo para UMA e um algoritmo para B . Bem, agora que você encontrou uma redução deUMA para B , você reduziu seus objetivos a apenas encontrar um algoritmo para B .
fonte
Não. QuandoUMA reduz a B , significa intuitivamente que UMA é mais simples que B , Não o contrário.
Mais praticamente: suponha que você queira verificarx ∈ A . Em vez de fazer isso de alguma maneira, você transformax de acordo com algumas funções (redução) y= f( X ) . Agora você precisa verificary∈ B .
Você ainda não resolveu o problema inicialx ∈ A , pois agora você tem outro problema a resolver: y∈ B . Isso significa que você reduziu o problema inicial para outro.
Pode parecer contra-intuitivo a princípio que reduzimos as coisas fáceis às mais complexas. De fato, pragmaticamente, por que alguém quer resolver uma tarefa fácil, reduzindo se a uma tarefa mais difícil? Não gostaríamos de reduzir nossa tarefa a uma tarefa ainda mais fácil?
No entanto, a verdade é: se pudéssemos resolver uma tarefa difícilUMA reduzindo-o a uma tarefa fácil B , Isso significa que UMA não foi realmente mais difícil do que B . De fato, se resolverUMA pode ser alcançado aplicando a função de redução e resolvendo o problema "mais fácil" B , significa que UMA foi mais fácil do que B em primeiro lugar.
fonte
Uma redução deUMA para B é algo que faz parte do trabalho necessário para fazer UMA e o que falta fazer é B . Por exemplo, "obter comida" pode ser reduzido a "cozinhar" por "obter ingredientes". Isso significa que "cozinhar" é mais difícil do que "obter comida": qualquer pessoa que possa "cozinhar" pode "obter comida" (assumindo que a redução de "obter ingredientes" sempre funcione, por exemplo, na presença de um local que dê ingredientes de graça) .
Desenhar coisas tende a torná-las mais fáceis de entender:
Você deseja construir a caixa azul (que representa um algoritmo que recebe uma entradax e decide se x ∈A ) A redução é então a caixa vermelha e, quando você a tiver, a única coisa que resta fazer para construir a caixa azul é construir a caixa verde. Então, se você tem uma caixa vermelha (que reduzUMA para B ), construindo a caixa verde (que decide B ) é pelo menos tão difícil quanto construir o azul (que decide UMA ): Se você tiver uma caixa verde, é muito fácil criar uma azul, enquanto que se você construir uma caixa azul, poderá não conseguir construir uma caixa verde.
Observe que as razões para as duas condições que definem uma redução aparecem neste desenho: o fato de quef é computável significa que você pode construir a caixa vermelha, enquanto o fato de que f( x ) ∈ B⟺x ∈ A significa que você pode conectar os dois fios mais à direita.
fonte