Problemas de função e

7

Acho difícil encontrar definições formais de classes de complexidade de funções. Aqui estão dois da Wikipedia.

Uma relação binária P(x,y)está em FP se e somente se houver um algoritmo de tempo polinomial determinístico que, dadox, pode encontrar alguns y de tal modo que P(x,y) detém.

A definição acima parece implicar que, para todas as relações no PF, é válido que para cadax existe pelo menos um y cujo comprimento é polinomial no comprimento de x. No entanto, não parece restringir a existência de maisy por isso x de modo a P(x,y) segura enquanto y é exponencialmente maior que x.

Uma relação binária P(x,y), Onde y é no máximo polinomialmente maior que x, está no FNP se e somente se houver um algoritmo de tempo polinomial determinístico que possa determinar seP(x,y) mantém dado tanto x e y.

Esta definição implica que, para uma relação no PNF , não é necessário que exista pelo menos umy para cada x de modo a P(x,y)detém. Implica, porém, que seP(x,y) detém, y deve ser no máximo polinomialmente maior que x.

Na literatura, pode-se ler que FP FNP . Tanto quanto eu entendo (ou não), isso não pode ser verdade. É possível que, para alguma relaçãoR(x,y) FP existe uma(x,y) de modo a R(x,y) detém e y é exponencialmente maior que x. Por esse motivo , essa relação não pertence ao FNP e, portanto, ao FP FNP .

As definições na Wikipedia estão incompletas? Estou esquecendo de algo?

De qualquer maneira, quais são algumas boas fontes para ler sobre problemas de função (considero-me conhecedor de problemas de decisão)?

Auberon
fonte
Você já olhou para outros livros / fontes além da Wikipedia? Se você deseja definições formais, eu não recomendaria confiar na Wikipedia como sua principal fonte. Em vez disso, um livro sobre teoria da complexidade é provavelmente uma escolha melhor, ou notas de aula de um curso (provavelmente curso de pós-graduação) sobre teoria da complexidade que aborda esses tópicos.
DW
Estou lendo 'Complexidade computacional: uma abordagem moderna' de Arora et. al. mas esse livro não cobre problemas de função. Estou lendo artigos que definem PLS e PPA (D) [Papadimitrou]. Esses artigos apenas os 'definem' como "funções equivalentes a (N) P". Eu posso entender o PLS e o PPA (D), mas quando raciocino sobre eles em profundidade, sempre me deparo com o problema, não conheço nenhuma boa definição de FP e FNP .
Auberon

Respostas:

4

Encontrei o seguinte no livro de Papadimitriou, Computational Complexity, que achei satisfatório.

Deixei RΣ×Σ ser uma relação binária em strings.

Ré chamado polinomialmente decidível se houver uma máquina de Turing determinística que decide o idioma{x;y:(x,y)R} em tempo polinomial.

Dizemos que Ré polinomialmente equilibrado se(x,y)R implica |y||x|k para alguns k1.

Então Papadimitriou observa o seguinte, que basicamente é outra definição para NP :

Deixei LΣ seja uma linguagem. L NP se e somente se houver uma relação polinomialmente decidível e polinomialmente equilibradaR, de tal modo que L={x:(x,y)R para alguns y}.

Algumas dezenas de páginas depois ...

O problema da função associado ao L [ NP ], denotadoFL [aqui L significa a linguagem mencionada, não o espaço de registro], é o seguinte problema computacional:

Dado x, encontre uma string y de tal modo que RL(x,y)se existe uma string; se essa string não existir, retorne "no".

Então

A classe de todos os problemas de função associados como os idiomas no NP é chamada FNP . FP é a subclasse resultante se considerarmos apenas problemas de função no FNP que podem ser resolvidos em tempo polinomial.

Auberon
fonte
Agora, para descobrir por que a FP TFNP ...
Auberon
Observe que FPtem outra definição incompatível que também é comumente usada.
Yuval Filmus
@YuvalFilmus Na literatura, é aceito que o FP TFNP FNP . Eu diria que qualquer definição de FP existe por aí que satisfaça esta é a correta. Papadimitriou também afirma as inclusões mencionadas em seu livro. No entanto, eu não vejo como sua definição de FP implica que ....
Auberon
Isso depende de qual parte da literatura você olha. Para mim, FP sempre foi a classe de funções computáveis ​​no polytime, enquanto FNP e TFNP são termos de nicho usados ​​por pessoas que trabalham com problemas de pesquisa.
Yuval Filmus
3

Vamos esquecer as definições da Wikipedia e criar as nossas.

Uma função f é em FP se houver uma máquina polytime Turing que na entrada x saídas f(x).

Uma função f é em FNP E se:

  1. A função f é polinomialmente limitado: existe um polinômio p de tal modo que |f(x)|p(|x|).

  2. Existe uma máquina polytime Turing que, dada a x,y determina se f(x)=y.

E se f é em FPentão é definitivamente polinomialmente limitado. Desde que podemos calcularf(x) em tempo polinomial, dado x,y nós podemos calcular f(x) e compare com y, tudo em tempo polinomial.

Consultando o zoológico de complexidade , parece queFNP na verdade tem uma definição diferente, e que FP possui duas definições diferentes e incompatíveis, sendo uma delas a mencionada acima.

Yuval Filmus
fonte
Eu diria que FP e FNP não são conjuntos de funções, mas conjuntos de strings. Além disso, functionimplica que há exatamente umy para cada x, o que não precisa ser o caso. São relações.
Auberon
Você parece estar certo sobre FNP, mas FPpossui várias definições diferentes (incompatíveis). Veja, por exemplo, o zoológico de complexidade .
Yuval Filmus
2

Quero adicionar outro conjunto de definições de Automata, Computability and Complexity, de Elaine Rich.

A classe FP : uma relação bináriaQ é em FP se houver um algoritmo de tempo polinomial determinístico que, dada uma entrada arbitrária x, pode encontrar alguns y de tal modo que (x,y)Q.

A classe FNP : uma relação bináriaQ é em FNP se houver um verificador de tempo polinomial determinístico, dado um par de entradas arbitrário (x,y), determina se (x,y)Q. Equivalentemente,Q é em FNP se houver um algoritmo de tempo polinomial não determinístico que, dada uma entrada arbitrária x, pode encontrar alguns y de tal modo que (x,y)Q

Isso é apenas um pouco diferente das definições encontradas na Wikipedia, mas implica coisas diferentes, no entanto. Mais importante, Elaine Rich, sua definição deFNP não implica que se (x,y)Q, y tem que ser polinomial emx. É provável que as definições wiki sejam cópias desleixadas delas.

A partir dessas definições, é mais claro que FPTFNPFNP.

Auberon
fonte