A noção de redução de tempo polinomial (reduções de Cook) é uma abstração de um conceito muito intuitivo: resolver um problema com eficiência usando um algoritmo para um problema diferente.
No entanto, na teoria de -completeness, a noção de -hardness é capturado por meio de reduções de mapeamento (reduções Karp). Esse conceito de reduções "restritas" é muito menos intuitivo (pelo menos para mim). Parece até um pouco artificial, pois cria uma noção um pouco menos intuitiva de dureza; estou me referindo ao fato de que não contém trivialmente . Embora na teoria da complexidade estamos muito acostumados ao conceito de que poder resolver um problema como não implica que possamos resolver, em configurações naturais (que são capturadas pelas reduções de Cook), assumindo que temos um algoritmo para resolver , podemos resolver apenas executando o algoritmo para e retornando o oposto.
Minha pergunta é por que devemos usar as reduções de Karp para a teoria da ? Que noção intuitiva ele captura? Como isso se relaciona com a maneira como entendemos a "dureza da computação" no mundo real?
Respostas:
Assim como as reduções de Turing, muitas reduções entraram na teoria da complexidade a partir da literatura da teoria da computabilidade / recursão. As reduções de Cook e Karp são versões teóricas da complexidade natural de reduções existentes semelhantes na computabilidade.
Existe uma maneira intuitiva de explicar muitas reduções: é uma restrição das reduções de Turing, onde podemos fazer apenas uma única pergunta do oráculo e a resposta do oráculo será a nossa resposta.
Agora, a pergunta é por que precisaríamos estudar isso (e qualquer outro tipo de redução, como tabela de verdade, tabela de verdade fraca etc.)?
Essas reduções fornecem uma imagem mais precisa do que as reduções de Turing. As reduções de Turing são poderosas demais para distinguir entre muitos conceitos. Uma grande parte da teoria da computabilidade é dedicada ao estudo dos graus ce / re. A noção de um conjunto de ce é central. Podemos ter máquinas de TM que podem enumerar um conjunto infinito; talvez não consigamos enumerar seu complemento. Se você deseja estudar conjuntos de ce, a redução de Turing é muito forte, pois os ce ce não estão fechados embaixo dela. Tantas reduções são uma (e talvez a) maneira natural de definir reduções para esse propósito.
Outros tipos de reduções são definidos por razões semelhantes. Se você estiver interessado, sugiro verificar a "Teoria Clássica da Recursão" de Piergiorgio Odifreddi. Possui um capítulo bastante abrangente sobre diferentes reduções e suas relações.
fonte
existem várias perguntas neste site relacionadas a reduções de Cook vs Karp. não vi uma descrição muito clara disso para o neófito porque é um tanto inerentemente sutil de muitas maneiras e é uma área de pesquisa ativa / aberta. Aqui estão algumas referências que podem ser úteis para resolvê-lo. como a wikipedia resume: "Muitas reduções de um são valiosas porque a maioria das classes de complexidade bem estudadas é fechada sob algum tipo de redutibilidade de um, incluindo P, NP, L, NL, co-NP, PSPACE, EXP e muitas outras. Essas classes não são fechadas sob reduções arbitrárias de muitos, no entanto ".
parece justo dizer que mesmo os teóricos avançados estão ponderando ativamente a distinção e as diferenças exatas, como nos refs abaixo e a história completa não estará disponível, a menos que importantes separações de classe de complexidade aberta sejam resolvidas, ou seja, essas questões parecem estar no centro do vs conhecido desconhecido.
[1] Cook versus Karp-Levin: separando noções de completude se NP não for pequeno (1992) Lutz, Mayordomo
[2] Cook e Karp são sempre os mesmos? Beigel e Fortnow
[3] Mais problemas completos de NP (PPT), veja os slides 9 a 14 sobre história e distinções de redução de Cook vs Karp
fonte